.download-split[data-astro-cid-w7p6eqx5]{align-items:stretch;display:inline-flex;position:relative}.download-split-main[data-astro-cid-w7p6eqx5]{border-top-right-radius:0;border-bottom-right-radius:0}.download-split-toggle[data-astro-cid-w7p6eqx5]{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:1px;padding:0 .5rem}.download-split-toggle[data-astro-cid-w7p6eqx5] .caret{transition:transform .15s}.download-split-toggle[data-astro-cid-w7p6eqx5][aria-expanded=true] .caret{transform:rotate(180deg)}.download-split-menu[data-astro-cid-w7p6eqx5]{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--r-lg);z-index:60;min-width:100%;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .375rem);right:0}.download-split-menu[data-astro-cid-w7p6eqx5][hidden]{display:none}.download-split-menu[data-astro-cid-w7p6eqx5] a[data-astro-cid-w7p6eqx5]{white-space:nowrap;color:var(--text-muted);border-radius:var(--r-md);padding:.5rem .625rem;font-size:.8125rem;font-weight:450;display:block}.download-split-menu[data-astro-cid-w7p6eqx5] a[data-astro-cid-w7p6eqx5]:hover{background:var(--gray-200);color:var(--text)}.download-split-menu[data-astro-cid-w7p6eqx5] .dl-ext[data-astro-cid-w7p6eqx5]{color:var(--text-faint);font-family:var(--font-mono);margin-left:.375rem;font-size:.75rem}.footer-download-split[data-astro-cid-w7p6eqx5]{margin-top:1.5rem}@media (width<=30rem){.cta-row .download-split[data-astro-cid-w7p6eqx5]{width:100%}.cta-row .download-split-main[data-astro-cid-w7p6eqx5]{flex:1}}.brand[data-astro-cid-gq5d7tsk]{letter-spacing:-.02em;color:var(--text);flex-shrink:0;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500;display:inline-flex}@media (width<=30rem){.brand-name[data-astro-cid-gq5d7tsk]{font-size:.875rem}}.site-header[data-astro-cid-fzpbxy5g]{z-index:50;border-bottom:1px solid var(--border);position:sticky;top:0}.site-header[data-astro-cid-fzpbxy5g]:before,.mobile-menu[data-astro-cid-fzpbxy5g]{background:color-mix(in srgb, var(--bg) 72%, transparent);backdrop-filter:saturate(180%)blur(12px)}.site-header[data-astro-cid-fzpbxy5g]:before{content:"";z-index:-1;position:absolute;inset:0}.header-inner[data-astro-cid-fzpbxy5g]{height:var(--header-h);align-items:center;gap:1.5rem;display:flex}.header-nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:1.25rem;margin-right:auto;display:flex}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{color:var(--text-muted);font-size:.875rem;transition:color .15s}.header-nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover{color:var(--text)}.header-actions[data-astro-cid-fzpbxy5g]{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.menu-toggle[data-astro-cid-fzpbxy5g],.menu-toggle[data-astro-cid-fzpbxy5g][aria-expanded=true] .menu-icon-open[data-astro-cid-fzpbxy5g],.menu-toggle[data-astro-cid-fzpbxy5g][aria-expanded=false] .menu-icon-close[data-astro-cid-fzpbxy5g]{display:none}.mobile-menu[data-astro-cid-fzpbxy5g]{max-height:calc(100dvh - var(--header-h) - 1px);border-bottom:1px solid var(--border);position:absolute;top:calc(100% + 1px);left:0;right:0;overflow-y:auto}.mobile-menu[data-astro-cid-fzpbxy5g][hidden]{display:none}.mobile-menu-inner[data-astro-cid-fzpbxy5g]{gap:1.5rem;padding-top:1.5rem;padding-bottom:1.5rem;display:grid}.mobile-menu-group[data-astro-cid-fzpbxy5g] h2[data-astro-cid-fzpbxy5g]{letter-spacing:0;color:var(--text-faint);margin-bottom:.5rem;font-size:.8125rem;font-weight:500}.mobile-menu-group[data-astro-cid-fzpbxy5g] ul[data-astro-cid-fzpbxy5g]{margin:0;padding:0;list-style:none}.mobile-menu-group[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g],.mobile-menu[data-astro-cid-fzpbxy5g] .mobile-menu-github{border-bottom:1px solid var(--border);color:var(--text-muted);align-items:center;gap:.5rem;padding:.625rem 0;font-size:.9375rem;transition:color .15s;display:flex}.mobile-menu-group[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover,.mobile-menu[data-astro-cid-fzpbxy5g] .mobile-menu-github:hover{color:var(--text)}.mobile-menu[data-astro-cid-fzpbxy5g] .mobile-menu-github{border-bottom:0}@media (width<=60rem){.header-nav[data-astro-cid-fzpbxy5g],.header-actions[data-astro-cid-fzpbxy5g]>.header-github{display:none}.header-inner[data-astro-cid-fzpbxy5g]>.brand{margin-right:auto}.menu-toggle[data-astro-cid-fzpbxy5g]{display:inline-flex}}@media (width>=60.0625rem){.mobile-menu[data-astro-cid-fzpbxy5g]{display:none}}.section-intro[data-astro-cid-5lyysmr3]{max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}.section-intro[data-astro-cid-5lyysmr3] p[data-astro-cid-5lyysmr3]{color:var(--text-muted);text-wrap:pretty;margin-top:1rem;font-size:1.0625rem}.section-actions[data-astro-cid-5lyysmr3]{margin-top:2rem}.section-cta[data-astro-cid-prurgk2d]{padding-bottom:clamp(4rem,9vw,7rem)}.cta-panel[data-astro-cid-prurgk2d]{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--bg-raised);text-align:center;padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem)}.cta-panel[data-astro-cid-prurgk2d] p[data-astro-cid-prurgk2d]{max-width:34rem;color:var(--text-muted);text-wrap:pretty;margin:1rem auto 0;font-size:1.0625rem}.site-footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--border);padding:clamp(3rem,6vw,4.5rem) 0 2rem}.footer-grid[data-astro-cid-nns7i3if]{grid-template-columns:1fr;gap:2.5rem;padding-bottom:3rem;display:grid}.footer-brand-col[data-astro-cid-nns7i3if]{max-width:20rem}.footer-blurb[data-astro-cid-nns7i3if]{color:var(--text-faint);margin-top:1rem;font-size:.875rem;line-height:1.6}.footer-col[data-astro-cid-nns7i3if] h2[data-astro-cid-nns7i3if]{letter-spacing:-.02em;color:var(--text);margin-bottom:1rem;font-size:.8125rem;font-weight:500}.footer-col[data-astro-cid-nns7i3if] ul[data-astro-cid-nns7i3if]{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.footer-col[data-astro-cid-nns7i3if] a,.footer-button[data-astro-cid-nns7i3if]{color:var(--text-faint);font-size:.875rem;transition:color .15s}.footer-col[data-astro-cid-nns7i3if] a:hover,.footer-button[data-astro-cid-nns7i3if]:hover{color:var(--text)}.footer-button[data-astro-cid-nns7i3if]{font-family:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;padding:0}.footer-bottom[data-astro-cid-nns7i3if]{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding-top:2rem;display:flex}.footer-bottom[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]{color:var(--text-faint);font-size:.75rem}.footer-disclaimer[data-astro-cid-nns7i3if]{max-width:46rem;line-height:1.6}.footer-top[data-astro-cid-nns7i3if]{transition:color .15s}.footer-top[data-astro-cid-nns7i3if]:hover{color:var(--text)}@media (width>=48rem){.footer-grid[data-astro-cid-nns7i3if]{grid-template-columns:repeat(4,1fr);gap:3rem}.footer-brand-col[data-astro-cid-nns7i3if]{grid-column:1/-1}.footer-bottom[data-astro-cid-nns7i3if]{flex-direction:row;justify-content:space-between;align-items:baseline;gap:2rem}.footer-bottom[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]:first-child,.footer-bottom[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]:last-child{flex-shrink:0}}@media (width>=60rem){.footer-grid[data-astro-cid-nns7i3if]{grid-template-columns:1.5fr repeat(4,1fr)}.footer-brand-col[data-astro-cid-nns7i3if]{grid-column:auto}}.consent[data-astro-cid-u6s5b3h2]{z-index:70;padding-bottom:16px;position:fixed;inset:auto 0 0}.consent[data-astro-cid-u6s5b3h2][hidden]{display:none}.consent-panel[data-astro-cid-u6s5b3h2]{border:1px solid var(--border-strong);border-radius:var(--r-xl);background:var(--bg-raised);flex-direction:column;gap:1rem;padding:1rem 1.25rem;display:flex}.consent-text[data-astro-cid-u6s5b3h2]{color:var(--text-muted);text-wrap:pretty;font-size:.875rem;line-height:1.6}.consent-text[data-astro-cid-u6s5b3h2] a[data-astro-cid-u6s5b3h2]{color:var(--text);text-underline-offset:2px;text-decoration:underline}.consent-actions[data-astro-cid-u6s5b3h2]{gap:.5rem;display:flex}.consent-actions[data-astro-cid-u6s5b3h2] .btn[data-astro-cid-u6s5b3h2]{flex:1}.consent[data-astro-cid-u6s5b3h2] [data-astro-cid-u6s5b3h2][hidden]{display:none}@media (width>=48rem){.consent-panel[data-astro-cid-u6s5b3h2]{flex-direction:row;justify-content:space-between;align-items:center;gap:2rem}.consent-actions[data-astro-cid-u6s5b3h2]{flex-shrink:0}.consent-actions[data-astro-cid-u6s5b3h2] .btn[data-astro-cid-u6s5b3h2]{flex:none}}:root{--bg:#000;--bg-raised:#0a0a0a;--bg-subtle:#0f0f0f;--gray-100:#1a1a1a;--gray-200:#1f1f1f;--gray-300:#292929;--gray-400:#2e2e2e;--gray-500:#454545;--gray-600:#878787;--gray-700:#8f8f8f;--gray-900:#a1a1a1;--gray-1000:#ededed;--text:var(--gray-1000);--text-muted:var(--gray-900);--text-faint:var(--gray-700);--border:var(--gray-200);--border-strong:var(--gray-400);--blue:#0072f5;--blue-light:#52a8ff;--green:#45a557;--amber:#ffb224;--red:#e5484d;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-full:999px;--page-width:1200px;--page-margin:24px;--header-h:64px;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-feature-settings:"cv11", "ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:1rem;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:500;line-height:1.1}h1{letter-spacing:-.055em;font-size:clamp(2.5rem,6.2vw,4rem);line-height:1.02}h2{letter-spacing:-.045em;font-size:clamp(1.75rem,3.6vw,2.5rem)}h3{letter-spacing:-.02em;font-size:1rem}p{margin:0;line-height:1.6}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono);font-size:.9em}code{font-family:var(--font-mono);border-radius:var(--r-sm);background:var(--gray-100);border:1px solid var(--border);color:var(--gray-1000);padding:.1em .35em;font-size:.875em}code.click-to-copy svg{margin-left:.25rem}code.click-to-copy:hover svg{stroke:#fff}::selection{background:var(--gray-1000);color:#000}:focus-visible{outline:2px solid var(--blue-light);outline-offset:2px;border-radius:var(--r-sm)}.skip-link{z-index:100;background:var(--gray-1000);color:#000;border-radius:0 0 var(--r-md) 0;padding:.75rem 1rem;font-size:.875rem;font-weight:500;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.container{width:100%;max-width:calc(var(--page-width) + var(--page-margin) * 2);padding:0 var(--page-margin);margin:0 auto}.btn{border-radius:var(--r-md);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.375rem;height:2rem;padding:0 .75rem;font-family:inherit;font-size:.875rem;font-weight:500;line-height:1;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--gray-1000);color:#000}.btn-primary:hover{background:#fff}.btn-secondary{color:var(--text);border-color:var(--border-strong);background:0 0}.btn-secondary:hover{background:var(--gray-100);border-color:var(--gray-500)}.btn-lg{height:2.5rem;padding:0 1.125rem;font-size:.9375rem}.btn-icon-only{width:2rem;color:var(--text-muted);padding:0}.btn-icon-only:hover{color:var(--text)}.hero-lead{max-width:34rem;color:var(--text-muted);text-wrap:pretty;margin-top:1.25rem;font-size:clamp(1rem,1.6vw,1.125rem);line-height:1.55}.cta-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem;display:flex}.cta-row-center{justify-content:center}.surface{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--bg-raised);overflow:hidden}.surface-bar{border-bottom:1px solid var(--border);background:var(--bg-subtle);align-items:center;gap:.5rem;height:2.375rem;padding:0 .875rem;display:flex}.surface-label{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.surface-body{padding:1.25rem}.log{font-family:var(--font-mono);color:var(--text-muted);white-space:pre;-webkit-overflow-scrolling:touch;margin:0;font-size:.75rem;line-height:1.85;overflow-x:auto}.log code{font-size:inherit;color:inherit;background:0 0;border:0;padding:0}.log-dim{color:var(--gray-600)}.log-key{color:var(--blue-light)}.log-ok{color:var(--green)}.section{padding:clamp(3.5rem,8vw,6rem) 0}.tag{border-radius:var(--r-full);border:1px solid var(--border-strong);font-size:.6875rem;font-weight:450;font-family:var(--font-mono);align-items:center;padding:.1875rem .5rem;display:inline-flex}.tag-ok{color:var(--green);background:#45a55714;border-color:#45a55759}.card-grid{grid-template-columns:1fr;gap:1rem;display:grid}.prose>:not(.table-wrap){max-width:44rem}.prose h2{letter-spacing:-.035em;margin:clamp(2.5rem,5vw,3.5rem) 0 1rem;font-size:clamp(1.375rem,2.6vw,1.75rem)}.prose>h2:first-child{margin-top:0}.prose p,.prose li{color:var(--text-muted);text-wrap:pretty;font-size:1rem;line-height:1.7}.prose p+p,.prose ul+p,.prose ol+p{margin-top:1rem}.prose h2+p{color:var(--text)}.prose strong{color:var(--text);font-weight:500}.prose a{color:var(--blue-light);text-underline-offset:2px;text-decoration:underline}.prose a:hover{color:var(--text)}.prose ul,.prose ol{flex-direction:column;gap:.5rem;margin:1rem 0 0;padding-left:1.25rem;display:flex}.table-wrap{border:1px solid var(--border);border-radius:var(--r-xl);overflow-x:auto}.compare{border-collapse:collapse;width:100%;min-width:36rem;font-size:.875rem}.compare th,.compare td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:.875rem 1.25rem}.compare thead th{color:var(--text);background:var(--bg-subtle);font-size:.8125rem;font-weight:500}.compare tbody th{width:28%;color:var(--text-faint);font-weight:400}.compare td{color:var(--text-muted)}.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:0}.prose+.table-wrap,.table-wrap+.prose{margin-top:2.5rem}.prose .surface,.prose .table-wrap,.prose .surface+p,.prose .table-wrap+p{margin-top:1.5rem}.prose .compare td code{white-space:nowrap}.compare a{color:var(--blue-light);text-underline-offset:2px;text-decoration:underline}.compare a:hover{color:var(--text)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=48rem){.card-grid-2,.card-grid-4{grid-template-columns:repeat(2,1fr)}}@media (width>=60rem){.card-grid-4{grid-template-columns:repeat(4,1fr)}}@media (width<=30rem){:root{--page-margin:16px}.cta-row>*{width:100%}}
