@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-ext-wght-normal.hsMS0n0O.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-wght-normal.Bb8VGrTG.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.DHTKMUil.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.B1g8a0vD.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.BpXpdlRW.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.BsaNuasd.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.BVZ5su8S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.DMe4EKeb.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-700-normal.D8_1Nw6V.woff2) format("woff2"),url(/_astro/caveat-latin-700-normal.cPyBTTZN.woff) format("woff")}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/caveat-latin-ext-700-normal.DFbRgDry.woff2) format("woff2"),url(/_astro/caveat-latin-ext-700-normal.DjJQd59I.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-ext-400-normal.Bc8Ftmh3.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-ext-400-normal.fXTG6kC5.woff) format("woff")}:root{color-scheme:dark;--paper: #121316;--sheet: #1a1c20;--sheet-2: #1f2226;--tint: #262a2f;--manila: #e9d9b4;--manila-2: #d9c393;--manila-ink: #5b4a26;--ink: #eceae4;--ink-2: #b9bcc1;--ink-3: #8e949b;--rule: #2b2f34;--rule-2: #3e434a;--obj: #fbfaf6;--obj-ink: #16181c;--obj-ink-2: #474c54;--obj-ink-3: #6f747c;--obj-rule: #e3e3dd;--pen: #9db8f2;--pen-2: #c3d4f8;--pen-ink: #1f4fa3;--marker: #ffe36b;--marker-soft: #3a3423;--error: #ff9a8b;--ok: #7fd3a1;--ground: var(--paper);--file: var(--sheet);--file-2: var(--sheet-2);--file-3: var(--tint);--yellow: var(--marker);--yellow-wash: var(--marker-soft);--serif: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font: "Schibsted Grotesk Variable", "Helvetica Neue", Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;--step--1: clamp(.84rem, .82rem + .1vw, .9rem);--step-0: clamp(1rem, .97rem + .15vw, 1.08rem);--step-1: clamp(1.15rem, 1.08rem + .35vw, 1.32rem);--step-2: clamp(1.45rem, 1.3rem + .7vw, 1.9rem);--step-3: clamp(1.9rem, 1.6rem + 1.4vw, 2.8rem);--step-4: clamp(2.4rem, 1.9rem + 2.6vw, 4rem);--step-5: clamp(2.3rem, 1.5rem + 4.4vw, 5.4rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 5rem;--space-9: 7.5rem;--gutter: clamp(1rem, .5rem + 2.4vw, 2.5rem);--max: 74rem;--measure: 66ch;--radius: 10px;--radius-sm: 6px;--sheet-shadow: 0 1px 2px rgb(0 0 0 / .3), 0 12px 30px -14px rgb(0 0 0 / .6);--lift-shadow: 0 2px 6px rgb(0 0 0 / .35), 0 28px 56px -18px rgb(0 0 0 / .75);--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:6rem;scrollbar-color:var(--rule-2) var(--paper)}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--marker);color:var(--obj-ink)}:focus-visible{outline:2px solid var(--pen);outline-offset:3px;border-radius:3px}img,video,svg{display:block;max-width:100%}img,video{height:auto}h1,h2,h3,h4{margin:0;isolation:isolate;overflow-wrap:break-word;hyphens:manual;font-family:var(--serif);font-weight:640;line-height:1.08;letter-spacing:-.018em;text-wrap:balance;color:var(--ink)}h3,h4{font-family:var(--font);font-weight:700;letter-spacing:-.01em;line-height:1.25}p{margin:0;text-wrap:pretty}a{color:var(--pen);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--pen) 35%,transparent);transition:text-decoration-color .16s var(--ease-out),color .16s var(--ease-out)}a:hover{color:var(--pen-2);text-decoration-color:currentColor}input,button,textarea{font:inherit;color:inherit;caret-color:var(--pen)}.wrap{width:min(100% - 2 * var(--gutter),var(--max));margin-inline:auto}.mark{position:relative;color:var(--marker);white-space:nowrap}.mark:after{content:"";position:absolute;left:-.02em;right:-.04em;bottom:-.16em;height:.2em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 20' preserveAspectRatio='none'%3E%3Cpath d='M3 14 C 60 6, 120 4, 180 7 S 270 12, 297 6' fill='none' stroke='black' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 20' preserveAspectRatio='none'%3E%3Cpath d='M3 14 C 60 6, 120 4, 180 7 S 270 12, 297 6' fill='none' stroke='black' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat}.note{font-family:var(--hand);font-weight:700;color:var(--marker)!important;font-size:1.45rem;line-height:1.1}.mono{font-family:var(--mono);font-size:.86em;font-variant-numeric:tabular-nums}.data{font-family:var(--mono);font-size:var(--step--1);color:var(--ink-3);font-variant-numeric:tabular-nums}.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:650;color:var(--ink);text-decoration:none;padding-block:.25rem;border-bottom:1.5px solid var(--marker);transition:color .18s var(--ease-out),gap .22s var(--ease-out)}.link-arrow:after{content:"";width:1.05em;height:1.05em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat}.link-arrow:hover{color:var(--marker);gap:.8rem}.fine{font-size:var(--step--1);color:var(--ink-3)}.label{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font);font-weight:600;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:.3em .7em;border:1px solid var(--rule-2);border-radius:4px;background:var(--sheet);white-space:nowrap}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:var(--gutter);top:-4rem;z-index:50;background:var(--obj);color:var(--obj-ink);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:650;text-decoration:none}.skip:focus{top:var(--space-3)}.status{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font);font-weight:650;font-size:var(--step--1);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.status:before{content:"";width:.6em;height:.6em;background:currentColor;border-radius:1px}.status--open{color:var(--ok)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:3.1rem;padding:0 1.5rem;border:0;border-radius:999px;background:var(--obj);color:var(--obj-ink);font-weight:650;font-size:1rem;letter-spacing:-.005em;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .18s var(--ease-out),transform .18s var(--ease-out),box-shadow .18s var(--ease-out)}.btn:hover{background:var(--marker);color:var(--obj-ink);box-shadow:0 10px 24px -12px #000c}.btn:active{transform:translateY(1px)}.btn svg{transition:transform .2s var(--ease-out)}.btn:hover svg{transform:translate(3px)}.btn[disabled]{cursor:progress;opacity:.75}.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.btn--ghost:hover{background:var(--ink);color:var(--obj-ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.btn--small{min-height:2.5rem;padding:0 1.1rem;font-size:.93rem}.section{padding-block:clamp(3.5rem,2rem + 6vw,6.5rem)}.section+.section{border-top:1px solid var(--rule)}.section__head{display:grid;gap:var(--space-3);max-width:46rem;margin-bottom:clamp(2rem,1.4rem + 2vw,3.25rem)}.section__head h2{font-size:var(--step-4)}.section__head p{color:var(--ink-2);font-size:var(--step-1);line-height:1.5}.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--sheet-shadow)}.prose details.solution{border:1px solid var(--rule);border-radius:.6rem;padding:0 1.1rem}.prose details.solution summary{cursor:pointer;min-height:2.75rem;display:flex;align-items:center;font-weight:600;color:var(--ink)}.prose details.solution[open]{padding-bottom:1rem}.prose details.solution[open] summary{margin-bottom:.5rem}.prose{max-width:var(--measure);color:#d6d8dc;font-size:var(--step-0);line-height:1.75}.prose>*+*{margin-top:1.15em}.prose h2{font-size:var(--step-3);margin-top:2em}.prose h3{font-size:var(--step-1);margin-top:1.7em}.prose h2+*,.prose h3+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--ink-3)}.prose strong{color:var(--ink);font-weight:680}.prose blockquote{margin:1.8em 0;padding:1.1em 1.3em;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink-2)}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:var(--step--1);background:linear-gradient(to right,var(--paper) 40%,transparent) left / 2.5rem 100% no-repeat local,linear-gradient(to left,var(--paper) 40%,transparent) right / 2.5rem 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgb(255 255 255 / .28),transparent) left / 1rem 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgb(255 255 255 / .28),transparent) right / 1rem 100% no-repeat scroll}.prose th,.prose td{text-align:left;padding:.7em .9em .7em 0;border-bottom:1px solid var(--rule);vertical-align:top}.prose th{color:var(--ink-3);font-weight:600}.prose img{border-radius:var(--radius)}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.6em 0}.prose code{font-family:var(--mono);font-size:.88em;background:var(--tint);padding:.1em .35em;border-radius:4px}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.24s;animation-timing-function:var(--ease-out)}.motion main .note:not(.hero *){clip-path:inset(-.4em 100% -.4em -.4em);transition:clip-path .9s steps(20,end) .15s}.motion main .note:not(.hero *).is-in{clip-path:inset(-.4em -.4em -.4em -.4em)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.sheet:hover>svg[class*=clip],.paper:hover>svg[class*=clip]{animation:clip-wiggle .6s var(--ease-out);transform-origin:50% 85%}}@keyframes clip-wiggle{30%{rotate:-7deg}60%{rotate:4deg}80%{rotate:-1.5deg}}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
