@font-face{font-family:geist;src:url(../media/geist_variable_latin-s.p.0p7vsz2-zvbdc.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:geist Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geist_1b9e852c-module__TSHGUa__className{font-family:geist,geist Fallback,Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal}.geist_1b9e852c-module__TSHGUa__variable{--font-sans:"geist", "geist Fallback", Helvetica Neue, Helvetica, Arial, sans-serif}
@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_variable_latin-s.2odd3csjijl0b.woff2)format("woff2");font-display:swap;font-weight:100 800;font-style:normal}@font-face{font-family:jetbrainsMono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrainsmono_718b0c67-module__n-tm_W__className{font-family:jetbrainsMono,jetbrainsMono Fallback,ui-monospace,SFMono-Regular,Menlo,monospace;font-style:normal}.jetbrainsmono_718b0c67-module__n-tm_W__variable{--font-mono:"jetbrainsMono", "jetbrainsMono Fallback", ui-monospace, SFMono-Regular, Menlo, monospace}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#0d0d0d;--surface:#171717;--raised:#212121;--hover:#2e2e2e;--tertiary:#8f8f8f;--secondary:#b4b4b4;--primary:#ececec;--paper:#fff;--rule:var(--hover);--field-ink:245, 243, 247;--signal-red:#f36164;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;--space-64:64px;--space-96:96px;--space-128:128px;--page-margin:clamp(24px, 3.2vw, 88px);--measure:640px;--content-max:2200px;--section-gap:clamp(88px, 11vw, 128px);--gutter:max(var(--page-margin), calc((100% - var(--content-max)) / 2));--radius-tag:8px;--radius-row:12px;--radius-inner:16px;--radius-panel:24px;--radius-pill:999px;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:ease-out;--dur-hero:1.5s;--dur-reveal:.56s;--dur-hover:.16s;--dur-drawer:.24s;--dur-morph:.24s;--breakpoint:780px;--breakpoint-wide:1200px}@supports (color:lab(0% 0 0)){:root{--signal-red:lab(61.0322% 57.27 29.1016)}}
*,:before,:after{box-sizing:border-box}html{background:var(--canvas);scroll-behavior:auto}@media not all and (hover:hover) and (pointer:fine){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--canvas);color:var(--primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;margin:0;display:flex}h1,h2,h3,h4,p,dl,dd,figure,blockquote{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--primary);transition:color var(--dur-hover) var(--ease-out), opacity var(--dur-hover) var(--ease-out);text-decoration:none}button{font:inherit;color:inherit}[data-modal=open]{overflow:hidden}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}img,svg,canvas{display:block}[data-arrow]{transition:transform var(--dur-hover) var(--ease);display:inline-block}a:hover [data-arrow],a:focus-visible [data-arrow]{transform:translate(3px)}.tabular{font-variant-numeric:tabular-nums}@keyframes err-rise{0%{opacity:0;filter:blur(16px);transform:translateY(14px)}to{opacity:1;filter:blur();transform:none}}@keyframes err-fade{0%{opacity:0}to{opacity:1}}[data-enter]{animation-name:var(--enter);animation-duration:var(--enter-duration,1s);animation-timing-function:var(--enter-ease,ease-out);animation-delay:var(--enter-delay,0s);animation-fill-mode:both}[data-reveals=on] [data-reveal]{opacity:0;filter:blur(7px);will-change:opacity, transform, filter;transform:translateY(16px)}[data-reveals=on] [data-reveal].is-revealed{opacity:1;filter:blur();transition:opacity var(--dur-reveal) var(--ease) var(--reveal-delay,0s), transform var(--dur-reveal) var(--ease) var(--reveal-delay,0s), filter .5s ease var(--reveal-delay,0s);transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation:none!important}[data-reveal]{opacity:1!important;filter:none!important;transform:none!important}}
