:root{--bg:#fbfaf7;--fg:#22211f;--muted:#6f6b63;--rule:#e4e0d6;--accent:#8a4b2a;--card:#f3f0e8}
@media (prefers-color-scheme:dark){:root{--bg:#171614;--fg:#e8e5de;--muted:#9a958a;--rule:#33312c;--accent:#d49a74;--card:#1f1e1b}}
*{box-sizing:border-box}
html{font-size:18px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:Georgia,"Iowan Old Style","Palatino Linotype",serif;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
header.site{max-width:44rem;margin:0 auto;padding:1.4rem 1.25rem 0}
header.site a{font:600 .72rem/1 system-ui,sans-serif;letter-spacing:.22em;text-decoration:none;color:var(--muted)}
main{max-width:44rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}
article{max-width:38rem;margin:0 auto}
.part{font:600 .72rem/1.4 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:2rem 0 .5rem}
h1{font-size:2.15rem;line-height:1.2;margin:.2rem 0 .6rem;font-weight:700;letter-spacing:-.01em}
.deck{font-size:1.15rem;font-style:italic;color:var(--muted);margin:0 0 .4rem;line-height:1.5}
.deck2{font:.85rem/1.5 system-ui,sans-serif;color:var(--muted);margin:0 0 .4rem}
.prose{margin-top:1.8rem}
.prose p{margin:0 0 1.1rem}
.prose h2{font:700 .8rem/1.4 system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin:2.2rem 0 .7rem;color:var(--accent)}
.prose h3{font-size:1.1rem;margin:1.8rem 0 .5rem}
.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 1.2rem}.prose li{margin:.3rem 0}
.prose .kicker{font:600 .72rem/1 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:2.4rem 0 .2rem}
.prose .attribution{text-align:right;color:var(--muted);font-style:italic}
.prose blockquote{margin:1.4rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--accent);font-style:italic}
.prose blockquote p{margin:.3rem 0}
.prose .poem p{margin:0;line-height:1.7}.prose .poem{margin:1.2rem 0;padding-left:1rem;border-left:3px solid var(--rule)}
.prose .note{background:var(--card);border-left:3px solid var(--accent);padding:.8rem 1rem;margin:1.4rem 0;border-radius:2px}
.prose .note p{margin:.3rem 0}
.prose .flow{background:var(--card);padding:.9rem 1.1rem;border-radius:4px;font:.9rem/1.7 system-ui,sans-serif;margin:1.2rem 0;text-align:center}
.tablewrap{overflow-x:auto;margin:1.4rem 0}
table{border-collapse:collapse;width:100%;font:.82rem/1.5 system-ui,sans-serif}
th,td{border:1px solid var(--rule);padding:.5rem .65rem;text-align:left;vertical-align:top}
th{background:var(--card);font-weight:600}
.flag{display:inline-block;padding:.05rem .5rem;border-radius:3px;font:600 .72rem system-ui,sans-serif;color:#fff}
.flag.red{background:#b3372f}.flag.yellow{background:#b8890a}.flag.blue{background:#2f64a8}.flag.green{background:#2f8a4f}
.checklist li{list-style:none;margin-left:-1.3rem}.checklist li::before{content:"☐ ";color:var(--muted)}
figure.illustration{margin:3rem 0 1rem;text-align:center}
figure.illustration img{max-width:100%;height:auto;border-radius:4px;display:block;margin:0 auto}
figure.illustration .placeholder{display:none}
figure.illustration.missing img{display:none}
figure.illustration.missing .placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:11rem;border:1.5px dashed var(--rule);border-radius:6px;color:var(--muted);font:.8rem/1.6 system-ui,sans-serif}
figcaption{font:.78rem system-ui,sans-serif;color:var(--muted);margin-top:.7rem}
.pager{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:start;border-top:1px solid var(--rule);margin-top:3rem;padding-top:1.4rem;font:.85rem/1.4 system-ui,sans-serif;max-width:38rem;margin-left:auto;margin-right:auto}
.pager a{text-decoration:none;color:var(--fg)}.pager a span{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.2rem}
.pager .next{text-align:right}.pager .toc-link{color:var(--accent);padding-top:.1rem}
footer{max-width:44rem;margin:0 auto;padding:1rem 1.25rem 3rem;font:.7rem system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.index h1.home{font-size:2.8rem;margin-top:2.5rem}
.lede{color:var(--muted);font-size:1.1rem;margin-bottom:2.5rem}
.partblock{margin:2.6rem 0;padding-top:1.2rem;border-top:1px solid var(--rule)}
.partblock .part{margin:0 0 .2rem}.partblock h2{font-size:1.5rem;margin:.1rem 0 .3rem}
.tagline{color:var(--muted);font-style:italic;margin:0 0 1rem}
.partblock ol{list-style:none;padding:0;margin:0}.partblock li{padding:.3rem 0}
.partblock a{color:var(--fg);text-decoration:none;border-bottom:1px solid transparent}.partblock a:hover{border-bottom-color:var(--accent);color:var(--accent)}
@media (max-width:560px){html{font-size:17px}h1{font-size:1.8rem}.pager{grid-template-columns:1fr 1fr}.pager .toc-link{grid-column:1/-1;order:3;text-align:center}}
@media print{header.site,.pager,footer{display:none}}
.prose .deck-inline{font-style:italic;color:var(--muted)}
.prose .formula{text-align:center;font-size:1.05rem;background:var(--card);padding:.7rem;border-radius:4px}
.prose hr{border:0;text-align:center;margin:1.8rem 0}.prose hr::before{content:"· · ·";color:var(--muted);letter-spacing:.4em}
