:root{
  --bg:#0a0f17;
  --bg-2:#0f1722;
  --panel:#111c29;
  --panel-2:#16222f;
  --line:#22303f;
  --ink:#e8edf2;
  --ink-2:#9aa8b5;
  --ink-3:#5c6672;
  --teal:#57c7ba;
  --teal-deep:#0e7c72;
  --red:#e0697e;
  --red-deep:#b0344a;
  --gold:#d8b46a;
  --serif:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,Cambria,'Times New Roman',serif;
  --sans:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,'Cascadia Mono','Segoe UI Mono','SFMono-Regular',Menlo,Consolas,monospace;
  --maxw:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%}
.wrap.narrow{max-width:760px}
.teal-text{color:var(--teal)}
.red-text{color:var(--red)}
.muted{color:var(--ink-3)}
.mono{font-family:var(--mono)}
sub{font-size:.62em}

/* ---------- HOME LINK (fixed brand chip) ---------- */
.home-link{position:fixed;top:18px;left:18px;z-index:60;
  display:inline-flex;align-items:center;gap:11px;white-space:nowrap;
  height:42px;padding:0 15px;border-radius:999px;
  background:rgba(16,25,37,.78);border:1px solid var(--line);
  color:var(--ink-2);text-decoration:none;
  font-family:var(--mono);font-size:13px;letter-spacing:.01em;
  box-shadow:0 8px 24px rgba(0,0,0,.32);
  -webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);
  transition:color .2s,border-color .2s,background .2s,transform .2s,box-shadow .2s}
.home-link:hover{color:var(--ink);border-color:var(--teal-deep);background:rgba(16,25,37,.96);
  transform:translateY(-1px);box-shadow:0 10px 28px rgba(0,0,0,.4)}
.home-mark{font-family:var(--mono);font-size:16px;font-weight:700;line-height:1;
  color:var(--ink);letter-spacing:0;
  padding-right:11px;border-right:1px solid var(--line)}
.home-dot{color:#6c6ff5}
.home-link:hover .home-mark{color:#fff}
.home-dim{color:var(--ink-3)}
.home-link:hover .home-dim{color:var(--ink-2)}
.home-arrow{width:13px;height:13px;flex:none;color:var(--ink-3);transition:color .2s,transform .2s}
.home-link:hover .home-arrow{color:var(--teal);transform:translate(1px,-1px)}
@media(max-width:560px){
  .home-link{top:12px;left:12px;height:40px;padding:0 14px;gap:0}
  .home-text,.home-arrow{display:none}
  .home-mark{border-right:none;padding-right:0;font-size:17px}
}

/* ---------- HERO ---------- */
.hero{position:relative;padding:72px 0 64px;text-align:center;overflow:hidden;
  border-bottom:1px solid var(--line)}
.hero-glow{position:absolute;inset:0;background:
  radial-gradient(60% 50% at 30% 0%,rgba(87,199,186,.10),transparent 70%),
  radial-gradient(55% 45% at 80% 10%,rgba(224,105,126,.10),transparent 70%);
  pointer-events:none}
.eyebrow{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0 0 22px}
.title{font-family:var(--serif);font-weight:600;font-size:clamp(56px,11vw,116px);
  letter-spacing:.04em;margin:0;line-height:.95;
  background:linear-gradient(180deg,#fff,#b9c6d2);-webkit-background-clip:text;background-clip:text;color:transparent}
.subtitle{font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(17px,2.6vw,24px);color:var(--ink-2);margin:14px 0 0}

.equation-hero{margin:38px auto 6px;display:inline-flex;flex-wrap:wrap;justify-content:center;
  align-items:baseline;gap:.32em;font-family:var(--mono);font-size:clamp(18px,3.6vw,30px);
  padding:18px 26px;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(180deg,var(--panel),var(--bg-2));max-width:92vw}
.eq-E{color:#fff;font-weight:700}
.eq-op,.eq-fn{color:var(--ink-3)}
.eq-teal{color:var(--teal);font-weight:500}
.eq-red{color:var(--red);font-weight:500}
.hero-gloss{font-size:14px;color:var(--ink-2);margin:14px 0 0}

/* scoreboard */
.scoreboard{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:42px 0 0}
.scorecard{background:linear-gradient(180deg,var(--panel),var(--bg-2));
  border:1px solid var(--line);border-radius:14px;padding:20px 16px;text-align:left;
  position:relative;overflow:hidden}
.scorecard.hero-card{border-color:rgba(224,105,126,.4);box-shadow:0 0 0 1px rgba(224,105,126,.12) inset}
.sc-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}
.sc-value{font-family:var(--mono);font-weight:700;font-size:clamp(28px,5vw,40px);
  margin:6px 0 2px;color:#fff;font-variant-numeric:tabular-nums}
.sc-vs{font-size:12.5px;color:var(--ink-3)}
.sc-vs span{color:var(--ink-2);font-weight:600}
.headline-claim{margin:28px auto 0;max-width:680px;font-size:15.5px;color:var(--ink-2)}
.headline-claim strong{color:var(--ink)}
.scroll-cue{display:inline-block;margin-top:30px;color:var(--teal);text-decoration:none;
  font-size:14px;letter-spacing:.04em;border:1px solid var(--teal-deep);
  padding:10px 20px;border-radius:999px;transition:.2s}
.scroll-cue:hover{background:rgba(87,199,186,.08)}

/* ---------- MODULES ---------- */
.module{padding:84px 0;border-bottom:1px solid var(--line)}
.module.alt{background:var(--bg-2)}
.kicker{font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--teal);margin:0 0 12px;font-weight:600}
.module h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,4.4vw,42px);
  margin:0 0 16px;line-height:1.12;letter-spacing:.01em}
.lede{font-size:clamp(15px,2vw,18px);color:var(--ink-2);max-width:740px;margin:0 0 40px}
.lede em{color:var(--ink);font-style:italic}

/* ---------- MODULE 1 · asymmetry ---------- */
.toy-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.slider-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;
  font-size:14px;color:var(--ink-2)}
.big-num{font-family:var(--mono);font-weight:700;font-size:clamp(30px,6vw,52px);line-height:1}
.slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;
  background:var(--line);outline:none;cursor:pointer}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;
  background:#fff;border:3px solid var(--teal);cursor:grab;box-shadow:0 2px 10px rgba(0,0,0,.5)}
.slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--teal);cursor:grab}
.slider.red-slider::-webkit-slider-thumb{border-color:var(--red)}
.slider.red-slider::-moz-range-thumb{border-color:var(--red)}
.slider.mini{height:5px;max-width:160px}
.toy-result{margin-top:34px}
.toy-need{display:flex;flex-direction:column;gap:4px}
.toy-multi{margin-top:14px;font-size:15px}
.toy-multi output{font-family:var(--mono);color:var(--ink);font-weight:600}
.toy-vis{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px}
.bar-track{display:flex;flex-direction:column;gap:22px;margin-bottom:20px}
.bar-row{display:flex;align-items:center;gap:14px}
.bar-tag{width:54px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;flex:none}
.bar{height:26px;border-radius:7px;min-width:4px;transition:width .25s cubic-bezier(.2,.7,.3,1)}
.bar-red{background:linear-gradient(90deg,var(--red-deep),var(--red))}
.bar-teal{background:linear-gradient(90deg,var(--teal-deep),var(--teal))}
.toy-foot{font-size:13.5px;margin:0}

/* ---------- MODULE 2 · explorer ---------- */
.explorer-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start}
.heatmap-frame{position:relative;border:1px solid var(--line);border-radius:16px;overflow:hidden;
  background:var(--panel);padding:0;line-height:0}
#heatmap{width:100%;height:auto;display:block;touch-action:none;cursor:crosshair}
.heat-axis{position:absolute;font-size:11.5px;color:var(--ink-2);letter-spacing:.03em;line-height:1.2;pointer-events:none}
.heat-x{bottom:8px;left:50%;transform:translateX(-50%)}
.heat-y{top:50%;left:8px;transform:translateY(-50%) rotate(-90deg);transform-origin:left center}
.heat-legend{display:flex;align-items:center;gap:12px;justify-content:center;margin-top:14px;font-size:12px}
.legend-bar{flex:1;max-width:200px;height:8px;border-radius:99px;
  background:linear-gradient(90deg,var(--red),#22303f,var(--teal))}
.explorer-controls{display:flex;flex-direction:column;gap:22px}
.readout{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;
  font-family:var(--mono)}
.readout-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:15px}
.readout-row.total{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;font-size:18px}
.readout-v{font-weight:700;font-variant-numeric:tabular-nums}
.readout-row.total .readout-v{color:#fff;font-size:22px}
.gauge-wrap{text-align:center}
#gauge{width:100%;max-width:360px;height:auto}
.gauge-caption{font-size:14px;color:var(--ink-2);margin-top:-6px;font-weight:500}
.dials{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}
.dials .slider-label{margin-top:8px}
.reset-btn{margin-top:18px;width:100%;background:var(--panel-2);color:var(--ink-2);
  border:1px solid var(--line);border-radius:10px;padding:11px;font-family:var(--sans);
  font-size:13.5px;cursor:pointer;transition:.2s}
.reset-btn:hover{color:var(--ink);border-color:var(--teal-deep)}
.dial-foot{font-size:12.5px;margin:14px 0 0}

/* ---------- MODULE 3 · simulator ---------- */
.sim-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.scenario-btns{display:flex;gap:8px;flex-wrap:wrap}
.scn{background:var(--panel);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;
  padding:9px 16px;font-family:var(--sans);font-size:13.5px;cursor:pointer;transition:.18s;white-space:nowrap}
.scn:hover{color:var(--ink)}
.scn.active{background:rgba(87,199,186,.12);color:var(--teal);border-color:var(--teal-deep)}
.sim-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.depth-ctrl{display:flex;align-items:center;gap:10px;font-size:13px}
.depth-ctrl output{font-family:var(--mono);color:var(--ink)}
.depth-ctrl.hidden{display:none}
.play-btn{background:var(--teal-deep);color:#eafffb;border:none;border-radius:10px;padding:10px 20px;
  font-family:var(--sans);font-weight:600;font-size:14px;cursor:pointer;transition:.18s}
.play-btn:hover{background:var(--teal)}
.sim-grid{display:grid;grid-template-columns:1.55fr .45fr;gap:28px;align-items:start}
.sim-charts{display:flex;flex-direction:column;gap:20px}
.chart-block{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.chart-head{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;
  color:var(--ink-2);margin-bottom:8px}
.legend-inline{display:flex;align-items:center;gap:8px;font-size:12.5px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:3px}
.dot.teal{background:var(--teal)}.dot.grey{background:var(--ink-3)}
#equityChart,#exposureChart{width:100%;height:auto;display:block}
.sim-side{display:flex;flex-direction:column;gap:16px}
.phase-pill{align-self:flex-start;font-size:13px;font-weight:600;letter-spacing:.03em;
  padding:7px 16px;border-radius:999px;background:var(--panel);border:1px solid var(--line);
  transition:background .3s,border-color .3s,color .3s;color:var(--ink-2);
  min-width:150px;text-align:center;box-sizing:border-box}
.phase-pill.onset{color:var(--gold);border-color:rgba(216,180,106,.4)}
.phase-pill.stress{color:var(--red);border-color:rgba(224,105,126,.45);background:rgba(224,105,126,.08)}
.phase-pill.recovery{color:var(--teal);border-color:rgba(87,199,186,.45);background:rgba(87,199,186,.08)}
.sim-stats{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:12px;overflow:hidden}
.sim-stat{display:flex;justify-content:space-between;align-items:center;background:var(--panel);
  padding:12px 16px;font-size:13.5px}
.ss-k{color:var(--ink-2)}
.ss-v{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
.sim-note{font-size:12.5px;line-height:1.5}

/* ---------- CLOSE ---------- */
.close .keep{list-style:none;counter-reset:k;padding:0;margin:0 0 40px;display:flex;flex-direction:column;gap:18px}
.close .keep li{counter-increment:k;position:relative;padding-left:48px;font-size:16px;color:var(--ink-2)}
.close .keep li strong{color:var(--ink)}
.close .keep li::before{content:counter(k);position:absolute;left:0;top:-2px;width:32px;height:32px;
  border-radius:50%;border:1px solid var(--teal-deep);color:var(--teal);display:flex;align-items:center;
  justify-content:center;font-family:var(--mono);font-size:15px;font-weight:700}
.links{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 30px}
.link-card{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:20px 22px;text-decoration:none;transition:.2s}
.link-card:hover{border-color:var(--teal-deep);background:var(--panel-2)}
.lc-k{font-size:13px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}
.lc-v{font-family:var(--mono);color:var(--teal);font-size:15px}
.byline{font-size:13px;color:var(--ink-3);text-align:center;line-height:1.7}

/* ---------- RESPONSIVE ---------- */
@media(max-width:880px){
  .scoreboard{grid-template-columns:1fr 1fr}
  .toy-grid,.explorer-grid,.sim-grid{grid-template-columns:1fr;gap:28px}
  .module{padding:60px 0}
  .links{grid-template-columns:1fr}
  /* keep the simulator side panel a single stable column on mobile so the
     phase label changing width never reflows the stats table */
  .sim-side{flex-direction:column}
  .phase-pill{align-self:stretch}
}
@media(max-width:520px){
  .scoreboard{grid-template-columns:1fr 1fr;gap:10px}
  .hero{padding:74px 0 44px}
  .equation-hero{font-size:16px;padding:14px 16px}
  .scn{font-size:12.5px;padding:8px 13px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bar{transition:none}
}
