*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body{margin:0}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}img,picture{max-width:100%;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}:target{scroll-margin-block:5ex}:root{--yellow-hue: 81.72;--yellow-1: oklch(99% .02 var(--yellow-hue));--yellow-2: oklch(95% .05 var(--yellow-hue));--yellow-3: oklch(83.77% .148 var(--yellow-hue));--yellow-4: oklch(72% .148 var(--yellow-hue));--yellow-5: oklch(67% .148 var(--yellow-hue));--yellow-6: oklch(50% .148 var(--yellow-hue));--yellow-7: oklch(35% .148 var(--yellow-hue));--yellow-8: oklch(25% .148 var(--yellow-hue));--yellow-9: oklch(18% .1 var(--yellow-hue));--yellow-10: oklch(15% .1 var(--yellow-hue));--yellow: var(--yellow-3);--teal-hue: 188.71;--teal-1: oklch(99% .05 188.71deg);--teal-2: oklch(95% .08 188.71deg);--teal-3: oklch(90.16% .173 188.71deg);--teal-4: oklch(80% .173 188.71deg);--teal-5: oklch(70% .173 188.71deg);--teal-6: oklch(50% .173 188.71deg);--teal-7: oklch(35% .173 188.71deg);--teal-8: oklch(25% .173 188.71deg);--teal-9: oklch(18% .173 188.71deg);--teal-10: oklch(15% .173 188.71deg);--teal: var(--teal-3);--green-hue: 124.67;--green-1: oklch(99% .05 var(--green-hue));--green-2: oklch(95% .1 var(--green-hue));--green-3: oklch(92.06% .269 var(--green-hue));--green-4: oklch(80% .269 var(--green-hue));--green-5: oklch(70% .269 var(--green-hue));--green-6: oklch(50% .269 var(--green-hue));--green-7: oklch(35% .269 var(--green-hue));--green-8: oklch(25% .269 var(--green-hue));--green-9: oklch(18% .269 var(--green-hue));--green-10: oklch(15% .269 var(--green-hue));--green: var(--green-3);--red-hue: 23.68;--red-1: oklch(99% .05 var(--red-hue));--red-2: oklch(90% .1 var(--red-hue));--red-3: oklch(83% .221 var(--red-hue));--red-4: oklch(72% .221 var(--red-hue));--red-5: oklch(67% .221 var(--red-hue));--red-6: oklch(50% .221 var(--red-hue));--red-7: oklch(35% .221 var(--red-hue));--red-8: oklch(25% .221 var(--red-hue));--red-9: oklch(13% .221 var(--red-hue));--red-10: oklch(5% .221 var(--red-hue));--red: var(--red-5);--color-zinc-50: oklch(.985 0 0);--color-zinc-100: oklch(.967 .001 286.375);--color-zinc-200: oklch(.92 .004 286.32);--color-zinc-300: oklch(.871 .006 286.286);--color-zinc-400: oklch(.705 .015 286.067);--color-zinc-500: oklch(.552 .016 285.938);--color-zinc-600: oklch(.442 .017 285.786);--color-zinc-700: oklch(.37 .013 285.805);--color-zinc-800: oklch(.274 .006 286.033);--color-zinc-900: oklch(.21 .006 285.885);--color-zinc-950: oklch(.141 .005 285.823);--black-hue: none;--blacklch: 0% none var(--black-hue);--black-1: var(--color-zinc-100);--black-2: var(--color-zinc-200);--black-3: var(--color-zinc-300);--black-4: var(--color-zinc-400);--black-5: var(--color-zinc-500);--black-6: var(--color-zinc-600);--black-7: var(--color-zinc-700);--black-8: var(--color-zinc-800);--black-9: var(--color-zinc-900);--black-10: var(--color-zinc-950);--black: var(--black-8);--blackish: oklch(23.08% 0 var(--black-hue) / .97);--whiteish: oklch(100% none none / .25);--white: oklch(100% none none);--purple-hue: 291.04;--purple-1: oklch(99% .076 var(--purple-hue));--purple-2: oklch(90% .05 var(--purple-hue));--purple-3: oklch(83% .076 var(--purple-hue));--purple-4: oklch(72% .1 var(--purple-hue));--purple-5: oklch(67% .1 var(--purple-hue));--purple-6: oklch(50% .1 var(--purple-hue));--purple-7: oklch(32.98% .076 var(--purple-hue));--purple-8: oklch(25% .076 var(--purple-hue));--purple-9: oklch(20% .076 var(--purple-hue));--purple-10: oklch(10% .076 var(--purple-hue));--purple: var(--purple-7);--font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--font-defaults: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: CommitMono, ui-monospace, SFMono-Regular, SF Mono, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-xs: clamp(.6rem, .17vw + .76rem, .7rem);--font-size-sm: clamp(.8rem, .17vw + .76rem, .89rem);--font-size-base: clamp(1rem, .34vw + .91rem, 1.19rem);--font-size-md: clamp(1.25rem, .61vw + 1.1rem, 1.58rem);--font-size-lg: clamp(1.56rem, 1vw + 1.31rem, 2.11rem);--font-size-xl: clamp(1.95rem, 1.56vw + 1.56rem, 2.81rem);--font-size-xxl: clamp(2.44rem, 2.38vw + 1.85rem, 3rem);--font-size-xxxl: clamp(3.05rem, 3.54vw + 2.17rem, 5rem);--fw-100: "wght" 100;--fw-100-italic: "wght" 100, "ital" 1;--fw-400: "wght" 400;--fw-400-italic: "wght" 400, "ital" 1;--fw-500: "wght" 500;--fw-500-italic: "wght" 500, "ital" 1;--fw-600: "wght" 600;--fw-600-italic: "wght" 600, "ital" 1;--fw-700: "wght" 700;--fw-700-italic: "wght" 700, "ital" 1;--fw-800: "wght" 800;--fw-800-italic: "wght" 800, "ital" 1;--fw-900: "wght" 900;--fw-900-italic: "wght" 900, "ital" 1;--shadow-strength: 5%;--shadow-color: 0 0% 10%;--shadow-6: 0 -1px 2px 0 hsl(var(--shadow-color) / calc(var(--shadow-strength) + 2%)), 0 3px 2px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)), 0 7px 5px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 3%)), 0 12px 10px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 4%)), 0 22px 18px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 5%)), 0 41px 33px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 6%)), 0 100px 80px -2px hsl(var(--shadow-color) / calc(var(--shadow-strength) + 7%));--primary: var(--yellow);--accent: oklch(64% .2905 23);--accent-dark: color-mix(in oklch, var(--accent), black 8%);--accent-transparent: color-mix(in oklch, var(--accent), transparent 75%);--subtle-accent: var(--purple);--warning: var(--red);--success: var(--green);--line: var(--black-2);--border-size: 1.5px;--border: solid var(--border-size) var(--black);--icon-line-width: 4px;--icon-outline-width: calc(var(--icon-line-width) * 2);--icon-background-color: var(--black-1);--icon-fill-1-color: var(--black-3);--icon-fill-2-color: var(--black-5);--icon-line-color: var(--black-8);--diagonal: url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='black' fill-opacity='0.15' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")}@layer base{html{font-family:var(--font-defaults)}@font-face{font-family:CommitMono;src:url(/fonts/CommitMonoVF.woff2) format("woff2-variations");font-style:normal;font-weight:200 700;font-display:swap}@font-face{font-family:Aspekta Variable;font-weight:100 900;font-display:swap;font-style:normal;src:url(/fonts/AspektaVF.woff2) format("woff2")}h1,.h1,h2,.h2{font-size:var(--font-size-xxl)}h3,.h3{font-size:var(--font-size-xl)}h4,.h4{font-size:var(--font-size-lg)}h5,.h5{font-size:var(--font-size-md)}.h6,h6,p,li{font-size:var(--font-size-base)}h1,h2,h3,h4,h5,h6{font-family:var(--font-defaults);text-wrap:pretty;font-weight:300;margin-block:.2em;--opacity: 0;&:hover{--opacity: 1}a[href^="#"]{display:inline-block;height:100%;margin-left:.25rem;opacity:var(--opacity);&:before{content:"#"}}}body{background:var(--white)}a,.a{color:var(--black);text-decoration:none}:is(p,li) a,.a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--primary);text-decoration-thickness:1.5px}a:hover{cursor:pointer}p{line-height:1.7}a[href^=http]:not(.social-icon,.button,.icon,.naked):after{content:"↗";margin-left:4px;font-size:12px}.mono{font-family:var(--font-mono)}.condensed{text-transform:uppercase;letter-spacing:-.005em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}@layer layout{.layout-root{display:grid;grid-template-columns:[start] 10px [left] auto [right] 10px [end];@media (min-width: 48rem){grid-template-columns:[start] 10px [left] 1fr [center] 1fr [right] 10px [end]}@media (min-width: 80rem){grid-template-columns:[start] minmax(10px,auto) [left] calc(40rem - 10px) [center] calc(40rem - 10px) [right] minmax(10px,auto) [end]}}}.prose{--prose-color: var(--black);--prose-heading-color: var(--black);--prose-strong-color: var(--black);--prose-link-color: var(--black);--prose-code-color: var(--black);--prose-marker-color: color-mix(in oklab, var(--black-8) 25%, transparent);--prose-link-underline-color: var(--teal-4);--prose-th-borders: var(--teal-7);--prose-td-borders: var(--teal-7);--prose-hr-color: color-mix(in oklab, var(--teal-8) 5%, transparent);--prose-blockquote-border-color: var(--teal-8);--spacing: .2rem;color:var(--prose-color);font-size:var(--font-size-base);line-height:1.5;*:where(:not(.not-prose,.not-prose *))+*:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4)}h2:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-lg);line-height:calc(28 / 18);letter-spacing:-.025em;color:var(--prose-code-color);margin-top:calc(var(--spacing) * 16)}h2:has(+h3):where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-sm);font-family:var(--font-mono);letter-spacing:.025em;color:var(--prose-color);font-variation-settings:"wght" 400;text-transform:uppercase}h3:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-base);line-height:calc(28 / 18);color:var(--prose-heading-color);margin-top:calc(var(--spacing) * 16);font-variation-settings:"wght" 500}h2+h3:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 6)}h4:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-base);line-height:2;color:var(--prose-heading-color);font-variation-settings:"wght" 500;margin-top:calc(var(--spacing) * 12)}:is(h2,h3,h4):where(:not(.not-prose,.not-prose *)){scroll-margin-top:calc(var(--spacing) * 32)}ul:where(:not(.not-prose,.not-prose *)){padding-left:calc(var(--spacing) * 6);list-style-type:square}ul li:where(:not(.not-prose,.not-prose *)){padding-left:calc(var(--spacing) * 3)}ul li+li:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4)}ul li:where(:not(.not-prose,.not-prose *))::marker{color:var(--prose-marker-color)}a:not(:where(:is(h2,h3,h4) *)):where(:not(.not-prose,.not-prose *)){color:var(--prose-link-color);font-variation-settings:"wght" 500;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--prose-link-underline-color);text-decoration-thickness:1px;& code{font-variation-settings:"wght" 500}}a:hover:where(:not(.not-prose,.not-prose *)){text-decoration-thickness:2px}strong:where(:not(.not-prose,.not-prose *)){color:var(--prose-strong-color);font-variation-settings:"wght" 500}code:where(:not(.not-prose,.not-prose *)){font-family:var(--font-mono);font-variation-settings:"wght" 500;color:var(--prose-code-color)}:where(h2,h3,h4) code:where(:not(.not-prose,.not-prose *)){font-variation-settings:"wght" 500}code:where(:not(.not-prose,.not-prose *)):before,code:where(:not(.not-prose,.not-prose *)):after{display:inline;content:"`"}pre:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 10)}pre code *+*:where(:not(.not-prose,.not-prose *)){margin-top:0}pre code:where(:not(.not-prose,.not-prose *)):before,pre code:where(:not(.not-prose,.not-prose *)):after{content:none}pre code:where(:not(.not-prose,.not-prose *)){font-family:var(--font-mono);font-size:var(--font-size-sm)}table:where(:not(.not-prose,.not-prose *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:var(--font-size-sm);line-height:1.4}thead:where(:not(.not-prose,.not-prose *)){border-bottom-width:2px;border-bottom-color:var(--prose-th-borders)}thead th:where(:not(.not-prose,.not-prose *)){color:var(--prose-heading-color);font-weight:600;vertical-align:bottom;padding-inline-end:.6em;padding-bottom:.8em;padding-inline-start:.6em}thead th:first-child:where(:not(.not-prose,.not-prose *)){padding-inline-start:0}thead th:last-child:where(:not(.not-prose,.not-prose *)){padding-inline-end:0}tbody tr:where(:not(.not-prose,.not-prose *)){border-bottom-width:1px;border-bottom-color:var(--prose-td-borders)}tbody tr:last-child:where(:not(.not-prose,.not-prose *)){border-bottom-width:0}tbody td:where(:not(.not-prose,.not-prose *)){vertical-align:baseline}tfoot:where(:not(.not-prose,.not-prose *)){border-top-width:1px;border-top-color:var(--prose-th-borders)}tfoot td:where(:not(.not-prose,.not-prose *)){vertical-align:top}tbody td:where(:not(.not-prose,.not-prose *)),tfoot td:where(:not(.not-prose,.not-prose *)){padding-top:.8em;padding-inline-end:.6em;padding-bottom:.8em;padding-inline-start:.6em}tbody td:first-child:where(:not(.not-prose,.not-prose *)),tfoot td:first-child:where(:not(.not-prose,.not-prose *)){padding-inline-start:0}tbody td:last-child:where(:not(.not-prose,.not-prose *)),tfoot td:last-child:where(:not(.not-prose,.not-prose *)){padding-inline-end:0}th:where(:not(.not-prose,.not-prose *)),td:where(:not(.not-prose,.not-prose *)){text-align:start}td code:where(:not(.not-prose,.not-prose *)){font-size:.8125rem}hr:where(:not(.not-prose,.not-prose *)){border-color:var(--prose-hr-color);margin-block:--spacing(16);+h2{margin-top:--spacing(16)}}blockquote{font-style:italic;border-inline-start-width:.25rem;border-inline-start-color:var(--prose-blockquote-border-color);padding-inline-start:calc(var(--spacing) * 4)}blockquote p:first-of-type:before{content:open-quote}blockquote p:last-of-type:after{content:close-quote}figure:where(:not(.not-prose,.not-prose *)){figcaption:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 3);text-align:center;font-size:var(--font-size-sm);color:color-mix(in oklab,var(--prose-color) 75%,transparent)}}:first-child:where(:not(.not-prose,.not-prose *)){margin-top:0}:last-child:where(:not(.not-prose,.not-prose *)){margin-bottom:0}}@keyframes reveal{0%{opacity:0}to{opacity:1}}.revealing{view-timeline-name:--revealing;view-timeline-axis:block;animation:linear reveal both;animation-timeline:--revealing;animation-range:entry 15% cover 30%}.cross{background:linear-gradient(to top left,#0000 0% calc(50% - .8px),#00000080 50%,#0000 calc(50% + .8px) 100%),linear-gradient(to top right,#0000 0% calc(50% - .8px),#00000080 50%,#0000 calc(50% + .8px) 100%)}img{content-visibility:auto}
