
/* Layout: a single long-form report. Front matter and prose in a 70ch column; timelines, lane charts and score sheets break out to full width with their own horizontal scroll. Ledger identity shared by every part. */
:root{
  --bg:#f6f4ee; --bg-2:#edeae1; --ink:#1f2430; --ink-2:#555d6d; --rule:#cfcabc;
  --zero:#b8641a; --zero-soft:rgba(184,100,26,.14);
  --bar:#3b5a8a; --bar-soft:rgba(59,90,138,.18); --ev:#3b5a8a; --ev-soft:rgba(59,90,138,.18); --link:#3b5a8a; --likely:#1f2430;
  --church:#7a4a9a; --church-soft:rgba(122,74,154,.16);
  --mill:#4f7a5a; --mill-soft:rgba(79,122,90,.16);
  --agree:#3f7a4f; --agree-soft:rgba(63,122,79,.16);
  --partial:#b07b1c; --partial-soft:rgba(176,123,28,.18);
  --disagree:#9a3b3b; --disagree-soft:rgba(154,59,59,.16);
  --unclear:#6b6f7a; --unclear-soft:rgba(107,111,122,.16);
  --diff:rgba(176,123,28,.16); --diff-strong:rgba(154,59,59,.14); --warn:#8a3b3b;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#15181f; --bg-2:#1d212b; --ink:#e6e3da; --ink-2:#a6a295; --rule:#343a48;
    --zero:#e0923f; --zero-soft:rgba(224,146,63,.18);
    --bar:#8aa8d8; --bar-soft:rgba(138,168,216,.22); --ev:#8aa8d8; --ev-soft:rgba(138,168,216,.22); --link:#8aa8d8; --likely:#e6e3da;
    --church:#c39ae0; --church-soft:rgba(195,154,224,.2);
    --mill:#86b593; --mill-soft:rgba(134,181,147,.2);
    --agree:#86c493; --agree-soft:rgba(134,196,147,.18);
    --partial:#e0b55a; --partial-soft:rgba(224,181,90,.18);
    --disagree:#e08a8a; --disagree-soft:rgba(224,138,138,.18);
    --unclear:#9ea3ad; --unclear-soft:rgba(158,163,173,.18);
    --diff:rgba(224,181,90,.16); --diff-strong:rgba(224,138,138,.16); --warn:#d98a8a;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#15181f; --bg-2:#1d212b; --ink:#e6e3da; --ink-2:#a6a295; --rule:#343a48;
  --zero:#e0923f; --zero-soft:rgba(224,146,63,.18);
  --bar:#8aa8d8; --bar-soft:rgba(138,168,216,.22); --ev:#8aa8d8; --ev-soft:rgba(138,168,216,.22); --link:#8aa8d8; --likely:#e6e3da;
  --church:#c39ae0; --church-soft:rgba(195,154,224,.2);
  --mill:#86b593; --mill-soft:rgba(134,181,147,.2);
  --agree:#86c493; --agree-soft:rgba(134,196,147,.18);
  --partial:#e0b55a; --partial-soft:rgba(224,181,90,.18);
  --disagree:#e08a8a; --disagree-soft:rgba(224,138,138,.18);
  --unclear:#9ea3ad; --unclear-soft:rgba(158,163,173,.18);
  --diff:rgba(224,181,90,.16); --diff-strong:rgba(224,138,138,.16); --warn:#d98a8a;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.55;margin:0}
.wrap{max-width:1240px;margin:0 auto;padding-inline:20px;padding-block:28px 72px}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.1;text-wrap:balance;margin:0}
h1{font-size:clamp(2.2rem,5vw,3.8rem);letter-spacing:-.01em}
h2{font-size:1.65rem;margin-block:52px 14px;padding-top:18px;border-top:2px solid var(--ink)}
h2 .k{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--zero);font-weight:500;margin-bottom:6px}
h3{font-size:1.25rem;margin-block:30px 10px;padding-top:10px;border-top:1px solid var(--rule)}
h4{font-size:1.05rem;margin-block:16px 6px}
p{max-width:70ch;margin:0 0 12px}
.lede{font-size:1.05rem;color:var(--ink-2);max-width:74ch}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
a{color:var(--link)}
small{font-size:.85em}
ul,ol{max-width:78ch}
li{margin-bottom:5px}
/* cover and executive summary */
.cover{display:grid;gap:14px;padding-bottom:26px;border-bottom:2px solid var(--ink);margin-bottom:10px}
.cover .sub{font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:400;max-width:34em;line-height:1.3;text-wrap:balance}
.cover .meta{display:flex;flex-wrap:wrap;gap:8px 26px;font-family:var(--mono);font-size:.76rem;color:var(--ink-2)}
.exec{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px 40px;margin-top:22px}
.exec h3{border:0;margin-top:0;padding-top:0}
.bluf{list-style:none;padding:0;margin:0;counter-reset:b}
.bluf li{position:relative;padding-left:34px;margin-bottom:12px;max-width:66ch}
.bluf li::before{counter-increment:b;content:counter(b);position:absolute;left:0;top:.05em;width:24px;height:24px;border-radius:50%;background:var(--zero);color:var(--bg);font-family:var(--mono);font-size:.78rem;font-weight:500;display:grid;place-items:center}
.bluf b{font-weight:600}
.toc{columns:2;column-gap:36px;font-size:.92rem;padding-left:0;list-style:none;margin:0;max-width:none}
.toc li{break-inside:avoid;margin-bottom:6px;padding-left:0}
.toc a{text-decoration:none}
.toc .k{font-family:var(--mono);font-size:.72rem;color:var(--zero);margin-right:8px}
.note-box{border-left:3px solid var(--zero);padding:8px 14px;background:var(--bg-2);max-width:80ch;font-size:.92rem;margin:14px 0}
.keyline,.legend{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.85rem;color:var(--ink-2);margin-top:4px;align-items:center}
.keyline span,.legend span{display:inline-flex;align-items:center;gap:8px}
.sw{display:inline-block;width:22px;height:10px;border-radius:2px;background:var(--bar)}
.sw.bar{background:var(--bar)} .sw.open{background:linear-gradient(90deg,transparent,var(--bar))} .sw.mill{background:var(--mill)} .sw.church{background:var(--church)}
.sw.zero{width:3px;height:14px;background:var(--zero)} .sw.pin{width:3px;height:14px;background:var(--ink)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--likely);border:2px solid var(--bg)}
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px 28px;counter-reset:rule}
.rules div{position:relative;padding-left:30px;font-size:.92rem;max-width:60ch}
.rules div::before{counter-increment:rule;content:counter(rule);position:absolute;left:0;top:.1em;font-family:var(--mono);font-size:.8rem;color:var(--zero);font-weight:500}
.rules b{font-weight:600}
/* ---- Part I timeline (scoped .tl) ---- */
.tl-scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:4px;background:var(--bg)}
.tl{min-width:960px;position:relative;font-size:.86rem}
.tl .row{display:grid;grid-template-columns:300px 1fr;align-items:stretch;border-top:1px solid var(--rule)}
.tl .row.phase{border-top:2px solid var(--ink);background:var(--bg-2)}
.tl .row.phase .lab{font-family:var(--display);font-size:1rem;font-weight:600;padding-block:8px}
.tl .row.phase .trk{background:transparent}
.tl .lab{position:sticky;left:0;z-index:3;background:var(--bg);padding:7px 12px 7px 14px;border-right:1px solid var(--rule);display:flex;gap:8px;align-items:baseline;min-width:0;cursor:pointer}
.tl .row:hover .lab{background:var(--bg-2)}
.tl .lab .num{font-family:var(--mono);font-size:.74rem;color:var(--zero);min-width:2ch;font-weight:500}
.tl .lab .txt{line-height:1.3}
.tl .lab .txt small{display:block;font-family:var(--mono);font-size:.7rem;color:var(--ink-2);margin-top:2px}
.tl .trk{position:relative;height:100%;min-height:38px}
.tl .trk .z{position:absolute;top:0;bottom:0}
.tl .trk .z.z2{background:var(--zero-soft);opacity:.45}
.tl .trk .z.z3{background:var(--mill-soft);opacity:.55}
.tl .trk .gl{position:absolute;top:0;bottom:0;width:1px;background:var(--rule)}
.tl .trk .gl.zero{width:2px;background:var(--zero);opacity:.9}
.tl .bar{position:absolute;top:50%;height:10px;transform:translateY(-50%);background:var(--bar);border-radius:2px}
.tl .bar.open-l{background:linear-gradient(90deg,transparent,var(--bar) 55%)}
.tl .bar.open-r{background:linear-gradient(90deg,var(--bar) 45%,transparent)}
.tl .bar.mill{background:var(--mill)}
.tl .bar.past{opacity:.45}
.tl .bar.dash{background:repeating-linear-gradient(90deg,var(--bar) 0 6px,transparent 6px 10px)}
.tl .bar.pt{width:3px;height:18px;border-radius:1px;background:var(--ink)}
.tl .bar.pt.zero{background:var(--zero);height:26px;width:4px}
.tl .lk{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:var(--likely);border:2px solid var(--bg);transform:translate(-50%,-50%);z-index:2}
.tl .axis .trk{min-height:66px}
.tl .axis .lab{cursor:default;font-family:var(--mono);font-size:.72rem;color:var(--ink-2)}
.tl .tick{position:absolute;top:6px;transform:translateX(-50%);font-family:var(--mono);font-size:.68rem;color:var(--ink-2);white-space:nowrap;text-align:center;line-height:1.2}
.tl .tick.zero{color:var(--zero);font-weight:500}
.tl .tick.l{transform:none} .tl .tick.r{transform:translateX(-100%)}
.tl .zone-lab{position:absolute;bottom:3px;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.tl.book .row{grid-template-columns:360px 1fr}
.tl.book .lab{cursor:default}
.tl.book .lab .num{min-width:5.5ch}
.tip{position:fixed;z-index:20;max-width:360px;background:var(--ink);color:var(--bg);padding:10px 12px;border-radius:4px;font-size:.8rem;line-height:1.4;pointer-events:none;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.tip[hidden]{display:none}
.tip b{display:block;margin-bottom:4px}
.tip .m{font-family:var(--mono);font-size:.74rem;opacity:.85}
/* generic tables */
.tbl-scroll,.tscroll,.mx-scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th{text-align:left;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:500;padding:8px 10px;border-bottom:2px solid var(--ink)}
td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
td.n{font-family:var(--mono);color:var(--zero);white-space:nowrap}
td.pos{font-family:var(--mono);font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}
td.pos small{display:block;color:var(--ink-2);white-space:normal}
td.refs{color:var(--ink-2);font-size:.82rem;max-width:34ch}
tr.ph td{background:var(--bg-2);font-family:var(--display);font-weight:600;font-size:1rem;border-bottom:1px solid var(--ink)}
#tbl{min-width:760px}
.booktbl{min-width:900px;font-size:.85rem}
.booktbl td.pos{white-space:normal;min-width:16ch}
.booktbl td:last-child{max-width:60ch}
/* footnotes */
.fn{display:grid;grid-template-columns:3.2rem 1fr;gap:6px 0;padding-block:14px;border-top:1px solid var(--rule);scroll-margin-top:16px}
.fn:target{background:var(--zero-soft)}
.fn .k{font-family:var(--mono);color:var(--zero);font-weight:500;padding-top:2px}
.fn h4{margin:0 0 4px}
.fn .pos{font-family:var(--mono);font-size:.78rem;color:var(--ink-2);margin-bottom:6px}
.fn p{max-width:78ch;margin-bottom:8px}
.fn .refs{font-size:.82rem;color:var(--ink-2);max-width:78ch}
.fn .refs b{color:var(--ink);font-weight:500}
.fn a.back{font-family:var(--mono);font-size:.74rem;color:var(--ink-2);text-decoration:none}
.appendix .fn .k{color:var(--warn)}
/* ---- Part II lanes (scoped .lanes) ---- */
.scroll{overflow-x:auto;border:1px solid var(--rule);border-radius:4px}
.lanes{min-width:1120px;position:relative;font-size:.78rem}
.lanes .lane{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--rule)}
.lanes .lane.axis{border-top:0}
.lanes .lab{position:sticky;left:0;z-index:3;background:var(--bg);border-right:1px solid var(--rule);padding:10px 12px;display:flex;flex-direction:column;justify-content:center}
.lanes .lab b{font-family:var(--display);font-size:1.02rem;font-weight:600;line-height:1.15}
.lanes .lab small{font-family:var(--mono);font-size:.66rem;color:var(--ink-2);margin-top:4px;line-height:1.3}
.lanes .trk{position:relative;min-height:60px}
.lanes .trk .z{position:absolute;top:0;bottom:0}
.lanes .trk .z.zpre{background:var(--church-soft);opacity:.45}
.lanes .trk .z.zmag{background:var(--zero-soft);opacity:.45}
.lanes .trk .z.zmill{background:var(--mill-soft);opacity:.55}
.lanes .trk .gl{position:absolute;top:0;bottom:0;width:1px;background:var(--rule)}
.lanes .trk .gl.zero{width:2px;background:var(--zero)}
.lanes .trk .base{position:absolute;left:0;right:0;height:1px;background:var(--rule)}
.lanes .pin{position:absolute;width:3px;height:14px;background:var(--ink);border-radius:1px;transform:translateX(-50%)}
.lanes .pin.zero{background:var(--zero);width:4px;height:20px}
.lanes .pin.church{background:var(--church)}
.lanes .pin.ev{background:var(--ev)}
.lanes .bar{position:absolute;height:7px;border-radius:2px;background:var(--ev)}
.lanes .bar.church{background:var(--church)} .lanes .bar.mill{background:var(--mill)} .lanes .bar.soft{opacity:.5}
.lanes .bar.openl{background:linear-gradient(90deg,transparent,var(--ev) 60%)}
.lanes .bar.dash{background:repeating-linear-gradient(90deg,var(--ev) 0 6px,transparent 6px 10px)}
.lanes .lbl{position:absolute;white-space:nowrap;font-size:.72rem;line-height:1.15;color:var(--ink);padding:1px 4px;background:var(--bg);border-radius:2px}
.lanes .lbl.church{color:var(--church);font-weight:500}
.lanes .lbl.zero{color:var(--zero);font-weight:500}
.lanes .lbl.muted{color:var(--ink-2)}
.lanes .leader{position:absolute;width:1px;background:var(--rule)}
.lanes .tick{position:absolute;top:6px;transform:translateX(-50%);font-family:var(--mono);font-size:.66rem;color:var(--ink-2);white-space:nowrap;text-align:center;line-height:1.2}
.lanes .tick.zero{color:var(--zero);font-weight:500}
.lanes .tick.l{transform:none} .lanes .tick.r{transform:translateX(-100%)}
.lanes .zl{position:absolute;bottom:4px;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.lanes .axis .trk{min-height:58px}
#dif{min-width:1280px;font-size:.84rem} #dif td{line-height:1.35} #dif td:first-child{font-weight:500;width:15%}
#dgrid{min-width:1180px;font-size:.84rem} #dgrid td:first-child{font-weight:500;width:13%}
td.d{background:var(--diff)} td.dd{background:var(--diff-strong)}
.key{font-size:.82rem;color:var(--ink-2);margin-top:8px;display:flex;gap:16px;flex-wrap:wrap}
.key i{display:inline-block;width:14px;height:10px;border-radius:2px;vertical-align:middle;margin-right:5px}
/* ---- Part III ranking ---- */
.chart{border:1px solid var(--rule);border-radius:4px;padding:14px 16px;background:var(--bg)}
.chart svg{width:100%;height:auto;display:block;font-family:var(--mono)}
.chart .cap{font-size:.85rem;color:var(--ink-2);margin-top:8px;max-width:78ch}
#sheet{min-width:1520px;font-size:.8rem}
#sheet th{position:sticky;top:0;background:var(--bg);z-index:2}
#sheet th.crit,#sheet td.crit{position:sticky;left:0;background:var(--bg);z-index:1;width:300px;min-width:300px;font-weight:500;border-right:1px solid var(--rule)}
#sheet td.crit small{display:block;font-family:var(--mono);font-size:.64rem;color:var(--ink-2);font-weight:400}
#sheet td.sc{text-align:center;font-family:var(--mono);font-weight:500;cursor:help}
#sheet td.A{background:var(--agree-soft);color:var(--agree)} #sheet td.P{background:var(--diff)} #sheet td.D{background:var(--diff-strong)} #sheet td.U{color:var(--ink-2)}
#sheet tr.tot td{border-top:2px solid var(--ink);font-family:var(--mono);font-weight:500;text-align:center}
#sheet tr.tot td.crit{text-align:left}
.dec{max-width:90ch;padding-left:18px;font-size:.92rem}
.dec li{margin-bottom:7px}
/* ---- briefs and profiles ---- */
.briefs{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px 32px}
.brief{min-width:0;border-top:2px solid var(--rule);padding-top:10px}
.brief h4{margin:0 0 2px}
.brief .m{font-family:var(--mono);font-size:.7rem;color:var(--ink-2);margin-bottom:6px}
.brief p{font-size:.92rem;max-width:none;margin:0}
.prof{border-top:1px solid var(--rule);padding:16px 0 6px;display:grid;grid-template-columns:220px 1fr;gap:8px 28px}
.prof h4{margin:0}
.prof .m{font-family:var(--mono);font-size:.7rem;color:var(--ink-2);margin-top:4px;line-height:1.4}
.prof dl{margin:0;display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:.9rem;max-width:90ch}
.prof dt{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);padding-top:3px}
.prof dd{margin:0}
@media (max-width:760px){.prof{grid-template-columns:1fr}.prof dl{grid-template-columns:1fr}.exec{grid-template-columns:1fr}.toc{columns:1}}
/* ---- Annex D matrix ---- */
.chip{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:3px;font-weight:500;white-space:nowrap}
.chip.A{background:var(--agree-soft);color:var(--agree)} .chip.P{background:var(--partial-soft);color:var(--partial)} .chip.D{background:var(--disagree-soft);color:var(--disagree)} .chip.U{background:var(--unclear-soft);color:var(--unclear)}
.mx-scroll{border:1px solid var(--rule);border-radius:4px}
table.mx{min-width:980px;font-size:.86rem}
.mx th{position:sticky;top:0;z-index:2;background:var(--bg)}
.mx th.lab{left:0;z-index:4}
.mx td.lab{position:sticky;left:0;background:var(--bg);z-index:1;width:290px;min-width:290px;border-right:1px solid var(--rule);cursor:pointer}
.mx tr:hover td.lab{background:var(--bg-2)}
.mx td.lab .n{font-family:var(--mono);font-size:.72rem;color:var(--zero);display:block;margin-bottom:2px}
.mx td.lab .t{font-weight:500;line-height:1.3}
.mx td.lab .tl{font-family:var(--mono);font-size:.7rem;color:var(--ink-2);display:block;margin-top:3px;min-width:0;position:static}
.mx td.cell{width:230px}
.mx td.cell .pos{display:block;margin-top:4px;line-height:1.35}
.mx td.cell .src{display:block;font-family:var(--mono);font-size:.66rem;color:var(--ink-2);margin-top:3px}
.mx tr.ph td{position:sticky;left:0}
.mx tr.det td{background:var(--bg-2);padding:12px 14px 14px;border-bottom:2px solid var(--rule)}
.mx tr.det[hidden]{display:none}
.det .why{max-width:95ch;margin-bottom:8px}
.det .who{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 22px;font-size:.84rem}
.det .who div{min-width:0}
.det .who b{display:block;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:3px}
.det .who q{font-style:italic}
.det .who a{word-break:break-all;font-size:.76rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.card{border-top:3px solid var(--zero);padding:14px 0 0;min-width:0}
.card h3{margin-top:0;border:0;padding-top:0}
.card .meta{font-family:var(--mono);font-size:.72rem;color:var(--ink-2);margin-bottom:8px}
.card ul{margin:8px 0 0;padding-left:18px}
.card li{margin-bottom:6px;font-size:.92rem}
.stat{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:.78rem;margin:8px 0 4px}
table.dif{min-width:720px} .dif td:first-child{font-weight:500;width:22%}
.src-list,.srcs{columns:2;column-gap:32px;font-size:.84rem;padding-left:18px;margin:0}
.src-list li,.srcs li{break-inside:avoid;margin-bottom:6px}
.src-list a,.srcs a{word-break:break-all}
details{border:1px solid var(--rule);border-radius:4px;padding:10px 14px;margin:12px 0}
summary{cursor:pointer;font-family:var(--display);font-weight:600;font-size:1.05rem}
:focus-visible{outline:2px solid var(--zero);outline-offset:2px}
@media (max-width:760px){.src-list,.srcs{columns:1}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ---------- site chrome ---------- */
:root{--head-h:58px}
body{padding-top:var(--head-h)}
.site-head{position:fixed;top:0;left:0;right:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--rule);padding-top:env(safe-area-inset-top,0px)}
.site-head-in{max-width:1240px;margin:0 auto;padding-inline:20px;display:flex;align-items:center;gap:18px;min-height:var(--head-h)}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:600;font-size:1.15rem;white-space:nowrap}
.brand-mark{display:inline-block;width:4px;height:18px;background:var(--zero);border-radius:1px;align-self:center}
.brand small{font-family:var(--mono);font-size:.66rem;color:var(--ink-2);font-weight:400;letter-spacing:.04em}
.site-nav{margin-left:auto}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;align-items:center;max-width:none}
.site-nav li{margin:0}
.site-nav a{display:block;padding:8px 10px;text-decoration:none;color:var(--ink-2);font-size:.86rem;border-radius:3px;white-space:nowrap}
.site-nav a:hover{color:var(--ink);background:var(--bg-2)}
.site-nav a.active{color:var(--zero);font-weight:600;box-shadow:inset 0 -2px 0 var(--zero)}
.site-nav .theme{font:inherit;font-size:.78rem;font-family:var(--mono);color:var(--ink-2);background:transparent;border:1px solid var(--rule);border-radius:3px;padding:5px 8px;cursor:pointer;margin-left:8px}
.nav-toggle{display:none;font:inherit;font-size:.86rem;background:transparent;border:1px solid var(--rule);border-radius:3px;padding:6px 10px;color:var(--ink);cursor:pointer;margin-left:auto}
@media (max-width:1040px){
  .brand small{display:none}
  .nav-toggle{display:block}
  .site-nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--rule);display:none;padding:8px 20px 12px}
  .site-head.open .site-nav{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .site-nav a{padding:10px 8px}
  .site-nav .theme{margin:8px 0 0}
}
main.wrap{padding-block:30px 40px}
body.has-toc main.wrap{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:0 44px;align-items:start}
.toc-side{position:sticky;top:calc(var(--head-h) + 18px);max-height:calc(100vh - var(--head-h) - 40px);overflow:auto;font-size:.82rem;border-left:1px solid var(--rule);padding-left:16px;grid-row:1;grid-column:2}
.page-body{min-width:0;grid-row:1;grid-column:1}
.toc-title{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.toc-side ol{list-style:none;margin:0;padding:0;max-width:none}
.toc-side li{margin:0 0 4px}
.toc-side li.h3{padding-left:12px;font-size:.78rem}
.toc-side a{text-decoration:none;color:var(--ink-2);display:block;padding:2px 0;line-height:1.3}
.toc-side a.on,.toc-side a:hover{color:var(--zero)}
@media (max-width:1180px){
  body.has-toc main.wrap{display:block}
  .toc-side{position:static;max-height:none;border-left:0;padding:10px 14px;background:var(--bg-2);border-radius:4px;margin-bottom:22px;columns:2;column-gap:28px}
  .toc-side ol{display:block}
  .toc-side .toc-title{column-span:all}
}
@media (max-width:640px){.toc-side{columns:1}}
.page-body>h2:first-child{margin-top:0;border-top:0;padding-top:0}
main.wrap>h2:first-child{margin-top:0;border-top:0;padding-top:0}
.pn{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:18px;border-top:1px solid var(--rule)}
.pn a{text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:600;font-size:1.05rem;display:flex;flex-direction:column;gap:2px;max-width:48%}
.pn a small{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:400}
.pn a.next{text-align:right;margin-left:auto}
.site-foot{border-top:1px solid var(--rule);margin-top:20px;padding-block:18px 30px;font-size:.8rem;color:var(--ink-2)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:8px 30px;padding-block:0}
/* wider tracks so axis labels keep clear of each other inside the narrower content column */
.tl{min-width:1140px}
.lanes{min-width:1180px}
/* sticky table heads clear the fixed header */
#sheet th{top:var(--head-h)} .mx th{top:var(--head-h)}
/* home */
.home-hero{padding:24px 0 10px}
.home-hero h1{font-size:clamp(2.6rem,6vw,4.6rem)}
.cards-home{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:18px}
.cards-home a{display:block;text-decoration:none;color:var(--ink);border:1px solid var(--rule);border-top:3px solid var(--zero);border-radius:4px;padding:14px 16px 16px;background:var(--bg);min-width:0}
.cards-home a:hover{background:var(--bg-2)}
.cards-home .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--zero)}
.cards-home h3{border:0;margin:6px 0 6px;padding:0;font-size:1.2rem}
.cards-home p{font-size:.9rem;color:var(--ink-2);margin:0;max-width:none}
.cards-home .n{display:block;font-family:var(--mono);font-size:.7rem;color:var(--ink-2);margin-top:10px}
.start{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 28px;margin-top:10px}
.start div{font-size:.92rem;max-width:none}
.start b{display:block;font-family:var(--display);font-size:1.05rem;margin-bottom:3px}
