:root{--font-text: var(--font-literata), Georgia, serif;--font-ui: var(--font-text);--font-mono: ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--measure: 36rem;--gutter: 1.25rem;--leading: 1.65;--speed-k: 1}html[data-theme=light]{color-scheme:light;--bg: #fbf8f2;--fg: #231d18;--muted: #615650;--rule: #e6ded2;--link: #8b2e1f;--accent: #8b2e1f;--focus: #8b2e1f;--panel: #fffdf8;--hl: rgb(139 46 31 / .09);--ca: 139 46 31 / .06;--code-bg: #f1ebe0}html[data-theme=sepia]{color-scheme:light;--bg: #f3e8d2;--fg: #38291a;--muted: #67543b;--rule: #ddcdb0;--link: #883413;--accent: #883413;--focus: #883413;--panel: #f9f1e0;--hl: rgb(136 52 19 / .1);--ca: 136 52 19 / .065;--code-bg: #eadcc0}html[data-theme=dark]{color-scheme:dark;--bg: #16120f;--fg: #ece4d7;--muted: #aa9f8f;--rule: #312a25;--link: #e8a08f;--accent: #e8a08f;--focus: #e8a08f;--panel: #201b17;--hl: rgb(232 160 143 / .13);--ca: 232 160 143 / .05;--code-bg: #221d19}html[data-leading=tight]{--leading: 1.45}html[data-leading=loose]{--leading: 1.9}html[data-motion=slow]{--speed-k: 1.6}html[data-motion=fast]{--speed-k: .6}html:not([data-motion=off]){scroll-behavior:smooth}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{transition:none!important;animation:none!important}html[data-pattern=hide] .ca{display:none}html[data-font=dyslexic]{--font-text: var(--font-dyslexic), sans-serif;--font-mono: var(--font-dyslexic), monospace;font-size:calc(var(--scale, 1) * 92%)}html[data-font=dyslexic] .prose em{font-style:normal;font-weight:700}*,*:before,*:after{box-sizing:border-box}html{font-size:calc(var(--scale, 1) * 100%);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-text);font-size:1.0625rem;line-height:var(--leading)}img,svg,video,canvas,iframe{display:block;max-width:100%}h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0}button,input,select{font:inherit;color:inherit}::selection{background:var(--hl)}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:1rem;top:-4rem;z-index:60;padding:.5rem .8rem;background:var(--fg);color:var(--bg);border-radius:4px}.skip:focus{top:1rem}.sc{font-variant-caps:all-small-caps;letter-spacing:.07em;font-weight:600}.muted{color:var(--muted);font-style:italic}.mast{position:relative;isolation:isolate;border-bottom:1px solid var(--rule)}.ca{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,#000,transparent 30%,transparent 70%,#000);mask-image:linear-gradient(90deg,#000,transparent 30%,transparent 70%,#000)}.mast-home .ca{-webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 45%,transparent 35%,#000 100%);mask-image:radial-gradient(ellipse 60% 70% at 50% 45%,transparent 35%,#000 100%)}.mast-in{max-width:calc(var(--measure) + 12rem);margin:0 auto;padding:1rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;flex-wrap:wrap}.mast-name{margin:0;color:var(--fg);font-size:1.1875rem;font-weight:600;text-decoration:none}.mast-bar{display:flex;align-items:center;gap:1.5rem}.mast-bar nav{display:flex;gap:1.5rem}.mast-bar nav a{padding:.5rem 0;color:var(--fg);text-decoration:none}.mast-bar nav a:hover{text-decoration:underline}.mast-bar nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px}.mast-home .mast-in{flex-direction:column;justify-content:center;padding:3.5rem var(--gutter) 1.25rem;text-align:center}.mast-home .mast-name{font-size:clamp(2.3rem,1.7rem + 2.6vw,3.4rem);font-weight:400;line-height:1.1;letter-spacing:-.01em}.mast-role{max-width:28rem;margin-top:.75rem;color:var(--muted);font-style:italic;font-size:1.125rem;line-height:1.45}.mast-home .mast-bar{margin-top:2.5rem}.portrait img{width:8.75rem;height:8.75rem;margin:0 auto;border-radius:50%;object-fit:cover}.hero-portrait{margin:0 0 1.75rem}.hero-portrait img{width:6.5rem;height:6.5rem}@media(min-width:56.01rem){.mast-home .mast-in{padding-top:4rem}}@media(max-width:30rem){.mast-bar,.mast-bar nav{gap:1rem}.mast-in{padding-block:.75rem}.mast-home .mast-in{padding-top:2.25rem}.hero-portrait{margin-bottom:1.25rem}.hero-portrait img{width:5.25rem;height:5.25rem}.mast-name,.mast-role,.mast-bar{max-width:100%}.mast-home .mast-name{font-size:2rem}.mast-bar{flex-wrap:wrap;justify-content:center}}.col{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:3rem var(--gutter) 4rem}.col section{margin-top:3rem}.lead{font-size:1.125rem}h2.sc{display:flex;align-items:center;gap:1rem;color:var(--accent);font-size:1.0625rem}h2.sc:before,h2.sc:after{content:"";flex:1;border-top:1px solid var(--rule)}.sec-note{margin-top:.4rem;color:var(--muted);font-size:.9375rem;text-align:center;font-style:italic}.page-h{font-size:2.25rem;font-weight:400;line-height:1.2;text-align:center}.page-dek{margin-top:.75rem;color:var(--muted);font-size:1.125rem;font-style:italic;text-align:center}.back{margin-bottom:1.75rem}.back-pill{display:inline-flex;align-items:center;gap:.35rem;min-height:2rem;padding:0 .85rem;border-radius:999px;background:var(--hl);color:var(--muted);font:500 .8125rem/1 var(--font-ui);text-decoration:none}.back-pill:hover{color:var(--fg)}.back-pill span{font-size:1.15em;line-height:0}.epigraph{margin-bottom:3rem;text-align:center}.epigraph blockquote p{font-size:1.1875rem;font-style:italic;line-height:1.45}.epigraph blockquote p:before{content:"“"}.epigraph blockquote p:after{content:"”"}.epigraph figcaption{margin-top:.5rem;color:var(--muted);font-size:.875rem}.col-top{display:flex;flex-direction:column}.col-top>.epigraph{order:-1}.contents{margin-top:1rem}.contents li{padding:.7rem 0}.line{display:flex;align-items:baseline;gap:.5rem}.line .t{color:var(--fg);font-weight:600;text-decoration:none}.line .t:hover{text-decoration:underline;text-decoration-color:var(--accent)}.line .t.draft{color:var(--muted);font-weight:400;font-style:italic}.lead-dots{flex:1 1 1.5rem;min-width:1.5rem;border-bottom:1px dotted var(--muted);opacity:.5}.line time,.line .area{flex:none;color:var(--muted);font-size:.9375rem;font-variant-numeric:tabular-nums}.contents .dek{max-width:30rem;margin-top:.1rem;color:var(--muted);font-size:.9375rem}.host{font-style:italic}.new-dot{display:inline-block;width:.45rem;height:.45rem;margin-left:.4rem;border-radius:50%;background:var(--accent);vertical-align:.15em}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));column-gap:2rem;margin-top:1rem}.cards li{padding:.9rem 0 1rem;border-bottom:1px solid var(--rule)}.cards .tag{color:var(--muted);font-size:.9375rem;font-variant-caps:all-small-caps;letter-spacing:.06em}.card-t{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-top:.1rem}.card-t .t{color:var(--fg);font-weight:600;text-decoration:none}.card-t .t:hover{text-decoration:underline;text-decoration-color:var(--accent)}.card-t .t [aria-hidden]{color:var(--muted);font-weight:400}.card-t span.t:hover{text-decoration:none}.priv{flex:none;color:var(--muted);font-size:.9375rem;font-variant-caps:all-small-caps;letter-spacing:.06em}.gh{flex:none;display:inline-grid;place-items:center;width:2rem;height:2rem;margin:-.45rem -.45rem -.45rem 0;border-radius:50%;color:var(--muted);align-self:center}.gh:hover{color:var(--accent);background:var(--hl)}.gh svg{width:1.05rem;height:1.05rem}.gh-in svg{display:inline-block;width:.95rem;height:.95rem;margin-left:.45rem;vertical-align:-.1em;color:var(--muted)}.cards .dek{margin-top:.2rem;color:var(--muted);font-size:.9375rem}.desk .lbl{color:var(--accent)}.desk .bk{margin-top:.25rem;color:var(--fg);font-size:.9375rem}.desk .by:before{content:", "}.desk .note{margin-top:.25rem;font-style:italic}.desk [data-pick-one]+[data-pick-one]{margin-top:.9rem}.desk-tabs{display:flex;flex-wrap:wrap;gap:0 .85rem;margin-top:.35rem;border-bottom:1px solid var(--rule)}.desk-tab{position:relative;padding:.3rem 0 .4rem;border:0;background:none;color:var(--muted);font-size:.8125rem;cursor:pointer;transition:color calc(.2s * var(--speed-k))}.desk-tab:hover,.desk-tab[aria-selected=true]{color:var(--fg)}.desk-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}.desk-tab[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform-origin:left;animation:desk-turn calc(7s * var(--speed-k)) linear}.desk:is(:hover,:focus-within) .desk-tab:after{animation-play-state:paused}.desk.held .desk-tab:after{animation:none}@keyframes desk-turn{0%{transform:scaleX(0)}}.desk.tabbed .desk-panels{display:grid;margin-top:.75rem}.desk.tabbed .desk-panel{grid-area:1 / 1;margin:0;visibility:hidden;opacity:0}.desk.tabbed .desk-panel.on{visibility:visible;opacity:1;transition:opacity calc(.35s * var(--speed-k)) ease}.desk.tabbed .kind{display:none}.desk.tabbed .bk{margin-top:0}.mind{display:none}@media(max-width:70rem){.mind{display:block}}.mind .desk .lbl{display:none}.mind .desk{margin-top:1rem}.mind .desk-tabs{margin-top:0}.desk-side{display:none}@media(min-width:70.01rem){.desk-side{display:block;position:sticky;height:0;width:13rem;top:clamp(1rem,calc(100vh - var(--side-h, 0px) - 1.5rem),6.5rem);margin-left:max(calc(1.25rem + var(--measure) / 2 - 50vw),calc((50vw - var(--measure) / 2 + 13rem) / -2))}.desk-side .desk .lbl{font-size:.9375rem}.desk-side .desk .bk{margin-top:.35rem;line-height:1.4}.desk-side .desk.tabbed .bk{margin-top:0}.desk-side .desk cite{display:block;font-weight:600;font-style:normal}.desk-side .desk .by{color:var(--muted)}.desk-side .desk .by:before{content:none}.desk-side .desk .note{margin-top:.5rem;color:var(--muted);font-size:.875rem;line-height:1.5}}@media(min-width:70.01rem){.desk-side.tall{position:relative;top:0}}@media(min-width:70.01rem)and (max-height:42rem){.desk-side:not(.fit){position:relative;top:0}}[data-pick-one]>[hidden]{display:none}.art{display:grid;grid-template-columns:minmax(var(--gutter),1fr) minmax(0,var(--measure)) minmax(var(--gutter),1fr);padding:3rem 0}.art>*{grid-column:2}.art-head{margin-bottom:2.5rem;text-align:center}.kicker{color:var(--accent)}.art-head h1{margin-top:.5rem;font-size:clamp(2rem,1.5rem + 2vw,2.75rem);font-weight:400;line-height:1.15}.art-head .dek{margin-top:.75rem;color:var(--muted);font-size:1.1875rem;font-style:italic;line-height:1.45}.byline{margin-top:1rem;color:var(--muted);font-size:.875rem}.actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 1.25rem;margin-top:1.5rem}.btn{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 1.1rem;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);text-decoration:none;cursor:pointer}.btn:hover{background:var(--accent);color:var(--bg)}.src{display:inline-flex;align-items:center;gap:.4rem}.src svg{width:1rem;height:1rem}.art-foot{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--rule);color:var(--muted);text-align:center}.related{margin-top:.75rem}.related a{color:var(--fg)}.listen-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:2rem;margin-top:1rem;padding:0 .9rem 0 .75rem;border:0;border-radius:999px;background:var(--hl);color:var(--fg);font:500 .8125rem/1 var(--font-ui);cursor:pointer}.listen-btn:hover{color:var(--accent)}.listen-btn[hidden]{display:none}.listen-btn svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.art-tools{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.art-tools .listen-btn{margin-top:0}.share-link{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:0;background:none;color:var(--link);font:inherit;cursor:pointer}.share-link:hover{color:var(--accent)}.share-link[hidden]{display:none}.share-link svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.toc-h{margin-bottom:.6rem;color:var(--accent);font-size:.9375rem;font-variant-caps:all-small-caps;letter-spacing:.07em;font-weight:600}.toc a{position:relative;isolation:isolate;display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.6rem;padding-right:.4rem;color:var(--muted);font-size:.875rem;line-height:1.35;text-decoration:none;transition:color calc(.2s * var(--speed-k))}.toc a.done{color:color-mix(in srgb,var(--fg) 55%,var(--muted))}.toc a:hover,.toc a.active{color:var(--fg)}.toc a.active .n{color:var(--accent)}.toc .n,.toc .tt{padding:.38rem 0}.toc .n{text-align:right;font-variant-caps:all-small-caps;letter-spacing:.05em}.toc .fill{position:absolute;inset:0;z-index:-1;background:var(--hl);pointer-events:none;transform-origin:0 50%;transform:scaleX(0);will-change:transform;transition:transform calc(.12s * var(--speed-k)) linear}.toc a.done .fill{transform:none}.toc li:first-child .fill{border-top-left-radius:6px;border-top-right-radius:6px}.toc a.active .fill{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.toc li:has(+li>a.active) .fill{border-bottom-right-radius:6px}@media(min-width:70.01rem){.toc{position:fixed;top:50%;translate:0 -50%;left:max(1.25rem,calc((50% - var(--measure) / 2 - 13rem) / 2));width:13rem;max-height:calc(100vh - 8rem);overflow-y:auto}}.dock,.toc-scrim{display:none}@media(max-width:70rem){.is-article{--dock-h: 3.6rem;padding-bottom:var(--dock-h)}.toc{position:fixed;inset:auto 0 0;z-index:35;max-height:72vh;overflow:auto;padding:1.25rem var(--gutter) calc(var(--dock-h) + 1rem);background:var(--panel);border-top:1px solid var(--rule);border-radius:14px 14px 0 0;transform:translateY(100%);visibility:hidden;transition:transform calc(.25s * var(--speed-k)) ease,visibility calc(.25s * var(--speed-k))}.toc-open .toc{transform:none;visibility:visible}.toc-scrim{display:block;position:fixed;inset:0;z-index:34;background:#0000004d;opacity:0;pointer-events:none;transition:opacity calc(.25s * var(--speed-k))}.toc-open .toc-scrim{opacity:1;pointer-events:auto}.dock{display:block;position:fixed;inset:auto 0 0;z-index:36}.dock button{position:relative;isolation:isolate;display:block;width:100%;padding:.9rem var(--gutter) calc(.9rem + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--rule);background:var(--panel);text-align:left;font-size:.875rem;cursor:pointer}.dock-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.dock-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-size:.9375rem}.dock-label .n{margin-right:.3rem;color:var(--accent);font-variant-caps:all-small-caps;letter-spacing:.05em}.dock-open{flex:none;display:inline-flex;align-items:center;gap:.3rem;color:var(--accent);font-size:.9375rem;font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.07em}.dock-open svg{width:.8rem;height:.8rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:rotate calc(.2s * var(--speed-k))}.toc-open .dock-open svg{rotate:180deg}.dock-track{position:absolute;inset:0;z-index:-1}.dock-progress{display:block;height:100%;background:var(--hl);transform-origin:0 0;transform:scaleX(0);will-change:transform}}.prose{font-size:1.125rem;line-height:var(--leading)}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2.4em;font-size:1.375rem;font-weight:600;line-height:1.3;scroll-margin-top:5rem}.prose h3{margin-top:2em;font-size:1.125rem;font-style:italic;font-weight:400;scroll-margin-top:5rem}.prose h2 .h-link{margin-left:.45em;color:var(--muted);font-weight:400;text-decoration:none;opacity:0;transition:opacity calc(.15s * var(--speed-k)),color calc(.15s * var(--speed-k))}.prose h2:hover .h-link,.prose h2 .h-link:focus-visible,.prose h2 .h-link.done{opacity:1}.prose h2 .h-link:hover,.prose h2 .h-link.done{color:var(--accent)}.prose h2 .h-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px;opacity:1}@media(hover:none){.prose h2 .h-link{opacity:1}}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent)}.prose strong{font-weight:600}.prose hr{margin:2.5em auto;width:30%;border:0;border-top:1px solid var(--rule)}.prose code{font-family:var(--font-mono);font-size:.82em;padding:.1em .3em;border-radius:3px;background:var(--code-bg)}.prose pre{position:relative;overflow-x:auto;padding:1rem 1.1rem;border-radius:6px;background:var(--code-bg);font-size:.9375rem;line-height:1.55}.prose pre code{padding:0;background:none;font-size:.85em}.prose blockquote{padding-left:1.1rem;border-left:2px solid var(--accent);color:var(--muted);font-style:italic}.prose table:not(.ops){width:100%;border-collapse:collapse;font-size:1rem}.prose table:not(.ops) th,.prose table:not(.ops) td{padding:.45rem .75rem .45rem 0;border-top:1px solid var(--rule);text-align:left;vertical-align:top}.prose figure img,.prose figure video,.prose figure iframe{margin:0 auto;border-radius:4px}.prose figcaption{margin-top:.6rem;color:var(--muted);font-size:.9375rem;text-align:center}.prose aside{padding:.6rem 0 .6rem 1rem;border-left:1px solid var(--rule);color:var(--muted);font-size:.9375rem}.code-copy{position:absolute;top:.45rem;right:.45rem;min-height:1.75rem;padding:0 .6rem;border:1px solid var(--rule);border-radius:999px;background:var(--panel);color:var(--muted);font:500 .75rem/1 var(--font-ui);cursor:pointer;opacity:0;transition:opacity calc(.15s * var(--speed-k))}.prose pre:hover .code-copy,.code-copy:focus-visible,.code-copy.done{opacity:1}@media(hover:none){.code-copy{opacity:1}}.art .prose{counter-reset:sec}.art .prose h2{counter-increment:sec}.art .prose h2:before{content:counter(sec,upper-roman) ". ";color:var(--accent);font-weight:400}.art .prose>p:first-child:first-line{font-variant-caps:small-caps;letter-spacing:.03em}.prose>p,.prose .katex-display{content-visibility:auto;contain-intrinsic-size:auto 3rem}.prose .katex{font-size:1.08em}.prose .katex-display{margin:1.25rem 0;padding:.25rem 0;overflow-x:auto;overflow-y:hidden}.callout{padding:1rem 1.25rem;border-top:1px solid var(--accent);border-bottom:1px solid var(--rule);font-size:1rem}.callout-h{color:var(--accent);font-variant-caps:all-small-caps;letter-spacing:.07em;font-weight:600}.callout dt{margin-top:.6rem;font-style:italic}.callout dd{color:var(--muted)}.spec div{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1rem;padding:.5rem 0;border-top:1px solid var(--rule)}.spec div:last-child{border-bottom:1px solid var(--rule)}.spec dt{color:var(--muted);font-style:italic}.ops{width:100%;border-collapse:collapse;font-size:1rem}.ops th,.ops td{padding:.55rem .75rem .55rem 0;border-top:1px solid var(--rule);text-align:left;vertical-align:top}.ops thead th{border-top:0;color:var(--muted);font-weight:400;font-size:.875rem;font-style:italic}.ops th[scope=row]{font-weight:400;width:40%}.ops td code{display:inline-block;margin:0 .2rem .25rem 0}@media(max-width:30rem){.spec div{grid-template-columns:1fr;gap:0}}.embed-frame{display:grid;place-items:center;align-content:center;gap:.75rem;aspect-ratio:4 / 3;padding:1rem;border:1px solid var(--rule);background:var(--code-bg);text-align:center}.embed-frame p{color:var(--muted);font-size:.9375rem;font-style:italic}.embed-frame:has(iframe){display:block;padding:0}.embed-frame iframe{width:100%;height:100%;border:0}.embed figcaption{margin-top:.6rem;color:var(--muted);font-size:.9375rem;text-align:center}.about .portrait{margin:1.5rem 0 2rem}.about>p+p{margin-top:1em}.about section>p,.about .fold-body>p{margin-top:1rem}.cv{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:.7rem 1rem;margin-top:1.25rem}.cv dt{color:var(--muted);font-style:italic}.cv dd>div+div{margin-top:.35rem}.fold-body{position:relative}.fold.is-clamped:not(.is-open) .fold-body{overflow:hidden;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}.fold.is-clamped .fold-body{transition:max-height calc(.35s * var(--speed-k)) ease}.fold-btn{display:block;margin:.6rem 0 0;padding:.2rem 0;border:0;background:none;color:var(--accent);cursor:pointer;font-size:.9375rem;font-style:italic}.fold-btn[hidden]{display:none}.fold-btn:hover{text-decoration:underline;text-underline-offset:.2em}@media(max-width:30rem){.cv{grid-template-columns:1fr;gap:.1rem}.cv dd+dt{margin-top:.6rem}}.foot{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:1.5rem var(--gutter) 3rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.875rem;text-align:center}.foot .links{margin-bottom:.6rem}.foot a{color:inherit}.foot a:hover{color:var(--fg)}.email-pic{text-decoration:none;border-bottom:1px solid currentColor}.email-pic:hover{border-bottom-width:2px}.email-img{display:inline-block;width:14.02em;max-width:100%;aspect-ratio:1402 / 130;vertical-align:-.3em;background:currentColor;-webkit-mask:url(/email.png) center / 100% 100% no-repeat;mask:url(/email.png) center / 100% 100% no-repeat}.copy{display:inline-flex;align-items:center;min-height:1.5rem;margin-left:.35rem;padding:0 .55rem;border:1px solid var(--rule);border-radius:999px;background:none;color:var(--muted);font:500 .75rem/1 var(--font-ui);vertical-align:.1em;cursor:pointer}.copy:hover{border-color:var(--muted);color:var(--fg)}.copy[hidden]{display:none}.reader-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;min-height:2.5rem;padding:0 .6rem;border:1px solid var(--rule);border-radius:999px;background:transparent;color:var(--fg);font:500 .875rem/1 var(--font-ui);cursor:pointer}.reader-btn:hover{border-color:var(--muted)}.reader-btn svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.reader-float{position:fixed;top:.75rem;right:max(.75rem,env(safe-area-inset-right));z-index:30;background:var(--panel);box-shadow:0 4px 16px #0000001f;opacity:0;visibility:hidden;transform:translateY(-.5rem);transition:opacity calc(.2s * var(--speed-k)),transform calc(.25s * var(--speed-k)) cubic-bezier(.2,.7,.2,1),visibility 0s linear calc(.25s * var(--speed-k))}.reader-float.shown{opacity:1;visibility:visible;transform:none;transition-delay:0s}.reader-float.shown.tucked:not(:focus-visible){transform:translateY(calc(-100% - 1rem))}.reader{position:fixed;inset:auto;top:4rem;right:1rem;margin:0;width:min(17.5rem,calc(100vw - 2rem));max-height:calc(100vh - 5rem);overflow:auto;padding:0;border:1px solid var(--rule);border-radius:14px;background:var(--panel);color:var(--fg);box-shadow:0 1px 2px #0000000d,0 12px 32px #0000001f;font:.875rem/1.4 var(--font-ui);transition:opacity calc(.16s * var(--speed-k)),translate calc(.2s * var(--speed-k)) cubic-bezier(.2,.7,.2,1),overlay calc(.2s * var(--speed-k)) allow-discrete,display calc(.2s * var(--speed-k)) allow-discrete}.reader::backdrop{background:transparent}.reader:not(:popover-open){opacity:0;translate:0 -.25rem}@starting-style{.reader:popover-open{opacity:0;translate:0 -.25rem}}@supports (position-area: bottom){@media(min-width:40.01rem){.reader-btn{anchor-name:--reader}.reader{position-anchor:--reader;inset:auto;position-area:bottom span-left;margin-top:.5rem;position-try-fallbacks:flip-inline,flip-block,flip-block flip-inline}}}@media(max-width:40rem){.reader{inset:auto 0 0;width:100%;max-height:85vh;border-radius:14px 14px 0 0;border-width:1px 0 0}.reader:not(:popover-open){opacity:1;translate:0 100%}@starting-style{.reader:popover-open{opacity:1;translate:0 100%}}}@supports (corner-shape: squircle){@media(min-width:40.01rem){.reader{corner-shape:squircle;border-radius:24px}}}.reader{--wash: color-mix(in srgb, var(--fg) 5%, transparent)}.rtabs{display:flex;align-items:center;gap:.25rem;padding:.35rem .35rem 0;border-bottom:1px solid var(--rule)}.rtablist{display:flex;flex:1;min-width:0}.rtablist button{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;min-height:2.4rem;padding:0;border:0;border-radius:8px 8px 0 0;background:none;color:var(--muted);cursor:pointer}.rtablist button:hover{background:var(--wash);color:var(--fg)}.rtablist button.on:hover{background:none}.rtablist button.on{color:var(--fg)}.rtablist button.on:after{content:"";position:absolute;inset:auto .6rem -1px;height:2px;border-radius:2px;background:var(--accent)}.rtablist svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.rtablist .aa{font:600 .95rem/1 var(--font-ui)}.reader-x{flex:none;width:2.25rem;height:2.25rem;border:0;border-radius:6px;background:none;color:var(--muted);font-size:1.25rem;cursor:pointer}.reader-x:hover{background:var(--wash);color:var(--fg)}.rbody{padding:.6rem .6rem .75rem}.rpanel[hidden]{display:none}.reader fieldset{margin:0 0 .9rem;padding:0;border:0}.reader fieldset:last-child{margin-bottom:0}.reader .lbl{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.8125rem}.reader .hint{margin-top:.4rem;padding:0 .5rem;color:var(--muted);font-size:.75rem;line-height:1.45}.reader .row{display:flex;justify-content:space-between;align-items:baseline}.opts{display:grid;gap:.1rem}.opts label{position:relative;display:flex;align-items:center;gap:.6rem;min-height:2.35rem;padding:0 .5rem;border-radius:8px;cursor:pointer}.opts label:hover{background:var(--wash)}.opts input{position:absolute;width:0;height:0;margin:0;opacity:0}.opts .ic{flex:none;width:1.05rem;height:1.05rem;fill:none;stroke:var(--muted);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.opts .opt-t{flex:1;min-width:0}.opts .tick{flex:none;width:1rem;height:1rem;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}.opts input:checked~.tick{visibility:visible}.opts input:checked~.opt-t{font-weight:600}.opts input:checked~.ic{stroke:var(--fg)}.opts input:focus-visible~.opt-t{outline:2px solid var(--focus);outline-offset:4px;border-radius:3px}.opts input[value=dyslexic]~.opt-t{font-family:var(--font-dyslexic),sans-serif;font-size:.8125rem}.rpanel .row{margin-top:.6rem;padding:0 .5rem}.rpanel input[type=range]{width:calc(100% - 1rem);min-height:1.5rem;margin:.25rem .5rem .6rem;accent-color:var(--fg)}.vox[hidden]{display:none}.vox{margin-bottom:.75rem}.vox .row{margin-top:.2rem;padding:0 .5rem}.vox select{width:calc(100% - 1rem);min-height:2.35rem;margin:0 .5rem;padding:0 .5rem;border:1px solid var(--rule);border-radius:8px;background:var(--panel);cursor:pointer}.vox select:hover{border-color:var(--muted)}.presets{display:flex;gap:.3rem;padding:0 .5rem}.presets label{position:relative;flex:1}.presets input{position:absolute;width:0;height:0;opacity:0}.presets span{display:grid;place-items:center;min-height:2.25rem;border:1px solid var(--rule);border-radius:8px;font-variant-numeric:tabular-nums;cursor:pointer}.presets label:hover span{background:var(--wash)}.presets input:checked+span{border-color:var(--accent);background:var(--hl);color:var(--fg);font-weight:600}.presets input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.reader-reset{display:flex;align-items:center;gap:.6rem;width:100%;min-height:2.35rem;padding:0 .5rem;border:0;border-radius:8px;background:none;color:var(--muted);text-align:left;cursor:pointer}.reader-reset svg{flex:none;width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.reader-reset:hover{background:var(--wash);color:var(--fg)}.rfoot{padding:.35rem .6rem .6rem;border-top:1px solid var(--rule)}@media(max-width:40rem){.rfoot{padding-bottom:calc(.6rem + env(safe-area-inset-bottom))}}.speaking{background:var(--hl);box-shadow:0 0 0 .4rem var(--hl);border-radius:2px}.listen-bar{position:fixed;left:50%;bottom:calc(1rem + var(--dock-h, 0px));z-index:40;transform:translate(-50%);display:flex;align-items:center;gap:.25rem;padding:.3rem .35rem .3rem 1rem;border-radius:999px;background:var(--fg);color:var(--bg);font:500 .8125rem/1 var(--font-ui);box-shadow:0 6px 24px #0003}.listen-bar[hidden]{display:none}.listen-bar [data-status]{margin-right:.4rem;white-space:nowrap}.listen-bar button{min-height:2.25rem;padding:0 .8rem;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer}.listen-bar button:hover{background:#80808040}.listen-bar button:focus-visible{outline-color:var(--bg)}.listen-bar svg{width:.95rem;height:.95rem;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.listen-bar .lb-speed{min-width:2.75rem;padding:0 .5rem;font-variant-numeric:tabular-nums}.listen-bar .lb-ic{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;padding:0}.listen-bar .lb-follow{display:inline-flex;align-items:center;gap:.35rem;padding:0 .75rem 0 .6rem;background:#80808038}.listen-bar .lb-follow[hidden]{display:none}.listen-bar:has(.lb-follow:not([hidden])) [data-status]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:24rem){.listen-bar{padding-left:.35rem}.listen-bar [data-status],.listen-bar .lb-t{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media screen and (scripting:enabled){html:not([data-motion=off]) [data-reveal]:not(.revealed){opacity:0;transform:translateY(12px)}}[data-reveal]{transition:opacity calc(.5s * var(--speed-k)) ease,transform calc(.6s * var(--speed-k)) cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--rv-i, 0) * 70ms * var(--speed-k))}[data-hl]{position:relative}[data-hl]>li{position:relative;z-index:1}.list-hl{position:absolute;top:0;left:0;z-index:0;border-radius:10px;background:var(--hl);opacity:0;pointer-events:none;scale:.97;transition:transform calc(.22s * var(--speed-k)) cubic-bezier(.2,.7,.2,1),width calc(.22s * var(--speed-k)),height calc(.22s * var(--speed-k)),opacity calc(.15s * var(--speed-k)),scale calc(.15s * var(--speed-k))}.list-hl.on{opacity:1;scale:1}.list-hl.down{scale:.98}@supports (corner-shape: squircle){.list-hl{corner-shape:squircle;border-radius:18px}}.peek{position:absolute;top:0;left:0;z-index:2;width:18rem;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:var(--code-bg);box-shadow:0 1px 2px #0000000d,0 12px 32px #00000024;opacity:0;scale:.96;pointer-events:none;transition:opacity calc(.16s * var(--speed-k)),scale calc(.16s * var(--speed-k)) cubic-bezier(.2,.7,.2,1)}.peek.on{opacity:1;scale:1}.peek img,.peek video{display:block;width:100%;height:auto}.peek-inline{display:none}@media not all and (hover:hover)and (pointer:fine)and (min-width:40.01rem){.peek-inline{display:block}.peek-inline:not(:empty){width:min(100%,22rem);margin-top:.6rem;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:var(--code-bg)}.peek-inline img,.peek-inline video{display:block;width:100%;height:auto}}@media print{.mast,.foot,.dock,.toc,.toc-scrim,.reader,.reader-float,.listen-bar,.listen-btn,.share-btn,.share-link,.h-link,.ca,.copy,.code-copy,.desk-side,.back{display:none!important}body{background:#fff;color:#000}a[href^=http]:after{content:" (" attr(href) ")";font-size:.85em;word-break:break-all}}
