@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.woff2)format("woff2-variations");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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");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}:root{--page:#f6f4f1;--void:#f6f4f1;--graphite:#fff;--glass:#ffffffeb;--glass-2:#fff;--snow:#111214;--bone:#26272b;--ash:#55575e;--slate:#82848b;--hair:#1112141a;--hair-strong:#11121438;--red:#c10a0a;--coral:#e8734f;--amber:#f2a65a;--ok:#5fd49a;--warn:#f2c35a;--bad:#f2705a;--dm:"DM Sans Variable", ui-sans-serif, system-ui, sans-serif;--geist:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--pill:9999px;--ui:10px;--card:24px;--panel:42px;--gutter:24px;--section:clamp(64px, 10vw, 120px);--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box;margin:0}[hidden]{display:none!important}html{background:var(--page);color:var(--bone);font-family:var(--dm);-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:96px}body{min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}img,svg{display:block}:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:6px}::selection{background:var(--coral);color:#fff}.wrap{max-width:1200px;padding:0 var(--gutter);margin:0 auto}.section{padding-top:var(--section)}h1{font:500 clamp(44px, 6vw, 76px) / 1 var(--dm);letter-spacing:-.035em;color:var(--snow)}h2{font:600 clamp(28px, 3vw, 36px) / 1.15 var(--geist);letter-spacing:-.02em;color:var(--snow)}h3{font:500 18px / 1.3 var(--geist);color:var(--snow)}.lead{font:400 18px / 1.55 var(--dm);color:var(--ash);max-width:46ch}.sub{font:500 18px / 1.5 var(--geist);color:var(--ash);max-width:56ch;margin-top:12px}.btn{font:500 15px var(--dm);border-radius:var(--pill);cursor:pointer;transition:transform .15s var(--ease), background .15s, border-color .15s;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 20px;display:inline-flex}.btn:active{transform:scale(.97)}.btn-white{background:var(--snow);color:var(--graphite)}.btn-white:hover{background:var(--bone)}.btn-ghost{color:var(--snow);border-color:var(--hair-strong);background:0 0}.btn-ghost:hover{background:var(--hair)}.btn-sm{padding:7px 14px;font-size:14px}.dark{--void:#0a0a0a;--graphite:#161616;--glass:#d4d4d41a;--glass-2:#d4d4d40f;--snow:#fff;--bone:#ededed;--ash:#c2c2c2;--slate:#8a8a8a;--hair:#e5e5e529;--hair-strong:#e5e5e552;color:var(--bone)}.glass{background:var(--glass);border:1px solid var(--hair);border-radius:var(--card);backdrop-filter:blur(6px)}.raise{box-shadow:0 1px 2px #1112140a,0 8px 24px #1112140d}.reveal>*{transition:opacity .7s var(--ease), transform .7s var(--ease)}.js .reveal:not(.in)>*{opacity:0;transform:translateY(22px)}.reveal>:nth-child(2){transition-delay:80ms}.reveal>:nth-child(3){transition-delay:.16s}.reveal>:nth-child(4){transition-delay:.24s}@media (width<=640px){:root{--gutter:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js .reveal:not(.in)>*{opacity:1;transform:none}}.viz{border-radius:var(--card);background:radial-gradient(120% 120% at 100% 0,#f2a65a1a,#0000 55%),radial-gradient(90% 100% at 0 100%,#c10a0a24,#0000 60%),#111214;border:1px solid #ffffff0f;padding:22px;position:relative;overflow:hidden;box-shadow:0 1px 2px #11121414,0 24px 60px #1112142e}.viz-title{color:var(--ash);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;font-size:13px;display:flex}.viz svg{width:100%;height:auto;overflow:visible}.viz text{font-family:var(--dm)}.tag{border-radius:var(--pill);border:1px solid var(--hair-strong);color:var(--ash);white-space:nowrap;padding:3px 9px;font-size:12px}.tag.bad{color:#f2705a;border-color:#f2705a66}.tag.warn{color:#f2c35a;border-color:#f2c35a66}.tag.ok{color:#5fd49a;border-color:#5fd49a66}.live{align-items:center;gap:8px;display:inline-flex}.live:before{content:"";background:#5fd49a;border-radius:50%;width:7px;height:7px;animation:1.8s ease-out infinite ping;box-shadow:0 0 #5fd49a99}@keyframes ping{0%{box-shadow:0 0 #5fd49a8c}to{box-shadow:0 0 0 10px #5fd49a00}}.draw{stroke-dasharray:1;stroke-dashoffset:1px}.in .draw{animation:draw 1.6s var(--ease) forwards;animation-delay:var(--d,.2s)}@keyframes draw{to{stroke-dashoffset:0}}.grow{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0)}.in .grow{animation:grow .9s var(--ease) forwards;animation-delay:var(--d,.1s)}@keyframes grow{to{transform:scaleY(1)}}.fade{opacity:0}.in .fade{animation:fade .6s var(--ease) forwards;animation-delay:var(--d,.3s)}@keyframes fade{to{opacity:1}}.js .reveal:not(.in) .draw,.js .reveal:not(.in) .grow{animation:none}@media (prefers-reduced-motion:reduce){.draw{stroke-dashoffset:0}.grow{transform:none}.fade{opacity:1}}html:not(.js) .draw{stroke-dashoffset:0}html:not(.js) .grow{transform:none}html:not(.js) .fade{opacity:1}
