@font-face{font-family:Satoshi;src:url(/fonts/satoshi-var.woff2)format("woff2-variations"),url(/fonts/satoshi-var.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/geist-300.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-300-ext.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-400-ext.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist;src:url(/fonts/geist-500-ext.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-300.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-300-ext.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;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:Geist Mono;src:url(/fonts/geist-mono-400-ext.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;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}:root{--ink:#121317;--canvas:#1c1e21;--surface:#212427;--surface-hi:#26292d;--border:#272a2e;--border-hi:#3b3e45;--text:#e5e7eb;--text-2:#d7d9dd;--text-3:#b5b8c0;--text-4:#878c99;--lime:#adec10;--lime-ink:#121317;--lime-glow:#adec1026;--lime-wash:#adec1014;--lime-line:#adec104d;--syn-keyword:#9c9af2;--syn-string:#fa3abf;--syn-type:#afec73;--syn-var:#d9f07c;--syn-prop:#e888f8;--syn-comment:#878c99;--event-violet:#7655fd;--red:#f43f5e;--font-display:"Satoshi", "General Sans", "Switzer", Inter, system-ui, sans-serif;--font-body:"Geist", Inter, "Söhne", system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono", "JetBrains Mono", "Berkeley Mono", "IBM Plex Mono", ui-monospace, monospace;--fs-caption:.875rem;--lh-caption:1.43;--fs-body:1rem;--lh-body:1.56;--fs-body-lg:1.125rem;--lh-body-lg:1.5;--fs-subheading:1.25rem;--lh-subheading:1.4;--fs-h-sm:1.5rem;--lh-h-sm:1.38;--fs-h:clamp(1.5rem, 1.2rem + 1.4vw, 1.875rem);--fs-h-lg:clamp(1.75rem, 1.25rem + 2.3vw, 2.25rem);--fs-display:clamp(1.5rem, 1.2rem + 1.4vw, 1.875rem);--fs-hero:clamp(2.25rem, 1.1rem + 5.2vw, 3.75rem);--tracking-sub:.4px;--tracking-lg:0;--tracking-md:.025em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-24:96px;--sp-40:160px;--sp-48:192px;--max-w:1200px;--gutter:clamp(20px, 5vw, 40px);--section-y:clamp(64px, 9vw, 120px);--radius:4px;--radius-pill:9999px;--ease:cubic-bezier(.2, .8, .2, 1);--dur:.18s}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;color-scheme:dark}body{background:var(--canvas);color:var(--text-3);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;overflow-x:hidden}img,svg,video{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:2px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);text-wrap:balance;font-weight:600}h1{font-size:var(--fs-hero);letter-spacing:var(--tracking-lg);line-height:1.04}h2{font-size:var(--fs-display);letter-spacing:var(--tracking-lg);line-height:1.11}h3{font-size:var(--fs-h-lg);letter-spacing:var(--tracking-lg);line-height:1.2}h4{font-size:var(--fs-h-sm);letter-spacing:var(--tracking-md);font-weight:500;line-height:1.38}p,blockquote{text-wrap:pretty;text-align:justify;-webkit-hyphens:auto;hyphens:auto}p.mono-label,:where(.hero__copy,.cta__inner,.section-head--center,.nf__inner) :is(p,blockquote){text-align:inherit}.mono-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-4);font-size:.75rem;font-weight:400}.mono-label--mark{color:var(--text-3)}.lead{font-size:var(--fs-body-lg);line-height:var(--lh-body-lg);color:var(--text-4);max-width:58ch}.hi{color:var(--text)}.wrap{width:100%;max-width:var(--max-w);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y);scroll-margin-top:80px;position:relative}.section--tight{padding-block:clamp(48px,6vw,80px)}.rule{background:var(--border);border:0;height:1px}.section-head{gap:var(--sp-4);margin-bottom:var(--sp-12);flex-direction:column;max-width:62ch;display:flex}.pill{align-items:center;gap:var(--sp-2);border-radius:var(--radius-pill);border:1px solid var(--border);font-size:var(--fs-caption);color:var(--text);white-space:nowrap;background:0 0;padding:4px 10px;line-height:1.43;display:inline-flex}.pill--lime{border-color:var(--border-hi);color:var(--text-3);background:0 0}.pill__dot{background:var(--lime);border-radius:50%;flex:none;width:6px;height:6px}.pill__dot--pulse{animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.42}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius);font-family:var(--font-body);font-size:var(--fs-body);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);white-space:nowrap;border:1px solid #0000;padding:12px 16px;font-weight:500;line-height:1.2;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--lime);color:var(--lime-ink)}.btn--primary:hover{background:#bef62e}.btn--outline{color:var(--text-2);border-color:var(--border-hi);background:0 0}.btn--outline:hover{border-color:var(--text-4);color:var(--text)}.btn--ghost{color:var(--text-2);background:0 0;padding:10px 14px;font-weight:400}.btn--ghost:hover{color:var(--text)}.btn--sm{font-size:var(--fs-caption);padding:8px 12px}.btn__icon{flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-7);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease)}.card:hover{border-color:var(--border-hi)}.card--flat{background:0 0}.card__title{font-family:var(--font-display);font-size:var(--fs-subheading);font-weight:500;line-height:var(--lh-subheading);letter-spacing:var(--tracking-sub);color:var(--text)}.card__body{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-4)}.code-pane{background:var(--ink);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);font-size:14px;line-height:1.6;overflow:hidden}.code-pane__bar{align-items:center;gap:var(--sp-2);padding:10px var(--sp-4);border-bottom:1px solid var(--border);background:#ffffff05;display:flex}.code-pane__dots{gap:6px;display:flex}.code-pane__dot{background:var(--border-hi);border-radius:50%;width:9px;height:9px}.code-pane__name{font-family:var(--font-mono);color:var(--text-4);margin-left:var(--sp-2);font-size:12px}.code-pane__body{padding:var(--sp-4) var(--sp-6) var(--sp-6);color:var(--text-3);font-weight:300;overflow-x:auto}.code-pane__body pre{font:inherit;margin:0}.t-key{color:var(--syn-keyword)}.t-str{color:var(--syn-string)}.t-type{color:var(--syn-type)}.t-var{color:var(--syn-var)}.t-prop{color:var(--syn-prop)}.t-com{color:var(--syn-comment)}.t-num{color:var(--syn-type)}.t-ok{color:var(--text-3)}.t-dim{color:var(--text-4)}.grid-bg{pointer-events:none;background-image:linear-gradient(to right, var(--border) 1px, transparent 1px), linear-gradient(to bottom, var(--border) 1px, transparent 1px);opacity:.35;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 55% at 50% 0,#000 20%,#0000 75%);mask-image:radial-gradient(80% 55% at 50% 0,#000 20%,#0000 75%)}.stack{flex-direction:column;display:flex}.stack-2{gap:var(--sp-2)}.stack-3{gap:var(--sp-3)}.stack-4{gap:var(--sp-4)}.stack-6{gap:var(--sp-6)}.row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.grid{gap:var(--sp-4);display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.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}.reveal{opacity:1}.js .reveal{opacity:0;transition:opacity .52s var(--ease), transform .52s var(--ease);transform:translateY(12px)}.js .reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}}.logo[data-astro-cid-f7espo7c]{flex:none;height:auto;display:block;overflow:visible}.header[data-astro-cid-wpvy4v7s]{z-index:50;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.header[data-astro-cid-wpvy4v7s].is-scrolled{-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--border);background:#1c1e21d1}.header__inner[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:var(--sp-6);height:64px;display:flex}.header__brand[data-astro-cid-wpvy4v7s]{flex:none;align-items:center;display:flex}.header__nav[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--sp-1);margin-inline:auto;display:flex}.header__link[data-astro-cid-wpvy4v7s]{border-radius:var(--radius);font-size:var(--fs-caption);color:var(--text-3);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);padding:10px 14px;font-weight:400}.header__link[data-astro-cid-wpvy4v7s]:hover{color:var(--text);background:#ffffff08}.header__actions[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--sp-3);flex:none;display:flex}.langswitch[data-astro-cid-wpvy4v7s]{border:1px solid var(--border);border-radius:var(--radius);align-items:center;display:flex;overflow:hidden}.langswitch__item[data-astro-cid-wpvy4v7s]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-4);transition:color var(--dur) var(--ease), background var(--dur) var(--ease);padding:6px 9px;font-size:11px}.langswitch__item[data-astro-cid-wpvy4v7s]:hover{color:var(--text-2)}.langswitch__item[data-astro-cid-wpvy4v7s].is-active{color:var(--text);background:var(--surface-hi)}.burger[data-astro-cid-wpvy4v7s]{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;padding:0 9px;display:none}.burger[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{background:var(--text-2);width:100%;height:1.5px;transition:transform var(--dur) var(--ease), opacity var(--dur) var(--ease);display:block}.burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:first-child{transform:translateY(3.25px)rotate(45deg)}.burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:last-child{transform:translateY(-3.25px)rotate(-45deg)}.menu[data-astro-cid-wpvy4v7s]{border-top:1px solid var(--border);background:var(--canvas)}.menu[data-astro-cid-wpvy4v7s][hidden]{display:none}.menu__inner[data-astro-cid-wpvy4v7s]{gap:var(--sp-1);padding-block:var(--sp-4) var(--sp-6);flex-direction:column;display:flex}.menu__link[data-astro-cid-wpvy4v7s]{font-size:var(--fs-body-lg);color:var(--text-2);border-bottom:1px solid var(--border);padding:12px 0}.menu__cta[data-astro-cid-wpvy4v7s]{margin-top:var(--sp-4)}@media (width<=420px){.header__logo[data-astro-cid-wpvy4v7s]{width:auto;height:26px}}@media (width<=900px){.header__nav[data-astro-cid-wpvy4v7s],.header__cta[data-astro-cid-wpvy4v7s]{display:none}.burger[data-astro-cid-wpvy4v7s]{display:flex}}@media (width>=901px){.menu[data-astro-cid-wpvy4v7s]{display:none!important}}.brand-sprite[data-astro-cid-2s2ewbte]{width:0;height:0;position:absolute;overflow:hidden}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);padding-top:clamp(48px,6vw,80px);padding-bottom:var(--sp-8)}.footer__top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:clamp(32px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);display:grid}.footer__brand[data-astro-cid-jo6i4kqk]{align-items:flex-start;gap:var(--sp-4);flex-direction:column;display:flex}.footer__brandlink[data-astro-cid-jo6i4kqk]{display:inline-flex}.footer__tagline[data-astro-cid-jo6i4kqk]{color:var(--text-4);font-size:var(--fs-caption);line-height:var(--lh-caption);max-width:34ch}.footer__status[data-astro-cid-jo6i4kqk]{color:var(--text-3);font-size:12px}.footer__col[data-astro-cid-jo6i4kqk]{gap:var(--sp-4);flex-direction:column;display:flex}.footer__heading[data-astro-cid-jo6i4kqk]{color:var(--text-4)}.footer__links[data-astro-cid-jo6i4kqk]{gap:var(--sp-3);flex-direction:column;display:flex}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-size:var(--fs-caption);color:var(--text-3);transition:color var(--dur) var(--ease)}.footer__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--lime)}.footer__muted[data-astro-cid-jo6i4kqk]{font-size:var(--fs-caption);color:var(--text-4)}.footer__bottom[data-astro-cid-jo6i4kqk]{align-items:center;gap:var(--sp-4);padding-top:var(--sp-6);border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.footer__legal[data-astro-cid-jo6i4kqk]{text-align:center;text-transform:none;letter-spacing:.02em;grid-column:2}.footer__langs[data-astro-cid-jo6i4kqk]{justify-self:start;gap:var(--sp-2);grid-column:1;display:inline-flex}.footer__lang[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-4);transition:color var(--dur) var(--ease);font-size:11px}.footer__lang[data-astro-cid-jo6i4kqk]:hover,.footer__lang[data-astro-cid-jo6i4kqk].is-active{color:var(--text-2)}@media (width<=860px){.footer__top[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,minmax(0,1fr))}.footer__brand[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}@media (width<=520px){.footer__bottom[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1fr);justify-items:center}.footer__langs[data-astro-cid-jo6i4kqk]{grid-column:1;justify-self:center}.footer__legal[data-astro-cid-jo6i4kqk]{grid-column:1}}.skip[data-astro-cid-hkbrpulz]{left:var(--sp-4);z-index:100;background:var(--lime);color:var(--lime-ink);border-radius:var(--radius);font-size:var(--fs-caption);transition:top var(--dur) var(--ease);padding:10px 14px;font-weight:500;position:absolute;top:-60px}.skip[data-astro-cid-hkbrpulz]:focus{top:var(--sp-4)}
