:root{--bg-base:#fff;--bg-subtle:#fafafa;--bg-field:#fafafa;--bg-component:#fff;--bg-hover:#f4f4f5;--bg-inverted:#27272a;--bg-contrast:#18181b;--fg-base:#18181b;--fg-subtle:#52525b;--fg-muted:#71717a;--fg-disabled:#a1a1aa;--fg-on-inverted:#fff;--fg-interactive:#3b82f6;--border:#e4e4e7;--border-strong:#d4d4d8;--border-alpha:#18181b1a;--tag-green-bg:#ecfdf5;--tag-green-fg:#047857;--tag-green-dot:#10b981;--tag-orange-fg:#c2410c;--danger:#e11d48;--shadow-borders-base:0 1px 2px 0 #0000001f, 0 0 0 1px #00000014;--shadow-card:0 0 0 1px #00000014, 0 1px 2px -1px #00000014, 0 2px 4px 0 #0000000a;--shadow-card-hover:0 0 0 1px #00000014, 0 1px 2px -1px #00000014, 0 2px 8px 0 #0000001a;--shadow-button-inverted:0 .75px 0 0 #fff3 inset, 0 1px 2px 0 #0006, 0 0 0 1px #18181b;--shadow-tab-image:0 0 0 .5px #18181b14, 0 8px 24px -6px #18181b1a, 0 24px 48px -12px #18181b1f;--shadow-focus:0 0 0 1px #fff, 0 0 0 3px #3b82f699;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-xl:12px;--container:1280px;--gutter:32px;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}body{background:var(--bg-base);color:var(--fg-base);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11", "ss01";margin:0;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-sm);outline:none}::selection{background:#dbeafe}.container{width:100%;max-width:var(--container);padding:0 var(--gutter);margin:0 auto}.frame{max-width:var(--container);border-left:1px solid var(--border);border-right:1px solid var(--border);margin:0 auto}.section{border-top:1px solid var(--border)}.section-inner{padding:96px var(--gutter)}.section-head{flex-direction:column;gap:12px;max-width:680px;margin-bottom:48px;display:flex}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);align-items:center;gap:8px;font-size:12px;line-height:20px;display:inline-flex}.eyebrow:before{content:"";background:var(--fg-base);border-radius:2px;width:6px;height:6px}.h2{letter-spacing:-.025em;margin:0;font-size:clamp(28px,4vw,40px);font-weight:500;line-height:1.15}.h2 .muted,.hero-title .muted{color:var(--fg-disabled)}.btn{border-radius:var(--radius);height:32px;font:500 13px/20px var(--font-sans);cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;transition:background-color .15s,box-shadow .15s,color .15s;display:inline-flex}.btn-sm{height:28px;padding:0 8px}.btn-primary{background:var(--bg-inverted);color:var(--fg-on-inverted);box-shadow:var(--shadow-button-inverted)}.btn-primary:hover{background:#3f3f46}.btn-secondary{background:var(--bg-component);color:var(--fg-base);box-shadow:var(--shadow-borders-base)}.btn-secondary:hover{background:var(--bg-hover)}.btn-ghost{color:var(--fg-subtle);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--fg-base)}.btn:disabled{opacity:.5;cursor:not-allowed}.tag{border-radius:var(--radius-sm);background:var(--bg-subtle);height:22px;box-shadow:0 0 0 1px var(--border) inset;color:var(--fg-subtle);white-space:nowrap;align-items:center;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.tags{flex-wrap:wrap;gap:6px;display:flex}.badge-status{background:var(--bg-component);height:28px;box-shadow:var(--shadow-borders-base);color:var(--fg-subtle);border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 10px;font-size:13px;display:inline-flex}.dot{background:var(--tag-green-dot);border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 3px #10b9812e}.card{background:var(--bg-component);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow .2s,transform .2s}a.card:hover,.card.hoverable:hover{box-shadow:var(--shadow-card-hover)}.grid-bg{background-image:linear-gradient(90deg,#0000000b 1px,#0000 1px),linear-gradient(#0000000b 1px,#0000 1px);background-size:32px 32px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
