/* ============================================================
   CAPACITY · waitlist — SigIQ-inspired
   Unbounded (display) + DM Sans (body). Electric blue + playful cards.
   ============================================================ */
:root {
  --bg: #06070B;
  --bg-2: #0B0D14;
  --surface: #11131C;
  --surface-2: #181B26;
  --line: rgba(255,255,255,0.08);
  --line-2: rgba(255,255,255,0.15);
  --text: #F4F6FB;
  --dim: rgba(244,246,251,0.62);
  --faint: rgba(244,246,251,0.40);

  /* playful card palette (cohesive, no clashing) */
  --blue: #4C7DFF;
  --violet: #9B6CFF;
  --cyan: #22CBE0;
  --green: #3FCF8E;

  --accent: #4C7DFF;              /* students — electric blue */
  --accent-2: #7AA0FF;
  --accent-rgb: 76,125,255;
  --on-accent: #FFFFFF;

  --display: "Unbounded", "DM Sans", sans-serif;
  --sans: "DM Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --maxw: 1180px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --spring: cubic-bezier(.34,1.3,.4,1);
}
html[data-audience="professors"] {
  --accent: #9B6CFF;              /* professors — violet */
  --accent-2: #BD9BFF;
  --accent-rgb: 155,108,255;
  --on-accent: #FFFFFF;
}
/* ---------- light theme (default) ---------- */
html[data-theme="light"] {
  --bg: #FFFFFF;
  --bg-2: #F4F6FB;
  --surface: #F6F7FB;
  --surface-2: #ECEFF6;
  --line: rgba(12,16,34,0.10);
  --line-2: rgba(12,16,34,0.17);
  --text: #0C0E16;
  --dim: rgba(14,17,28,0.66);
  --faint: rgba(14,17,28,0.44);
}
html[data-theme="light"] body::after { opacity:.018; }
html[data-theme="light"] .nav::before { background:rgba(255,255,255,0.80); }
html[data-theme="light"] .hero-3d { mix-blend-mode:normal; }
/* prism on the apply card: screen-blend vanishes on white — show it on its own dark vignette */
html[data-theme="light"] .apply-3d { mix-blend-mode:normal; opacity:.92; }
/* dark imagery (atom, scenes) is designed for a dark backdrop — give it one in light mode */
html[data-theme="light"] .hero-visual::before {
  content:""; position:absolute; width:78%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle, #0B0D14 38%, transparent 72%);
}
html[data-theme="light"] .uni-chip { box-shadow:0 6px 18px -10px rgba(12,16,34,.4); border:1px solid var(--line); }
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-font-smoothing: antialiased; }
/* Lenis smooth scroll */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body { background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 16px; line-height: 1.6; overflow-x: hidden; letter-spacing: -0.01em; }
body::after { content:""; position:fixed; inset:0; z-index:9999; pointer-events:none; opacity:.04; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

h1, h2, h3 { font-family: var(--display); font-weight: 600; letter-spacing: -0.02em; line-height: 1.08; }
.kicker { display:inline-block; font-family:var(--sans); font-size:0.76rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
h1 em, h2 em, h3 em { font-style:normal; color:var(--accent); }
section { padding: 0 28px; position: relative; }

/* ---------- buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; font-family:var(--sans); font-weight:700; font-size:0.98rem; border:0; border-radius:12px; cursor:pointer; text-decoration:none; transition:transform .14s var(--ease), box-shadow .3s, filter .2s; }
.btn-primary { background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:var(--on-accent); padding:14px 26px; box-shadow:0 10px 40px -12px rgba(var(--accent-rgb),.8); }
.btn-primary:hover { filter:brightness(1.06); transform:translateY(-1px); box-shadow:0 16px 50px -10px rgba(var(--accent-rgb),.95); }
.btn-primary:active { transform:translateY(0) scale(.98); }
.btn-sm { padding:9px 17px; font-size:0.9rem; border-radius:10px; }
.btn-lg { padding:16px 32px; font-size:1.05rem; }

/* ---------- nav ---------- */
.nav { position:sticky; top:0; z-index:100; display:flex; align-items:center; justify-content:space-between; max-width:var(--maxw); margin:0 auto; padding:17px 28px; }
.nav::before { content:""; position:absolute; top:0; bottom:0; left:50%; transform:translateX(-50%); width:100vw; z-index:-1; background:rgba(6,7,11,.72); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:10px; font-family:var(--display); font-size:1.24rem; font-weight:700; letter-spacing:-0.02em; color:var(--text); text-decoration:none; }
.brand-mark { width:15px; height:15px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 0 18px rgba(var(--accent-rgb),.7); transition:background .4s, box-shadow .4s; }
.nav-right { display:flex; align-items:center; gap:14px; }
.toggle { position:relative; display:inline-flex; background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:4px; }
.toggle-thumb { position:absolute; top:4px; left:4px; width:calc(50% - 4px); height:calc(100% - 8px); background:rgba(var(--accent-rgb),.18); border:1px solid var(--accent); border-radius:999px; transition:transform .4s var(--spring), background .4s, border-color .4s; }
html[data-audience="professors"] .toggle-thumb { transform:translateX(100%); }
.toggle-opt { position:relative; z-index:1; border:0; background:transparent; font-family:var(--sans); font-weight:600; font-size:0.86rem; color:var(--dim); padding:7px 18px; border-radius:999px; cursor:pointer; transition:color .35s; }
.toggle-opt.is-active { color:var(--accent); }
.theme-btn { display:inline-grid; place-items:center; width:36px; height:36px; flex-shrink:0; border-radius:50%; border:1px solid var(--line); background:var(--surface); color:var(--text); cursor:pointer; font-size:0.98rem; line-height:1; transition:background .25s, border-color .25s, transform .15s; }
.theme-btn:hover { border-color:var(--line-2); transform:translateY(-1px); }

/* ---------- hero (one viewport, logos pinned to fold bottom) ---------- */
.hero { max-width:var(--maxw); margin:0 auto; min-height:calc(100svh - 72px); display:flex; flex-direction:column; padding-bottom:30px; }
.hero-main { flex:1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:40px; align-items:center; }
.hero-copy { max-width:600px; min-width:0; }
.hero-copy, .row-text, .row-visual, .proof-text, .hero-visual { min-width:0; }
.hero h1 { overflow-wrap:break-word; }
.pill { display:inline-flex; align-items:center; gap:9px; font-size:0.84rem; color:var(--dim); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:7px 16px; margin-bottom:26px; }
.pill-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 10px rgba(var(--accent-rgb),.9); animation:pulse 2.4s var(--ease) infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.hero h1 { font-size:clamp(2.3rem,4.4vw,3.6rem); font-weight:700; margin-bottom:20px; }
.hero h1 .hl { color:var(--accent); }
.lede { font-size:clamp(1.05rem,1.4vw,1.28rem); line-height:1.55; color:var(--dim); max-width:50ch; margin-bottom:34px; }
.lede strong { color:var(--text); font-weight:600; }
.hero-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.seats { display:inline-flex; align-items:center; gap:11px; font-size:0.85rem; color:var(--dim); }
.seats-bar { width:92px; height:5px; border-radius:3px; background:var(--surface-2); overflow:hidden; }
.seats-bar i { display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent-2)); }
/* professors apply by invitation — the seat-fill bar is meaningless, hide it so the text aligns */
html[data-audience="professors"] .seats-bar { display:none; }
.hero-visual { position:relative; display:grid; place-items:center; min-height:380px; }
.hero-glow { position:absolute; width:70%; height:70%; border-radius:50%; background:radial-gradient(circle,rgba(var(--accent-rgb),.4),transparent 65%); filter:blur(30px); transition:background .6s; }
.hero-3d { position:relative; width:100%; max-width:460px; aspect-ratio:1; object-fit:contain; mix-blend-mode:screen; }
.hero-3d, .proof-3d, .apply-3d { -webkit-mask-image:radial-gradient(closest-side, #000 66%, transparent 100%); mask-image:radial-gradient(closest-side, #000 66%, transparent 100%); }

/* logos */
.logos { margin-top:auto; padding-top:34px; }
.logos-label { font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--faint); margin-bottom:22px; text-align:center; }
.marquee { position:relative; display:flex; overflow:hidden; width:100vw; margin-left:50%; transform:translateX(-50%);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.marquee-track { display:flex; align-items:center; gap:50px; padding-right:50px; flex-shrink:0; animation:scroll 52s linear infinite; }
.marquee:hover .marquee-track { animation-play-state:paused; }
@keyframes scroll { to { transform:translateX(-100%); } }
.uni { display:inline-flex; align-items:center; gap:13px; transition:transform .3s var(--ease); }
.uni:hover { transform:translateY(-2px); }
.uni-chip { width:50px; height:50px; flex-shrink:0; background:#fff; border-radius:13px; display:grid; place-items:center; padding:8px; box-shadow:0 6px 22px -10px rgba(0,0,0,.8); }
.uni-chip img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.uni-chip.noimg { display:none; }
.uni-name { font-size:1.04rem; font-weight:600; color:var(--text); white-space:nowrap; letter-spacing:-0.02em; }

/* ---------- story (stacked, reveal-on-scroll beats; alternating sides) ---------- */
.story { position:relative; padding-top:40px; }
.story-pin { }
.beats { position:relative; max-width:var(--maxw); margin:0 auto; }
.beat { display:grid; grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr); align-items:center; gap:clamp(2rem,5vw,4.5rem); padding:clamp(50px,7vh,96px) 32px; }
.beat:nth-child(even) .beat-text { order:2; }
.beat:nth-child(even) .beat-viz { order:1; }
.beat-text { max-width:560px; }
.beat-text .eyebrow-n { display:inline-block; font-family:var(--display); font-weight:700; font-size:.8rem; letter-spacing:.08em; color:var(--accent); margin-bottom:18px; }
.beat-text h2 { font-family:var(--display); font-weight:700; font-size:clamp(2rem,3.8vw,3.3rem); line-height:1.08; letter-spacing:-.025em; margin-bottom:20px; }
.beat-text h2 em { font-style:normal; color:var(--accent); }
.beat-text p { font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.6; color:var(--dim); max-width:42ch; }
.beat-viz { position:relative; height:min(52vh,420px); }
.viz-img { position:absolute; inset:0; margin:0; border-radius:22px; overflow:hidden; border:1px solid var(--line); box-shadow:0 40px 90px -50px #000; }
.viz-img img { width:100%; height:100%; object-fit:cover; transform:scale(1.06); }
.viz-img::after { content:""; position:absolute; inset:0; box-shadow:inset 0 0 120px -30px rgba(var(--accent-rgb),.4); pointer-events:none; }
/* 2-sigma chart */
.sigma-card { position:absolute; inset:0; display:grid; place-items:center; border-radius:22px; border:1px solid var(--line); background:radial-gradient(80% 80% at 50% 30%, rgba(var(--accent-rgb),.08), var(--surface)); overflow:hidden; }
.sigma-watermark { position:absolute; font-family:var(--display); font-weight:800; font-size:clamp(8rem,18vw,15rem); color:rgba(var(--accent-rgb),.08); letter-spacing:-.05em; user-select:none; }
.sigma-chart { position:relative; width:86%; max-width:460px; }
.sg-axis { stroke:var(--line-2); stroke-width:1.5; }
.sg-curve { fill:none; stroke-width:3; }
.sg-base { stroke:rgba(255,255,255,.28); fill:rgba(255,255,255,.04); }
.sg-hi { stroke:var(--accent); fill:rgba(var(--accent-rgb),.14); filter:drop-shadow(0 0 14px rgba(var(--accent-rgb),.5)); }
.sg-label { font-family:var(--sans); font-size:13px; text-anchor:middle; }
.sg-label-b { fill:var(--accent); font-weight:600; }
.sg-label-base { fill:var(--dim); font-weight:500; }
.story-progress { display:none; }
/* mobile: single column, text above visual */
@media (max-width:860px) {
  .beat { grid-template-columns:1fr; gap:22px; padding:46px 22px; }
  .beat:nth-child(even) .beat-text, .beat:nth-child(even) .beat-viz { order:initial; }
  .beat-viz { height:280px; }
  .beat-text { max-width:none; } .beat-text p { max-width:none; }
}

/* ---------- stats band ---------- */
.stats { max-width:var(--maxw); margin:0 auto; padding-top:150px; }
.stats-row { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:48px 8px; }
.stats-row li { text-align:center; }
.stats-row b { display:block; font-family:var(--display); font-weight:800; font-size:clamp(2.3rem,4vw,3.4rem); letter-spacing:-.03em; background:linear-gradient(135deg,var(--accent),var(--accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stats-row span { font-size:.9rem; color:var(--dim); }

/* ---------- section heads ---------- */
.sec-head { max-width:720px; margin:0 auto; text-align:center; }
.sec-head h2 { font-size:clamp(1.9rem,3.8vw,3rem); margin-bottom:18px; }
.sec-sub { color:var(--dim); font-size:1.08rem; max-width:52ch; margin:0 auto; }
.faculty, .show, .how, .faq { max-width:var(--maxw); margin:0 auto; }
.faculty, .show, .how { padding-top:150px; }

/* ---------- faculty: vertical card-by-card stack ---------- */
.fac-list { max-width:840px; margin:52px auto 0; display:flex; flex-direction:column; gap:18px; }
.pcard { display:grid; grid-template-columns:160px 1fr; gap:26px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:22px; text-decoration:none; color:var(--text); transition:transform .35s var(--ease), border-color .3s, box-shadow .35s; }
.pcard:hover { transform:translateY(-4px); border-color:var(--line-2); box-shadow:0 34px 64px -40px #000; }
.pcard-photo { position:relative; width:160px; height:160px; border-radius:16px; overflow:hidden; background:var(--surface-2); }
.pcard-photo img { width:100%; height:100%; object-fit:cover; filter:grayscale(.18) contrast(1.02); transition:filter .4s, transform .5s var(--ease); }
.pcard:hover .pcard-photo img { filter:grayscale(0); transform:scale(1.05); }
.pcard-no { position:absolute; top:10px; left:12px; font-family:var(--display); font-weight:700; font-size:.8rem; color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.8); opacity:.85; }
.pcard-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pcard-head h3 { font-family:var(--display); font-weight:600; font-size:clamp(1.3rem,2.1vw,1.7rem); letter-spacing:-.02em; }
.pcard-inst { display:inline-flex; align-items:center; gap:7px; font-size:.84rem; color:var(--faint); }
.inst-logo { display:inline-grid; place-items:center; width:22px; height:22px; flex-shrink:0; background:#fff; border-radius:6px; padding:2px; box-shadow:0 1px 5px rgba(0,0,0,.18); }
.inst-logo img { max-width:100%; max-height:100%; object-fit:contain; display:block; }
.fac-course { display:inline-block; margin-top:11px; font-size:.78rem; font-weight:600; color:var(--accent); background:rgba(var(--accent-rgb),.12); border:1px solid rgba(var(--accent-rgb),.3); border-radius:999px; padding:4px 13px; }
.pcard-intro { margin-top:12px; font-size:.98rem; line-height:1.55; color:var(--dim); }
.pcard-intro strong { color:var(--text); font-weight:600; }
.fac-note { text-align:center; color:var(--faint); font-size:0.8rem; margin-top:24px; }
/* AI tutor card — the other half of the solution */
.pcard-ai { background:linear-gradient(120deg, rgba(var(--accent-rgb),.14), var(--surface) 60%); border-color:rgba(var(--accent-rgb),.35); }
.pcard-photo-ai { background:#04050a; display:grid; place-items:center; }
.pcard-photo-ai img { object-fit:contain; mix-blend-mode:screen; filter:none; }
/* recruit card (professors) */
.pcard-cta { border-style:dashed; border-color:rgba(var(--accent-rgb),.45); background:rgba(var(--accent-rgb),.05); }
.pcard-cta:hover { border-color:var(--accent); background:rgba(var(--accent-rgb),.1); }
.pcard-photo-cta { display:grid; place-items:center; background:rgba(var(--accent-rgb),.08); border:1px dashed rgba(var(--accent-rgb),.35); }
.cta-plus { font-size:3.4rem; font-weight:300; line-height:1; color:var(--accent); transition:transform .35s var(--ease); }
.pcard-cta:hover .cta-plus { transform:scale(1.1) rotate(90deg); }
.pcard-cta .fac-course { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }

/* ---------- product showcase rows ---------- */
.row { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; padding:54px 0; }
.row + .row { border-top:1px solid var(--line); }
.row:first-of-type { margin-top:34px; }
.row.flip .row-visual { order:-1; }
.row-eyebrow { font-size:0.78rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--c,var(--accent)); margin-bottom:14px; }
.row-text h3 { font-family:var(--display); font-size:clamp(1.5rem,2.6vw,2.2rem); font-weight:600; margin-bottom:15px; max-width:16ch; }
.row-text p { color:var(--dim); font-size:1.08rem; line-height:1.65; max-width:42ch; }
.row-visual { aspect-ratio:4/3; border-radius:22px; background:radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--c,var(--accent)) 14%, var(--surface)), var(--bg-2)); border:1px solid var(--line); padding:26px; overflow:hidden; position:relative; }

/* mockups */
.mk-chat { display:flex; flex-direction:column; gap:12px; height:100%; justify-content:center; }
.bubble { max-width:80%; padding:13px 16px; border-radius:16px; line-height:1.45; font-size:0.92rem; }
.bubble.you { align-self:flex-end; background:var(--surface-2); border:1px solid var(--line); color:var(--text); border-bottom-right-radius:5px; }
.bubble.ai { align-self:flex-start; background:color-mix(in srgb,var(--c,var(--accent)) 18%, transparent); border:1px solid color-mix(in srgb,var(--c,var(--accent)) 40%, transparent); color:var(--text); border-bottom-left-radius:5px; }
.bubble .eq { color:var(--c,var(--accent)); font-weight:600; }
.mk-steps { display:flex; flex-direction:column; gap:13px; height:100%; justify-content:center; }
.step-line { display:flex; align-items:center; gap:13px; }
.step-badge { width:26px; height:26px; flex-shrink:0; border-radius:8px; display:grid; place-items:center; font-size:0.78rem; font-weight:700; background:color-mix(in srgb,var(--c,var(--accent)) 20%, transparent); border:1px solid color-mix(in srgb,var(--c,var(--accent)) 42%, transparent); color:var(--c,var(--accent)); }
.step-bar { height:11px; border-radius:6px; background:var(--surface-2); flex:0 0 auto; }
.step-bar.lit { background:linear-gradient(90deg,color-mix(in srgb,var(--c,var(--accent)) 70%, transparent),color-mix(in srgb,var(--c,var(--accent)) 18%, transparent)); }
.mk-courses { display:flex; flex-direction:column; gap:11px; height:100%; justify-content:center; }
.course-row { display:flex; align-items:center; gap:13px; background:var(--surface-2); border:1px solid var(--line); border-radius:13px; padding:10px 13px; }
.course-av { width:34px; height:34px; border-radius:50%; flex-shrink:0; object-fit:cover; border:1px solid var(--line-2); }
.course-meta b { display:block; font-size:0.9rem; font-weight:600; } .course-meta span { font-size:0.75rem; color:var(--faint); }
.mk-exam { display:flex; flex-direction:column; gap:16px; height:100%; justify-content:center; align-items:center; }
.ring { position:relative; width:118px; height:118px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--c,var(--accent)) calc(var(--p,86)*1%), var(--surface-2) 0); }
.ring::before { content:""; position:absolute; width:88px; height:88px; border-radius:50%; background:var(--bg-2); }
.ring b { position:relative; font-family:var(--display); font-size:1.7rem; font-weight:700; }
.exam-tags { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.exam-tags span { font-size:0.76rem; color:var(--dim); border:1px solid var(--line); border-radius:999px; padding:5px 12px; }

/* ---------- how ---------- */
.how-row { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:56px; }
.how-step { border-top:2px solid var(--line); padding-top:22px; }
.how-n { font-family:var(--display); font-size:0.85rem; font-weight:700; letter-spacing:0.06em; color:var(--accent); }
.how-step h3 { font-family:var(--display); font-size:1.3rem; font-weight:600; margin:12px 0 8px; }
.how-step p { color:var(--dim); font-size:0.98rem; }

/* ---------- apply ---------- */
.apply-sec { max-width:780px; margin:0 auto; padding-top:160px; }
.apply-card { background:linear-gradient(180deg,var(--surface),var(--bg-2)); border:1px solid var(--line); border-radius:26px; padding:56px 50px; text-align:center; position:relative; overflow:hidden; }
.apply-3d { position:absolute; top:-60px; right:-40px; width:240px; opacity:.6; mix-blend-mode:screen; pointer-events:none; }
.apply-card > * { position:relative; }
.apply-card h2 { font-size:clamp(1.9rem,4vw,2.8rem); }
.apply-sub { color:var(--dim); font-size:1.04rem; margin:15px auto 32px; max-width:46ch; }
.apply { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.apply .btn { grid-column:1 / -1; }
.field { position:relative; text-align:left; }
.field input, .field select { width:100%; height:56px; background:var(--bg); border:1px solid var(--line); border-radius:12px; color:var(--text); font-family:var(--sans); font-size:0.98rem; padding:22px 15px 7px; outline:none; transition:border-color .2s, box-shadow .2s; appearance:none; }
.field select { cursor:pointer; }
.field input:focus, .field select:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.2); }
.field label { position:absolute; left:15px; top:18px; pointer-events:none; color:var(--faint); font-size:0.95rem; transition:all .18s var(--ease); }
.field input:focus + label, .field input:not(:placeholder-shown) + label, .field select:focus + label, .field select:valid + label { top:9px; font-size:0.68rem; color:var(--accent); }
.field select:not(:focus):invalid + label { top:18px; font-size:0.95rem; color:var(--faint); }
.field:has(select)::after { content:""; position:absolute; right:17px; top:50%; width:8px; height:8px; border-right:1.5px solid var(--dim); border-bottom:1.5px solid var(--dim); transform:translateY(-65%) rotate(45deg); pointer-events:none; }
.apply-fine { color:var(--faint); font-size:0.8rem; margin-top:18px; }
.apply-success { font-family:var(--display); font-weight:600; font-size:1.2rem; color:var(--accent); margin-top:10px; }

/* honeypot — off-screen, never shown to humans */
.hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; pointer-events:none; }

/* form errors + loading */
.field.has-error input, .field.has-error select { border-color:#FF6B6B; box-shadow:0 0 0 3px rgba(255,107,107,.18); }
.field-err { display:block; margin-top:6px; font-size:0.74rem; color:#FF8585; text-align:left; }
.apply-error { color:#FF8585; font-size:0.86rem; margin-top:14px; text-align:left; }
.apply button[disabled] { opacity:.65; cursor:progress; }

/* ---------- faq ---------- */
.faq { padding-top:160px; padding-bottom:140px; }
.faq-list { max-width:820px; margin:50px auto 0; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-q { width:100%; background:none; border:0; cursor:pointer; color:var(--text); font-family:var(--display); font-weight:500; font-size:1.16rem; letter-spacing:-0.02em; text-align:left; padding:25px 44px 25px 0; position:relative; transition:color .2s; }
.faq-q:hover { color:var(--accent); }
.faq-q::after { content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%); font-family:var(--sans); font-size:1.5rem; color:var(--accent); transition:transform .3s var(--spring); }
.faq-item.open .faq-q::after { transform:translateY(-50%) rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; color:var(--dim); transition:max-height .4s var(--spring), padding .4s; font-size:1rem; line-height:1.65; }
.faq-item.open .faq-a { max-height:280px; padding-bottom:25px; }

/* ---------- footer ---------- */
.foot { border-top:1px solid var(--line); padding:44px 28px; margin-top:40px; }
.foot-inner { max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; flex-wrap:wrap; gap:10px 22px; }
.foot .brand { font-size:1.1rem; }
.foot-tag { color:var(--dim); font-size:0.85rem; }
.foot-legal { color:var(--faint); font-size:0.76rem; margin-left:auto; }

/* ---------- reveal (SigIQ-style: translateY + scale, no blur) ---------- */
.reveal { opacity:0.001; transform:translateY(20px) scale(.92);
  transition:opacity .7s var(--ease), transform .85s var(--spring); transition-delay:var(--d,0s); will-change:transform,opacity; }
.reveal.in { opacity:1; transform:none; }
/* staggered children inside a revealed group */
.stagger > * { opacity:0.001; transform:translateY(18px) scale(.93);
  transition:opacity .65s var(--ease), transform .8s var(--spring); transition-delay:var(--d,0s); }
.stagger.in > * { opacity:1; transform:none; }
.parallax { will-change:transform; }
[data-swap] { transition:opacity .22s var(--ease); }
.swapping [data-swap] { opacity:0; }

/* ---------- more to come ---------- */
.more { max-width:var(--maxw); margin:0 auto; padding:120px 28px 40px; }
.more-inner { position:relative; text-align:center; max-width:680px; margin:0 auto; padding:56px 40px;
  background:radial-gradient(120% 140% at 50% 0%, rgba(var(--accent-rgb),.10), var(--surface) 70%);
  border:1px solid var(--line); border-radius:26px; overflow:hidden; }
.more-inner::before { content:""; position:absolute; top:-40%; left:50%; transform:translateX(-50%); width:60%; height:80%;
  background:radial-gradient(circle, rgba(var(--accent-rgb),.18), transparent 70%); filter:blur(20px); pointer-events:none; }
.more-inner h2 { font-size:clamp(1.7rem,3.4vw,2.6rem); margin-bottom:14px; }
.more-sub { color:var(--dim); font-size:1.05rem; line-height:1.6; max-width:48ch; margin:0 auto 28px; }

/* ---------- responsive ---------- */
@media (max-width:920px) {
  .hero { text-align:center; padding-top:4vh; }
  .hero-main { grid-template-columns:1fr; gap:20px; }
  .hero-copy { max-width:none; }
  .lede { margin-inline:auto; } .hero-actions { justify-content:center; }
  .hero-visual { order:-1; min-height:200px; } .hero-3d { max-width:260px; }
  .stats-row { grid-template-columns:1fr 1fr; gap:30px 16px; }
  .row, .row.flip { grid-template-columns:1fr; gap:26px; }
  .row .row-visual, .row.flip .row-visual { order:2; }
  .how-row { grid-template-columns:1fr; gap:18px; }
}
@media (max-width:600px) {
  section { padding:0 18px; }
  .nav { padding:12px 18px; gap:10px; }
  .nav-right .btn-primary { display:none; }          /* hero already has the CTA */
  .nav-right { gap:0; }
  .toggle-opt { padding:7px 14px; font-size:0.82rem; }
  .brand { font-size:1.12rem; }
  .hero h1 { font-size:clamp(2rem,8.5vw,2.7rem); }
  .lede { font-size:1.02rem; }
  .uni-name { font-size:0.95rem; }
  .pcard { grid-template-columns:104px 1fr; gap:16px; padding:16px; border-radius:18px; }
  .pcard-photo { width:104px; height:104px; }
  .apply { grid-template-columns:1fr; } .apply-card { padding:40px 22px; }
  .faculty, .show, .how, .stats { padding-top:80px; } .apply-sec, .faq { padding-top:90px; }
  .foot-legal { margin-left:0; }
}
/* ---------- mobile sticky CTA ---------- */
.mcta { display:none; }
@media (max-width:760px) {
  .mcta {
    display:block;
    position:fixed; left:0; right:0; bottom:0; z-index:95;
    padding:11px 16px calc(11px + env(safe-area-inset-bottom));
    background:linear-gradient(to top, var(--bg) 55%, rgba(6,7,11,.86) 85%, transparent);
    -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid var(--line);
    transform:translateY(120%); transition:transform .35s var(--spring);
    pointer-events:none;
  }
  .mcta.show { transform:translateY(0); pointer-events:auto; }
  /* single centered button; scarcity sits inside it as a small second line */
  .mcta-btn {
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
    width:100%; padding:9px 18px; line-height:1.16; text-align:center;
    box-shadow:0 10px 30px -8px rgba(var(--accent-rgb),.75);
  }
  .mcta-main { font-size:1rem; font-weight:700; }
  .mcta-sub { font-size:0.7rem; font-weight:500; opacity:.85; letter-spacing:.01em; }
  html[data-audience="professors"] .mcta-sub { display:none; }
  /* keep the footer clear of the fixed bar */
  .foot { padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) { *{animation:none!important;transition-duration:.01ms!important} .reveal{opacity:1;transform:none} .marquee-track,.hero-3d{animation:none!important} .mcta{transition:none!important} }
