@font-face{font-family:spaceGrotesk;src:url(../media/space_grotesk_wght-s.p.092gko6h6levo.woff2)format("woff2");font-display:swap;font-weight:300 700}@font-face{font-family:spaceGrotesk Fallback;src:local(Arial);ascent-override:88.78%;descent-override:26.34%;line-gap-override:0.0%;size-adjust:110.84%}.spacegrotesk_a3660a52-module__hzk8yW__className{font-family:spaceGrotesk,spaceGrotesk Fallback}.spacegrotesk_a3660a52-module__hzk8yW__variable{--font-space-grotesk:"spaceGrotesk", "spaceGrotesk Fallback"}
@font-face{font-family:hanken;src:url(../media/hanken_wght-s.p.3241148m1u9do.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:hanken Fallback;src:local(Arial);ascent-override:98.46%;descent-override:29.83%;line-gap-override:0.0%;size-adjust:101.56%}.hanken_30e4a8f0-module__EC_RWW__className{font-family:hanken,hanken Fallback}.hanken_30e4a8f0-module__EC_RWW__variable{--font-hanken:"hanken", "hanken Fallback"}
@font-face{font-family:jetbrains;src:url(../media/jetbrains_wght-s.p.2rmhnsrc80fag.woff2)format("woff2");font-display:swap;font-weight:100 800}@font-face{font-family:jetbrains Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrains_6845c487-module__nYCLXW__className{font-family:jetbrains,jetbrains Fallback}.jetbrains_6845c487-module__nYCLXW__variable{--font-jetbrains:"jetbrains", "jetbrains Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--base:#07080b;--surface-1:#0b0d11;--surface-2:#0f1217;--surface-3:#15181e;--surface-4:#1c1f26;--surface-overlay:#101318b8;--accent:#25d07a;--accent-glow:#40e799;--accent-dim:#278657;--accent-ink:#031c0f;--accent-soft:#25d07a1f;--accent-ring:#25d07a59;--amber:#fab338;--amber-soft:#fab3381f;--red:#ec5165;--red-soft:#ec51651f;--locked:#7e8695;--text-1:#f6f7f9;--text-2:#b9bfca;--text-3:#848b9a;--text-4:#7b818e;--hairline:#dee3ed14;--hairline-bright:#e4e9f129;--border-subtle:#dee3ed0f;--border:#dee3ed1a;--border-strong:#e4e9f12e;--font-display:var(--font-space-grotesk), "Space Grotesk", system-ui, sans-serif;--font-body:var(--font-hanken), "Hanken Grotesk", system-ui, sans-serif;--font-mono:var(--font-jetbrains), "JetBrains Mono", ui-monospace, monospace;--text-display-xl:clamp(2.75rem, 5.4vw, 4.75rem);--text-h1:clamp(2.25rem, 4vw, 3rem);--text-h2:2rem;--text-h3:1.375rem;--text-body-lg:1.125rem;--text-body:1rem;--text-label:.9375rem;--text-small:.875rem;--text-mono:.8125rem;--text-micro:.75rem;--tracking-display:-.03em;--tracking-tight:-.02em;--tracking-kicker:.14em;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-btn:8px;--radius-lg:12px;--radius-card:.875rem;--elev-1:inset 0 1px 0 #e4e9f10d, 0 1px 2px #03040780;--elev-2:inset 0 1px 0 #e4e9f112, 0 2px 6px #03040780;--elev-3:inset 0 1px 0 #e4e9f114, 0 4px 14px -4px #03040799;--elev-4:inset 0 1px 0 #e4e9f11a, 0 10px 28px -10px #030407b3;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-snap:cubic-bezier(.5, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--dur-page:.52s;--cord-owns:#2fbc75;--cord-member:#4994df;--cord-depends:#956cda;--cord-uses:#35bad4;--cord-approved:#efac39;--cord-recorded:#768093;--cord-supersedes:#cf5994;--focus-ring:0 0 0 2px var(--base), 0 0 0 4px var(--accent-ring)}
*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--base);color:var(--text-1);font-family:var(--font-body);font-size:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}h1,h2,h3,h4,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img,canvas,svg,video{max-width:100%;display:block}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-xs);outline:none}::selection{background:var(--accent-soft);color:var(--text-1)}*{scrollbar-width:thin;scrollbar-color:var(--surface-4) transparent}.kicker{font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:var(--tracking-kicker);text-transform:uppercase;color:var(--text-3);font-weight:500}.kicker--accent{color:var(--accent)}.status-dot{border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.btn{border-radius:var(--radius-btn);font-family:var(--font-body);font-size:var(--text-label);border:1px solid var(--border);background:linear-gradient(180deg, var(--surface-3), var(--surface-2));box-shadow:var(--elev-1);color:var(--text-1);transition:transform var(--dur-base) var(--ease-out-expo), box-shadow var(--dur-base) var(--ease-out-expo), border-color var(--dur-base) var(--ease-out-expo);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;line-height:1.2;display:inline-flex}.btn:hover{border-color:var(--border-strong);box-shadow:var(--elev-2);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--primary{background:linear-gradient(180deg, var(--accent-glow), var(--accent));color:var(--accent-ink);border-color:#1fad66;box-shadow:inset 0 1px #7ef1bb8c,0 1px 2px #03040780}.btn--primary:hover{box-shadow:inset 0 1px #8cf2c3a6,0 4px 14px -4px #25d07a66}.btn--ghost{box-shadow:none;border-color:var(--border);color:var(--text-2);background:0 0}.btn--ghost:hover{color:var(--text-1);background:var(--surface-2)}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-card);box-shadow:var(--elev-2)}.link-slide{position:relative}.link-slide:after{content:"";height:1px;transition:right var(--dur-base) var(--ease-out-expo);background:currentColor;position:absolute;bottom:-2px;left:0;right:100%}.link-slide:hover:after{right:0}.sr-only{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:0;transition:opacity var(--dur-page) var(--ease-out-expo), transform var(--dur-page) var(--ease-out-expo);transition-delay:var(--reveal-delay,0s);transform:translateY(24px)}.reveal.is-in{opacity:1;transform:translateY(0)}@keyframes route-in{0%{opacity:0}to{opacity:1}}.route-transition{animation:route-in var(--dur-slow) var(--ease-out-expo)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
