/* ============================================================
   THE AI INSIDER RISK INDEX  ·  "OBSERVATORY" design system
   A dark, calibrated data-journalism instrument.
   Cool near-black canvas, signal-cyan accent (never a risk band),
   monospace as the load-bearing detail, hairline calibration furniture.
   One token set drives the whole site. Distinct from anzenna.ai.
   ============================================================ */

:root{
  /* ---- color: VOID & SIGNAL — a full deep-space theme. Cool blue-black void, near-white
     cool type, and one hot signal-magenta accent. Social-deduction inspired (spot the one
     among your trusted tools quietly moving data out), built original: our own shapes, our
     own language, our own palette. Body text ~16.9:1 on the void (AAA). ---- */
  --bg:#0B0E17; --bg-alt:#0F1320; --surface:#151A28; --surface-2:#1C2233;
  --border:#262D42; --border-strong:#3A445F;
  --text:#EEF1F8; --text-dim:#A9B2C7; --text-faint:#6E778E;
  /* scan-cyan: the one brand accent. It IS the scanner beam and the CTA/link/focus color,
     sitting opposite the impostor red so "our voice" never reads as "your alarm". */
  --accent:#3AE0E6; --accent-2:#6FF0F4; --accent-dim:#2AA6AB; --on-accent:#06121A;
  --accent-glow:rgba(58,224,230,.35); --accent-wash:rgba(58,224,230,.12);
  /* the crew: 7 bright categorical hues, agent silhouettes only (never a score). The
     multi-color-on-void spread is the social-deduction tell. No pink, no red (red = impostor). */
  --crew-1:#4C8DFF; --crew-2:#8B7CF0; --crew-3:#3FD97F; --crew-4:#B6E24A;
  --crew-5:#F5C542; --crew-6:#F5893C; --crew-7:#CBD5E6;
  /* the impostor / danger / critical signal (= ramp top). The only red on the site. */
  --danger:#FA4B4B; --danger-glow:rgba(250,75,75,.42); --danger-wash:rgba(250,75,75,.12);
  /* exposure ramp, Contained -> Critical (safe -> danger). Band 5 is the impostor red. */
  --b1:#35D07A; --b2:#8FD14A; --b3:#E7B537; --b4:#F0863C; --b5:#FA4B4B;

  /* dark "instrument" set = the same void, so .instr-dark panels match the base theme. */
  --d-bg:#0B0E17; --d-surface:#151A28; --d-surface-2:#1C2233; --d-border:#262D42; --d-border-strong:#3A445F;
  --d-text:#EEF1F8; --d-text-dim:#A9B2C7; --d-text-faint:#6E778E;
  --d-accent:#3AE0E6; --d-b1:#35D07A; --d-b2:#8FD14A; --d-b3:#E7B537; --d-b4:#F0863C; --d-b5:#FA4B4B;

  /* ---- type: three families, three jobs. Space Grotesk carries the console voice. ---- */
  --sans:"Inter",system-ui,-apple-system,sans-serif;
  --display:"Space Grotesk","Inter",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",monospace;
  --step--1:clamp(0.79rem,0.77rem + 0.10vw,0.84rem);
  --step-0:clamp(1.00rem,0.96rem + 0.20vw,1.13rem);
  --step-1:clamp(1.25rem,1.18rem + 0.35vw,1.50rem);
  --step-2:clamp(1.56rem,1.44rem + 0.60vw,2.00rem);
  --step-3:clamp(1.95rem,1.75rem + 1.00vw,2.75rem);
  --step-4:clamp(2.44rem,2.10rem + 1.70vw,3.75rem);
  --step-5:clamp(3.05rem,2.45rem + 3.00vw,5.50rem);
  --step-6:clamp(3.8rem,2.6rem + 6.0vw,8.00rem);

  /* ---- space: 8px base ---- */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px;
  --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;
  --section:clamp(72px,12vh,150px);

  /* ---- radius: chunky, console-rounded ---- */
  --r-sm:6px; --r:9px; --r-lg:13px; --r-xl:20px;

  /* ---- layout ---- */
  --maxw:1200px; --maxw-wide:1320px; --maxw-read:720px;
  --pad:clamp(20px,5vw,64px);
  --hairline:1px solid var(--border);

  /* ---- motion ---- */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-ui:cubic-bezier(.2,.7,.2,1);
  --ease-settle:cubic-bezier(.34,1.56,.64,1);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 20px 44px -22px rgba(0,0,0,.7);
  --sh-card:0 1px 2px rgba(0,0,0,.4),0 10px 26px -16px rgba(0,0,0,.55);
}

/* dark instrument panels: relight the token set locally so the two signature
   visuals (hero Trust Boundary, score gauge) keep their glow on the light site */
.instr-dark{
  --bg:var(--d-bg); --bg-alt:var(--d-bg); --surface:var(--d-surface); --surface-2:var(--d-surface-2);
  --border:var(--d-border); --border-strong:var(--d-border-strong);
  --text:var(--d-text); --text-dim:var(--d-text-dim); --text-faint:var(--d-text-faint);
  --accent:var(--d-accent); --accent-2:#6FF0F4; --accent-dim:#2AA6AB; --on-accent:#06121A;
  --accent-glow:rgba(58,224,230,.38); --accent-wash:rgba(58,224,230,.14);
  --b1:var(--d-b1); --b2:var(--d-b2); --b3:var(--d-b3); --b4:var(--d-b4); --b5:var(--d-b5);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 24px 48px -24px rgba(0,0,0,.7);
  background:var(--bg);color:var(--text);
}

/* ---- reset / base ---- */
*{box-sizing:border-box;margin:0;padding:0}
fieldset{border:0;min-width:0}
legend{display:block;width:100%}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:var(--step-0);line-height:1.65;
  font-feature-settings:'cv05','ss01';-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
}
/* engineering graph-paper: one faint dot grid, fixed */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px,rgba(174,190,224,.05) 1px,transparent 0);
  background-size:34px 34px;background-attachment:fixed;
  -webkit-mask-image:radial-gradient(140% 120% at 50% 0%,#000 55%,transparent 100%);
          mask-image:radial-gradient(140% 120% at 50% 0%,#000 55%,transparent 100%);
}
body>*{position:relative;z-index:1}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent-wash);color:var(--accent-2)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
:where(a,button){-webkit-tap-highlight-color:transparent}

/* tabular numerals wherever data lives */
.mono,.kick,.credit,.num,.stat-num,.gauge-score,.meter,.band-tag,[data-num]{
  font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1,'zero' 1;
}

/* ---- typography: Space Grotesk carries the console voice ---- */
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.04;letter-spacing:-.02em;color:var(--text);text-wrap:balance}
h1{font-size:var(--step-4);font-weight:700;line-height:1.01;letter-spacing:-.03em}
h2{font-size:var(--step-3);letter-spacing:-.025em}
h3{font-size:var(--step-2);letter-spacing:-.015em}
h4{font-size:var(--step-1);letter-spacing:-.01em}
p{text-wrap:pretty}
strong,b{font-weight:600;color:var(--text)}
.mono{font-family:var(--mono)}
.dim{color:var(--text-dim)}
.faint{color:var(--text-faint)}
.lede{font-size:var(--step-1);line-height:1.5;color:var(--text-dim);font-weight:400;max-width:52ch}

/* mono kicker / eyebrow: always "NN —— LABEL" */
.kick{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);
  font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}
.kick::before{content:attr(data-i);color:var(--accent)}
.kick[data-i]::after{content:"";width:26px;height:1px;background:var(--border-strong);order:1}
.kick.plain::before{content:none}
.kick.plain::after{content:none}
.credit{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}
.accent{color:var(--accent)}

/* ---- layout ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.wrap.wide{max-width:var(--maxw-wide)}
.wrap.read{max-width:var(--maxw-read)}
.section{padding-block:var(--section)}
.section.tight{padding-block:clamp(48px,7vh,88px)}

/* ---- ruler divider: a calibrated section rule with ticks + a mono label ---- */
.ruler{position:relative;height:34px;margin-block:var(--s-6);
  border-top:1px solid var(--border);
  background-image:repeating-linear-gradient(90deg,var(--border) 0 1px,transparent 1px 64px);
  background-size:64px 8px;background-repeat:repeat-x;background-position:left top}
.ruler::after{content:"";position:absolute;top:0;left:0;height:14px;width:100%;
  background-image:repeating-linear-gradient(90deg,var(--border-strong) 0 1px,transparent 1px 256px);
  background-size:256px 14px;background-repeat:repeat-x}
.ruler .rlabel{position:absolute;top:12px;left:0;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);background:var(--bg);padding-right:12px}
.ruler .rlabel .accent{color:var(--accent)}

/* draw-in on reveal */
.ruler.reveal{transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.ruler.reveal.is-visible{transform:scaleX(1)}

/* ---- instrument frame: corner ticks + coordinate label ---- */
.frame{position:relative}
.frame::before,.frame::after{content:"";position:absolute;width:12px;height:12px;pointer-events:none;
  border-color:var(--border-strong);border-style:solid;border-width:0}
.frame::before{top:-1px;left:-1px;border-left-width:1px;border-top-width:1px}
.frame::after{bottom:-1px;right:-1px;border-right-width:1px;border-bottom-width:1px}
.coord{position:absolute;top:-9px;left:14px;font-family:var(--mono);font-size:10px;
  letter-spacing:.12em;color:var(--text-faint);background:var(--bg);padding-inline:6px}

/* registration marks on cards */
.reg::before,.reg::after{content:"+";position:absolute;font-family:var(--mono);font-size:12px;
  color:var(--text-faint);line-height:1;pointer-events:none;opacity:.6}
.reg::before{top:8px;left:8px}
.reg::after{bottom:6px;right:8px}

/* ---- nav ---- */
.scrollbar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--accent);z-index:60;
  box-shadow:0 0 8px var(--accent-glow);transition:width .1s linear}
header.nav{position:sticky;top:0;z-index:50;background:rgba(11,14,23,.72);
  backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--border)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;
  font-size:15px;letter-spacing:.01em;color:var(--text)}
.brand .idx{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;
  color:var(--text-faint);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px 6px}
.sigdot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent-glow);
  animation:sensor 3s var(--ease-out) infinite}
@keyframes sensor{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 7px rgba(58,224,230,0)}100%{box-shadow:0 0 0 0 rgba(58,224,230,0)}}
.links{display:flex;align-items:center;gap:22px}
.links a:not(.navcta){font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-faint);position:relative;padding:6px 0;transition:color .16s}
.links a:not(.navcta)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .18s var(--ease-ui)}
.links a:not(.navcta):hover{color:var(--text)}
.links a:not(.navcta):hover::after{transform:scaleX(1)}
.links a.active{color:var(--text)}
.links a.active::before{content:"▸ ";color:var(--accent)}
.navtoggle{display:none;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text);background:transparent;border:1px solid var(--border-strong);border-radius:var(--r-sm);
  padding:8px 12px;cursor:pointer}
@media(max-width:860px){
  .links{position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;
    background:var(--bg-alt);border-bottom:1px solid var(--border);padding:8px var(--pad) 24px;display:none}
  .links.open{display:flex}
  .links a:not(.navcta){width:100%;padding:16px 0;border-bottom:1px solid var(--border);
    font-family:var(--display);font-size:20px;letter-spacing:-.01em;text-transform:none;color:var(--text)}
  .links a:not(.navcta)::after{display:none}
  .links a.navcta{margin-top:16px}
  .navtoggle{display:inline-block}
}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;
  font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  min-height:48px;padding:0 26px;border-radius:var(--r-lg);border:1px solid transparent;
  transition:background .16s var(--ease-ui),color .16s,border-color .16s,box-shadow .16s,transform .12s;white-space:nowrap}
.btn .arw{transition:transform .16s var(--ease-ui)}
.btn:hover .arw{transform:translateX(4px)}
.btn.primary{background:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-2);box-shadow:0 0 0 1px var(--accent),0 8px 30px var(--accent-glow)}
.btn.primary:active{transform:translateY(1px)}
.btn.secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}
.btn.secondary:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-wash)}
.btn.ghost{min-height:auto;padding:0;background:none;color:var(--accent);letter-spacing:.1em}
.btn.ghost:hover{color:var(--accent-2)}
.btn.ghost::after{content:"";width:16px;height:1px;background:currentColor;transition:width .16s}
.btn.ghost:hover::after{width:24px}
.btn:disabled,.btn[disabled]{color:var(--text-faint);background:transparent;border-color:var(--border);cursor:not-allowed;box-shadow:none}
.btn.navcta{min-height:38px;padding:0 16px;background:var(--accent);color:var(--on-accent)}
.btn.navcta:hover{background:var(--accent-2);box-shadow:0 0 20px var(--accent-glow)}

/* ---- cards ---- */
.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--s-6);transition:background .18s,border-color .18s,transform .18s var(--ease-ui)}
.card.reg{padding-top:calc(var(--s-6) + 6px)}
a.card,.card.link{overflow:hidden}
a.card::before,.card.link::before{content:"";position:absolute;top:0;left:0;height:1px;width:100%;
  background:linear-gradient(90deg,var(--accent),transparent);transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease-out)}
a.card:hover,.card.link:hover{background:var(--surface-2);border-color:var(--border-strong);transform:translateY(-2px)}
a.card:hover::before,.card.link:hover::before{transform:scaleX(1)}

/* ---- big-number stat block ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.stat{padding:var(--s-6);border-left:1px solid var(--border)}
.stat:first-child{border-left:0}
.stat .kick{margin-bottom:var(--s-4)}
.stat-num{font-family:var(--mono);font-weight:600;font-size:var(--step-5);line-height:1;color:var(--text);letter-spacing:-.02em}
.stat-num .u{font-size:.5em;color:var(--text-dim);margin-left:.15em}
.stat-num[data-band]{color:var(--band,var(--text))}
.stat .bar{height:3px;margin:var(--s-4) 0 var(--s-3);background:var(--border);border-radius:2px;position:relative}
.stat .bar i{position:absolute;top:-2px;width:2px;height:7px;background:var(--accent);left:var(--at,50%)}
.stat .cap{color:var(--text-dim);font-size:var(--step-0);line-height:1.45}
.stat .src{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border)}
@media(max-width:760px){.stats{grid-template-columns:1fr}.stat{border-left:0;border-top:1px solid var(--border)}.stat:first-child{border-top:0}}

/* ---- callout ---- */
.callout{position:relative;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--r);padding:var(--s-5) var(--s-6)}
.callout .kick{margin-bottom:var(--s-3)}
.callout p{color:var(--text-dim)}
.callout.risk{border-left-color:var(--band,var(--b4))}

/* ---- five-band meter (signature reusable) ---- */
.meter{width:100%;max-width:640px}
.meter .axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--text-faint);margin-bottom:6px}
.meter .track{position:relative;display:flex;gap:2px;height:12px}
.meter .track span{flex:1;border-radius:2px;opacity:.9}
.meter .track span:first-child{border-radius:var(--r) 2px 2px var(--r)}
.meter .track span:last-child{border-radius:2px var(--r) var(--r) 2px}
.meter .needle{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--text);left:0;
  transition:left 1.2s var(--ease-out)}
.meter .needle::before{content:"";position:absolute;top:-6px;left:-4px;border:5px solid transparent;
  border-top-color:var(--text);filter:drop-shadow(0 0 4px var(--accent-glow))}
.meter .bubble{position:absolute;top:-30px;transform:translateX(-50%);font-family:var(--mono);font-size:12px;
  font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);
  border-radius:var(--r-sm);padding:2px 7px;white-space:nowrap}
.meter .names{display:flex;margin-top:10px}
.meter .names span{flex:1;text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-faint);opacity:.5}
.meter .names span b{display:block;font-weight:500;font-size:9.5px;opacity:.8;margin-top:2px}
.meter .names span.on{opacity:1;color:var(--text)}

/* band tag pill */
.band-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 12px;
  color:var(--band,var(--accent));border:1px solid;border-color:color-mix(in srgb,var(--band,var(--accent)) 45%,transparent);
  background:color-mix(in srgb,var(--band,var(--accent)) 10%,transparent)}
.band-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--band,var(--accent))}

/* ---- signal list (home) ---- */
.signals{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.signal{position:relative;padding:var(--s-6);border-left:1px solid var(--border);overflow:hidden;transition:background .18s}
.signal:first-child{border-left:0}
.signal::before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,var(--accent),transparent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease-out)}
.signal:hover{background:var(--surface)}
.signal:hover::before{transform:scaleX(1)}
.signal .glyph{width:26px;height:26px;color:var(--accent);margin-bottom:var(--s-4)}
.signal .wt{font-family:var(--mono);font-size:11px;color:var(--text-faint);float:right}
.signal h4{font-size:var(--step-1);margin-bottom:var(--s-2)}
.signal p{font-size:14px;color:var(--text-dim);line-height:1.5}
@media(max-width:900px){.signals{grid-template-columns:1fr 1fr}.signal{border-top:1px solid var(--border)}.signal:nth-child(-n+2){border-top:0}.signal:nth-child(odd){border-left:0}}
@media(max-width:520px){.signals{grid-template-columns:1fr}.signal{border-left:0;border-top:1px solid var(--border)}.signal:first-child{border-top:0}}

/* ---- score gauge ---- */
.gauge-wrap{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.gauge{width:min(360px,84vw);height:auto}
.gauge-arc{transition:stroke-dashoffset 1.15s var(--ease-out)}
.gauge-center{position:absolute;top:52%;left:0;right:0;transform:translateY(-50%)}
.gauge-score{font-family:var(--mono);font-weight:600;font-size:var(--step-6);line-height:.9;color:var(--text)}
.gauge-score .of{display:block;font-size:.17em;color:var(--text-faint);letter-spacing:.1em;margin-top:10px}
.gauge-band{font-family:var(--mono);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:14px;margin-top:6px}

/* ---- footer ---- */
footer.site{border-top:1px solid var(--border);margin-top:var(--section);padding-block:var(--s-8) var(--s-6);position:relative;overflow:hidden}
footer.site .fmark{position:absolute;inset:0;opacity:.06;pointer-events:none}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s-7);position:relative}
footer.site .brand{margin-bottom:var(--s-4)}
footer.site .mission{color:var(--text-dim);max-width:34ch;font-size:14px;margin-bottom:var(--s-5)}
footer.site .fcol h5{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--s-4)}
footer.site .fcol a{display:block;color:var(--text-dim);font-size:14px;padding:5px 0;transition:color .15s}
footer.site .fcol a:hover{color:var(--accent)}
footer.site .fbot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;
  margin-top:var(--s-8);padding-top:var(--s-5);border-top:1px solid var(--border);position:relative}
footer.site .fbot .credit,footer.site .fbot a{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}
footer.site .fbot a:hover{color:var(--accent)}
@media(max-width:760px){footer.site .cols{grid-template-columns:1fr 1fr}footer.site .brand{grid-column:1/-1}}

/* ---- long-form prose (articles / legal / methodology) ---- */
.prose{max-width:var(--maxw-read);margin:0 auto}
.prose>*+*{margin-top:var(--s-5)}
.prose h2{font-size:var(--step-2);margin-top:var(--s-9);padding-top:var(--s-5);border-top:1px solid var(--border)}
.prose h2 .kick{display:block;margin-bottom:var(--s-3)}
.prose h3{font-size:var(--step-1);margin-top:var(--s-7)}
.prose p{color:var(--text-dim);font-size:var(--step-0);line-height:1.72}
.prose p.lede{color:var(--text);font-size:var(--step-1);line-height:1.5;max-width:none}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-dim)}
.prose a:hover{color:var(--accent-2)}
.prose strong{color:var(--text)}
.prose ul,.prose ol{color:var(--text-dim);padding-left:1.3em;line-height:1.7}
.prose li{margin-top:var(--s-2)}
.prose li::marker{color:var(--accent-dim)}
.pullstat{border-block:1px solid var(--border);padding:var(--s-6) 0;margin-block:var(--s-6)}
.pullstat .n{font-family:var(--mono);font-weight:600;font-size:var(--step-3);color:var(--text);letter-spacing:-.02em;line-height:1.1}
.pullstat .src{margin-top:var(--s-3)}
.takeaways{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-6);margin-top:var(--s-7)}
.takeaways .tl{margin-bottom:var(--s-4);font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}
.takeaways ul{list-style:none;padding:0}
.takeaways li{position:relative;padding-left:22px;color:var(--text-dim);margin-top:var(--s-3)}
.takeaways li::before{content:"—";position:absolute;left:0;color:var(--accent)}
.faqwrap{margin-top:var(--s-6)}
.qa{border-top:1px solid var(--border);padding:var(--s-4) 0}
.qa summary{font-family:var(--display);font-weight:500;font-size:var(--step-1);cursor:pointer;list-style:none;color:var(--text);display:flex;justify-content:space-between;gap:16px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-family:var(--mono);color:var(--accent)}
.qa[open] summary::after{content:"–"}
.qa .qa-a{margin-top:var(--s-3);color:var(--text-dim);line-height:1.7}
.deeper{margin-top:var(--s-7);padding:var(--s-5) var(--s-6);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r);color:var(--text-dim);font-size:14px}
.deeper a{color:var(--accent)}

/* page head for interior pages */
.pagehead{padding-top:var(--s-9);padding-bottom:var(--s-6)}
.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--s-5)}
.crumbs a:hover{color:var(--accent)}
.crumbs span{opacity:.5}
.pagehead h1{font-size:var(--step-4);max-width:20ch}
.pagemeta{display:flex;gap:18px;margin-top:var(--s-5);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}
.stand{font-size:var(--step-1);color:var(--text-dim);max-width:56ch;margin-top:var(--s-4)}

/* research hub grid */
.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-5)}
.hubgrid .card .ktag{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.hubgrid .card h3{font-size:var(--step-1);margin:var(--s-3) 0 var(--s-2)}
.hubgrid .card p{color:var(--text-dim);font-size:14px;line-height:1.5}
.hubgrid .card .rd{margin-top:var(--s-4);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.hubgrid .card.feature{grid-column:span 2;background:var(--surface-2)}
@media(max-width:680px){.hubgrid .card.feature{grid-column:span 1}}

/* CTA band */
.ctaband{border:1px solid var(--border);border-radius:var(--r-xl);background:
  radial-gradient(120% 140% at 50% 0%,var(--accent-wash),transparent 60%),var(--surface);
  padding:clamp(40px,7vw,72px);text-align:center;position:relative;overflow:hidden}
.ctaband h2{font-size:var(--step-3);margin-bottom:var(--s-4)}
.ctaband p{color:var(--text-dim);max-width:48ch;margin:0 auto var(--s-6)}

/* ---- reveal on scroll ---- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.reveal.is-visible{opacity:1;transform:none}
.stagger>*{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
.stagger.is-visible>*{opacity:1;transform:none}
.stagger.is-visible>*:nth-child(2){transition-delay:.07s}
.stagger.is-visible>*:nth-child(3){transition-delay:.14s}
.stagger.is-visible>*:nth-child(4){transition-delay:.21s}
.stagger.is-visible>*:nth-child(5){transition-delay:.28s}

/* ---- reduced motion: kill all motion, show final states ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal,.stagger>*{opacity:1;transform:none}
  .ruler.reveal{transform:none!important}
  .sigdot{animation:none}
}

/* ============================================================
   DAYLIGHT additions: light-surface elevation + interactive components
   ============================================================ */

/* soft elevation on light (dark instrument panels keep their own look) */
.card,.stats,.signals,.ctaband,.hubgrid .card,.method .spec,.gate,.takeaways{box-shadow:var(--sh-card)}
a.card:hover,.card.link:hover{box-shadow:var(--shadow)}
.instr-dark,.instr-dark *{box-shadow:none}
.instr-dark.card,.instr-dark{box-shadow:var(--shadow)}

/* ---- interactive exposure explorer (home) ---- */
.explorer{max-width:660px;margin:0 auto}
.explorer .exp-axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--text-faint);margin-bottom:8px}
.explorer .meterwrap{position:relative;padding-top:30px}
.explorer .track{position:relative;display:flex;gap:2px;height:16px}
.explorer .track span{flex:1;border-radius:2px}
.explorer .track span:first-child{border-radius:var(--r) 2px 2px var(--r)}
.explorer .track span:last-child{border-radius:2px var(--r) var(--r) 2px}
.explorer input[type=range]{position:absolute;left:-2px;right:-2px;bottom:-6px;width:calc(100% + 4px);height:28px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:grab;z-index:4}
.explorer input[type=range]:active{cursor:grabbing}
.explorer input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:8px;border-radius:6px}
.explorer input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:6px;height:40px;border-radius:3px;background:var(--text);box-shadow:0 0 0 4px var(--bg),0 3px 10px rgba(18,34,54,.35)}
.explorer input[type=range]::-moz-range-thumb{width:6px;height:40px;border:none;border-radius:3px;background:var(--text);box-shadow:0 0 0 4px var(--bg),0 3px 10px rgba(18,34,54,.35)}
.explorer .exp-bubble{position:absolute;top:0;transform:translateX(-50%);font-family:var(--mono);font-weight:600;font-size:13px;color:#fff;background:var(--band,var(--text));border-radius:var(--r-sm);padding:3px 10px;white-space:nowrap;pointer-events:none}
.explorer .exp-names{display:flex;margin-top:12px}
.explorer .exp-names span{flex:1;text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);opacity:.55;transition:opacity .15s,color .15s}
.explorer .exp-names span.on{opacity:1;color:var(--text)}
.explorer .exp-out{margin-top:26px;text-align:center;min-height:78px}
.explorer .exp-out .band-tag{margin-bottom:12px}
.explorer .exp-out p{color:var(--text-dim);max-width:54ch;margin:0 auto;font-size:var(--step-0)}
.explorer .exp-hint{margin-top:18px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.explorer .exp-hint a{color:var(--accent)}

/* ---- sticky table of contents + scroll-spy (long reads) ---- */
.toc{position:fixed;top:100px;left:24px;width:210px;max-height:74vh;overflow:auto;z-index:30;display:none}
@media(min-width:1260px){.toc{display:block}}
.toc .toc-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.toc a{display:block;font-size:12.5px;color:var(--text-faint);padding:6px 0 6px 14px;border-left:2px solid var(--border);line-height:1.35;transition:color .15s,border-color .15s}
.toc a:hover{color:var(--text-dim)}
.toc a.active{color:var(--accent);border-left-color:var(--accent);font-weight:500}

/* ---- glossary live search ---- */
.gsearch{position:relative;max-width:440px;margin:0 0 var(--s-6)}
.gsearch svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--text-faint);fill:none;stroke-width:1.6}
.gsearch input{width:100%;height:48px;padding:0 16px 0 44px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-family:var(--sans);font-size:15px}
.gsearch input::placeholder{color:var(--text-faint)}
.gsearch input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
.gnohits{display:none;color:var(--text-dim);font-family:var(--mono);font-size:13px;padding:8px 0}
.is-hidden{display:none!important}

/* ---- research category filter ---- */
.rfilter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:var(--s-6)}
.rchip{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:8px 15px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.rchip:hover{border-color:var(--border-strong);color:var(--text)}
.rchip.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

/* ---- print: force scroll-revealed content visible, drop interactive furniture,
   keep the dark theme's colors (for a screen-viewed PDF export) ---- */
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .scrollbar,header.nav,.toc,.navtoggle,.hero-scene,.hero .scrim,.herohint,.scrollcue{display:none!important}
  body::before{display:none!important}
  .reveal,.stagger>*{opacity:1!important;transform:none!important}
  .ruler.reveal{transform:none!important}
  .hero,.section,.pagehead{min-height:auto!important;page-break-inside:avoid}
  .card,.signal-panel,.callout,.takeaways,.qa,.pullstat,.gate{break-inside:avoid}
  h1,h2,h3{break-after:avoid}
  a{text-decoration:none}
  @page{margin:14mm}
}
