:root{color-scheme:dark;--fv-void:#000000;--fv-ink:#050508;--fv-slate:#0a0c12;--fv-steel:#111420;--fv-card:rgba(14,17,26,0.7);--fv-card-hover:rgba(22,27,40,0.85);--fv-paper:#ffffff;--fv-mist:#94a3b8;--fv-cyan:#00a6ff;--fv-cyan-bright:#38bdf8;--fv-cyan-deep:#0284c7;--fv-cyan-glow:rgba(0,166,255,0.45);--fv-cyan-badge:rgba(0,166,255,0.12);--fv-crimson:#ef4444;--fv-crimson-glow:rgba(239,68,68,0.4);--fv-gallium:#00d2c4;--fv-gallium-glow:rgba(0,210,196,0.35);--fv-stallion:#f59e0b;--fv-stallion-glow:rgba(245,158,11,0.35);--fv-line:rgba(255,255,255,0.08);--fv-line-strong:rgba(255,255,255,0.18);--fv-focus:var(--fv-cyan);--fv-sans:var(--font-sans),"Space Grotesk","Plus Jakarta Sans",system-ui,sans-serif;--fv-display:var(--font-display),"Space Grotesk",system-ui,sans-serif;--fv-mono:var(--font-mono),"IBM Plex Mono",ui-monospace,monospace;--gutter:clamp(1.2rem,3vw,4rem);--page-max:80rem;--header-h:4.5rem;--radius-sm:0.8125rem;--radius:0.9rem;--radius-lg:1.25rem;--radius-pill:9999px;--ease:cubic-bezier(0.16,1,0.3,1);--duration:250ms}.page-hero{padding:clamp(3rem,7vw,6rem) 0 clamp(2rem,4vw,3.5rem);text-align:center;max-width:56rem;margin-inline:auto}.page-hero h1{font-family:var(--fv-display);font-size:clamp(2rem,4.2vw,3.4rem);font-weight:700;line-height:1.08;letter-spacing:-.035em;color:var(--fv-paper);margin:0 0 1.1rem;text-wrap:balance}.kicker{display:block;font-family:var(--fv-mono);font-size:.75rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--fv-cyan);margin-bottom:.9rem}.kicker.stallion{color:var(--fv-stallion)}.kicker.gallium{color:var(--fv-gallium)}.kicker.mist,.lede{color:var(--fv-mist)}.lede{font-size:clamp(1rem,1.15vw,1.125rem);line-height:1.7;margin:0 0 1rem;max-width:46rem;margin-inline:auto}.section-head{max-width:52rem;margin:0 auto clamp(2.5rem,5vw,4rem)}.section-head h2{font-family:var(--fv-display);font-size:clamp(1.5rem,3vw,2.4rem);font-weight:700;line-height:1.15;letter-spacing:-.03em;color:var(--fv-paper);margin:0 0 .9rem;text-wrap:balance}.section-head p{color:var(--fv-mist);line-height:1.7;margin:0}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:clamp(2rem,4vw,3.5rem);align-items:start}@media (min-width:62rem){.two-col>.stack{grid-column:1}.two-col>aside{grid-column:2}}.stack{gap:1.25rem}.stack,.stack-lg{display:flex;flex-direction:column;min-width:0}.stack-lg{gap:clamp(1.75rem,3.5vw,2.75rem)}.stack-lg>p,.stack>p{color:var(--fv-mist);line-height:1.75}.stack h2,.stack-lg h2{font-family:var(--fv-display);font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:700;letter-spacing:-.025em;color:var(--fv-paper);margin:0}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1.25rem}.feature{background:var(--fv-card);border:1px solid var(--fv-line);border-radius:var(--radius);padding:clamp(1.25rem,2.2vw,1.75rem);transition:border-color var(--duration) ease,background var(--duration) ease}.feature:hover{background:var(--fv-card-hover);border-color:var(--fv-line-strong)}.feature h3{font-family:var(--fv-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--fv-paper);margin:0 0 .8125rem}.feature p{color:var(--fv-mist);font-size:1rem;line-height:1.7;margin:0}.callout{background:var(--fv-card);border:1px solid var(--fv-line);border-left:3px solid var(--fv-cyan);border-radius:var(--radius);padding:clamp(1.15rem,2.2vw,1.6rem)}.callout h3{font-family:var(--fv-display);font-size:1rem;font-weight:700;color:var(--fv-paper);margin:0 0 .8125rem}.callout p{color:var(--fv-mist);font-size:1rem;line-height:1.7;margin:0}.callout.warn{border-left-color:var(--fv-stallion)}.media-frame{margin:0 0 1.25rem;border:1px solid var(--fv-line);border-radius:var(--radius-lg);overflow:hidden;background:var(--fv-ink)}.media-frame img,.media-frame video{display:block;width:100%;height:auto}.caption{font-size:1rem;color:var(--fv-mute);line-height:1.6;margin:0}.caption,.eq{font-family:var(--fv-mono)}.eq{font-size:.9375rem;color:var(--fv-cyan);background:var(--fv-slate);border:1px solid var(--fv-line);border-radius:var(--radius-sm);padding:.8rem 1rem;overflow-x:auto}.section-head a,.stack a,.stack-lg a{color:var(--fv-cyan);text-decoration:underline;text-underline-offset:3px}.section-head a:hover,.stack a:hover,.stack-lg a:hover{color:var(--fv-cyan-bright)}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--fv-focus);outline-offset:3px;border-radius:2px}article :where(p,li,td,figcaption) a:not(.fv-btn),main :where(p,li,td,figcaption) a:not(.fv-btn):not(.skip-link){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--fv-cyan) 55%,transparent)}article :where(p,li,td,figcaption) a:hover,main :where(p,li,td,figcaption) a:hover{text-decoration-color:var(--fv-cyan)}footer :where(p,li) a:not(.fv-btn){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--fv-cyan) 55%,transparent)}footer :where(p,li) a:hover{text-decoration-color:var(--fv-cyan)}.callout li,.callout p,.eq,.feature li,.feature p,.lede,.media-frame .caption,.media-frame p,.warn p,blockquote,dd,figcaption,li,p,span[style*="flex: 1 1 460px"],span[style*="flex:1 1 460px"]{max-width:57ch}.fv-code,.fv-code-block,code,pre{max-width:100%;overflow-x:auto;overflow-wrap:normal;word-break:normal}pre{white-space:pre;-webkit-overflow-scrolling:touch}a[href*="github.com"],a[href*=npmjs],a[href*=pypi],li code,p code,span code,td code{overflow-wrap:anywhere;word-break:break-word}.fv-code,pre,pre code{font-size:1rem;line-height:1.6}pre{max-width:100%;overflow-x:auto}input[type=checkbox]:not(.sr-only),input[type=radio]:not(.sr-only){width:44px;height:44px;margin:-15px 0 -15px -15px;accent-color:var(--fv-cyan,#00a6ff);cursor:pointer;vertical-align:middle;position:relative}input[type=checkbox]::-webkit-slider-thumb,input[type=radio]::-webkit-slider-thumb{width:13px;height:13px}main :where(.fv-wrap,.fv-section,section,article)>*,main [style*="display: 'flex'"],main [style*="display:flex"]{min-width:0}main div>p,main div>span{min-width:0;overflow-wrap:break-word}[style*="grid-template-columns:repeat(auto-fit, minmax(min(100%"]{display:flex!important;flex-wrap:wrap;align-items:stretch}[style*="grid-template-columns:repeat(auto-fit, minmax(min(100%"]>*{flex:1 1 260px;min-width:0}#specs [style*="minmax(min(100%, 340px)"]{align-items:flex-start}#specs [style*="minmax(min(100%, 340px)"]>*{flex:1 1 540px}#specs div[style*="justify-content:space-between"]:has(>span:first-child+span:last-child):not(:has(>:not(span))){align-items:stretch!important}#specs div[style*="justify-content:space-between"]:has(>span:first-child+span:last-child):not(:has(>:not(span)))>span{width:100%;text-align:left!important}[style*="minmax(min(100%, 480px)"]:has(>:nth-child(5)){align-items:flex-start;container-type:inline-size}[style*="minmax(min(100%, 480px)"]:has(>:nth-child(5))>*{flex-basis:480px}@container (min-width: 1280px){[style*="minmax(min(100%, 480px)"]:has(>:nth-child(5))>*{flex-basis:480px;max-width:calc((100cqi - 3rem) / 3)}}[style*="minmax(min(100%, 150px)"]>*{flex-basis:150px}[style*="minmax(min(100%, 150px)"]:has(>:nth-child(4)):not(:has(>:nth-child(5)))>*{max-width:240px}@media (max-width:767px){#specs [style*="minmax(min(100%, 340px)"]>*,[style*="grid-template-columns:repeat(auto-fit, minmax(min(100%"]>*,[style*="minmax(min(100%, 150px)"]:has(>:nth-child(4)):not(:has(>:nth-child(5)))>*,[style*="minmax(min(100%, 150px)"]>*,[style*="minmax(min(100%, 480px)"]:has(>:nth-child(5))>*{flex:1 1 100%!important;max-width:100%}}.fv-spec-row{flex-direction:column;align-items:flex-start;gap:.3rem}.fv-spec-row>span{min-width:0!important;text-align:left!important;flex-shrink:1!important}div[style*="justify-content:space-between"]:has(>span:first-child+span:last-child):not(:has(>:not(span))){flex-direction:column;align-items:flex-start;gap:.3rem}div[style*="justify-content:space-between"]:has(>span:first-child+span:last-child):not(:has(>:not(span)))>span{min-width:0!important;text-align:left!important;flex-shrink:1!important}.table-wrap{width:100%;overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:#0B101E;box-shadow:0 12px 36px rgba(0,0,0,.6);scrollbar-width:thin;scrollbar-color:rgba(0,166,255,.3) rgba(11,16,30,.8)}.table-wrap::-webkit-scrollbar{height:6px}.table-wrap::-webkit-scrollbar-track{background:rgba(11,16,30,.8)}.table-wrap::-webkit-scrollbar-thumb{background:rgba(0,166,255,.3);border-radius:3px}table.spec{width:100%;border-collapse:collapse;text-align:left}table.spec caption{caption-side:bottom;padding:1rem 1.4rem;font-size:1rem;line-height:1.6;color:var(--fv-mist,#94a3b8);text-align:left;background:rgba(15,23,42,.45);border-top:1px solid rgba(255,255,255,.08)}table.spec th{padding:1rem 1.4rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#cbd5e1;background:rgba(15,23,42,.9);border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap}table.spec td,table.spec th{font-family:var(--fv-mono,"IBM Plex Mono",monospace);font-size:.875rem}table.spec td{padding:.95rem 1.4rem;line-height:1.55;color:#f1f5f9;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}table.spec tbody tr:last-child td{border-bottom:none}table.spec tbody tr:hover td{background:rgba(0,166,255,.04)}table.spec td.num{text-align:right;font-variant-numeric:tabular-nums;color:#ffffff;font-weight:600}table.spec td:first-child:not(.num){color:#f8fafc;font-weight:600}