@font-face{font-family:cmu serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cmu-serif-500-roman.woff2)format("woff2")}@font-face{font-family:cmu serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cmu-serif-500-italic.woff2)format("woff2")}@font-face{font-family:cmu serif;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/cmu-serif-700-roman.woff2)format("woff2")}@font-face{font-family:cmu serif;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/cmu-serif-700-italic.woff2)format("woff2")}@font-face{font-family:cmu typewriter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cmu-typewriter-text-500-roman.woff2)format("woff2")}:root{--paper:#fdfdfb;--ink:#141414;--ink-2:#5a5a5a;--rule:#d9d9d4;--accent:#5b2e9e;--redact:#141414;--code-bg:#f3f3ef;color-scheme:light;--serif:"CMU Serif", "Latin Modern Roman", "Computer Modern", Georgia, serif;--mono:"CMU Typewriter", "Latin Modern Mono", ui-monospace, Menlo, Consolas, monospace;--col:clamp(36rem, 52vw, 46rem);--pad:clamp(1rem, 5vw, 2.5rem)}@media(prefers-color-scheme:dark){:root{--paper:#1c1d1f;--ink:#e8e6e1;--ink-2:#a19e98;--rule:#38393c;--accent:#c0a8f6;--redact:#e8e6e1;--code-bg:#24262a;color-scheme:dark}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.18rem;line-height:1.55;font-kerning:normal;font-variant-ligatures:common-ligatures;transition:background-color .2s,color .2s}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--paper);padding:.4rem .7rem;z-index:10}.page{max-width:calc(var(--col) + 2 * var(--pad));margin:0 auto;padding:0 var(--pad);display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.mast{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1.5rem;padding:2.4rem 0 0}.mark{font-family:var(--mono);font-size:1.05rem;letter-spacing:.02em;text-decoration:none}.mast nav{display:flex;flex-wrap:wrap;gap:.3rem 1.3rem;font-size:1rem}.mast nav a{text-decoration:none;color:var(--ink-2)}.mast nav a:hover,.mast nav a[aria-current]{color:var(--ink)}main{padding-top:3.5rem;flex:1 0 auto}h1,h2,h3{line-height:1.2}h1{font-weight:400;font-size:clamp(1.75rem,4vw,2.1rem);margin:0 0 1.2rem}h2{font-weight:700;font-size:1.24rem;margin:2.6rem 0 .8rem}h3{font-weight:700;font-size:1.06rem;margin:2rem 0 .6rem}.lede{font-size:1.2rem;line-height:1.5;margin:0 0 1rem}.intro{margin-bottom:3rem}.empty{color:var(--ink-2);font-style:italic}.prose p{margin:0 0 1rem;text-align:justify;hyphens:auto;-webkit-hyphens:auto}.prose p:has(>code){text-align:left}.prose ul,.prose ol{margin:0 0 1.15rem;padding-left:1.3rem}.prose li{margin:.35rem 0}.prose li::marker{color:var(--ink-2)}.prose blockquote{margin:1.5rem 0 1.5rem 1.2rem;font-style:italic}.prose hr{border:0;height:1px;background:var(--rule);margin:2.5rem 0}.prose img{max-width:100%;height:auto}.prose a.img-full{text-decoration:none;cursor:zoom-in}.numbered{counter-reset:sec}.numbered h2{counter-increment:sec}.numbered h2::before{content:counter(sec);margin-right:.9em}code,pre{font-family:var(--mono)}:not(pre)>code{font-size:.88em;overflow-wrap:anywhere}pre{background:var(--code-bg);border-left:2px solid var(--rule);padding:.9rem 1rem;overflow-x:auto;margin:1.1rem 0 1.4rem;line-height:1.45}pre code{font-size:.8rem}.chroma .c,.chroma .c1,.chroma .cm,.chroma .ch{font-style:italic;color:var(--ink-2)}.prose table{border-collapse:collapse;margin:1.3rem 0 1.6rem;font-size:.98rem;font-variant-numeric:lining-nums tabular-nums;width:100%;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}.prose thead:not(:has(th:not(:empty))){display:none}.prose th,.prose td{text-align:left;padding:.35rem 1.1rem .35rem 0;vertical-align:top}.prose thead th{font-weight:700;border-bottom:1px solid var(--ink)}.prose th:last-child,.prose td:last-child{padding-right:0}.redact{background:var(--redact);color:transparent;user-select:none;-webkit-user-select:none;box-decoration-break:clone;-webkit-box-decoration-break:clone}.notes{list-style:none;margin:0;padding:0}.notes li{display:grid;grid-template-columns:7.2rem 1fr;column-gap:1rem;padding:.45rem 0;align-items:baseline}.notes time{font-family:var(--mono);font-size:.82rem;color:var(--ink-2);white-space:nowrap}.notes a{line-height:1.35}.notes .n-meta{grid-column:2;font-size:.9rem;color:var(--ink-2);font-style:italic}.series{margin:2.6rem 0 0}.series h2{margin:0 0 .4rem}.series h2 .s-count{font-family:var(--mono);font-weight:400;font-size:.78rem;color:var(--ink-2);margin-left:.8rem}.series .s-intro{color:var(--ink-2);margin:0 0 .7rem}.head{margin-bottom:2.4rem;text-align:center}.head h1{margin-bottom:.7rem}.byline{color:var(--ink-2);font-size:1rem;margin:0 0 1.2rem}.byline span+span::before{content:"·";margin:0 .55em}.head .lede{text-align:left}.scope{font-size:.95rem;color:var(--ink-2);font-style:italic;margin:0;text-align:left}.toc{margin:0 0 2.4rem;padding:.9rem 0 .3rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.toc-h{font-weight:700;font-size:1.06rem;margin:0 0 .5rem}.toc ul{list-style:none;margin:0 0 .6rem;padding:0}.toc ul ul{margin:0;padding-left:1.2rem}.toc li{margin:.22rem 0;line-height:1.35}.toc a{text-decoration:none}.toc a:hover{text-decoration:underline;text-decoration-color:var(--accent)}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.pager{display:flex;justify-content:space-between;gap:1.5rem;margin-top:3.5rem;font-size:.98rem}.pager a{text-decoration:none;color:var(--ink-2)}.pager a:hover{color:var(--ink)}.pager a[rel=next]{margin-left:auto;text-align:right}.title{text-align:center;margin:0 0 2.4rem}.title h1{margin-bottom:.5rem}.title .who{margin:0;font-size:1.1rem}.portraits{display:flex;justify-content:center;align-items:flex-end;gap:1.5rem;margin:0 0 1.8rem}.fig{margin:0;min-width:0}.fig figcaption{font-family:var(--mono);font-size:.72rem;color:var(--ink-2);margin-top:.5rem;text-align:center}.portrait{font-family:var(--mono);line-height:1.02;letter-spacing:.06em;font-size:min(8.5px,calc((min(100vw - 2 * var(--pad),var(--col)) - 1.5rem)/101.8));color:var(--ink);background:0 0;border:0;padding:0;margin:0 auto;width:max-content;max-width:100%;overflow:hidden;text-align:left}.p-dark{display:none}@media(prefers-color-scheme:dark){.p-light{display:none}.p-dark{display:block}}.eml{font-family:var(--mono);font-size:.92em}.eml-x{display:none}.tango{font-family:var(--mono);color:var(--ink-2);line-height:1.1;white-space:pre;margin:2rem 0 .4rem}.projects{list-style:none;margin:0;padding:0}.projects li{padding:.9rem 0}.projects p{margin:0}.p-name{font-weight:700}.p-meta{font-weight:400;font-style:italic;font-size:.9rem;color:var(--ink-2);margin-left:.9rem}.unaudited{opacity:.5}.pending{margin-left:.9rem;color:var(--accent)}.foot{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1.2rem;margin-top:5rem;padding:1rem 0 2.5rem;border-top:1px solid var(--rule);font-size:.88rem;color:var(--ink-2)}.foot a{color:var(--ink-2);text-decoration:none}.foot a:hover{color:var(--ink)}.preview{font-family:var(--mono);font-size:.75rem;color:var(--accent);margin-left:.8rem;margin-right:auto}@media(min-width:72rem){body{font-size:1.24rem}.notes li{grid-template-columns:8rem 1fr}}@media(max-width:40rem){body{font-size:1.08rem}.mast{padding-top:1.6rem}main{padding-top:2.6rem}.prose p{text-align:left;hyphens:manual;-webkit-hyphens:manual}.notes li{grid-template-columns:1fr}.prose table{display:block;overflow-x:auto;font-size:.9rem}.notes .n-meta{grid-column:1}.portraits{flex-direction:column;align-items:center}.portrait{font-size:min(8.5px,calc((100vw - 2 * var(--pad))/53))}}@media(prefers-reduced-motion:reduce){body{transition:none}}@media print{.mast nav,.pager,.foot,.skip{display:none}}