/* ==========================================================================
   FACULTY GUARD — STYLESHEET
   Sectioned for maintainability. Each section below is self-contained —
   edit within a section without needing to scroll through the whole file.

   Contents:
     1.  Variables & Reset
     2.  Base / Body Background
     3.  Header & Navigation
     4.  Hero
     5.  Ticker
     6.  Section Base (kicker, section-title, copy, wrap)
     7.  Cards (grid tiles used across Problem / Included / Reuse)
     8.  Testimonials (currently no matching markup — see note)
     9.  Pricing Packages
     10. FAQ
     11. Founder / Credentials Strip
     12. Final CTA
     13. Footer
     14. Responsive Breakpoints
     15. Accessibility (reduced motion)
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. VARIABLES & RESET
   -------------------------------------------------------------------------- */
:root {
  --silver:#d8dce2;
  --silver2:#f6f7fa;
  --purple2:#b685ff;
  --line:rgba(216,220,226,.18);
  --glow:rgba(127,53,216,.42);
}

* { box-sizing:border-box; margin:0; padding:0; }

html { scroll-behavior:smooth; overflow-x:hidden; }

a { color:inherit; }

img, svg { max-width:100%; height:auto; }

button, a, p, li, h1, h2, h3, summary {
  overflow-wrap:anywhere;
}

main { overflow:hidden; }


/* --------------------------------------------------------------------------
   2. BASE / BODY BACKGROUND
   Layered radial gradients + grid-line overlays give the page its dark,
   textured look. body::before is the faint grid, body::after is the faint
   scanline texture. Both are decorative and pointer-events:none.
   -------------------------------------------------------------------------- */
body {
  position:relative;
  min-height:100vh;
  background:
    radial-gradient(circle at 20% 5%, rgba(127,53,216,.34), transparent 25%),
    radial-gradient(circle at 82% 18%, rgba(182,133,255,.18), transparent 24%),
    linear-gradient(145deg, #020203, #0d0d12 55%, #050208);
  color:var(--silver);
  font-family:Inter, system-ui, sans-serif;
  overflow-x:hidden;
}

body::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:52px 52px;
  opacity:.6;
  z-index:0;
}

body::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0, rgba(255,255,255,.025) 1px, transparent 1px, transparent 5px);
  opacity:.18;
  z-index:999;
}


/* --------------------------------------------------------------------------
   3. HEADER & NAVIGATION
   -------------------------------------------------------------------------- */
.topbar {
  position:fixed;
  top:var(--status-height, 34px);
  left:0;
  right:0;
  z-index:100;
  background:rgba(3,3,5,.78);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}

.nav {
  position:relative;
  max-width:1360px;
  margin:auto;
  padding:14px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand {
  display:flex;
  align-items:center;
  gap:15px;
  text-decoration:none;
}

.brand img {
  width:54px;
  height:auto;
  filter:drop-shadow(0 0 14px var(--glow));
}

.brand-text {
  display:flex;
  flex-direction:column;
  gap:2px;
}

.brand-main {
  font-family:Orbitron, sans-serif;
  font-weight:900;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:.95rem;
  color:var(--silver2);
}

.brand-sub {
  font-size:.64rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--purple2);
}

.navlinks {
  display:flex;
  gap:0;
  align-items:center;
  min-width:0;
}

.navlinks a {
  position:relative;
  margin-left:24px;
  text-decoration:none;
  font-family:Orbitron, sans-serif;
  font-size:.64rem;
  letter-spacing:.13em;
  line-height:1.35;
  text-transform:uppercase;
  white-space:nowrap;
  color:#b7bac2;
}

.navlinks a:first-child {
  margin-left:18px;
}

.navlinks a:first-child::before,
.navlinks a:not(:first-child):not(.nav-cta)::before {
  content:"";
  position:absolute;
  left:-14px;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--purple2);
  box-shadow:0 0 9px rgba(182,133,255,.72);
  transform:translateY(-50%);
}

.navlinks a:first-child::before {
  width:7px;
  height:7px;
  left:-18px;
}

.navlinks .nav-cta {
  margin-left:24px;
}

.navlinks a:hover { color:var(--purple2); }

.nav-cta {
  border:1px solid rgba(182,133,255,.55);
  padding:10px 16px;
  color:var(--silver2) !important;
  box-shadow:0 0 24px rgba(127,53,216,.18);
}


/* --------------------------------------------------------------------------
   3a. TOP MISSION BANNER
   A restrained, dismissible scrolling message strip above the navigation.
   -------------------------------------------------------------------------- */
.status-banner {
  --banner-bg:rgba(67,25,122,.98);
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:120;
  height:var(--status-height, 34px);
  display:flex;
  align-items:center;
  overflow:hidden;
  border-bottom:1px solid rgba(216,220,226,.18);
  background:linear-gradient(90deg, #35125f, #57208f 48%, #35125f);
  color:var(--silver2);
}

.status-track {
  display:flex;
  align-items:center;
  gap:42px;
  width:max-content;
  padding-left:100%;
  animation:status-scroll 42s linear infinite;
}

.status-track span {
  position:relative;
  white-space:nowrap;
  font-family:Orbitron, sans-serif;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.status-track span:not(:last-child)::after {
  content:"";
  position:absolute;
  right:-23px;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--purple2);
  box-shadow:0 0 8px rgba(182,133,255,.85);
  transform:translateY(-50%);
}

.status-close {
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  border:0;
  background:rgba(3,3,5,.34);
  color:var(--silver2);
  font-size:1.15rem;
  line-height:1;
  cursor:pointer;
}

.status-close:hover,
.status-close:focus-visible { background:rgba(3,3,5,.62); }

@keyframes status-scroll {
  from { transform:translateX(0); }
  to { transform:translateX(-100%); }
}

body.banner-dismissed { --status-height:0px; }
body.banner-dismissed .topbar { top:0; }

/* Mobile nav toggle (hamburger) — hidden on desktop, shown under 980px */
.nav-toggle {
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:40px;
  height:40px;
  padding:0;
  background:transparent;
  border:1px solid rgba(216,220,226,.30);
  cursor:pointer;
}

.nav-toggle span {
  display:block;
  width:20px;
  height:2px;
  margin:0 auto;
  background:var(--silver2);
  transition:.2s ease;
}

.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }


/* --------------------------------------------------------------------------
   4. HERO
   .hero-wrap stacks .hero-copy and .hero-art on the same grid cell
   (grid-column/row 1/-1 on both) so the orbit graphic sits behind the copy.
   -------------------------------------------------------------------------- */
.hero {
  position:relative;
  z-index:1;
  min-height:100vh;
  padding:126px 30px 80px;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.hero::before {
  content:"";
  position:absolute;
  inset:0;
  background:url("faculty-guard-icon-purple.png") center right / min(640px, 46vw) auto no-repeat;
  opacity:.10;
}

.hero::after {
  content:"";
  position:absolute;
  right:-12vw;
  top:8vh;
  width:58vw;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(182,133,255,.20);
  box-shadow:
    0 0 70px rgba(127,53,216,.12),
    inset 0 0 100px rgba(216,220,226,.035);
  animation:slowspin 28s linear infinite;
}

@keyframes slowspin {
  from { transform:rotate(0deg); }
  to { transform:rotate(360deg); }
}

.hero-wrap {
  position:relative;
  z-index:4;
  max-width:1360px;
  margin:auto;
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:1fr;
  align-items:center;
  justify-items:center;
}

.hero-copy {
  grid-column:1 / -1;
  grid-row:1 / -1;
  max-width:780px;
  margin:0 auto;
  text-align:center;
  z-index:2;
}

.badge {
  display:inline-flex;
  padding:9px 14px;
  border:1px solid rgba(182,133,255,.38);
  background:rgba(127,53,216,.12);
  color:var(--purple2);
  font-family:Orbitron, sans-serif;
  letter-spacing:.22em;
  font-size:.68rem;
  text-transform:uppercase;
  margin-bottom:24px;
}

h1 {
  font-family:Orbitron, sans-serif;
  font-size:clamp(3.4rem, 7.8vw, 8.1rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase;
  margin-bottom:30px;
  color:var(--silver2);
  text-shadow:
    0 0 26px rgba(216,220,226,.18),
    0 0 60px rgba(127,53,216,.24);
}

h1 span {
  color:transparent;
  -webkit-text-stroke:1.5px var(--purple2);
  text-shadow:0 0 28px rgba(127,53,216,.42);
}

.hero-lede {
  font-size:clamp(1.05rem, 1.5vw, 1.28rem);
  line-height:1.84;
  color:#c3c0ca;
  margin-bottom:22px;
}

.hero-lede strong { color:var(--silver2); }

.hero-sub {
  font-size:.92rem;
  letter-spacing:.02em;
  color:#a19dad;
  margin-bottom:22px;
}

.hero-seo {
  font-size:.86rem;
  line-height:1.7;
  color:#8b8794;
  max-width:640px;
  margin:0 auto 30px;
}

.actions {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:26px;
  justify-content:center;
}

.btn {
  min-height:52px;
  padding:15px 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-family:Orbitron, sans-serif;
  font-size:.74rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  border:1px solid var(--line);
  transition:.22s ease;
}

.btn:hover { transform:translateY(-2px); }

.btn-primary {
  background:linear-gradient(90deg, #54209d, #7a3fd0);
  color:white;
  box-shadow:0 0 34px rgba(127,53,216,.28);
  border-color:transparent;
}

.btn-secondary {
  color:var(--silver2);
  border-color:rgba(216,220,226,.30);
  background:rgba(255,255,255,.035);
}

.signal {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  font-family:Orbitron, sans-serif;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--purple2);
  justify-content:center;
}

.signal span {
  padding-left:10px;
}

.signal span:not(:first-child) {
  border-left:2px solid var(--silver);
}

.signal span:first-child {
  padding-left:0;
}

.hero-art {
  grid-column:1 / -1;
  grid-row:1 / -1;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:380px;
  width:100%;
  max-width:540px;
  margin:0 auto;
  z-index:3;
  pointer-events:none;
}

.orbit {
  position:absolute;
  inset:0;
  margin:auto;
  width:min(360px, 85%);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(182,133,255,.22);
  box-shadow:0 0 70px rgba(127,53,216,.10), inset 0 0 70px rgba(255,255,255,.035);
  animation:slowspin 24s linear infinite;
}

.orbit::before {
  content:"";
  position:absolute;
  inset:15%;
  border-radius:50%;
  border:1px solid rgba(216,220,226,.14);
}


/* --------------------------------------------------------------------------
   5. TICKER
   -------------------------------------------------------------------------- */
.ticker {
  position:relative;
  z-index:2;
  overflow:hidden;
  border-block:1px solid var(--line);
  background:rgba(0,0,0,.40);
  padding:13px 0;
}

.ticker-track {
  display:flex;
  gap:38px;
  width:max-content;
  animation:ticker 32s linear infinite;
}

.ticker span {
  white-space:nowrap;
  font-family:Orbitron, sans-serif;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#a9aab1;
}

.ticker b { color:var(--purple2); }

@keyframes ticker {
  from { transform:translateX(0); }
  to { transform:translateX(-50%); }
}


/* --------------------------------------------------------------------------
   6. SECTION BASE
   Shared layout/typography primitives reused by every content section below.
   -------------------------------------------------------------------------- */
section {
  position:relative;
  z-index:2;
  padding:110px 30px;
}

.wrap {
  max-width:1220px;
  margin:auto;
}

.kicker {
  font-family:Orbitron, sans-serif;
  color:var(--purple2);
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  margin-bottom:14px;
}

.section-title {
  font-family:Orbitron, sans-serif;
  font-size:clamp(2.1rem, 5vw, 4.3rem);
  line-height:1;
  text-transform:uppercase;
  margin-bottom:22px;
}

.copy {
  max-width:760px;
  color:#b8b3c0;
  line-height:1.86;
  font-size:1.05rem;
}


/* --------------------------------------------------------------------------
   7. CARDS
   Used for the Problem / Included / Reuse (Before-After) grids.
   .cards.four = 4-col grid (Problem, Included); .cards.two = 2-col (Reuse).
   -------------------------------------------------------------------------- */
.cards {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:46px;
}

.cards.four { grid-template-columns:repeat(4, 1fr); }
.cards.two { grid-template-columns:repeat(2, 1fr); }

.card, .package {
  background:
    linear-gradient(180deg, rgba(30,32,38,.78), rgba(7,7,10,.9));
  border:1px solid rgba(216,220,226,.13);
  box-shadow:0 0 38px rgba(0,0,0,.30);
  padding:30px;
  position:relative;
  overflow:hidden;
}

.card::before, .package::before {
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background:linear-gradient(90deg, #bfc3ca, #7f35d8, #eee);
}

.card img {
  width:76px;
  margin-bottom:22px;
  filter:drop-shadow(0 0 16px rgba(127,53,216,.28));
}

.card-num {
  font-family:Orbitron, sans-serif;
  color:var(--purple2);
  letter-spacing:.18em;
  font-size:.74rem;
  text-transform:uppercase;
  margin-bottom:18px;
}

.card h3, .package h3 {
  font-family:Orbitron, sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:14px;
}

.card p, .package p {
  color:#b8b3c0;
  line-height:1.76;
}


/* --------------------------------------------------------------------------
   8. TESTIMONIALS (currently unused)
   No .quotes/.quote-card/.closing-line markup exists in index.html right
   now — these rules are dead weight from a section that was removed (or
   not yet added) to the page. Kept here, clearly labeled, so a future
   testimonials section can reuse them intentionally instead of someone
   rewriting duplicate rules elsewhere. Safe to delete if not planned.
   -------------------------------------------------------------------------- */
.quotes {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:46px;
}

.quote-card {
  background:
    linear-gradient(180deg, rgba(30,32,38,.78), rgba(7,7,10,.9));
  border:1px solid rgba(216,220,226,.13);
  box-shadow:0 0 38px rgba(0,0,0,.30);
  padding:34px 30px 30px;
  position:relative;
  overflow:hidden;
}

.quote-card::before {
  content:"\201C";
  position:absolute;
  top:2px;
  left:18px;
  font-family:Orbitron, sans-serif;
  font-size:3.6rem;
  line-height:1;
  color:rgba(182,133,255,.32);
}

.quote-card p {
  position:relative;
  z-index:1;
  margin-top:18px;
  color:#d6d3dd;
  font-size:1.08rem;
  line-height:1.7;
  font-style:italic;
}

.closing-line {
  margin-top:42px;
  font-family:Orbitron, sans-serif;
  font-size:.95rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--purple2);
}


/* --------------------------------------------------------------------------
   9. PRICING PACKAGES
   -------------------------------------------------------------------------- */
.packages {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  margin-top:48px;
}

.package { display:flex; flex-direction:column; }

.package.featured {
  border-color:rgba(182,133,255,.45);
  transform:translateY(-10px);
  box-shadow:0 0 46px rgba(127,53,216,.16);
}

.pkg-tag {
  position:absolute;
  top:14px;
  right:14px;
  font-family:Orbitron, sans-serif;
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--silver2);
  border:1px solid rgba(182,133,255,.55);
  background:rgba(127,53,216,.20);
  padding:6px 10px;
}

.price {
  font-family:Orbitron, sans-serif;
  font-size:3rem;
  color:var(--silver2);
  margin:18px 0;
  text-shadow:0 0 22px rgba(127,53,216,.26);
}

.price-sub {
  display:block;
  font-family:Inter, system-ui, sans-serif;
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--purple2);
  margin-top:-10px;
  margin-bottom:4px;
}

.list {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:22px;
}

.list li {
  color:#d4d1da;
  line-height:1.55;
  padding-left:24px;
  position:relative;
}

.list li::before {
  content:"◆";
  position:absolute;
  left:0;
  color:var(--purple2);
  font-size:.72rem;
  top:.18em;
}

.list.lead li::before { content:"✦"; }

.promise {
  margin-top:22px;
  font-family:Orbitron, sans-serif;
  font-size:.74rem;
  line-height:1.5;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--purple2);
}

.package .btn {
  margin-top:24px;
  width:100%;
}


/* --------------------------------------------------------------------------
   9b. PRICING — FOUR-COLUMN VARIANT
   Used by the four project tiers (Essentials/Guided/Professional/Partnership).
   .packages (3-col) is unchanged and still used by Annual Support Plans.
   -------------------------------------------------------------------------- */
.packages.four { grid-template-columns:repeat(4, 1fr); }

.tier-note {
  max-width:760px;
  color:#b8b3c0;
  line-height:1.86;
  font-size:1rem;
  margin-top:18px;
}

.tier-note strong { color:var(--silver2); }


/* --------------------------------------------------------------------------
   9c. THE FACULTYGUARD METHOD
   Horizontal on desktop (flex row with arrow connectors), vertical on mobile.
   -------------------------------------------------------------------------- */
.method {
  display:flex;
  flex-wrap:wrap;
  gap:0;
  margin-top:48px;
  align-items:flex-start;
}

.method-step {
  flex:1 1 180px;
  position:relative;
  padding:0 20px;
  text-align:center;
}

.method-step:not(:last-child)::after {
  content:"\2192";
  position:absolute;
  top:18px;
  right:-6px;
  color:var(--purple2);
  font-family:Orbitron, sans-serif;
  font-size:1.3rem;
}

.method-badge {
  width:46px;
  height:46px;
  margin:0 auto 16px;
  border-radius:50%;
  border:1px solid rgba(182,133,255,.45);
  background:rgba(127,53,216,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Orbitron, sans-serif;
  font-size:.85rem;
  color:var(--purple2);
}

.method-step h3 {
  font-family:Orbitron, sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:1.02rem;
  margin-bottom:10px;
  color:var(--silver2);
}

.method-step p {
  color:#b8b3c0;
  line-height:1.7;
  font-size:.92rem;
}


/* --------------------------------------------------------------------------
   9d. FACULTY PARTNER JOURNEY
   Vertical stepped flow with arrow connectors, brief labels only.
   -------------------------------------------------------------------------- */
.journey {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  margin-top:48px;
  max-width:420px;
  margin-left:auto;
  margin-right:auto;
}

.journey-step {
  width:100%;
  text-align:center;
  padding:14px 22px;
  border:1px solid rgba(216,220,226,.16);
  background:linear-gradient(180deg, rgba(30,32,38,.6), rgba(7,7,10,.75));
  font-family:Orbitron, sans-serif;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--silver2);
}

.journey-arrow {
  color:var(--purple2);
  font-size:1.1rem;
  line-height:1;
  padding:8px 0;
}

/* --------------------------------------------------------------------------
   9e. NOTICE CALLOUT
   Used for the non-endorsement disclaimer and similar contextual notices.
   -------------------------------------------------------------------------- */
.notice {
  margin-top:26px;
  padding:18px 22px;
  border:1px solid rgba(182,133,255,.30);
  background:rgba(127,53,216,.08);
  color:#a19dad;
  font-size:.9rem;
  line-height:1.7;
  font-style:italic;
}


/* --------------------------------------------------------------------------
   10. FAQ
   -------------------------------------------------------------------------- */
.faq {
  border:1px solid rgba(216,220,226,.13);
  background:linear-gradient(180deg, rgba(30,32,38,.6), rgba(7,7,10,.75));
  margin-top:16px;
}

.faq summary {
  cursor:pointer;
  list-style:none;
  padding:22px 26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-family:Orbitron, sans-serif;
  font-size:.86rem;
  letter-spacing:.03em;
  text-transform:none;
  color:var(--silver2);
}

.faq summary::-webkit-details-marker { display:none; }

.faq summary::after {
  content:"+";
  font-family:Inter, system-ui, sans-serif;
  font-size:1.4rem;
  color:var(--purple2);
  flex-shrink:0;
  transition:.2s ease;
}

.faq[open] summary::after { content:"–"; }

.faq-a {
  padding:0 26px 24px;
  color:#b8b3c0;
  line-height:1.8;
  font-size:.98rem;
}


/* --------------------------------------------------------------------------
   11. FOUNDER / CREDENTIALS STRIP
   -------------------------------------------------------------------------- */
.cred-strip {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:42px;
}

.cred-strip span {
  border:1px solid rgba(182,133,255,.34);
  background:rgba(127,53,216,.10);
  color:var(--silver2);
  font-family:Orbitron, sans-serif;
  font-size:.66rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:12px 17px;
}


/* --------------------------------------------------------------------------
   12. FINAL CTA
   Overrides .section-title / .copy to a lighter, non-uppercase treatment
   for this section only.
   -------------------------------------------------------------------------- */
.final {
  text-align:center;
  background:radial-gradient(circle at center, rgba(127,53,216,.17), transparent 62%);
}

.final .section-title,
.final .copy {
  font-family: Inter, system-ui, sans-serif;
  font-size: 1.8rem;
  color: var(--silver2);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
}

.final .section-title {
  line-height: 1.4;
  margin-bottom: 12px;
}

.final .copy {
  margin: 0 auto 34px;
  line-height: 1.4;
}

.final img {
  width:150px;
  margin-bottom:26px;
  filter:drop-shadow(0 0 24px rgba(127,53,216,.28));
}


/* --------------------------------------------------------------------------
   13. FOOTER
   -------------------------------------------------------------------------- */
footer {
  position:relative;
  z-index:2;
  padding:40px 30px;
  border-top:1px solid var(--line);
  text-align:center;
  color:#a6a4ad;
  font-family:Orbitron, sans-serif;
  font-size:.75rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.footer-sub {
  display:block;
  margin-top:12px;
  text-transform:none;
  letter-spacing:.03em;
  font-family:Inter, system-ui, sans-serif;
  font-size:.74rem;
  color:#7e7c85;
}

.footer-sub a { color:var(--purple2); text-decoration:none; }
.footer-sub a:hover { text-decoration:underline; }


/* --------------------------------------------------------------------------
   13b. RESPONSIVE CONTENT UTILITIES
   -------------------------------------------------------------------------- */
.audience-list {
  max-width:640px;
  columns:2;
  column-gap:32px;
}

.audience-list li {
  break-inside:avoid;
  margin-bottom:10px;
}

/* --------------------------------------------------------------------------
   14. RESPONSIVE BREAKPOINTS
   Ordered widest to narrowest. The 600px tier is new — the previous file
   jumped straight from a 980px tablet layout to nothing, so phone widths
   (375–480px) were inheriting tablet spacing/sizing with no adjustment.
   -------------------------------------------------------------------------- */
@media (max-width:1180px) {
  .cards.four { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .packages.four { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width:1120px) {
  .nav-toggle { display:flex; flex:0 0 auto; }

  .navlinks {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    max-height:calc(100vh - 70px);
    overflow-y:auto;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:rgba(3,3,5,.98);
    backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line);
    padding:8px 20px 20px;
  }

  .navlinks.open { display:flex; }

  .navlinks a {
    margin-left:0;
    padding:15px 4px 15px 18px;
    border-bottom:1px solid rgba(216,220,226,.10);
    white-space:normal;
    overflow-wrap:anywhere;
    line-height:1.45;
  }

  .navlinks a:first-child { margin-left:0; }

  .navlinks a:first-child::before,
  .navlinks a:not(:first-child):not(.nav-cta)::before {
    left:4px;
    top:50%;
    width:5px;
    height:5px;
    transform:translateY(-50%);
  }

  .navlinks a:first-child::before {
    width:7px;
    height:7px;
  }

  .navlinks a.nav-cta {
    margin:12px 0 0;
    padding-left:16px;
    text-align:center;
    border:1px solid rgba(182,133,255,.55);
  }

  .navlinks a.nav-cta::before { content:none; }

  .hero-copy { margin:auto; width:100%; max-width:690px; }
  .cards, .packages, .quotes { grid-template-columns:1fr; }
  .packages.four { grid-template-columns:1fr; }
  .package.featured { transform:none; }

  .method { flex-direction:column; gap:28px; }
  .method-step { width:100%; padding:0 10px; }
  .method-step:not(:last-child)::after {
    content:"\2193";
    position:static;
    display:block;
    margin-top:18px;
  }

  .hero::before {
    background:url("faculty-guard-icon-purple.png") center 62% / 78vw auto no-repeat;
    opacity:.06;
  }
}

@media (max-width:760px) {
  .cards.four, .cards.two { grid-template-columns:1fr; }
  .audience-list { columns:1 !important; }
  .section-title { font-size:clamp(1.75rem, 8vw, 2.6rem); line-height:1.08; }
  .copy { font-size:1rem; line-height:1.75; }
}

@media (max-width:600px) {
  body::before { background-size:34px 34px; }

  .topbar { backdrop-filter:blur(12px); }
  .nav { padding:10px 16px; gap:10px; }
  .brand { gap:9px; min-width:0; }
  .brand img { width:42px; flex:0 0 auto; }
  .brand-text { min-width:0; }
  .brand-main { font-size:.76rem; letter-spacing:.12em; white-space:nowrap; }
  .brand-sub { font-size:.50rem; letter-spacing:.12em; white-space:nowrap; }

  .hero {
    min-height:auto;
    padding:104px 18px 58px;
    align-items:flex-start;
  }
  .hero-wrap { display:block; }
  .hero-copy { max-width:100%; }
  .hero-art { display:none; }
  .hero::after {
    right:-46vw;
    top:16vh;
    width:110vw;
    opacity:.45;
  }
  .hero::before {
    background-position:center 54%;
    background-size:94vw auto;
    opacity:.055;
  }
  .badge {
    font-size:.58rem;
    letter-spacing:.14em;
    padding:8px 10px;
    margin-bottom:18px;
  }
  h1 {
    font-size:clamp(2.15rem, 11.5vw, 3.2rem);
    line-height:.98;
    letter-spacing:-.035em;
    margin-bottom:22px;
  }
  h1 span { -webkit-text-stroke:1px var(--purple2); }
  .hero-lede { font-size:1rem; line-height:1.68; margin-bottom:18px; }
  .hero-sub { font-size:.86rem; line-height:1.55; }
  .hero-seo { font-size:.78rem; line-height:1.55; margin-bottom:24px; }

  section { padding:66px 18px; }
  .wrap { width:100%; padding:0; }
  .kicker { font-size:.64rem; letter-spacing:.17em; }

  .actions { flex-direction:column; align-items:stretch; gap:12px; }
  .btn {
    width:100%;
    min-height:48px;
    padding:13px 14px;
    font-size:.64rem;
    letter-spacing:.10em;
    line-height:1.35;
    text-align:center;
  }

  .signal { flex-direction:column; align-items:center; gap:7px; font-size:.58rem; letter-spacing:.12em; }
  .signal span, .signal span:not(:first-child) { padding-left:0; border-left:none; }

  .ticker { padding:10px 0; }
  .ticker span { font-size:.56rem; letter-spacing:.12em; }

  .card, .package { padding:23px 20px; }
  .card img { width:62px; }
  .card h3, .package h3 { font-size:.98rem; line-height:1.3; }
  .card p, .package p { font-size:.95rem; line-height:1.68; }
  .price { font-size:2.45rem; }
  .pkg-tag { position:static; display:inline-block; align-self:flex-start; margin-bottom:16px; }

  .method-step { padding:0; }
  .journey { max-width:100%; }
  .journey-step { padding:13px 14px; font-size:.69rem; letter-spacing:.07em; }

  .faq summary { padding:19px 18px; font-size:.78rem; line-height:1.45; }
  .faq-a { padding:0 18px 20px; font-size:.94rem; }

  .notice { padding:16px 17px; font-size:.86rem; }
  .cred-strip { justify-content:center; }
  .cred-strip span { font-size:.58rem; letter-spacing:.1em; padding:10px 12px; }

  .final .section-title, .final .copy { font-size:1.32rem; line-height:1.45; }
  .final img { width:118px; }

  footer { padding:34px 18px; font-size:.65rem; letter-spacing:.12em; line-height:1.6; }
  .footer-sub { font-size:.72rem; line-height:1.6; }

  .legal-wrap { padding:112px 18px 70px !important; }
}

@media (max-width:390px) {
  .brand-sub { display:none; }
  .brand-main { font-size:.72rem; letter-spacing:.09em; }
  h1 { font-size:2.05rem; }
  .section-title { font-size:1.62rem; }
  .btn { font-size:.60rem; letter-spacing:.075em; }
  .card, .package { padding:21px 17px; }
}

/* --------------------------------------------------------------------------
   15. ACCESSIBILITY — REDUCED MOTION
   The page has three infinite CSS animations (hero ring, orbit ring,
   scrolling ticker). Users who've asked the OS to reduce motion get them
   stopped rather than ignored.
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .hero::after,
  .orbit,
  .ticker-track,
  .status-track {
    animation:none;
  }
}

@media (max-width:600px) {
  :root { --status-height:38px; }
  .status-track { gap:34px; animation-duration:48s; }
  .status-track span { font-size:.54rem; letter-spacing:.09em; }
  .status-close { right:4px; width:30px; height:30px; }
}


/* 16. FACULTY PROFILE — NATIVE HTML INTAKE */
.profile-page{padding-top:calc(var(--nav-height) + var(--status-height));background:radial-gradient(circle at 85% 8%,rgba(122,75,255,.13),transparent 32%),var(--bg)}
.banner-dismissed .profile-page{padding-top:var(--nav-height)}
.profile-hero{padding:86px 24px 52px;border-bottom:1px solid var(--border)}
.profile-hero-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:42px;max-width:1050px}
.profile-hero h1{font-size:clamp(2.5rem,6vw,4.7rem);margin:8px 0 18px}
.profile-lead{max-width:760px;font-size:1.12rem;line-height:1.75;color:var(--muted)}
.profile-hero img{width:150px;filter:drop-shadow(0 0 28px rgba(122,75,255,.35))}
.profile-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.profile-meta span{border:1px solid var(--border);border-radius:999px;padding:8px 12px;font:600 .64rem/1 Orbitron,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--silver)}
.profile-section{padding:58px 24px 90px}
.profile-shell{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:280px minmax(0,1fr);gap:34px;align-items:start}
.profile-aside{position:sticky;top:calc(var(--nav-height) + var(--status-height) + 24px);padding:25px;border:1px solid var(--border);border-radius:18px;background:rgba(15,13,22,.85)}
.profile-aside h2{font:700 .82rem/1.4 Orbitron,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--purple-light);margin-bottom:16px}
.profile-aside ol{padding-left:20px;color:var(--muted);font-size:.92rem;line-height:1.65}
.profile-aside li+li{margin-top:9px}
.profile-note{margin-top:20px;padding:15px;border-left:3px solid var(--purple);background:rgba(122,75,255,.08);font-size:.84rem;line-height:1.55;color:var(--muted)}
.faculty-profile-form{display:grid;gap:22px}
.faculty-profile-form fieldset{border:1px solid var(--border);border-radius:20px;padding:28px;background:linear-gradient(145deg,rgba(18,16,25,.95),rgba(9,8,13,.95));box-shadow:0 18px 45px rgba(0,0,0,.18)}
.faculty-profile-form legend{padding:0 12px 0 0;font:700 .84rem/1.4 Orbitron,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--white)}
.faculty-profile-form legend span{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:8px;border-radius:50%;background:var(--purple);color:white}
.form-grid{display:grid;gap:18px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.faculty-profile-form label,.field-prompt{display:block;margin:15px 0 0;color:var(--silver);font-size:.9rem;font-weight:600;line-height:1.45}
.faculty-profile-form small{font-weight:400;color:var(--muted)}
.faculty-profile-form input[type="text"],.faculty-profile-form input[type="email"],.faculty-profile-form input[type="tel"],.faculty-profile-form input[type="number"],.faculty-profile-form input[type="file"],.faculty-profile-form select,.faculty-profile-form textarea{display:block;width:100%;margin-top:7px;border:1px solid #373340;border-radius:10px;background:#09080d;color:var(--white);padding:12px 13px;font:400 .95rem/1.45 Inter,sans-serif;transition:border-color .2s,box-shadow .2s}
.faculty-profile-form textarea{resize:vertical;min-height:96px}
.faculty-profile-form input:focus,.faculty-profile-form select:focus,.faculty-profile-form textarea:focus{outline:none;border-color:var(--purple-light);box-shadow:0 0 0 3px rgba(122,75,255,.18)}
.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;margin-top:10px}
.checkbox-grid label,.check-line{margin:0;padding:11px 12px;border:1px solid #2d2934;border-radius:10px;background:rgba(255,255,255,.02);font-weight:500;color:var(--muted)}
.checkbox-grid input,.check-line input{accent-color:var(--purple);margin-right:7px}
.range-labels{display:flex;justify-content:space-between;margin-top:10px;color:var(--muted);font-size:.72rem;font-weight:400}.faculty-profile-form input[type="range"]{width:100%;accent-color:var(--purple)}
.consent-box{margin-top:15px;padding:4px}.form-privacy,.submit-note{color:var(--muted);font-size:.82rem;line-height:1.6}.form-privacy a{color:var(--purple-light)}
.form-submit{margin-top:20px;min-width:240px}.hidden-field{position:absolute;left:-9999px}
.thank-you-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at center,rgba(122,75,255,.15),transparent 42%),var(--bg)}
.thank-you-card{width:min(700px,100%);padding:48px;text-align:center;border:1px solid var(--border);border-radius:24px;background:rgba(14,12,20,.94)}
.thank-you-card img{width:120px;margin-bottom:18px}.thank-you-card h1{font-size:clamp(2.4rem,7vw,4.2rem);margin:10px 0 18px}.thank-you-card p{color:var(--muted);line-height:1.75}.thank-you-card .actions{justify-content:center;margin-top:28px}
@media(max-width:900px){.profile-shell{grid-template-columns:1fr}.profile-aside{position:static}.profile-hero img{width:112px}}
@media(max-width:650px){.profile-hero{padding:62px 18px 38px}.profile-hero-inner{grid-template-columns:1fr}.profile-hero img{display:none}.profile-section{padding:36px 14px 65px}.faculty-profile-form fieldset{padding:21px 16px}.form-grid.two,.checkbox-grid{grid-template-columns:1fr}.profile-meta span{font-size:.56rem}.form-submit{width:100%}.thank-you-card{padding:34px 20px}}
