:root{--paper:#f6f3ef;--ink:#23211f;--muted:#6f6a64;--rule:#ddd6cd;--clay:#b5562f;--note:#ece6de;--display:"Geist", ui-sans-serif, system-ui, sans-serif;--body:"Source Serif 4", Georgia, "Times New Roman", serif;--mono:"Geist Mono", ui-monospace, Menlo, monospace}@media(prefers-color-scheme:dark){:root{--paper:#282a36;--ink:#eff0eb;--muted:#a7a9b4;--rule:#3c3f4f;--clay:#ff9f7a;--note:#313443;color-scheme:dark}}*,*::before,*::after{box-sizing:border-box}html{text-size-adjust:none;-webkit-text-size-adjust:none}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.125rem;line-height:1.7;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}::selection{background:var(--clay);color:var(--paper)}a{color:var(--clay)}a:focus-visible{outline:2px solid var(--clay);outline-offset:2px}nav.site{max-width:38rem;margin:0 auto;padding-top:1.5rem;display:flex;gap:1.25rem;font-family:var(--display);font-size:.9rem}nav.site a{color:var(--muted);text-decoration:none}nav.site a:first-child{color:var(--ink);font-weight:600;margin-right:auto}nav.site a:hover{color:var(--clay)}.book{max-width:38rem;margin:0 auto;padding-block:4rem 6rem}header.cover{display:grid;gap:1rem;padding-bottom:3rem;border-bottom:1px solid var(--rule);margin-bottom:2rem}.kicker{font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--clay)}h1{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,8vw,3.6rem);line-height:1.02;letter-spacing:-.03em;margin:0;text-wrap:balance}.sub{font-style:italic;color:var(--muted);margin:0}.cast{font-family:var(--display);font-size:.9rem;color:var(--muted);display:grid;gap:.3rem;margin-top:.5rem}.cast b{color:var(--ink);font-weight:600}.links{font-family:var(--display);font-size:.95rem;display:flex;gap:1.25rem;margin:0}.posts{list-style:none;padding:0;margin:0;display:grid;gap:2rem}.posts time{display:block;font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.04em}.posts a{font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2;letter-spacing:-.015em;color:var(--ink);text-decoration:none}.posts a:hover{color:var(--clay)}.posts p{margin:.4rem 0 0;color:var(--muted)}.post{counter-reset:chapter}nav.contents{font-family:var(--display);font-size:.9rem;margin-bottom:3.5rem;display:grid;gap:.35rem}nav.contents a{color:var(--ink);text-decoration:none;display:flex;gap:.75rem}nav.contents a span{color:var(--clay);font-family:var(--mono);font-size:.8rem;min-width:4.5rem;padding-top:.15rem}nav.contents a:hover{color:var(--clay)}.part{margin:4rem 0 2.5rem;padding:2rem 0 1.5rem;border-top:3px solid var(--ink);display:grid;gap:.4rem}.part h2{font-family:var(--display);font-weight:700;font-size:2rem;letter-spacing:-.02em;margin:0}.part p{color:var(--muted);font-style:italic;margin:0}.stamp{display:block;margin-top:3.25rem;font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.04em}.part+.stamp{margin-top:0}.post h3{counter-increment:chapter;font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.2;letter-spacing:-.015em;margin:.35rem 0 1rem;text-wrap:balance}.post h3::before{content:counter(chapter);color:var(--clay);margin-right:.4em;font-variant-numeric:tabular-nums}h4{font-family:var(--display);font-weight:600;font-size:1.15rem;margin:3.25rem 0 .5rem}p{margin:0 0 1.1rem}q{font-style:italic;quotes:"\201C" "\201D"}q.user{color:var(--clay);font-style:normal;font-family:var(--display);font-weight:500;font-size:1rem}code{font-family:var(--mono);font-size:.86em;background:var(--note);padding:.08em .35em;border-radius:3px;overflow-wrap:anywhere}.lesson{margin:.5rem 0 0;padding:.9rem 1.1rem;background:var(--note);border-radius:4px;font-family:var(--display);font-size:.95rem;line-height:1.55}.lesson .kicker{display:block;margin-bottom:.25rem}.lesson p{margin:0}hr{border:0;text-align:center;margin:.4rem 0 1.4rem}hr::after{content:"· · ·";color:var(--muted);letter-spacing:.6em}.tablewrap{overflow-x:auto;margin:.5rem 0 1.5rem}.ledger{width:100%;border-collapse:collapse;font-family:var(--display);font-size:.92rem;font-variant-numeric:tabular-nums}.ledger td{padding:.45rem 0;border-bottom:1px solid var(--rule);vertical-align:top}.ledger td:last-child{text-align:right;font-family:var(--mono);color:var(--clay);padding-left:1rem;white-space:nowrap}.post footer{margin-top:3rem;border-top:1px solid var(--rule);padding-top:1.5rem;color:var(--muted);font-family:var(--display);font-size:.85rem}