@font-face{font-family:Libertinus Serif;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/LibertinusSerif-Regular-1608ab54.woff2)format(woff2)}@font-face{font-family:Libertinus Serif;font-style:italic;font-weight:400;font-display:block;src:url(/fonts/LibertinusSerif-Italic-d79c84e3.woff2)format(woff2)}:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#000;--fg:#e8dcc4}:root[data-theme=light]{--buncss-light:initial;--buncss-dark: ;color-scheme:light;--bg:#efe6d0;--fg:#2f271d}@media print{:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light;--bg:#efe6d0;--fg:#2f271d}}.back{display:inline-flex;color:inherit;text-decoration:none;opacity:.7;align-items: center;gap:.4rem;font-size:1.15rem;font-style:italic}.back:hover{opacity:1}.back:focus-visible{opacity:1}.back svg{transition:transform .15s ease-out}.back:hover svg{transform:translate(-.25rem)}.back:focus-visible svg{transform:translate(-.25rem)}#theme-toggle{display:flex;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items: center;gap:.5rem;margin:0;padding:0;line-height:0}#theme-toggle .label{opacity:.7;font-family:inherit;font-size:1rem;font-style:italic;line-height:1}#theme-toggle:hover .label{opacity:1}#theme-toggle:focus-visible .label{opacity:1}#theme-toggle .shadow{transition:transform .3s ease-in-out;transform:translate(-20px)}:root[data-theme=light] #theme-toggle .shadow{transform:translate(0)}@media (prefers-reduced-motion:reduce){.back svg,#theme-toggle .shadow{transition:none}}body{background:var(--bg);color:var(--fg);margin:0;padding:3rem 1.5rem;transition:background-color .2s;font-family:Libertinus Serif,Georgia,serif;font-size:1.4rem;line-height:1.6}@media (prefers-reduced-motion:reduce){body,main{transition:none}}main{color:var(--fg);max-width:46.5rem;margin:0 auto;transition:color .2s,text-shadow .2s}p{text-wrap:pretty}header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin:0 0 1rem}header #theme-toggle{position:relative;top:-.3rem}#theme-toggle.prompt{gap:.3rem;line-height:1}.prompt .gt{font-size:1rem}.prompt :-webkit-any(.gt,.caret){opacity:.7}.prompt :-moz-any(.gt,.caret){opacity:.7}.prompt :is(.gt,.caret){opacity:.7}.prompt:-webkit-any(:hover,:focus-visible) :-webkit-any(.gt,.caret){opacity:1}.prompt:-moz-any(:hover,:focus-visible) :-moz-any(.gt,.caret){opacity:1}.prompt:is(:hover,:focus-visible) :is(.gt,.caret){opacity:1}.prompt .caret{display:inline-block;background:currentColor;width:.0625rem;height:.95rem;margin-left:.05rem}#theme-toggle .caret.off{opacity:0}header+p{margin-top:0}@property --globe-rim{syntax:"<number>";inherits:true;initial-value:1}.sky{position:relative;aspect-ratio:2;--globe-fg:#e8dcc4;--globe-bg:#000;--globe-rim:1;margin:3rem 0 0;transition:--globe-rim .2s}:root[data-theme=light] .sky{--globe-rim:0}@media (prefers-reduced-motion:reduce){.sky{transition:none}}@media (max-width:36rem){.sky{aspect-ratio:400/380;margin-top:2.5rem}}.sky canvas{position:absolute;display:block;width:100%;height:100%;inset:0}.stars{position:absolute;z-index:-1;overflow:hidden;pointer-events:none;color:#e8dcc4;width:100%;transition:opacity .2s,visibility .2s;top:0;left:0}:root[data-theme=light] .stars{opacity:0;visibility:hidden}.stars .star{position:absolute;opacity:.55;background:currentColor;border-radius:50%}.stars .meteor{position:absolute;transform-origin:100% 50%;opacity:0;background:linear-gradient(90deg,#0000,currentColor);height:1px}.stars .twinkle{will-change:opacity}@media (prefers-reduced-motion:reduce){.stars{transition:none}}@media print{.stars{display:none}}main{text-shadow:0 0 2px #efe6d000,0 0 3px #efe6d000,0 0 5px #efe6d000}:root[data-theme=light] main{text-shadow:0 0 2px #efe6d0,0 0 3px #efe6d0,0 0 5px #efe6d0}.carta{position:absolute;z-index:-1;overflow:hidden;pointer-events:none;color:#2f271d;opacity:0;visibility:hidden;width:100%;transition:opacity .2s,visibility .2s;top:0;left:0}:root[data-theme=light] .carta{opacity:1;visibility:visible}.carta .lake{fill:currentColor;fill-opacity:.07}.carta .coast,.carta .shore{fill:none;stroke:currentColor;stroke-linejoin:round}.carta .coast{stroke-opacity:.6;stroke-width:.9}.carta .shore{stroke-opacity:.45;stroke-width:.6}.carta .river{fill:none;stroke:currentColor;stroke-opacity:.35;stroke-width:.6}.carta .border{fill:none;stroke:currentColor;stroke-opacity:.4;stroke-width:.8;stroke-dasharray:.5 3;stroke-linecap:round}@media (prefers-reduced-motion:reduce){.carta{transition:none}}@media print{.carta{display:none}}.section{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin:clamp(3rem,8svh,5.5rem) 0 .75rem}.sky+.section{margin-top:2.5rem}h2{letter-spacing:.04em;margin:0;font-size:1.6rem;font-variant-caps:small-caps;font-weight:400}.when{opacity:.6;font-size:1rem;font-style:italic}.essays{list-style:none;margin:0;padding:0}.essays li+li{margin-top:.6rem}h1{margin:0 0 0 -.076em;font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:2.1rem;font-weight:400}.essays a{color:inherit;text-decoration:none}.essays .title{background:linear-gradient(currentColor,currentColor)0 1.08em/0 2px no-repeat,linear-gradient(color-mix(in srgb,currentColor 35%,transparent),color-mix(in srgb,currentColor 35%,transparent))0 1.08em/100% 1px no-repeat;transition:background-size .25s ease-out}.essays .read:hover .title{background-size:100% 2px,100% 1px}.essays .read:focus-visible .title{background-size:100% 2px,100% 1px}.essays .tag{border:1px solid color-mix(in srgb,currentColor 35%,transparent);letter-spacing:.06em;vertical-align:.12em;opacity:.7;white-space:nowrap;border-radius:.2em;margin-left:.5rem;padding:.1em .45em;font-size:.7em}.essays .tag+.tag{margin-left:.3rem}.essays .tag:hover{opacity:1}.essays .tag:focus-visible{opacity:1}footer{display:flex;border-top:1px solid color-mix(in srgb,currentColor 15%,transparent);flex-wrap:wrap;justify-content:space-between;align-items: center;gap:.5rem 1.5rem;margin:1.5rem 0 0;padding-top:1.25rem}.mail{opacity:.6;font-size:1rem;font-style:italic}@media (prefers-reduced-motion:reduce){.essays .title{transition:none}}@font-face{font-family:Libertinus Serif Display;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/LibertinusSerifDisplay-Regular-43db357a.woff2)format(woff2)}@font-face{font-family:Nordwand Mono;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/NordwandMono-Regular-ba5c1e09.woff2)format(woff2)}::selection{background:color-mix(in srgb,var(--accent)35%,var(--bg))}.hi-stroke{stroke:var(--accent)}.hi-fill{fill:var(--accent)}h1{margin-left:0;font-family:Libertinus Serif Display,Libertinus Serif,Georgia,serif;line-height:1.2}main>.back{margin-bottom:1.25rem}section{margin-top:clamp(3rem,8svh,4.5rem)}section h2{position:relative;margin-bottom:.5rem}h2 .num{color:var(--accent);margin-right:.4em}code,pre{font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85em;font-style:normal}main p code,main li code{border:1px solid color-mix(in srgb,currentColor 18%,transparent);background:color-mix(in srgb,currentColor 7%,transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.2em;padding:0 .2em}main h2 code,.toc code{letter-spacing:0;font-variant-caps:normal}.nobr{white-space:nowrap}main p a,.faces a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor)0 1.08em/0 2px no-repeat,linear-gradient(color-mix(in srgb,currentColor 35%,transparent),color-mix(in srgb,currentColor 35%,transparent))0 1.08em/100% 1px no-repeat;transition:background-size .25s ease-out}main p a:hover,.faces a:hover{background-size:100% 2px,100% 1px}main p a:focus-visible{background-size:100% 2px,100% 1px}.faces a:focus-visible{background-size:100% 2px,100% 1px}@font-face{font-family:Libertinus Serif;font-style:normal;font-weight:600;font-display:block;src:url(/fonts/LibertinusSerif-SemiboldDigits-d2d3727d.woff2)format(woff2)}.fn-ref{font:inherit;font-feature-settings:"sups" 1;color:var(--accent);cursor:pointer;background:0 0;border:0;margin:0 0 0 .04em;padding:0 .08em;font-family:Libertinus Serif,Georgia,serif;font-style:normal;font-weight:600;line-height:1}.fn-ref:hover{color:var(--fg)}.fn-ref:focus-visible{color:var(--fg)}.fn{display:none;color:color-mix(in srgb,var(--fg)60%,var(--bg));transition:color .2s;font-size:1rem;font-style:normal;line-height:1.45}.fn-num{color:inherit;font-feature-settings:"sups" 1;margin-right:.2em;font-size:1.35em;font-weight:600;line-height:0}.fn a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:.2em;background:0 0}.fn.open{display:block;border-left:2px solid color-mix(in srgb,var(--fg)30%,var(--bg));background:color-mix(in srgb,var(--fg)5%,var(--bg));margin:.6em 0 .8em;padding:.55em .85em}.fn.hot{color:var(--fg)}@media (min-width:84rem){.fn{display:block;float:right;clear:right;width:13rem;margin:.35em -15.5rem .8em 0}.fn-ref{cursor:default}.src:hover+.fn-ref+.fn{color:var(--fg)}.src{transition:opacity .2s}.src:hover{opacity:.7}:root[data-theme=light] .src:hover+.fn-ref+.fn,:root[data-theme=light] .fn.hot{color:#000}:root[data-theme=light] .src:hover{opacity:.4}h2 .num{position:absolute;margin:0;right:calc(100% + .6em)}}.nowrap{white-space:nowrap}.byline{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem}.subtitle{opacity:.7;margin:0;font-size:1.25rem;font-style:italic;line-height:1.4}.byline .when{font-size:1.1rem}.byline+p{margin-top:clamp(3rem,8svh,4.5rem)}.fig{margin:2rem 0}.fig svg{display:block;overflow:visible;width:100%;height:auto}.fig figcaption{opacity:.6;margin-top:.75rem;font-size:1rem;font-style:italic}.fig output{font-variant-numeric:oldstyle-nums}.fig pre,pre.code{border:1px solid color-mix(in srgb,currentColor 15%,transparent);white-space:pre-wrap;border-radius:.25rem;margin:0;padding:1rem 1.25rem;font-size:.9rem;line-height:1.5}pre code{font-size:1em}kbd{border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:.2em;padding:0 .25em;font-family:inherit;font-style:italic}@media (prefers-reduced-motion:no-preference){html,.toc{scroll-behavior:smooth}}html{scroll-padding-top:2rem}.toc{--muted:color-mix(in srgb,var(--fg)55%,var(--bg));color:var(--muted);font-size:1rem;line-height:1.35}.toc-head{letter-spacing:.06em;color:color-mix(in srgb,var(--fg)80%,var(--bg));margin-bottom:.9rem;font-size:1.05rem;font-variant-caps:small-caps}.toc-body{position:relative;padding-left:1.1rem}.toc-rail{position:absolute;background:color-mix(in srgb,var(--fg)15%,var(--bg));width:1px;top:.3rem;bottom:.3rem;left:.2rem}.toc-rail-fill{background:var(--accent);transform-origin:top;height:100%;transform:scaleY(0)}.toc ol{list-style:none;margin:0;padding:0}.toc li{margin:0}.toc .part+.part{margin-top:.35rem}.toc a{display:flex;color:inherit;text-decoration:none;padding:.18rem 0;transition:color .2s}.toc .n{flex:none;min-width:1.4em}.toc a:hover{color:var(--fg)}.toc a:focus-visible{color:var(--fg)}.toc a.active{color:var(--accent)}@media not all and (min-width:84rem){.toc:popover-open{box-sizing:border-box;position:fixed;overflow:auto;border:1px solid color-mix(in srgb,var(--fg)18%,var(--bg));background:var(--bg);color:var(--muted);opacity:1;transition:opacity .2s ease-out,translate .2s ease-out,display .2s allow-discrete,overlay .2s allow-discrete;border-radius:.6rem;width:min(19rem,100vw - 2rem);max-height:min(32rem,100vh - 8rem);margin:0;padding:1.1rem 1.25rem 1.2rem;inset:auto 1rem 5.25rem auto;translate:0;box-shadow:0 1rem 3rem #0000004d}@starting-style{.toc:popover-open{opacity:0;translate:0 .5rem}}.toc-ring:not([hidden]){position:fixed;z-index:5;display:grid;background:var(--bg);color:var(--fg);font:inherit;cursor:pointer;border:0;border-radius:50%;place-items: center;width:3.25rem;height:3.25rem;padding:0;transition:background-color .2s;bottom:1rem;right:1rem;box-shadow:0 .3rem 1.2rem #00000040}.toc-ring svg{position:absolute;width:100%;height:100%;inset:0;rotate:-90deg}.toc-ring circle{fill:none;stroke-width:1.5}.toc-ring .track{stroke:color-mix(in srgb,var(--fg)18%,var(--bg))}.toc-ring .done{stroke:var(--accent);stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round}.toc-ring .where{position:relative;font-size:1rem}}@media (min-width:84rem){.toc{position:fixed;display:block;overflow-y:auto;scrollbar-width:none;background:0 0;border:0;width:12rem;height:-moz-fit-content;height:fit-content;max-height:calc(100vh - 8rem);margin:auto 0;padding:0 .5rem 0 0;inset:0 auto 0 max(1.5rem,50% - 39.75rem)}.toc-ring{display:none}}@keyframes settle{0%{opacity:0;transform:translateY(.5rem)}}@media (prefers-reduced-motion:reduce){main p a,.fn,.src,.toc a{transition:none}}main,:root[data-theme=light] main{text-shadow:none}:root{--accent:#8fb4f0}:root[data-theme=light]{--accent:#2c5a9e}#theme-toggle.variant{display:block;font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85rem;line-height:1}.variant>span{opacity:.7}#theme-toggle.variant:-webkit-any(:hover,:focus-visible)>span{opacity:1}#theme-toggle.variant:-moz-any(:hover,:focus-visible)>span{opacity:1}#theme-toggle.variant:is(:hover,:focus-visible)>span{opacity:1}.variant .v{color:var(--accent)}#theme-toggle.variant .label{font-size:inherit;font-style:normal}.variant .caret{display:inline-block;vertical-align:-.15rem;background:currentColor;width:.0625rem;height:.95rem;margin-left:.1rem}.variant .caret.off{display:none}.meme{margin:2rem 0 0}.meme img{display:block;border:1px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:.25rem;width:100%;height:auto}:root[data-theme=light] .meme img{mix-blend-mode:darken}pre.code{overflow-wrap:anywhere;margin:1.25rem 0}pre mark{color:var(--accent);background:0 0}pre .commented .comment{margin-left:1em}@media (min-width:40rem){pre .commented:not(.follow){display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:2em}pre .commented:not(.follow) .comment{margin-left:0}}.bg-fill{fill:var(--bg)}.bits{touch-action:pan-y;user-select:none;-webkit-user-select:none}.bits .bit{cursor:pointer;outline:none}.bits .bit:focus-visible rect{stroke:var(--accent);stroke-width:2.4}.kind{position:relative;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;border:1px solid color-mix(in srgb,currentColor 25%,transparent);border-radius:999px;padding:.2rem}.kind:before{content:"";position:absolute;width:calc((100% - .4rem)/var(--n,2));box-sizing:border-box;border:1px solid color-mix(in srgb,var(--accent)60%,transparent);background:color-mix(in srgb,var(--accent)14%,transparent);transform:translateX(calc(100%*var(--at,0)));border-radius:999px;transition:transform .28s cubic-bezier(.3,1.3,.5,1);top:.2rem;bottom:.2rem;left:.2rem}.kind:has(button[value=i8][aria-pressed=true]):before{transform:translate(100%)}.kind button{position:relative;color:inherit;font:inherit;opacity:.6;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.1rem 1rem;transition:color .28s,opacity .28s;font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85em}.pick button{padding:.1rem .7rem}.kind button:hover{opacity:.9}.kind button[aria-pressed=true]{color:var(--accent);opacity:1;cursor:default}.kind button:focus-visible{outline:1px solid var(--accent);outline-offset:.1rem}@media (prefers-reduced-motion:reduce){.kind:before,.kind button{transition:none}}.mode{display:flex;justify-content:center;align-items: center;gap:.75rem;margin-bottom:.75rem}.mode .range{opacity:.6;width:8em;margin:0;font-size:1rem;font-style:italic}.sum{text-align:center;font-variant-numeric:lining-nums;margin:.75rem 0 0;font-style:italic}.sum output{font-variant-numeric:lining-nums}.sum .total{display:block;min-height:1.5em}.fig text{fill:currentColor;font-style:italic}.fig text.hi-fill{fill:var(--accent)}.console{min-height:1.5em;margin:.75rem 0 0;font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85rem}.console .prompt{opacity:.5}.console output{color:var(--accent)}.panics{display:grid;gap:1rem}.term .lang,.sources .lang{display:block;opacity:.6;margin-bottom:.35rem;font-size:1rem;font-variant-caps:small-caps}.term pre{overflow-wrap:anywhere;min-height:3em}.term code mark{color:var(--accent);background:0 0}.typed.typing:after{content:"";display:inline-block;vertical-align:-.12em;background:currentColor;width:.08em;height:1em;margin-left:.05em}.stepper .file{margin:0 0 1rem;font-size:1rem;font-style:italic}.stepper .file .name{opacity:.6;font-style:normal;font-variant-caps:small-caps}.sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(28rem,1fr));gap:1rem}.listing{box-sizing:border-box;height:calc(100% - 2rem)}.listing span{transition:color .25s,opacity .25s}.listing span.now{color:var(--accent)}.listing span.skipped{opacity:.3}.try{margin-bottom:0}.try figcaption{opacity:1;margin-top:2.75rem;font-size:1.1rem}.try .input{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4em;font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85em}.try .input code{font-size:1em}.try input{border:0;border-bottom:1px solid var(--accent);color:var(--accent);font:inherit;background:0 0;width:9em;padding:.1em 0}.try input:focus{outline:none;background:color-mix(in srgb,var(--accent)12%,transparent)}.ways{border-collapse:collapse;width:100%;margin-top:1rem;font-size:1rem;font-style:italic}.ways td{vertical-align:top;border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);overflow-wrap:anywhere;padding:.35rem 0}.ways td:first-child{opacity:.7;width:42%;padding-right:1rem}.try .ways td:first-child{font-family:Nordwand Mono,Libertinus Serif,Georgia,serif;font-size:.85rem;font-style:normal}.try .ways td+td{color:var(--accent)}.shell .prompt{opacity:.55}.shell .path{color:var(--accent)}.codes td:first-child{width:5rem}.codes caption{caption-side:bottom;text-align:left;opacity:.6;margin-top:.75rem}@media (max-width:36rem){.ways td{display:block;border:0;width:auto;padding:0}.ways td:first-child{border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);width:auto;padding-top:.6rem}}@media (prefers-reduced-motion:no-preference){main>.back,main>header,main>.byline,main>.byline+p,main>.byline+p+p,main>.meme{animation:.52s cubic-bezier(.2,.7,.2,1) both settle}main>header{animation-delay:60ms}main>.byline{animation-delay:.12s}main>.byline+p{animation-delay:.18s}main>.byline+p+p{animation-delay:.24s}main>.meme{animation-delay:.32s}}@media (prefers-reduced-motion:reduce){.listing span{transition:none}}
