:root{--paper: #faf9f6;--ink: #1c1b19;--muted: #6d6a63;--accent: #2c4a63;--rule: #dedbd3;--code-bg: #f1efe9;--code-border: #e0ddd3}@media(prefers-color-scheme:dark){:root{--paper: #171614;--ink: #e9e6df;--muted: #98948a;--accent: #8fb4d1;--rule: #33312c;--code-bg: #201f1c;--code-border: #35332d}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:Iowan Old Style,Palatino Linotype,Palatino,Charter,Georgia,serif;font-size:1.1875rem;line-height:1.72;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}main{max-width:41rem;margin:0 auto;padding:0 1.25rem 6rem}header{text-align:center;padding:5.5rem 0 3.5rem}.kicker{font-family:ui-sans-serif,system-ui,Helvetica Neue,Arial,sans-serif;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:1.75rem}h1{font-size:clamp(2.4rem,7vw,3.6rem);font-weight:600;letter-spacing:-.015em;line-height:1.12;margin-bottom:3rem}.thesis{font-size:clamp(1.15rem,3vw,1.35rem);color:var(--muted);max-width:30rem;margin:0 auto 2.4rem;line-height:1.55}.promises{margin:0 auto;max-width:34rem}.promise{font-size:clamp(1.35rem,3.6vw,1.7rem);line-height:1.42;font-style:italic;margin:1.4rem 0}.promise em{font-style:normal;color:var(--accent)}.dateline{margin-top:3rem;font-family:ui-sans-serif,system-ui,Helvetica Neue,Arial,sans-serif;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.orn{border:0;text-align:center;margin:3.4rem auto;color:var(--muted)}.orn:before{content:"·   ·   ·";letter-spacing:.4em;font-size:1rem}nav.toc{font-family:ui-sans-serif,system-ui,Helvetica Neue,Arial,sans-serif;font-size:.92rem;line-height:2;column-count:2;column-gap:2.5rem;max-width:34rem;margin:0 auto}nav.toc div{break-inside:avoid}@media(max-width:34rem){nav.toc{column-count:1}}nav.toc a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}nav.toc a:hover{color:var(--accent);border-color:var(--accent)}nav.toc .n{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.55em}h2{font-size:1.55rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin:0 0 1.4rem;scroll-margin-top:2rem}h2 .n{display:block;font-family:ui-sans-serif,system-ui,Helvetica Neue,Arial,sans-serif;font-size:.72rem;letter-spacing:.24em;color:var(--muted);font-weight:400;margin-bottom:.6rem}p{margin:0 0 1.25rem}p:last-child{margin-bottom:0}strong{font-weight:700}a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}a:hover{border-bottom-color:var(--accent)}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.86em;background:var(--code-bg);border:1px solid var(--code-border);border-radius:3px;padding:.08em .35em}pre{background:var(--code-bg);border:1px solid var(--code-border);border-radius:0;padding:1.15rem 1.35rem;overflow-x:auto;margin:1.6rem 0;line-height:1.55}pre code{background:none;border:0;padding:0;font-size:.83rem;color:var(--ink)}.defn{border-left:3px solid var(--accent);padding:.35rem 0 .35rem 1.35rem;margin:1.8rem 0;font-style:italic}.shelf{list-style:none}.shelf li{margin:0 0 1.35rem;padding-left:1.5rem;text-indent:-1.5rem}.shelf .id{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;color:var(--muted);white-space:nowrap}.book{padding:1.4rem 1.6rem;margin:0 0 2.2rem}.book .label{font-family:ui-sans-serif,system-ui,Helvetica Neue,Arial,sans-serif;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}footer{text-align:center;color:var(--muted);font-size:.95rem;line-height:1.9}.bracket{--bracket-arm: 14px;--bracket-weight: 2px;--bracket-color: var(--muted);--bracket-style: solid;position:relative;border-radius:0;box-shadow:none}.bracket:before,.bracket:after{content:"";position:absolute;top:0;bottom:0;width:var(--bracket-arm);pointer-events:none;border-top:var(--bracket-weight) var(--bracket-style) var(--bracket-color);border-bottom:var(--bracket-weight) var(--bracket-style) var(--bracket-color)}.bracket:before{left:0;border-left:var(--bracket-weight) var(--bracket-style) var(--bracket-color)}.bracket:after{right:0;border-right:var(--bracket-weight) var(--bracket-style) var(--bracket-color)}
