:root{
  --ink:#1a1d24; --dim:#5b6470; --line:#dfe3ea; --bg:#ffffff; --panel:#f6f8fb;
  --accent:#1f6f8b; --F:#0a7d33; --V:#1f6f8b; --Lc:#7a5c00; --O:#b23a48;
  --mono:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--bg);
  font-family:Georgia,"Times New Roman",serif;line-height:1.62;
  font-size:18px;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 22px;border-bottom:1px solid var(--line);background:var(--panel);
  font-family:system-ui,sans-serif;font-size:13px}
.topbar .brand{font-weight:700;color:var(--ink)}
.topbar .tag{color:var(--dim);letter-spacing:.02em}
main{max-width:820px;margin:0 auto;padding:30px 22px 64px}
h1{font-size:30px;line-height:1.2;margin:.4em 0 .15em}
h1 .sub{display:block;font-size:17px;color:var(--dim);font-weight:400;margin-top:.35em}
h1 .cnum,h1 .num{color:var(--accent)}
h2{font-size:21px;margin:1.7em 0 .5em;padding-bottom:.2em;border-bottom:1px solid var(--line)}
.lead{font-size:20px;color:#2a2f38;margin:.2em 0 1.1em}
.sub{font-weight:400}
.crumb{font-family:system-ui,sans-serif;font-size:13px;color:var(--dim);margin-bottom:.4em}
p{margin:.7em 0}
code{font-family:var(--mono);font-size:.86em;background:var(--panel);padding:.05em .35em;border-radius:4px}
em{font-style:italic}
.muted,.dim{color:var(--dim)}
.muted{font-size:15.5px}
/* scope / firewall banner */
.scope{background:#fff7f4;border:1px solid #f1d6cf;border-left:4px solid var(--O);
  padding:12px 16px;border-radius:8px;font-size:15.5px;margin:1.1em 0}
/* grade chips */
.grade{font-family:var(--mono);font-size:.72em;font-weight:700;padding:.06em .3em;border-radius:4px;
  margin-left:.25em;vertical-align:.06em;white-space:nowrap}
.gF{color:#fff;background:var(--F)} .gV{color:#fff;background:var(--V)}
.gL{color:#fff;background:var(--Lc)} .gO{color:#fff;background:var(--O)}
/* key/value list */
.kvlist{display:grid;grid-template-columns:1fr;gap:0;margin:1em 0;border:1px solid var(--line);
  border-radius:10px;overflow:hidden}
.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:10px;
  padding:9px 14px;border-top:1px solid var(--line);font-size:16px}
.kv:first-child{border-top:0}
.kv dt{margin:0;color:var(--dim)}
.kv dd{margin:0;font-family:var(--mono);font-size:14.5px;color:var(--ink)}
/* grade ledger table */
.gtable{width:100%;border-collapse:collapse;margin:.4em 0;font-size:15.5px}
.gtable td{vertical-align:top;padding:7px 10px;border-top:1px solid var(--line)}
.gtable td.grade{width:42px;font-family:var(--mono);font-weight:700}
.gtable td.gF{color:var(--F)} .gtable td.gV{color:var(--V)}
.gtable td.gL{color:var(--Lc)} .gtable td.gO{color:var(--O)}
/* reproducibility */
.reproduction{margin-top:1.8em;padding-top:.3em}
details.repro{border:1px solid var(--line);border-radius:8px;margin:.5em 0;background:var(--panel)}
details.repro summary{cursor:pointer;padding:9px 14px;font-family:system-ui,sans-serif;font-size:13px;
  display:flex;justify-content:space-between;gap:12px;align-items:center}
details.repro .sha{color:var(--dim);font-family:var(--mono)}
.mono{font-family:var(--mono)}
pre.transcript,pre.cmd{font-family:var(--mono);font-size:12.5px;line-height:1.5;white-space:pre;
  overflow:auto;background:#0f1420;color:#d6e0ef;padding:14px 16px;border-radius:0 0 8px 8px;margin:0}
pre.cmd{border-radius:8px;font-size:13px}
/* pager */
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:2.2em;padding-top:1em;
  border-top:1px solid var(--line);font-family:system-ui,sans-serif;font-size:14px}
.pager a{padding:6px 12px;border:1px solid var(--line);border-radius:8px}
.pager a.disabled{color:var(--line);pointer-events:none}
/* hub */
.toc{list-style:none;padding:0;margin:1em 0;counter-reset:none}
.toc li{border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:.55em 0}
.toc a{display:flex;gap:12px;align-items:baseline;color:var(--ink);font-weight:600;font-size:18px}
.toc .cnum{font-family:var(--mono);color:var(--accent);font-weight:700;min-width:34px}
.toc .cone{margin:.35em 0 0;color:var(--dim);font-size:15px;font-weight:400}
.ladderfig{margin:1.4em 0}
.ladder{width:100%;height:auto;color:var(--accent)}
.ladder .box{fill:var(--panel);stroke:var(--line)}
.ladder text{fill:var(--ink);font-family:system-ui,sans-serif}
.ladder text.dim{fill:var(--dim);font-size:11px}
figcaption{color:var(--dim);font-size:14.5px;margin-top:.5em}
.foot{max-width:820px;margin:0 auto;padding:20px 22px 50px;border-top:1px solid var(--line);
  color:var(--dim);font-family:system-ui,sans-serif;font-size:13px}
@media (max-width:560px){.kv{grid-template-columns:1fr;gap:2px}body{font-size:17px}}
