@font-face{font-family:Fraunces;src:url(/_astro/fraunces-latin-opsz-normal.DihXLNYH.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;src:url(/_astro/fraunces-latin-ext-opsz-normal.CJcjJNj7.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1E00-1E9F,U+1EF2-1EFF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Next;src:url(/_astro/atkinson-hyperlegible-next-latin-wght-normal.BcXVPD7q.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Next;src:url(/_astro/atkinson-hyperlegible-next-latin-ext-wght-normal.C6vrW8VD.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1E00-1E9F,U+1EF2-1EFF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces fallback;src:local(Georgia),local(Times New Roman);size-adjust:103%;ascent-override:94%;descent-override:25%;line-gap-override:0%}@font-face{font-family:Atkinson fallback;src:local(Arial),local(Helvetica);size-adjust:101%;ascent-override:96%;descent-override:26%;line-gap-override:0%}:root{color-scheme:light dark;--paper:#ebedf0;--paper-2:#dfe2e7;--paper-3:#d2d6dd;--ink:#14161b;--ink-2:#474d58;--rule:#bfc4cc;--red:#a8231b;--green:#2b6436;--emit:#ffd9a0;--emit-ink:#7a4e0e;--focus:#14161b;--font-display:"Fraunces", "Fraunces fallback", Georgia, serif;--font-text:"Atkinson Next", "Atkinson fallback", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--ease:cubic-bezier(.2, .7, .1, 1);--dur:.48s;--measure:38rem;--wide:76rem;--gutter:clamp(1rem, 4vw, 3rem);--bar-h:3rem;--step--1:.875rem;--step-0:1.0625rem;--step-1:1.3125rem;--step-2:1.625rem;--step-3:clamp(1.9rem, 1.4rem + 2vw, 2.6rem);--step-4:clamp(2.4rem, 1.6rem + 3.6vw, 4rem);--step-5:clamp(3rem, 1rem + 8.4vw, 8.25rem)}@media (prefers-color-scheme:dark){:root{--paper:#16191e;--paper-2:#1e2229;--paper-3:#272c35;--ink:#e9e7e2;--ink-2:#a8aeb9;--rule:#353b46;--red:#e46a5e;--green:#7dbf8a;--emit-ink:#ffd9a0;--focus:#ffd9a0}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + 1rem)}html[data-motion=on]{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:var(--step-0);font-kerning:normal;font-variant-numeric:proportional-nums;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;min-height:100svh;margin:0;line-height:1.55;overflow-x:clip}img,video,canvas,svg{max-width:100%;height:auto;display:block}img,video{background:var(--paper-2)}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;font-optical-sizing:auto;margin:0;font-weight:400;line-height:1.05}h1{font-size:var(--step-5);letter-spacing:-.035em;font-weight:300;line-height:.92}h2{font-size:var(--step-4);letter-spacing:-.025em;font-weight:350}h3{font-size:var(--step-2);letter-spacing:-.01em;font-weight:500;line-height:1.15}p,ul,ol,dl,figure,pre,table{margin:0}p+p{margin-top:.9em}p{text-wrap:pretty}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:1px}code,pre,kbd,samp{font-family:var(--font-mono);font-size:.86em}:not(pre)>code{background:var(--paper-2);overflow-wrap:anywhere;border-radius:3px;padding:.05em .3em}cite{font-style:italic}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--ink);color:var(--paper);padding:.5rem .75rem;position:fixed;top:.5rem;left:.75rem;transform:translateY(-200%)}.skip:focus{transform:none}.wrap{width:min(100% - 2 * var(--gutter), var(--wide));margin-inline:auto}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1rem}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.45em}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);padding:.35em 1.1em .35em 0}.prose th{font-weight:600}.prose h2{font-size:var(--step-3);margin-top:3.5rem}.prose h3{margin-top:2.5rem}.prose h2+*,.prose h3+*{margin-top:1rem}main{display:block}.section{padding-block:clamp(4rem,9vw,8rem)}.muted{color:var(--ink-2)}.small{font-size:var(--step--1)}.todo{border-left:3px solid var(--red);background:color-mix(in srgb, var(--red) 9%, transparent);font-size:var(--step--1);padding:.4rem .75rem}.code{margin-block:1.5rem}.code figcaption{font-size:var(--step--1);color:var(--ink-2);overflow-wrap:anywhere;margin-bottom:.4rem}.code pre{background:var(--paper-2);border:1px solid var(--rule);tab-size:4;border-radius:2px;padding:1rem 1.1rem;font-size:.82rem;line-height:1.5;overflow-x:auto}.btn{font:inherit;font-size:var(--step--1);color:var(--ink);cursor:pointer;transition:background-color .16s var(--ease), color .16s var(--ease);background:0 0;border:1px solid;border-radius:2px;padding:.45rem .8rem;line-height:1.2}.btn:hover,.btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.btn[disabled]{opacity:.5;cursor:not-allowed}.facts{grid-template-columns:max-content 1fr;gap:.4rem 1.25rem;display:grid}.facts dt{color:var(--ink-2)}.facts dd{margin:0}@media (width<=34rem){.facts{grid-template-columns:1fr;gap:0}.facts dd{margin-bottom:.6rem}}@media (prefers-reduced-motion:reduce){html:not([data-motion=on]) *,html:not([data-motion=on]) :before,html:not([data-motion=on]) :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}html[data-motion=off] *,html[data-motion=off] :before,html[data-motion=off] :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.26s;animation-timing-function:var(--ease)}::view-transition-group(*){animation-duration:.52s;animation-timing-function:var(--ease)}html[data-motion=off]::view-transition-group(*),html[data-motion=off]::view-transition-old(*),html[data-motion=off]::view-transition-new(*){animation:none!important}@media (prefers-reduced-motion:reduce){html:not([data-motion=on])::view-transition-group(*),html:not([data-motion=on])::view-transition-old(*),html:not([data-motion=on])::view-transition-new(*){animation:none!important}}.progress{display:none}@supports (animation-timeline:scroll()){html[data-motion=on] .progress{background:var(--emit-ink);transform-origin:0;height:2px;animation:linear both progress-grow scroll(root);display:block;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}@keyframes progress-grow{to{transform:scaleX(1)}}}.term{--t-bg:#0f1412;--t-panel:#141b18;--t-ink:#d6e2da;--t-ink-2:#8fa198;--t-rule:#26332d;--t-cell:#1d2723;--t-a:#5b8db8;--t-b:#c9963a;--t-c:#d6e2da;--t-hot:#7cffb2;--t-miss:#e46a5e;--t-hit:#7dbf8a;background:var(--t-bg);color:var(--t-ink)}.term a{color:var(--t-ink)}.term :focus-visible{outline-color:var(--t-hot)}.term :not(pre)>code{background:var(--t-cell);color:var(--t-ink)}.bar[data-astro-cid-mlayzxje]{z-index:50;height:var(--bar-h);background:var(--paper);border-bottom:1px solid var(--rule);position:sticky;top:0}.bar__inner[data-astro-cid-mlayzxje]{width:min(100% - 2 * var(--gutter), var(--wide));align-items:center;gap:clamp(.75rem,3vw,2rem);height:100%;margin-inline:auto;display:flex}.bar__name[data-astro-cid-mlayzxje]{font-family:var(--font-display);white-space:nowrap;letter-spacing:-.01em;margin-right:auto;font-size:1.05rem;font-weight:500;text-decoration:none}.bar__nav[data-astro-cid-mlayzxje] ul[data-astro-cid-mlayzxje]{gap:clamp(.9rem,3vw,1.75rem);margin:0;padding:0;list-style:none;display:flex}.bar__nav[data-astro-cid-mlayzxje] a[data-astro-cid-mlayzxje]{padding-block:.6rem;font-size:.95rem;text-decoration:none}.bar__nav[data-astro-cid-mlayzxje] a[data-astro-cid-mlayzxje]:hover{text-decoration:underline}.motion[data-astro-cid-mlayzxje]{font:inherit;color:var(--ink-2);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:2px;align-items:center;gap:.45rem;padding:.3rem .55rem;font-size:.85rem;display:inline-flex}.motion[data-astro-cid-mlayzxje]:hover{color:var(--ink);border-color:var(--ink-2)}.motion__dot[data-astro-cid-mlayzxje]{width:.6rem;height:.6rem;transition:background-color .2s var(--ease);border:1.5px solid;border-radius:50%}.motion[data-astro-cid-mlayzxje][aria-pressed=true] .motion__dot[data-astro-cid-mlayzxje]{background:var(--emit-ink);border-color:var(--emit-ink)}@media (width<=30rem){.bar__name[data-astro-cid-mlayzxje]{background:var(--ink);flex:none;width:1.6rem;height:1.6rem;font-size:0;overflow:hidden;mask:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><rect x=\"3\" y=\"3\" width=\"6\" height=\"26\"/><rect x=\"23\" y=\"3\" width=\"6\" height=\"26\"/><rect x=\"9\" y=\"3\" width=\"14\" height=\"3\"/><circle cx=\"16\" cy=\"21\" r=\"5\"/></svg>") 50%/contain no-repeat}.motion__label[data-astro-cid-mlayzxje]{font-size:.8rem}.bar__nav[data-astro-cid-mlayzxje] ul[data-astro-cid-mlayzxje]{gap:.85rem}}.foot[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--rule);margin-top:2rem;padding-block:3rem 4rem}.foot__inner[data-astro-cid-jo6i4kqk]{gap:1rem;display:grid}.foot__name[data-astro-cid-jo6i4kqk]{font-family:var(--font-display);font-size:var(--step-2)}.foot__links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:.5rem 1.75rem;padding:0;list-style:none;display:flex}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{overflow-wrap:anywhere}
