@font-face{font-family:GeistMono;src:url(../media/GeistMono_Variable.p.0b02cdm7g7y6h.woff2)format("woff2");font-display:swap;font-weight:100 900}.geistmono_157ca88a-module__iaM1Ya__className{font-family:GeistMono,ui-monospace,SFMono-Regular,Roboto Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace}.geistmono_157ca88a-module__iaM1Ya__variable{--font-geist-mono:"GeistMono", ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace}
@font-face{font-family:GeistSans;src:url(../media/Geist_Variable-s.p.2-i4fw5gbtlb7.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local(Arial);ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.0%;size-adjust:106.28%}.geistsans_d5a4f12f-module__Ur3q_a__className{font-family:GeistSans,GeistSans Fallback}.geistsans_d5a4f12f-module__Ur3q_a__variable{--font-geist-sans:"GeistSans", "GeistSans Fallback"}
:root{--ice:#f7fafc;--pale:#eaf7fc;--sky:#a9ddf4;--light-blue:#4fb4ea;--blue:#3298d8;--royal:#246cb0;--deep:#173e78;--navy-900:#10224a;--background:#f7fafc;--surface:#fff;--surface-soft:#eaf7fc;--surface-blue:#d6effa;--primary:#3298d8;--primary-hover:#246cb0;--primary-strong:#173e78;--navy:#10224a;--text:#132238;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#dce8f0;--border-strong:#c6d9e6;--success:#16835b;--warning:#975a16;--error:#c23434;--action:#246cb0;--action-hover:#173e78;--action-text:#fff;--link:#246cb0;--nav-active-bg:#eaf7fc;--nav-active-text:#246cb0;--badge-bg:#eaf7fc;--badge-text:#246cb0;--header-bg:#ffffffe0;--rail-bg:#fff;--rail-hover:#f2f9fd;--panel:#10224a;--panel-2:#173e78;--skeleton:#eaf7fc;--focus:#3298d8;--grad:linear-gradient(100deg, #246cb0 0%, #3298d8 45%, #4fb4ea 80%, #a9ddf4 100%);--grad-brand:linear-gradient(160deg, #a9ddf4 0%, #4fb4ea 38%, #3298d8 70%, #246cb0 100%);--grad-tile-1:linear-gradient(145deg, #75c9f3, #3298d8);--grad-tile-2:linear-gradient(145deg, #4fb4ea, #246cb0);--grad-tile-3:linear-gradient(145deg, #3298d8, #173e78);--shadow-card:0 1px 2px #173e780a, 0 8px 28px #173e780f;--shadow-feature:0 18px 48px #173e781f;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-card:22px;--r-xl:28px;--r-hero:32px;--ease:cubic-bezier(.22, 1, .36, 1);--t-micro:.15s;--t-component:.22s;--t-panel:.35s;--t-hero:.6s;--content:1240px;--gutter:40px;--nav-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root.dark{--background:#07152b;--surface:#0d2342;--surface-soft:#0a1c37;--surface-blue:#12335b;--primary:#4fb4ea;--primary-hover:#75c9f3;--primary-strong:#a9ddf4;--navy:#050f20;--text:#f4faff;--text-secondary:#a9bcd0;--text-muted:#7f95af;--border:#1d3b61;--border-strong:#2a4f7c;--success:#4cc795;--warning:#e0a84f;--error:#ff8a8a;--action:#4fb4ea;--action-hover:#75c9f3;--action-text:#07152b;--link:#75c9f3;--nav-active-bg:#12335b;--nav-active-text:#a9ddf4;--badge-bg:#12335b;--badge-text:#a9ddf4;--header-bg:#07152bdb;--rail-bg:#081a33;--rail-hover:#0f2a4d;--panel:#050f20;--panel-2:#0a1c37;--skeleton:#12335b;--focus:#75c9f3;--grad:linear-gradient(100deg, #4fb4ea 0%, #75c9f3 55%, #f4faff 100%);--shadow-card:none;--shadow-feature:0 18px 50px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (max-width:1024px){:root{--gutter:24px}}@media (max-width:640px){:root{--gutter:18px}}@media (max-width:767px){:root{--nav-h:56px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}html,body{margin:0;padding:0}body{background:var(--background);min-height:100vh;color:var(--text);font-family:var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;-webkit-font-smoothing:antialiased;transition:background var(--t-component) var(--ease), color var(--t-component) var(--ease);font-size:16px;line-height:1.5}img,svg{max-width:100%;display:block}main{overflow-x:clip}button,input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}p{margin:0}h1,h2,h3,h4{letter-spacing:-.03em;margin:0;font-weight:600}ul,ol{margin:0;padding:0;list-style:none}dl,dd,figure{margin:0}::selection{background:var(--sky);color:var(--navy-900)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.visually-hidden:not(:focus):not(:active){clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--action);color:var(--action-text);border-radius:var(--r-xs);padding:10px 14px;font-weight:600;position:fixed;top:12px;left:12px}.display{letter-spacing:-.045em;font-size:clamp(42px,6vw,76px);font-weight:600;line-height:1}.h1{letter-spacing:-.04em;font-size:clamp(36px,4.4vw,56px);line-height:1.04}.h2{letter-spacing:-.035em;font-size:clamp(28px,3vw,36px);line-height:1.1}.h3{letter-spacing:-.025em;font-size:clamp(22px,2.2vw,26px);line-height:1.2}.h4{letter-spacing:-.015em;font-size:18px;font-weight:600;line-height:1.3}.lead{color:var(--text-secondary);font-size:18px;line-height:1.55}.small{font-size:14px;line-height:1.45}.xs{font-size:13px;line-height:1.4}.label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1.2}.mono{font-family:var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace;font-variant-numeric:tabular-nums;letter-spacing:0}.secondary{color:var(--text-secondary)}.link{color:var(--link);align-items:center;gap:4px;font-weight:500;display:inline-flex}.link:hover{text-underline-offset:3px;text-decoration:underline}.link svg{stroke-width:1.5px;width:15px;height:15px}.gradient-text{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.eyebrow{background:var(--surface);border:1px solid var(--border);height:32px;color:var(--text-secondary);box-shadow:var(--shadow-card);border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 6px;font-size:13px;font-weight:500;display:inline-flex}.eyebrow b{background:var(--nav-active-bg);height:22px;color:var(--nav-active-text);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.kbd{border:1px solid var(--border);background:var(--surface-soft);min-width:22px;height:22px;font-family:var(--font-geist-mono), monospace;color:var(--text-secondary);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;display:inline-flex}.container{width:100%;max-width:calc(var(--content) + var(--gutter) * 2);padding:0 var(--gutter);margin:0 auto}.page{padding-top:48px;padding-bottom:96px}.section{padding-top:112px}.section-intro{max-width:560px}.section-intro p{margin-top:12px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.stack>*+*{margin-top:var(--gap,16px)}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1100px){.cards--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1024px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.cards,.cards--4{grid-template-columns:minmax(0,1fr);gap:14px}.section{padding-top:72px}.page{padding-top:28px;padding-bottom:120px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}.card--soft{background:var(--surface-soft);box-shadow:none}.pad{padding:24px}.pad-lg{padding:32px}@media (max-width:640px){.pad{padding:20px}.pad-lg{padding:24px}}.hover-lift{transition:transform var(--t-component) var(--ease), border-color var(--t-micro) var(--ease), box-shadow var(--t-component) var(--ease)}.hover-lift:hover{border-color:var(--border-strong);box-shadow:var(--shadow-feature);transform:translateY(-2px)}.divider{background:var(--border);border:0;height:1px;margin:0}.btn{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;min-height:44px;transition:background var(--t-micro) var(--ease), border-color var(--t-micro) var(--ease), color var(--t-micro) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:500;display:inline-flex}.btn svg{stroke-width:1.5px;flex:none;width:16px;height:16px}.btn--primary{background:var(--action);color:var(--action-text)}.btn--primary:hover{background:var(--action-hover)}:root.dark .btn--primary{box-shadow:inset 0 1px #a9ddf459,0 0 0 1px #4fb4ea59,0 8px 24px -10px #4fb4ea8c}:root.dark .btn--primary:hover{box-shadow:inset 0 1px 0 #a9ddf473, 0 0 0 1px var(--light-blue), 0 10px 28px -8px #4fb4eab3}.btn--secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn--secondary:hover{border-color:var(--primary)}.btn--ghost{color:var(--link);background:0 0;padding:0 8px}.btn--ghost:hover{background:var(--surface-soft)}.btn--on-dark{color:var(--navy-900);background:#fff}.btn--on-dark:hover{background:var(--sky)}.btn--sm{min-height:38px;padding:0 14px;font-size:14px}.btn--block{width:100%}.btn--icon{width:40px;min-height:40px;padding:0}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}@media (pointer:coarse){.btn--sm,.btn--icon{min-height:44px}.btn--icon{width:44px}}.badge{background:var(--badge-bg);height:24px;color:var(--badge-text);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.badge svg{stroke-width:2px;width:12px;height:12px}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge--live{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success)}.badge--warn{background:color-mix(in srgb, var(--warning) 12%, transparent);color:var(--warning)}.badge--muted{background:var(--surface-soft);color:var(--text-secondary)}.tag{border:1px solid var(--border);height:28px;color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.filters{scrollbar-width:none;gap:8px;margin:-2px;padding:2px;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--t-micro) var(--ease);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip[aria-pressed=true]{background:var(--nav-active-bg);border-color:var(--sky);color:var(--nav-active-text)}:root.dark .chip[aria-pressed=true]{border-color:var(--border-strong)}@media (pointer:coarse){.chip{min-height:44px}}.search{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);height:52px;transition:border-color var(--t-micro) var(--ease), box-shadow var(--t-micro) var(--ease);align-items:center;gap:10px;padding:0 16px;display:flex}.search:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 16%, transparent)}.search svg{stroke-width:1.5px;width:18px;height:18px;color:var(--text-secondary);flex:none}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;font-size:16px}.search input::placeholder{color:var(--text-muted)}.progress{background:var(--surface-soft);border-radius:6px;height:6px;overflow:hidden}.progress i{border-radius:inherit;background:linear-gradient(90deg, var(--royal), var(--blue));height:100%;transition:width var(--t-hero) var(--ease);display:block}:root.dark .progress i{background:linear-gradient(90deg, var(--blue), var(--light-blue))}.skeleton{background:var(--skeleton);border-radius:8px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff80,#0000);animation:1.6s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}:root.dark .skeleton:after{background:linear-gradient(90deg,#0000,#a9ddf414,#0000)}@keyframes shimmer{to{transform:translate(100%)}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.enter{animation:enter var(--t-hero) var(--ease) both}.enter-2{animation-delay:80ms}.enter-3{animation-delay:.16s}@keyframes enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.js .reveal{opacity:0;transition:opacity var(--t-hero) var(--ease), transform var(--t-hero) var(--ease);transform:translateY(18px)}.js .reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
