@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url("/fonts/geist-sans.woff2") format("woff2")}@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url("/fonts/geist-mono.woff2") format("woff2")}@font-face{font-family:"Geist Fallback";src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0%;size-adjust:104.76%}@font-face{font-family:"Geist Mono Fallback";src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0%;size-adjust:134.59%}:root{--radius:0.625rem;--background:oklch(1 0 0);--foreground:oklch(0.145 0 0);--card:oklch(1 0 0);--card-foreground:oklch(0.145 0 0);--popover:oklch(1 0 0);--popover-foreground:oklch(0.145 0 0);--primary:oklch(0.205 0 0);--primary-foreground:oklch(0.985 0 0);--secondary:oklch(0.97 0 0);--secondary-foreground:oklch(0.205 0 0);--muted:oklch(0.97 0 0);--muted-foreground:oklch(0.556 0 0);--accent:oklch(0.97 0 0);--accent-foreground:oklch(0.205 0 0);--border:oklch(0.922 0 0);--input:oklch(0.922 0 0);--ring:oklch(0.708 0 0);--destructive:oklch(0.577 0.245 27.325)}.dark,:root[data-theme=dark]{--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.205 0 0);--card-foreground:oklch(0.985 0 0);--popover:oklch(0.205 0 0);--popover-foreground:oklch(0.985 0 0);--primary:oklch(0.922 0 0);--primary-foreground:oklch(0.205 0 0);--secondary:oklch(0.269 0 0);--secondary-foreground:oklch(0.985 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--accent:oklch(0.269 0 0);--accent-foreground:oklch(0.985 0 0);--border:oklch(1 0 0 / 10%);--input:oklch(1 0 0 / 15%);--ring:oklch(0.556 0 0);--destructive:oklch(0.704 0.191 22.216)}*,::after,::before{box-sizing:border-box;margin:0;padding:0;border:0 solid var(--border)}body,html{width:100%}html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5}body{min-height:100vh;background:var(--background);color:var(--foreground);font-family:Geist,"Geist Fallback",Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:inherit}canvas,img,svg,video{display:block;max-width:100%;height:auto}.min-h-screen{min-height:100vh}.p-8{padding:2rem}.font-\[family-name\:var\(--font-geist-sans\)\]{font-family:Geist,"Geist Fallback",Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}.font-mono{font-family:"Geist Mono","Geist Mono Fallback","IBM Plex Mono",SFMono-Regular,Menlo,Consolas,monospace}.absolute{position:absolute}.top-4{top:1rem}.right-4{right:1rem}.max-w-5xl{max-width:64rem}.max-w-4xl{max-width:56rem}.max-w-3xl{max-width:48rem}.max-w-xl{max-width:36rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.inline-flex{display:inline-flex}.inline-block{display:inline-block}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-8{gap:2rem}.gap-4{gap:1rem}.gap-2{gap:.5rem}.space-y-8>*+*{margin-top:2rem}.space-y-6>*+*{margin-top:1.5rem}.space-y-4>*+*{margin-top:1rem}.space-y-2>*+*{margin-top:.5rem}.mb-16{margin-bottom:4rem}.mb-12{margin-bottom:3rem}.mb-8{margin-bottom:2rem}.mb-6{margin-bottom:1.5rem}.mb-4{margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mr-2{margin-right:.5rem}.mt-3{margin-top:.75rem}.mt-8{margin-top:2rem}.mt-6{margin-top:1.5rem}.mt-4{margin-top:1rem}.mt-2{margin-top:.5rem}.mt-16{margin-top:4rem}.my-8{margin-top:2rem;margin-bottom:2rem}.pt-8{padding-top:2rem}.pb-8{padding-bottom:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-4{padding-left:1rem}.w-full{width:100%}.h-5,.w-5{width:1.25rem;height:1.25rem}.w-3{width:.75rem;display:inline-block}.h-auto{height:auto}.min-h-\[60px\]{min-height:60px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.overflow-hidden{overflow:hidden}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-border{border-color:var(--border)}.border-foreground\/20{border-color:color-mix(in oklab,var(--foreground) 20%,transparent)}.text-center{text-align:center}.text-xs{font-size:.75rem;line-height:calc(1 / .75)}.text-sm{font-size:.875rem;line-height:calc(1.25 / .875)}.text-lg{font-size:1.125rem;line-height:calc(1.75 / 1.125)}.text-xl{font-size:1.25rem;line-height:calc(1.75 / 1.25)}.text-2xl{font-size:1.5rem;line-height:calc(2 / 1.5)}.text-3xl{font-size:1.875rem;line-height:calc(2.25 / 1.875)}.text-4xl{font-size:2.25rem;line-height:calc(2.5 / 2.25)}.font-medium{font-weight:500}.font-bold{font-weight:700}.italic{font-style:italic}.lowercase{text-transform:lowercase}.leading-relaxed{line-height:1.625}.list-disc{list-style-type:disc}.list-inside{list-style-position:inside}.ml-4{margin-left:1rem}.text-foreground{color:var(--foreground)}.text-primary{color:var(--primary)}.text-muted-foreground{color:var(--muted-foreground)}.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}.hover\:underline:hover,.underline{text-decoration-line:underline}.hover\:text-primary:hover{color:var(--primary)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(0.4,0,0.2,1)}.shrink-0{flex-shrink:0}.theme-toggle{width:2.25rem;height:2.25rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--background);color:var(--foreground);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 2px 0 rgb(0 0 0 / .05);transition:.15s cubic-bezier(.4, 0, .2, 1);cursor:pointer}.dark .theme-toggle,:root[data-theme=dark] .theme-toggle{border-color:var(--input);background:color-mix(in oklab,var(--input) 30%,transparent)}.theme-toggle:hover{background:var(--accent);color:var(--accent-foreground)}.dark .theme-toggle:hover,:root[data-theme=dark] .theme-toggle:hover{background:color-mix(in oklab,var(--input) 50%,transparent)}.moon-icon-toggle,.sun-icon{width:1.2rem;height:1.2rem;position:absolute;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:.15s cubic-bezier(.4, 0, .2, 1)}.sun-icon{transform:rotate(0) scale(1);opacity:1}.moon-icon-toggle{transform:rotate(90deg) scale(0);opacity:0}.dark .sun-icon,:root[data-theme=dark] .sun-icon{transform:rotate(-90deg) scale(0);opacity:0}.dark .moon-icon-toggle,:root[data-theme=dark] .moon-icon-toggle{transform:rotate(0) scale(1);opacity:1}.theme-menu{position:fixed;top:3.5rem;right:1rem;z-index:50;min-width:8rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--popover);color:var(--popover-foreground);box-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1);padding:.25rem}.theme-menu button{display:block;width:100%;padding:.375rem .5rem;border-radius:calc(var(--radius) - 4px);background:0 0;color:inherit;font-size:.875rem;line-height:1.25rem;text-align:left;cursor:pointer}.theme-menu button:hover{background:var(--accent);color:var(--accent-foreground)}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.scramble{display:inline-block;overflow:hidden;padding-top:.5rem;padding-bottom:.5rem;text-transform:lowercase}.social-icon{width:1.25rem;height:1.25rem;color:currentColor;fill:currentColor;flex-shrink:0}.icon-x{width:1.3rem;height:1.3rem}.prose{max-width:65ch}.dark .dark\:prose-invert,.prose-neutral{color:var(--muted-foreground)}.essay-body blockquote,.essay-body li,.essay-body p{font-size:1.125rem;line-height:calc(1.75 / 1.125)}.essay-body h2,.essay-body h3{color:var(--foreground)}.essay-body h2{font-size:1.25rem;font-weight:500;margin-top:2rem;margin-bottom:1rem}.essay-body h3{font-size:1.125rem;font-weight:500;margin-top:1.5rem;margin-bottom:.75rem}.essay-body strong{color:var(--foreground);font-weight:500}.essay-body a{color:var(--foreground);text-decoration:underline}.essay-body a:hover{color:var(--primary)}.essay-body ul{list-style-type:disc;list-style-position:inside;margin-left:1rem}.essay-body ul>li+li{margin-top:.5rem}.essay-body blockquote{border-left:2px solid color-mix(in oklab,var(--foreground) 20%,transparent);padding-left:1rem;font-style:italic}.essay-body pre{border:1px solid var(--border);border-radius:.5rem;padding:1rem;overflow-x:auto;background:color-mix(in oklab,var(--muted) 50%,transparent)}.essay-body code{font-family:"Geist Mono","Geist Mono Fallback","IBM Plex Mono",SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}.essay-figure{max-width:36rem;margin:2rem auto}.essay-figure img{width:100%;height:auto;border-radius:.5rem}.essay-figure figcaption{margin-top:.75rem;text-align:center;font-size:.875rem;line-height:calc(1.25 / .875);color:var(--muted-foreground)}.not-found{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background);color:var(--foreground);font-family:Geist,"Geist Fallback",Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}.not-found-wrap{display:inline-flex;align-items:center}.not-found-code{display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px;border-right:1px solid color-mix(in oklab,var(--foreground) 30%,transparent)}.not-found-msg{display:inline-block;font-size:14px;font-weight:400;line-height:49px;margin:0}@media (min-width:768px){.md\:p-16{padding:4rem}.md\:text-2xl{font-size:1.5rem;line-height:calc(2 / 1.5)}.md\:text-3xl{font-size:1.875rem;line-height:calc(2.25 / 1.875)}.md\:text-4xl{font-size:2.25rem;line-height:calc(2.5 / 2.25)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:w-1\/2{width:50%}}@media (max-width:640px){.flex-wrap>a,.flex-wrap>a>span{overflow-wrap:anywhere}.not-found-wrap{padding:0 12px}.not-found-code{margin-right:14px;padding-right:14px;font-size:22px}}