/* Layout: long-form scroll story. A 680px reading column, with figure bands that widen to 1120px.
   Chapters are numbered because the story is a real sequence (puzzle -> chain -> flows -> policy -> words -> tests). */
:root{
  --bg:#f2f3f6; --surface:#ffffff; --sunk:#e8eaf0;
  --ink:#141a22; --ink2:#465061; --muted:#6a7282; --line:#d9dce4; --axis:#b9bfcb;
  --accent:#5a3ec2; --accent-soft:#ebe7fa; --accent-ink:#ffffff;
  --cn:#eb6834; --west:#2a78d6; --hub:#1baf7a; --oth:#a3a9b5;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100; --plc:#8b92a0;
  --ok:#1d7a43; --ok-bg:#e3f3e9; --wait:#8a5a00; --wait-bg:#fbf0d9; --open:#5a3ec2;
  --h0:#f1f5fb; --h1:#cde2fb; --h2:#9ec5f4; --h3:#5598e7; --h4:#256abf; --h5:#123f7a; --h4ink:#ffffff; --h5ink:#ffffff;
  --display:"Bricolage Grotesque", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0f1218; --surface:#171b23; --sunk:#1d222c;
  --ink:#e9ecf2; --ink2:#b5bcc9; --muted:#8a92a3; --line:#2a303b; --axis:#3d4452;
  --accent:#a08ff2; --accent-soft:#251f45; --accent-ink:#120d2a;
  --cn:#d95926; --west:#3987e5; --hub:#199e70; --oth:#5d6472;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --plc:#7d8494;
  --ok:#6fcf97; --ok-bg:#16301f; --wait:#f0c060; --wait-bg:#33280f; --open:#a08ff2;
  --h0:#1c2029; --h1:#1d2c40; --h2:#1c3a5e; --h3:#1f4f82; --h4:#2a69ad; --h5:#8dbcf2; --h4ink:#ffffff; --h5ink:#0f1218;
  color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0f1218; --surface:#171b23; --sunk:#1d222c;
  --ink:#e9ecf2; --ink2:#b5bcc9; --muted:#8a92a3; --line:#2a303b; --axis:#3d4452;
  --accent:#a08ff2; --accent-soft:#251f45; --accent-ink:#120d2a;
  --cn:#d95926; --west:#3987e5; --hub:#199e70; --oth:#5d6472;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500; --plc:#7d8494;
  --ok:#6fcf97; --ok-bg:#16301f; --wait:#f0c060; --wait-bg:#33280f; --open:#a08ff2;
  --h0:#1c2029; --h1:#1d2c40; --h2:#1c3a5e; --h3:#1f4f82; --h4:#2a69ad; --h5:#8dbcf2; --h4ink:#ffffff; --h5ink:#0f1218;
  color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;
  padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:10;background:var(--bg)}
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1.08;margin:0;letter-spacing:-.01em}
p{margin:0}
a{color:var(--accent)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--mono)}
.num{font-variant-numeric:tabular-nums}

/* nav */
.nav{position:sticky;top:env(safe-area-inset-top, 0px);z-index:9;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);margin:0 calc(-1 * max(16px, env(safe-area-inset-right, 0px))) 0 calc(-1 * max(16px, env(safe-area-inset-left, 0px)));
  padding:10px max(16px, env(safe-area-inset-right, 0px)) 10px max(16px, env(safe-area-inset-left, 0px))}
.nav-in{max-width:1120px;margin:0 auto;display:flex;gap:18px;align-items:center;overflow-x:auto;scrollbar-width:none}
.nav-in::-webkit-scrollbar{display:none}
.nav b{font-family:var(--display);font-size:15px;white-space:nowrap}
.nav a{font-family:var(--mono);font-size:12.5px;color:var(--ink2);text-decoration:none;white-space:nowrap;padding:3px 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a.on{color:var(--ink);border-color:var(--accent)}

.wrap{max-width:1120px;margin:0 auto}
.col{max-width:680px}
section{padding-block:72px 24px;scroll-margin-top:52px}
.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.eyebrow .n{color:var(--muted)}
section h2{font-size:clamp(30px,4.4vw,46px);font-weight:700;margin:10px 0 18px}
.lede{font-size:20px;color:var(--ink2)}
.col p + p{margin-top:14px}
.src{font-family:var(--mono);font-size:11.5px;line-height:1.5;color:var(--muted);margin-top:14px;max-width:880px}

.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:2px 8px;border:1px solid}
.tag.illus{color:var(--wait);border-color:var(--wait);border-style:dashed;background:var(--wait-bg)}
.tag.pend{color:var(--muted);border-color:var(--axis)}
.tag.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent);background:var(--ok-bg)}
.tag.prelim{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:var(--accent-soft)}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px}
.seg{display:inline-flex;border:1px solid var(--axis);border-radius:6px;overflow:hidden;flex-wrap:wrap}
.seg button{background:transparent;border:0;border-right:1px solid var(--axis);padding:6px 12px;font-family:var(--mono);font-size:13px;cursor:pointer;color:var(--ink2)}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.controls{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-bottom:14px}
.controls label{font-family:var(--mono);font-size:12.5px;color:var(--muted)}
.btn{font-family:var(--mono);font-size:13px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);border-radius:6px;padding:7px 14px;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}
input[type=range]{accent-color:var(--accent);width:100%}

/* hero */
.hero{padding-block:64px 32px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:start}
.hero h1{font-size:clamp(48px,8.5vw,104px);font-weight:800;letter-spacing:-.03em;line-height:.95}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .dek{font-size:21px;color:var(--ink2);margin-top:22px;max-width:560px}
.hero .by{font-family:var(--mono);font-size:13px;color:var(--muted);margin-top:18px}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:18px}
.el{aspect-ratio:1/1.08;max-width:100%;border:1.5px solid var(--ink);border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;justify-content:space-between;background:var(--surface)}
.el .z{font-family:var(--mono);font-size:11px;color:var(--muted)}
.el .sym{font-family:var(--display);font-weight:700;font-size:clamp(22px,3vw,34px);line-height:1}
.el .nm{font-family:var(--mono);font-size:10px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.el.nd{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.el.nd .z,.el.nd .nm{color:inherit;opacity:.85}
.tilecap{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-bottom:22px}
.guess h3{font-size:22px;font-weight:700;margin-bottom:6px}
.guess .gq{font-size:16px;color:var(--ink2);margin-bottom:14px}
.gval{font-family:var(--display);font-size:56px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.gbar{position:relative;height:30px;background:var(--sunk);border-radius:4px;margin:12px 0 6px;overflow:hidden}
.gbar .you{position:absolute;inset:0 auto 0 0;background:var(--axis);border-radius:4px}
.gbar .truth{position:absolute;top:0;bottom:0;width:3px;background:var(--cn);transition:left .6s}
.gres{font-size:16px;margin-top:12px;min-height:3.2em}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);margin:28px 0 8px}
.stat{padding:16px 18px 6px 0}
.stat + .stat{padding-left:18px;border-left:1px solid var(--line)}
.stat .v{font-family:var(--display);font-weight:800;font-size:clamp(42px,6vw,64px);line-height:1;letter-spacing:-.02em}
.stat .l{font-size:16px;color:var(--ink2);margin-top:8px}
.stat .s{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:6px}
.pull{font-family:var(--display);font-size:clamp(22px,2.8vw,30px);font-weight:500;line-height:1.25;border-left:4px solid var(--accent);padding-left:18px;margin:30px 0 0;max-width:820px}

/* chain */
.chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:26px 0 14px}
.stg{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:10px 12px;position:relative}
.stg .k{font-family:var(--mono);font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}
.stg .k i{display:inline-block;width:14px;height:3px;border-radius:2px}
.stg .t{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.15;margin-top:4px}
.stg .c{font-family:var(--mono);font-size:11px;color:var(--ink2);margin-top:4px}
.stg[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.stg:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.stg:not(:last-child)::after{content:"→";position:absolute;right:-8px;top:50%;transform:translate(50%,-50%);color:var(--muted);font-size:13px;z-index:1}
.stg:nth-last-child(2)::after{content:"·"}
.figgrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;align-items:start}
.sdetail h3{font-size:22px;font-weight:700;margin-bottom:8px}
.sdetail dl{margin:0;display:grid;gap:10px;font-size:15.5px;line-height:1.45}
.sdetail dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.sdetail dd{margin:2px 0 0}
.sdetail .big{font-family:var(--display);font-weight:800;font-size:40px;line-height:1;font-variant-numeric:tabular-nums}
svg text{font-family:var(--mono)}
.chart{width:100%;height:auto;display:block;overflow:visible}

/* map */
.mapgrid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:20px;align-items:start}
.yearbig{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;font-variant-numeric:tabular-nums}
.kv{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:15px;margin-top:12px}
.kv dt{color:var(--ink2)} .kv dd{margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.toplist{list-style:none;padding:0;margin:12px 0 0;font-family:var(--mono);font-size:12.5px;display:grid;gap:5px}
.toplist li{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center}
.toplist i{width:10px;height:10px;border-radius:50%}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--mono);font-size:12px;color:var(--ink2);margin-top:10px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{display:inline-block;width:16px;height:4px;border-radius:2px}
.yearrow{display:flex;gap:12px;align-items:center;margin-top:12px}
.yearrow input{flex:1}
details.care{margin-top:14px;font-size:14.5px;color:var(--ink2)}
details.care summary{font-family:var(--mono);font-size:12.5px;cursor:pointer;color:var(--ink)}
details.care ul{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}

/* timeline */
.scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tlsvg{min-width:760px}
.tlsvg .ev{cursor:pointer}
.tlsvg .ev:focus{outline:none}
.tlsvg .ev:focus-visible circle,.tlsvg .ev:focus-visible rect{stroke:var(--accent);stroke-width:3}
.evcard{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;margin-top:14px}
.evcard h3{font-size:19px;font-weight:700;line-height:1.25}
.evcard .meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:6px}
.evcard dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px}
.evcard dt{font-family:var(--mono);font-size:11.5px;color:var(--muted)} .evcard dd{margin:0;overflow-wrap:anywhere}

/* rerouting */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}
.sl{display:grid;gap:4px;margin-bottom:16px}
.sl .row{display:flex;justify-content:space-between;font-size:15px}
.sl .row b{font-family:var(--mono);font-variant-numeric:tabular-nums}
.res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);margin-top:6px}
.res div{padding:10px 10px 0 0} .res div+div{padding-left:10px;border-left:1px solid var(--line)}
.res .v{font-family:var(--display);font-weight:800;font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.res .l{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:6px}
.formula{font-family:var(--mono);font-size:13px;color:var(--ink2);background:var(--sunk);border-radius:6px;padding:10px 12px;margin-top:14px;line-height:1.6}

/* locked simulator */
.locked{border:1.5px dashed var(--axis);border-radius:8px;padding:24px;background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--axis) 18%,transparent) 10px 11px)}
.locked h3{font-size:24px;font-weight:700;margin:8px 0 10px}
.needs{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px;font-size:15.5px}
.needs li{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:baseline}

/* heatmap */
.heat{border-collapse:separate;border-spacing:3px;width:100%;min-width:620px;font-size:14px}
.heat th{font-family:var(--mono);font-weight:500;font-size:11.5px;color:var(--ink2);padding:4px 6px;line-height:1.3}
.heat thead th{text-align:center;vertical-align:bottom}
.heat th.row{text-align:left;white-space:nowrap;cursor:pointer;font-family:var(--serif);font-size:14.5px;color:var(--ink)}
.heat tr.sel th.row{color:var(--accent);font-weight:600}
.heat tr.sel th.row::before{content:"▸ "}
.heat td{border-radius:4px;text-align:center;padding:7px 4px;font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer}
.heat tr.sel td{box-shadow:inset 0 0 0 2px var(--ink)}
.heat .reg th{font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--accent-soft);border-radius:4px}
.leads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}
.leads h3{font-size:19px;font-weight:700;margin-bottom:6px}
.leads p{font-size:15.5px;color:var(--ink2)}
.leads .for{font-family:var(--mono);font-size:11.5px;color:var(--accent);margin-top:8px}

/* hypotheses */
.hyps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.hyp{display:flex;flex-direction:column;gap:10px}
.hyp .who{font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.hyp h3{font-size:24px;font-weight:700}
.hyp .body{font-size:15.5px;line-height:1.5;flex:1}
.hyp .lab{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.hyp.flipped .body{color:var(--ink)}
.hyp.flipped{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.hyp.flipped .lab{color:var(--accent)}

/* status */
.status{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.status li{display:grid;grid-template-columns:minmax(0,1.3fr) 130px minmax(0,2fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px;align-items:baseline}
.status li b{font-family:var(--display);font-weight:700}
.status li span:last-child{color:var(--ink2)}
footer.end{padding-block:48px 64px;font-family:var(--mono);font-size:12px;color:var(--muted);border-top:2px solid var(--ink);margin-top:56px;display:grid;gap:8px}

#tip{position:fixed;z-index:20;pointer-events:none;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:12px;line-height:1.45;padding:7px 10px;border-radius:6px;max-width:280px;opacity:0;transition:opacity .1s}
#tip.on{opacity:1}

@media (max-width:860px){
  .hero,.figgrid,.mapgrid,.calc,.evcard{grid-template-columns:minmax(0,1fr)}
  .hyps,.leads{grid-template-columns:minmax(0,1fr)}
  .chain{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stg::after{display:none}
  .status li{grid-template-columns:minmax(0,1fr) auto}
  .status li span:last-child{grid-column:1/-1}
}
@media (max-width:520px){
  body{font-size:17px}
  .stats,.res{grid-template-columns:minmax(0,1fr)}
  .stat + .stat,.res div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .needs li{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }

/* ---- multi-page additions ---- */
.nav a.on{color:var(--ink);border-color:var(--accent)}
.pagehead{padding:56px 0 8px}
.pagehead h1{font-size:clamp(34px,6vw,60px);margin-top:14px}
.pagetext{margin:20px 0 8px}
.pagetext p + p{margin-top:14px}
.findings{margin-top:22px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;background:var(--surface);padding:16px 20px;max-width:880px}
.findings h3{font-size:15px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:10px}
.findings dl{margin:0;display:grid;gap:10px}
.findings dt{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.findings dd{margin:2px 0 0;font-size:16px;line-height:1.5;color:var(--ink2)}
.sources{margin-top:48px;border-top:1px solid var(--line);padding-top:16px;max-width:880px}
.sources h3{font-size:15px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}
.sources p{font-size:14.5px;line-height:1.55;color:var(--ink2)}
.nextwrap{margin:36px 0 8px}
.next{display:block;max-width:680px;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:16px 20px}
.next:hover{border-color:var(--accent)}
.next b{display:block;font-family:var(--display);font-size:20px;margin-top:8px;color:var(--accent)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 0 0}
.cards3 a{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:16px 18px}
.cards3 a:hover{border-color:var(--accent)}
.cards3 small{display:block;font-family:var(--mono);font-size:11.5px;color:var(--accent);margin-top:10px;text-transform:uppercase;letter-spacing:.05em}
.figph{margin-top:24px;border:2px dashed var(--axis);border-radius:10px;padding:40px 20px;text-align:center;color:var(--muted)}
.nav-in a{padding:6px 0}
.quiz .qn{font-family:var(--mono);font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.reveal{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.reveal .big{font-family:var(--display);font-size:clamp(26px,4vw,34px);line-height:1.15;font-weight:700}
.reveal p + p{margin-top:12px;font-size:19px}
.curio{margin-top:22px;font-size:14.5px;color:var(--ink2);max-width:680px;border-left:3px solid var(--accent);padding-left:14px}
.curio .src{margin-top:8px}
.cardwrap{margin-top:28px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.chips button{font-family:var(--mono);font-size:12.5px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);border-radius:999px;padding:5px 12px;cursor:pointer}
.chips button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.ccard{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;background:var(--surface);padding:18px 22px;max-width:880px}
.ccard h3{font-size:26px;margin:4px 0 12px}.ccard .role{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}
.ccard dl{display:grid;gap:10px;margin:0}.ccard dt{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;color:var(--muted)}
.ccard dd{margin:2px 0 0;font-size:16px;line-height:1.5}.ccard .story{margin-top:14px;font-size:18px}
.pin{cursor:pointer}.pin circle.ring{fill:var(--accent);fill-opacity:.15;stroke:var(--accent);stroke-width:2}
.pin circle.dot{fill:var(--accent)}.pin.on circle.ring{fill-opacity:.45;stroke:var(--ink);stroke-width:3}
.pin text{font-family:var(--mono);font-size:11px;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.hypcard{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:22px 26px;margin-top:28px;max-width:960px}
.hypcard .who{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:12px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.hypcard h3{font-size:19px;margin:20px 0 6px}.hypcard p,.hypcard li{font-size:16.5px;line-height:1.55}.hypcard ul{margin:8px 0;padding-left:20px;display:grid;gap:6px}
.hyptext{margin:0;font-size:18px;font-style:italic;border-left:3px solid var(--axis);padding-left:14px}
.hypcard .pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hypcard .verdict{margin-top:18px;padding:12px 14px;background:var(--accent-soft);border-radius:8px}
.evtab{border-collapse:collapse;font-size:15px;margin:10px 0}.evtab th,.evtab td{border:1px solid var(--line);padding:6px 10px;text-align:left}
@media (max-width:700px){.hypcard .pair{grid-template-columns:1fr}.hypcard{padding:16px}}
.bigfig{margin:24px 0 0}.bigfig img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:10px;background:#fff}
.figrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:14px}
.figrow img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:8px;background:#fff}
.figrow figure{margin:0}.subh{margin:32px 0 0;font-size:20px}
.magchart{width:100%;min-height:600px}
.predframe{width:100%;min-height:900px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:20px;display:block}
.openfull{margin-top:12px;font-family:var(--mono);font-size:13px}
select{max-width:100%}
code{overflow-wrap:anywhere}
.formulas{max-width:880px}
.formulas h3{font-size:19px;margin:26px 0 8px}
.formulas p{margin-top:10px;font-size:16px}
.formulas .formula{font-family:var(--mono);font-size:13.5px;background:var(--sunk);padding:12px 14px;border-radius:6px;white-space:pre-wrap;margin:10px 0;line-height:1.5}
@media (max-width:860px){ .cards3{grid-template-columns:1fr} }
