.lang__list[data-astro-cid-l4evwy7q]{gap:var(--space-1);padding:0;list-style:none;display:flex}.lang__link[data-astro-cid-l4evwy7q]{min-height:2.25rem;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-ink-soft);border:1px solid var(--color-line-strong);background-image:none;align-items:center;padding:.25rem .75rem;text-decoration:none;display:inline-flex}.lang__link[data-astro-cid-l4evwy7q][aria-current=true]{color:var(--color-paper);background-color:var(--color-ink);border-color:var(--color-ink);font-weight:500}.lang__link[data-astro-cid-l4evwy7q]:not([aria-current=true]):hover{color:var(--color-ink);border-color:var(--color-ink)}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2)format("woff2");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:"Source Serif 4";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-serif-4-400-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:"Source Serif 4";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/source-serif-4-400-600-latin.woff2)format("woff2");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:Zilla Slab;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/zilla-slab-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Zilla Slab;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/zilla-slab-400-latin.woff2)format("woff2");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:Zilla Slab;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/zilla-slab-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Zilla Slab;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/zilla-slab-700-latin.woff2)format("woff2");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}*,:before,:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}img,picture,svg,canvas{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}html{scroll-behavior:smooth}body{min-height:100svh;font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-ink);background-color:var(--color-paper)}.surface{position:relative}.surface--grid{background-color:var(--color-paper);background-image:linear-gradient(to bottom, color-mix(in srgb, var(--color-line-soft) 60%, transparent) 1px, transparent 1px), linear-gradient(to right, color-mix(in srgb, var(--color-line-soft) 60%, transparent) 1px, transparent 1px), linear-gradient(to bottom, var(--color-line) 1px, transparent 1px), linear-gradient(to right, var(--color-line) 1px, transparent 1px);background-size:var(--layout-grid-unit) var(--layout-grid-unit), var(--layout-grid-unit) var(--layout-grid-unit), var(--layout-grid-major) var(--layout-grid-major), var(--layout-grid-major) var(--layout-grid-major)}.surface--dots{background-color:var(--color-paper-deep);background-image:radial-gradient(circle, var(--color-line) 1px, transparent 1px);background-size:var(--layout-dot-spacing) var(--layout-dot-spacing)}.surface--plain{background-color:var(--color-paper)}.surface--inverted{color:var(--color-paper);background-color:var(--color-ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--line-height-tight);text-wrap:balance}h1{font-size:var(--font-size-4xl);letter-spacing:-.015em}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p,li{text-wrap:pretty}.label{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-soft);font-weight:400}.prose{max-width:var(--layout-measure)}.prose>*+*{margin-block-start:var(--space-2)}a{--marker:var(--color-accent);color:var(--color-accent-deep);background-image:repeating-linear-gradient(97deg, color-mix(in srgb, var(--marker) 44%, transparent) 0 7px, color-mix(in srgb, var(--marker) 30%, transparent) 7px 13px, color-mix(in srgb, var(--marker) 40%, transparent) 13px 24px, color-mix(in srgb, var(--marker) 26%, transparent) 24px 31px), repeating-linear-gradient(93deg, color-mix(in srgb, var(--marker) 26%, transparent) 0 11px, color-mix(in srgb, var(--marker) 16%, transparent) 11px 19px, color-mix(in srgb, var(--marker) 30%, transparent) 19px 29px);text-underline-offset:.2em;background-position:0 92%,0 45%;background-repeat:no-repeat;background-size:0 .95em,0 .78em;text-decoration-thickness:1px;transition:background-size .34s cubic-bezier(.2,.7,.3,1),color .22s ease-out}a:hover{color:var(--color-ink);background-size:100% .95em,100% .78em;text-decoration-thickness:2px}.surface--inverted a{--marker:var(--color-accent-on-dark);color:var(--color-paper)}.surface--inverted a:hover{color:var(--color-paper)}.surface--inverted .label{color:var(--color-line)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.skip-link{z-index:100;padding:var(--space-1) var(--space-2);font-family:var(--font-mono);color:var(--color-paper);background-image:none;background-color:var(--color-ink);text-decoration:none;position:absolute;inset-inline-start:-9999px}.skip-link:focus{inset-block-start:0;inset-inline-start:0}::selection{color:var(--color-paper);background-color:var(--color-accent-deep)}.tilt,.tilt-list>*{transform:rotate(var(--tilt,0deg))}.tilt-list>:nth-child(4n+1){--tilt:-.4deg}.tilt-list>:nth-child(4n+2){--tilt:.3deg}.tilt-list>:nth-child(4n+3){--tilt:-.2deg}.tilt-list>:nth-child(4n+4){--tilt:.45deg}.margin-note{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-ink-soft);display:inline-block;transform:rotate(-1.2deg)}.sketch-rule{width:var(--rule-width,100%);height:.5rem;color:var(--color-accent);display:block;position:absolute;inset-block-end:0;inset-inline:0;overflow:visible}.sketch-rule path{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-dasharray:100}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation-name:reveal;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 60%}.draw{animation-name:draw;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:cover 5% cover 30%}}}.js-motion .reveal{opacity:0;transform:translateY(1.25rem) rotate(var(--tilt,0deg));transition:opacity .52s ease-out,transform .52s ease-out}.js-motion .reveal.is-in{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}@media (width>=48rem){.js-motion .card-enter{opacity:0;transition:opacity .52s ease-out,transform .52s ease-out;transform:translateY(1.25rem)}.js-motion .card-enter.is-in{opacity:1;transform:translateY(0)}}.js-motion .draw{stroke-dashoffset:100px;transition:stroke-dashoffset .7s ease-out}.js-motion .draw.is-in{stroke-dashoffset:0}@keyframes reveal{0%{opacity:0;transform:translateY(1.25rem) rotate(var(--tilt,0deg))}to{opacity:1;transform:translateY(0) rotate(var(--tilt,0deg))}}@keyframes draw{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
