:root{
  --bg:#fbfaf7;--fg:#1d1c1a;--muted:#5d5a54;--rule:#e4e0d8;--card:#ffffff;
  --accent:#3b3bd6;--accent2:#0f8a6a;--warn:#b5521b;--code:#f2efe8;
  --serif:"Charter","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Inter","Helvetica Neue",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"JetBrains Mono","SFMono-Regular",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#121316;--fg:#e8e6e1;--muted:#a19d95;--rule:#2b2d33;--card:#1a1c21;
  --accent:#8f8fff;--accent2:#4fd1a8;--warn:#f0995e;--code:#20232a;}
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--serif);font-size:19px;line-height:1.62;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}
.layout{display:grid;grid-template-columns:270px minmax(0,760px);gap:56px;max-width:1140px;margin:0 auto;padding:0 28px}
nav.toc{position:sticky;top:0;align-self:start;max-height:100vh;overflow:auto;padding:40px 0;font-family:var(--sans);font-size:13.5px;line-height:1.45}
nav.toc .label{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--muted);margin-bottom:10px}
nav.toc ol{list-style:none;padding:0;margin:0;counter-reset:t}
nav.toc li{margin:0 0 6px}
nav.toc a{color:var(--muted);text-decoration:none}
nav.toc a:hover{color:var(--accent)}
main{padding:56px 0 120px}
header.hero{border-bottom:1px solid var(--rule);padding-bottom:28px;margin-bottom:36px}
.kicker{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);font-weight:600}
h1{font-family:var(--sans);font-weight:750;font-size:44px;line-height:1.08;letter-spacing:-.02em;margin:.35em 0 .3em}
.subtitle{font-size:21px;color:var(--muted);margin:0 0 18px}
.byline{font-family:var(--sans);font-size:14px;color:var(--muted)}
.byline strong{color:var(--fg)}
h2{font-family:var(--sans);font-size:28px;letter-spacing:-.01em;margin:2.4em 0 .5em;padding-top:.4em;border-top:1px solid var(--rule)}
h2 .num{color:var(--accent);margin-right:.35em;font-weight:600}
h3{font-family:var(--sans);font-size:20px;margin:1.8em 0 .4em}
h4{font-family:var(--sans);font-size:16px;margin:1.4em 0 .3em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
p,ul,ol{margin:0 0 1em}
li{margin-bottom:.35em}
code,.mono{font-family:var(--mono);font-size:.84em;background:var(--code);padding:.08em .35em;border-radius:4px}
pre{font-family:var(--mono);font-size:14px;line-height:1.5;background:var(--code);padding:16px 18px;border-radius:8px;overflow:auto;white-space:pre-wrap}
blockquote{margin:1.2em 0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--accent);color:var(--muted);font-style:italic}
.callout{background:var(--card);border:1px solid var(--rule);border-left:4px solid var(--accent2);border-radius:8px;padding:16px 20px;margin:1.4em 0;font-size:17.5px}
.callout.warn{border-left-color:var(--warn)}
.callout.accent{border-left-color:var(--accent)}
.callout .t{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:6px;color:var(--muted)}
.thesis{background:linear-gradient(135deg,rgba(59,59,214,.07),rgba(15,138,106,.07));border:1px solid var(--rule);border-radius:12px;padding:26px 30px;margin:1.2em 0}
.thesis ol{padding-left:1.2em}
table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14.5px;line-height:1.45;margin:1.2em 0 1.6em}
th,td{text-align:left;vertical-align:top;padding:9px 10px;border-bottom:1px solid var(--rule)}
th{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:2px solid var(--rule)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tr.total td{font-weight:700;border-top:2px solid var(--rule)}
.tag{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid currentColor}
.tag.a{color:var(--accent)}.tag.b{color:var(--accent2)}.tag.c{color:var(--warn)}
.flow{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:1.2em 0 1.6em;font-family:var(--sans);font-size:13px}
.flow .step{flex:1 1 120px;background:var(--card);border:1px solid var(--rule);border-radius:8px;padding:10px 12px;position:relative}
.flow .step b{display:block;font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:1.2em 0}
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:14px 18px;font-size:16.5px}
.card h4{margin-top:.2em}
dl.gloss dt{font-family:var(--sans);font-weight:700;font-size:16px;margin-top:.9em}
dl.gloss dd{margin:0 0 .2em 0;color:var(--fg)}
.small{font-size:15px;color:var(--muted)}
.question{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:18px 22px;margin:1.4em 0;font-size:16.5px}
.question .qt{font-family:var(--sans);font-weight:700;font-size:17px;margin-bottom:8px}
.question dl{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;margin:0}
.question dt{font-family:var(--sans);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:3px}
.question dd{margin:0}
footer{margin-top:4em;padding-top:1.5em;border-top:1px solid var(--rule);font-family:var(--sans);font-size:13.5px;color:var(--muted)}
@media (max-width:980px){
  .layout{grid-template-columns:1fr;gap:0}
  nav.toc{position:static;max-height:none;padding:24px 0 0;border-bottom:1px solid var(--rule)}
  h1{font-size:34px}
  .grid2{grid-template-columns:1fr}
  .question dl{grid-template-columns:1fr}
}
@media print{
  :root{--bg:#fff;--fg:#000;--muted:#444;--card:#fff;--code:#f4f4f4}
  body{font-size:11pt}
  nav.toc{display:none}
  .layout{display:block;max-width:none;padding:0}
  main{padding:0}
  h2{page-break-after:avoid;break-after:avoid}
  .question,.callout,table,.thesis{break-inside:avoid}
  a{color:#000}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8.5pt;color:#555;word-break:break-all}
}
#summary h2{border-top:0;margin-top:0}
