:root{--font-display: "Newsreader", ui-serif, Georgia, serif;--font-body: "Source Serif 4", ui-serif, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--color-paper: oklch(96.5% .009 85);--color-paper-2: oklch(93.8% .011 85);--color-rule: oklch(84% .01 85);--color-rule-dark: oklch(38% .012 60);--color-neutral: oklch(55% .009 80);--color-muted: oklch(43% .01 70);--color-ink: oklch(21% .012 60);--color-accent: oklch(45% .14 27);--color-focus: oklch(45% .14 27);--text-xs: .8rem;--text-sm: .9rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9531rem;--text-2xl: 2.4414rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--rule-hair: 1px;--measure: 65ch}*{box-sizing:border-box}html,body{overflow-x:clip}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.62;font-variant-numeric:oldstyle-nums}.mast{display:grid;gap:var(--space-2xs);padding:var(--space-lg) clamp(1rem,4vw,3rem) 0;text-align:center}.mast-name{font-family:var(--font-display);font-weight:500;font-size:clamp(1.6rem,4vw,2.4rem);letter-spacing:-.01em;line-height:1.05;margin:0;overflow-wrap:anywhere;min-width:0}.mast-name a{color:inherit;text-decoration:none}.mast-line{margin:0;font-variant-caps:all-small-caps;letter-spacing:.08em;font-size:var(--text-sm);color:var(--color-muted)}.mast-line code{letter-spacing:0}.mast-nav ul{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs) var(--space-lg);list-style:none;padding:0;margin:var(--space-xs) 0 0}.mast-nav a{color:var(--color-ink);text-decoration:none;font-size:var(--text-sm);font-variant-caps:all-small-caps;letter-spacing:.07em;white-space:nowrap}.mast-nav a:hover{color:var(--color-accent)}.mast-nav a[aria-current=page]{color:var(--color-accent);border-bottom:2px solid var(--color-accent)}.mast-rule{border:0;border-top:var(--rule-hair) solid var(--color-rule-dark);border-bottom:var(--rule-hair) solid var(--color-rule-dark);height:4px;margin:var(--space-sm) 0 0}.doc{max-width:calc(var(--measure) + 2 * clamp(1rem,4vw,3rem));padding-inline:clamp(1rem,4vw,3rem);margin-inline:auto;padding-block:var(--space-2xl) var(--space-xl)}.measure{max-width:var(--measure);margin-inline:auto}.doc h1{font-family:var(--font-display);font-weight:500;font-size:clamp(1.7rem,3.2vw,var(--text-2xl));line-height:1.15;letter-spacing:-.015em;margin:0 0 var(--space-lg);overflow-wrap:anywhere;min-width:0}.doc h2{font-family:var(--font-body);font-weight:600;font-size:var(--text-md);font-variant-caps:all-small-caps;letter-spacing:.06em;margin:var(--space-2xl) 0 var(--space-sm)}.doc h2+p{margin-top:0}p{margin:0 0 var(--space-md)}.doc ul{margin:0 0 var(--space-md);padding-inline-start:var(--space-lg)}.doc li{margin-block-end:var(--space-xs)}cite{font-style:italic}.lede,.doc h1+p,.doc>p:first-child{font-size:var(--text-md);line-height:1.55}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}a:active{color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}code,.mono{font-family:var(--font-mono);font-size:.86em;font-variant-numeric:normal}.branchref{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted);margin:0 0 var(--space-sm)}.branchref a{color:var(--color-muted)}.branchref a:hover{color:var(--color-accent)}.pending{color:var(--color-muted);border-left:none;background:var(--color-paper-2);padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.pending:before{content:"to be written · ";font-variant-caps:all-small-caps;letter-spacing:.06em}figure{margin:var(--space-xl) 0}figure img{max-width:100%;height:auto;border:var(--rule-hair) solid var(--color-rule)}figcaption{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-xs)}a.shot{display:block;cursor:zoom-in}a.shot:focus-visible{outline-offset:4px}.lightbox{padding:0;border:var(--rule-hair) solid var(--color-rule-dark);max-width:min(96vw,1710px);max-height:94dvh;overflow:auto;cursor:zoom-out;background:var(--color-paper)}.lightbox img{display:block;width:100%;height:auto}.lightbox::backdrop{background:#1d17138c}.placeholder-slim{min-height:5rem;margin-block-end:var(--space-md)}.placeholder{display:grid;place-content:center;min-height:14rem;border:var(--rule-hair) dashed var(--color-rule-dark);background:var(--color-paper-2);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--text-sm);text-align:center;padding:var(--space-md)}.spec{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;font-size:var(--text-sm)}.spec th{text-align:left;font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.06em;font-size:var(--text-sm);padding:var(--space-xs) var(--space-md) var(--space-xs) 0;border-bottom:var(--rule-hair) solid var(--color-rule-dark)}.spec td{vertical-align:top;padding:var(--space-xs) var(--space-md) var(--space-xs) 0;border-bottom:var(--rule-hair) solid var(--color-rule)}.spec td:first-child{white-space:nowrap;font-weight:600}.spec a{white-space:nowrap}.spec .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);white-space:nowrap;text-align:right}.table-scroll{overflow-x:auto}.table-scroll .spec.wide{min-width:56rem}.dag-scroll{overflow-x:auto;border-block:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-lg);margin:var(--space-xl) 0}.dag-scroll svg{display:block;min-width:58rem;width:100%;height:auto}a.dag-node{text-decoration:none}.dag-node rect{fill:var(--color-paper);stroke:var(--color-rule-dark);stroke-width:1}.dag-node.join rect{stroke-dasharray:4 3}.dag-node text{font-family:var(--font-mono);fill:var(--color-ink)}.dag-node .pathline{fill:var(--color-muted);font-size:9.5px}.dag-node .leafline{font-size:11.5px}a.dag-node:hover rect,a.dag-node:focus-visible rect{stroke:var(--color-accent);stroke-width:1.5}a.dag-node:hover text,a.dag-node:focus-visible text{fill:var(--color-accent)}.dag-edge{fill:none;stroke:var(--color-rule-dark);stroke-width:1}.dag-legend{font-size:var(--text-sm);color:var(--color-muted)}.dag-mini rect{fill:var(--color-paper);stroke:var(--color-rule-dark);stroke-width:1}.dag-mini text{font-family:var(--font-mono);font-size:11px;fill:var(--color-ink)}.dag-mini path{fill:none;stroke:var(--color-rule-dark);stroke-width:1}.colophon{border-top:var(--rule-hair) solid var(--color-rule-dark);margin-top:var(--space-3xl);padding:var(--space-lg) clamp(1rem,4vw,3rem) var(--space-2xl)}.colophon p{font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.7;color:var(--color-muted);max-width:72ch;margin:0}.colophon a{color:var(--color-muted)}.colophon a:hover{color:var(--color-accent)}.tpl-draft{background:color-mix(in oklab,var(--color-accent) 7%,var(--color-paper));outline:1px dashed var(--color-accent);outline-offset:3px;position:relative}.tpl-draft:after{content:"rewrite";position:absolute;top:-.4rem;right:-.4rem;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-paper);background:var(--color-accent);padding:.05rem .3rem}.prose-editor{width:min(92vw,46rem);border:var(--rule-hair) solid var(--color-rule-dark);background:var(--color-paper);padding:var(--space-md)}.prose-editor::backdrop{background:#1d171366}.pe-orig{font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;color:var(--color-muted);background:var(--color-paper-2);padding:var(--space-xs) var(--space-sm);margin-block-end:var(--space-sm);max-height:12rem;overflow:auto}.pe-text{width:100%;min-height:9rem;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.5;color:var(--color-ink);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);padding:var(--space-xs) var(--space-sm);resize:vertical}.pe-text:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.pe-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-muted);margin-block-start:var(--space-xs)}@media(max-width:40rem){.doc{padding-block:var(--space-xl)}.doc h2{margin-top:var(--space-xl)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
