/* Beacon Dark design system. Built from beacon-brand-tokens.json with STEP 1 reconciliation:
   --gold uses the live theme's Champagne Gold #C9A84C; --indigo-royal uses the live theme's Royal Indigo #2C1F5E. */
:root{
  --surface:#0B0926; --surface-alt:#0E0B2C; --surface-card:#0F0C2E; --surface-raised:#15123A;
  --indigo-royal:#2C1F5E; --indigo-glow:#3A2F9A; --ink-deep:#07061A; --line:#2A2650;
  --text-strong:#FBF8FF; --text:#ECE7F7; --text-muted:#A9A3C9; --text-faint:#8F89B3;
  --gold:#C9A84C; --gold-light:#F6E7BE; --gold-deep:#B8913E; --on-gold:#14102F;
  --iris:#7C74C9; --iris-light:#A99BF0; --signal-ok:#9BE3B5;
  --font-display:Georgia,"Times New Roman",serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--gold)}a:hover{color:#F3E3B8}
img{max-width:100%;height:auto}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.section{padding:104px 0}
.section-alt{background:var(--surface-alt)}
.eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}
.display-xl{font-family:var(--font-display);font-weight:400;font-size:64px;line-height:1.04;letter-spacing:-.015em;color:var(--text-strong);margin:0}
.display-l{font-family:var(--font-display);font-weight:400;font-size:46px;line-height:1.1;color:var(--text-strong);margin:0}
.display-m{font-family:var(--font-display);font-weight:400;font-size:30px;line-height:1.2;color:var(--text-strong);margin:0}
.lead{font-size:19px;line-height:1.6;color:#C6C0E2;margin:0}
.body-lg{font-size:18px;line-height:1.65;color:#C6C0E2;margin:0}
.muted{color:var(--text-muted)}
.gold-grad{background:linear-gradient(100deg,var(--gold-light) 0%,var(--gold) 45%,var(--gold-deep) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
.btn{display:inline-block;font-family:var(--font-sans);font-size:16px;font-weight:600;padding:15px 22px;border:0;border-radius:8px;background:var(--gold);color:var(--on-gold);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--gold-light);color:var(--on-gold)}
.btn-lg{padding:15px 24px}
.sec-head{display:flex;flex-direction:column;gap:14px;max-width:720px}
.sec-head.wide{max-width:760px}

/* Header */
.site-header{position:relative;z-index:2;border-bottom:1px solid #ffffff14;background:var(--surface)}
.nav-inner{max-width:1240px;margin:0 auto;padding:18px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#F4EFFF}
.brand img{height:36px;width:auto;display:block}
.brand-name{font-family:var(--font-display);font-size:21px;letter-spacing:.02em;color:#F4EFFF}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:26px;font-size:15px}
.nav-links a{text-decoration:none;color:#D7D1EE}
.nav-links a:hover{color:var(--gold-light)}

/* Footer */
.site-footer{background:var(--ink-deep);color:var(--text-muted);border-top:1px solid #ffffff12}
.footer-inner{max-width:1240px;margin:0 auto;padding:44px 24px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start;font-size:14px}
.footer-brand{display:flex;flex-direction:column;gap:8px}
.footer-name{font-family:var(--font-display);font-size:19px;color:#F4EFFF}
.footer-tag{color:var(--gold);font-family:var(--font-mono);font-size:12px;letter-spacing:.12em}
.footer-legal{display:flex;flex-wrap:wrap;gap:20px}
.footer-legal a{color:var(--text-muted);text-decoration:none}
.footer-legal a:hover{color:var(--gold-light)}
.footer-copy{width:100%;color:var(--text-faint);font-size:13px}

/* Motion (CSS only; everything stops under prefers-reduced-motion) */
@keyframes breveal{0%{opacity:0;transform:translateY(6px)}100%{opacity:1;transform:none}}
@keyframes bshim{0%,100%{stroke-opacity:.45}50%{stroke-opacity:.95}}
@keyframes btx{0%{opacity:0}35%{opacity:1}100%{opacity:0}}
@keyframes bring{0%{r:5;opacity:.95;stroke-width:2.4}100%{r:44;opacity:0;stroke-width:.4}}
@keyframes bscan{0%{transform:translateX(-140px)}100%{transform:translateX(900px)}}
@keyframes bflow{0%{stroke-dashoffset:120}100%{stroke-dashoffset:0}}
@keyframes bblink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes bfill{0%{width:0}100%{width:100%}}
@keyframes bbreathe{0%,100%{transform:scale(.94)}50%{transform:scale(1.04)}}
@keyframes bspin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes bhalo{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}
.b-us{animation:breveal .9s ease-out both,bshim 7s ease-in-out infinite}
.b-tx{animation:btx 3.6s ease-out infinite}
.b-ring{animation:bring 3s ease-out infinite}
.b-scan{animation:bscan 7s linear infinite}
.b-flow{stroke-dasharray:6 114;animation:bflow 2.4s linear infinite}
.b-blink{animation:bblink 1.4s ease-in-out infinite}
.b-bar{animation:bfill 2.6s ease-out both}
.b-breathe{animation:bbreathe 4.2s ease-in-out infinite}
.b-spin{animation:bspin 9s linear infinite}
.b-spinr{animation:bspin 5.5s linear infinite reverse}
.b-halo{animation:bhalo 4.2s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .b-us,.b-tx,.b-ring,.b-scan,.b-flow,.b-blink,.b-bar,.b-breathe,.b-spin,.b-spinr,.b-halo{animation:none}
}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--surface)}
.hero-glow{position:absolute;inset:0;background:radial-gradient(900px 520px at 72% 42%,#3A2F9A66,transparent 70%),radial-gradient(600px 400px at 15% 90%,#2A1F7A55,transparent 70%)}
.hero-grid{position:relative;max-width:1240px;margin:0 auto;padding:72px 24px 96px;display:flex;flex-wrap:wrap;gap:40px;align-items:center}
.hero-copy{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:26px;z-index:1}
.hero-live{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--gold)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--gold);display:inline-block}
.dot.ok{background:var(--signal-ok);width:7px;height:7px}
.hero-rule{width:96px;height:1px;background:linear-gradient(90deg,var(--gold),#C9A84C00)}
.hero-sub{margin:0;font-size:19px;line-height:1.6;color:#C6C0E2;max-width:520px}
.hero-link{font-size:15px;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.hero-map{flex:1.25 1 560px;min-width:0;position:relative;min-height:520px}
.hero-map svg{width:100%;height:auto;display:block;overflow:visible}

/* Console card */
.console{position:relative;margin:-110px 0 0 auto;width:min(400px,100%);background:#15123AF2;border:1px solid #ffffff1f;border-radius:14px;box-shadow:0 24px 60px #00000080,0 0 0 1px #C9A84C14 inset;overflow:hidden}
.console-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #ffffff14;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--text-muted)}
.console-head .ship{display:inline-flex;align-items:center;gap:6px;color:var(--signal-ok)}
.console-rows{padding:18px 16px 8px;display:flex;flex-direction:column;gap:14px;font-family:var(--font-mono)}
.crow{display:flex;flex-direction:column;gap:6px}
.crow-top{display:flex;justify-content:space-between;font-size:12px;color:#C6C0E2}
.crow-top b{color:var(--text-strong);font-size:15px;font-weight:500}
.crow-top b.g{color:var(--gold)}
.track{height:4px;background:#ffffff12;border-radius:4px;overflow:hidden}
.fill{height:100%}
.fill.iris{background:var(--iris)}.fill.iris-l{background:var(--iris-light)}.fill.gold{background:var(--gold)}
.console-notes{padding:10px 16px 16px;display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono);font-size:11px;line-height:1.7;color:var(--text-faint)}
.console-notes .ok{color:var(--signal-ok)}.console-notes .warn{color:var(--gold)}

/* Ticker */
.ticker{border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14;background:#100D30;overflow-x:auto}
.ticker-inner{max-width:1240px;margin:0 auto;padding:16px 24px;display:flex;gap:36px;white-space:nowrap;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-muted)}
.ticker-inner .live{color:var(--gold)}

/* No-courses strip */
.strip{background:var(--surface-alt);border-bottom:1px solid #C9A84C26}
.strip-inner{max-width:1240px;margin:0 auto;padding:40px 24px;display:flex;flex-wrap:wrap;gap:20px 48px;align-items:center;justify-content:space-between}
.strip-line{font-family:var(--font-display);font-size:30px;line-height:1.2;color:var(--text-strong)}
.strip-line em{color:var(--gold)}
.strip-meta{display:flex;flex-wrap:wrap;gap:12px 28px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-muted)}
.strip-meta .dia{color:var(--gold)}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:#C9A84C33;border:1px solid #C9A84C33;border-radius:14px;overflow:hidden}
.steps li{background:var(--surface-card);padding:28px 24px;display:flex;flex-direction:column;gap:12px}
.steps li.last{background:linear-gradient(160deg,#2A2170,var(--surface-raised))}
.step-num{font-family:var(--font-mono);font-size:30px;color:var(--gold)}
.step-name{font-weight:600;font-size:19px;color:var(--text-strong)}
.step-body{font-size:15px;line-height:1.6;color:#B9B3D6}
.steps li.last .step-body{color:#D7D1EE}

/* Edge comparison */
.edge-grid{display:flex;flex-wrap:wrap;gap:16px}
.edge-card{flex:1 1 380px;min-width:0;border:1px solid #ffffff1a;border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:16px;background:var(--surface)}
.edge-card.featured{border-color:#C9A84C66;background:linear-gradient(160deg,#241D66,#120F35);box-shadow:0 0 60px #C9A84C14}
.edge-k{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--text-faint)}
.edge-card.featured .edge-k{color:var(--gold)}
.edge-card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.5;color:var(--text-muted)}
.edge-card.featured ul{color:var(--text)}
.edge-card .dia{color:var(--gold)}

/* Team / quality */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.team-card{background:var(--surface-raised);border:1px solid #ffffff1a;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px}
.team-card.hero-card{background:linear-gradient(160deg,var(--indigo-royal),var(--surface-raised))}
.team-card.rule{border:1.5px dashed #C9A84C55;background:var(--surface-raised);justify-content:center;gap:10px}
.team-who{display:flex;align-items:center;gap:14px}
.team-name{font-weight:600;font-size:16px;color:var(--text-strong)}
.team-role{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}
.team-body{font-size:14px;line-height:1.6;color:#C6C0E2}
.team-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:0 0 44px}
.team-icon.iris{background:#A99BF020;border:1px solid #A99BF066}
.team-icon.ok{background:#9BE3B520;border:1px solid #9BE3B566}
.rule-k{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--gold)}
.rule-body{font-size:15px;line-height:1.6;color:#E4DEF5}

/* Bishop orb */
.orb{position:relative;width:52px;height:52px;flex:0 0 52px}
.orb .halo{position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,#C9A84C55 0%,#C9A84C00 70%)}
.orb .arc{position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(from 0deg,#C9A84C00 0deg,#F3E3B8 70deg,#C9A84C00 140deg,#C9A84C00 360deg);-webkit-mask:radial-gradient(circle,transparent 60%,#000 62%);mask:radial-gradient(circle,transparent 60%,#000 62%)}
.orb .core{position:absolute;inset:4px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFFBEA 0%,#F3E3B8 22%,var(--gold) 48%,#A9822F 82%,#5E4413 100%);box-shadow:0 0 22px #C9A84CAA,0 0 46px #C9A84C55}
.orb .sat{position:absolute;inset:-6px}
.orb .sat i{position:absolute;top:0;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#FFF6DA;box-shadow:0 0 8px #FFF6DA}

/* Counties */
.county-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.county-next{border:1.5px dashed #C9A84C55;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.county-next .n{font-family:var(--font-display);font-size:22px;color:var(--text-strong)}
.county-next .d{font-family:var(--font-mono);font-size:12px;line-height:1.7;color:var(--text-faint)}
.matrix-card{border:1px solid #ffffff1a;border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:12px;background:var(--surface)}
.matrix-card .n{font-family:var(--font-display);font-size:22px;color:var(--text-strong)}
.matrix-card .d{font-size:15px;line-height:1.6;color:#B9B3D6}
.matrix-card a{font-weight:600;text-decoration:none}

/* Certificate */
.cert{border-radius:16px;padding:2px;background:linear-gradient(135deg,var(--gold-light),var(--gold) 35%,#8C6A27 70%,#F3E3B8)}
.cert-inner{border-radius:14px;background:radial-gradient(600px 300px at 80% 0%,#2E2580,#120F35 70%);padding:32px;display:flex;flex-direction:column;gap:22px}
.cert-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.cert-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--gold)}
.cert-title{font-family:var(--font-display);font-size:36px;color:var(--text-strong);margin-top:6px}
.cert-seal{width:64px;height:64px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--gold);text-align:center;line-height:1.3;box-shadow:0 0 20px #C9A84C33 inset;flex:0 0 64px}
.cert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;font-family:var(--font-mono)}
.cert-grid .k{font-size:11px;letter-spacing:.12em;color:var(--text-faint)}
.cert-grid .v{font-size:18px;color:var(--text-strong);margin-top:4px}
.cert-grid .v.g{color:var(--gold)}
.cert-rule{height:1px;background:linear-gradient(90deg,#C9A84C00,var(--gold),#C9A84C00)}
.cert-buy{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.cert-price{font-family:var(--font-display);font-size:34px;color:var(--text-strong)}
.cert-price span{font-family:var(--font-sans);font-size:14px;color:var(--text-muted)}
.cert-fine{font-size:13px;line-height:1.6;color:var(--text-muted)}

/* Honesty lines */
.honest-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.honest-list li{border:1px solid #ffffff1a;border-left:0;border-radius:12px;padding:20px;font-size:16px;line-height:1.55;color:#D7D1EE;background:var(--surface-card);box-shadow:inset 2px 0 0 var(--gold)}
.honest-list strong{color:var(--text-strong)}

/* Plain pages (About body, Privacy, Terms, License, fallback) */
.page-hero{padding:72px 0 8px}
.page-body{max-width:760px}
.page-body p{font-size:17px;line-height:1.7;color:#C6C0E2;margin:0 0 18px}
.page-body h2{font-family:var(--font-display);font-weight:400;font-size:30px;line-height:1.2;color:var(--text-strong);margin:40px 0 14px}
.page-narrow{max-width:720px}
.about-stack{display:flex;flex-direction:column;gap:0}
.about-block{padding:56px 0;border-top:1px solid #ffffff10}
.about-block:first-child{border-top:0}

@media (max-width:720px){
  .display-xl{font-size:44px}
  .display-l{font-size:34px}
  .section{padding:64px 0}
  .hero-grid{padding:48px 24px 64px}
  .hero-map{min-height:0}
  .console{margin:16px 0 0}
  .strip-line{font-size:24px}
}
