*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-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.71);--teal-2:oklch(95% .08 188.71);--teal-3:oklch(90.16% .173 188.71);--teal-4:oklch(80% .173 188.71);--teal-5:oklch(70% .173 188.71);--teal-6:oklch(50% .173 188.71);--teal-7:oklch(35% .173 188.71);--teal-8:oklch(25% .173 188.71);--teal-9:oklch(18% .173 188.71);--teal-10:oklch(15% .173 188.71);--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(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .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;--opacity:0;margin-block:.2em;font-weight:300}:is(h1,h2,h3,h4,h5,h6):hover{--opacity:1}:is(h1,h2,h3,h4,h5,h6) a[href^=\#]{height:100%;opacity:var(--opacity);margin-left:.25rem;display:inline-block}:is(h1,h2,h3,h4,h5,h6) a[href^=\#]: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;-webkit-text-decoration-color:var(--primary);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{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@layer layout{.layout-root{grid-template-rows:auto 1fr auto;grid-template-columns:[start]10px[left]auto[right]10px[end];min-height:100dvh;display:grid}@media (width>=48rem){.layout-root{grid-template-columns:[start]10px[left]1fr[center]1fr[right]10px[end]}}@media (width>=80rem){.layout-root{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}.prose :where(:not(.not-prose,.not-prose *))+:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4)}.prose h2:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-lg);letter-spacing:-.025em;color:var(--prose-code-color);margin-top:calc(var(--spacing) * 16);line-height:1.55556}.prose 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}.prose h3:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-base);color:var(--prose-heading-color);margin-top:calc(var(--spacing) * 16);font-variation-settings:"wght" 500;line-height:1.55556}.prose h2+h3:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 6)}.prose h4:where(:not(.not-prose,.not-prose *)){font-size:var(--font-size-base);color:var(--prose-heading-color);font-variation-settings:"wght" 500;margin-top:calc(var(--spacing) * 12);line-height:2}.prose :is(h2,h3,h4):where(:not(.not-prose,.not-prose *)){scroll-margin-top:calc(var(--spacing) * 32)}.prose ul:where(:not(.not-prose,.not-prose *)){padding-left:calc(var(--spacing) * 6);list-style-type:square}.prose ul li:where(:not(.not-prose,.not-prose *)){padding-left:calc(var(--spacing) * 3)}.prose ul li+li:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4)}.prose ul li:where(:not(.not-prose,.not-prose *))::marker{color:var(--prose-marker-color)}.prose a:not(:where(:is(h2,h3,h4) *)):where(:not(.not-prose,.not-prose *)){color:var(--prose-link-color);font-variation-settings:"wght" 500;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--prose-link-underline-color);text-decoration-color:var(--prose-link-underline-color);text-decoration-thickness:1px}.prose a:not(:where(:is(h2,h3,h4) *)):where(:not(.not-prose,.not-prose *)) code{font-variation-settings:"wght" 500}.prose a:hover:where(:not(.not-prose,.not-prose *)){text-decoration-thickness:2px}.prose strong:where(:not(.not-prose,.not-prose *)){color:var(--prose-strong-color);font-variation-settings:"wght" 500}.prose code:where(:not(.not-prose,.not-prose *)){font-family:var(--font-mono);font-variation-settings:"wght" 500;color:var(--prose-code-color)}.prose :where(h2,h3,h4) code:where(:not(.not-prose,.not-prose *)){font-variation-settings:"wght" 500}.prose code:where(:not(.not-prose,.not-prose *)):before,.prose code:where(:not(.not-prose,.not-prose *)):after{content:"`";display:inline}.prose pre:where(:not(.not-prose,.not-prose *)){margin-top:calc(var(--spacing) * 4);margin-bottom:calc(var(--spacing) * 10)}.prose pre code *+:where(:not(.not-prose,.not-prose *)){margin-top:0}.prose pre code:where(:not(.not-prose,.not-prose *)):before,.prose pre code:where(:not(.not-prose,.not-prose *)):after{content:none}.prose pre code:where(:not(.not-prose,.not-prose *)){font-family:var(--font-mono);font-size:var(--font-size-sm)}.prose table:where(:not(.not-prose,.not-prose *)){table-layout:auto;width:100%;font-size:var(--font-size-sm);margin-top:2em;margin-bottom:2em;line-height:1.4}.prose thead:where(:not(.not-prose,.not-prose *)){border-bottom-width:2px;border-bottom-color:var(--prose-th-borders)}.prose thead th:where(:not(.not-prose,.not-prose *)){color:var(--prose-heading-color);vertical-align:bottom;padding-inline-end:.6em;padding-bottom:.8em;padding-inline-start:.6em;font-weight:600}.prose thead th:first-child:where(:not(.not-prose,.not-prose *)){padding-inline-start:0}.prose thead th:last-child:where(:not(.not-prose,.not-prose *)){padding-inline-end:0}.prose tbody tr:where(:not(.not-prose,.not-prose *)){border-bottom-width:1px;border-bottom-color:var(--prose-td-borders)}.prose tbody tr:last-child:where(:not(.not-prose,.not-prose *)){border-bottom-width:0}.prose tbody td:where(:not(.not-prose,.not-prose *)){vertical-align:baseline}.prose tfoot:where(:not(.not-prose,.not-prose *)){border-top-width:1px;border-top-color:var(--prose-th-borders)}.prose tfoot td:where(:not(.not-prose,.not-prose *)){vertical-align:top}.prose tbody td:where(:not(.not-prose,.not-prose *)),.prose tfoot td:where(:not(.not-prose,.not-prose *)){padding-top:.8em;padding-inline-end:.6em;padding-bottom:.8em;padding-inline-start:.6em}.prose tbody td:first-child:where(:not(.not-prose,.not-prose *)),.prose tfoot td:first-child:where(:not(.not-prose,.not-prose *)){padding-inline-start:0}.prose tbody td:last-child:where(:not(.not-prose,.not-prose *)),.prose tfoot td:last-child:where(:not(.not-prose,.not-prose *)){padding-inline-end:0}.prose th:where(:not(.not-prose,.not-prose *)),.prose td:where(:not(.not-prose,.not-prose *)){text-align:start}.prose td code:where(:not(.not-prose,.not-prose *)){font-size:.8125rem}.prose hr:where(:not(.not-prose,.not-prose *)){border-color:var(--prose-hr-color);margin-block:--spacing(16)}.prose hr:where(:not(.not-prose,.not-prose *))+h2{margin-top:--spacing(16)}.prose blockquote{border-inline-start-width:.25rem;border-inline-start-color:var(--prose-blockquote-border-color);padding-inline-start:calc(var(--spacing) * 4);font-style:italic}.prose blockquote p:first-of-type:before{content:open-quote}.prose blockquote p:last-of-type:after{content:close-quote}.prose 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)}.prose :first-child:where(:not(.not-prose,.not-prose *)){margin-top:0}.prose :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 both reveal;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}
