:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfaf7;--bg-soft:#f4f2ec;--surface:#fff;--surface-raised:#fff;--border:#e0ddd3;--border-strong:#c9c5b8;--ink:#15171c;--ink-soft:#3b414d;--ink-muted:#5b6270;--brand:#4a45c8;--brand-ink:#3a35b0;--brand-contrast:#fff;--focus:#1d4ed8;--live-bg:#e6f4ec;--live-ink:#1c6340;--live-border:#b6dcc6;--soon-bg:#f1efe7;--soon-ink:#5b5340;--soon-border:#ddd6c2;--app-accent:#6c8cff;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, ui-serif, serif;--font-mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", "JetBrains Mono", Menlo, Consolas, monospace;--step--1:clamp(.83rem, .81rem + .1vw, .89rem);--step-0:clamp(1rem, .97rem + .15vw, 1.07rem);--step-1:clamp(1.2rem, 1.14rem + .3vw, 1.36rem);--step-2:clamp(1.45rem, 1.33rem + .58vw, 1.78rem);--step-3:clamp(1.75rem, 1.53rem + 1.1vw, 2.4rem);--step-4:clamp(2.1rem, 1.7rem + 2vw, 3.3rem);--gutter:clamp(1rem, .6rem + 2vw, 2rem);--measure:66ch;--radius-sm:6px;--radius:12px;--radius-lg:20px;--shadow-sm:0 1px 2px #14161c0f, 0 1px 1px #14161c0a;--shadow:0 2px 4px #14161c0d, 0 12px 28px -12px #14161c2e;--header-height:4rem}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1015;--bg-soft:#131720;--surface:#161a22;--surface-raised:#1b2029;--border:#272d38;--border-strong:#3a4250;--ink:#e9ebf0;--ink-soft:#c3c8d3;--ink-muted:#9aa2b1;--brand:#aeabff;--brand-ink:#c6c4ff;--brand-contrast:#14131f;--focus:#8ab4ff;--live-bg:#12291f;--live-ink:#7fd8ab;--live-border:#245139;--soon-bg:#1e1c17;--soon-ink:#d6c9a4;--soon-border:#40392a;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 4px #0000004d, 0 14px 32px -14px #000000b3}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1015;--bg-soft:#131720;--surface:#161a22;--surface-raised:#1b2029;--border:#272d38;--border-strong:#3a4250;--ink:#e9ebf0;--ink-soft:#c3c8d3;--ink-muted:#9aa2b1;--brand:#aeabff;--brand-ink:#c6c4ff;--brand-contrast:#14131f;--focus:#8ab4ff;--live-bg:#12291f;--live-ink:#7fd8ab;--live-border:#245139;--soon-bg:#1e1c17;--soon-ink:#d6c9a4;--soon-border:#40392a;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 4px #0000004d, 0 14px 32px -14px #000000b3}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;overflow-wrap:break-word;flex-direction:column;line-height:1.6;display:flex;overflow-x:clip}img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.015em;font-weight:650;line-height:1.2}a{color:var(--brand);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--brand-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}::selection{background:color-mix(in oklab, var(--brand) 26%, transparent)}hr{border:0;border-top:1px solid var(--border);margin-block:2.5rem}code,pre,kbd{font-family:var(--font-mono);font-size:.9em}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.wrap{width:min(100% - (var(--gutter) * 2), 74rem);margin-inline:auto}.wrap-narrow{width:min(100% - (var(--gutter) * 2), 48rem);margin-inline:auto}main{flex:1 0 auto}.section{padding-block:clamp(2.5rem,1.5rem + 4vw,5rem)}.skip-link{z-index:100;background:var(--surface-raised);color:var(--ink);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.6rem 1rem;font-weight:600;transition:transform .14s;position:absolute;top:.5rem;left:.5rem;transform:translateY(calc(-100% - 1rem))}.skip-link:focus{transform:translateY(0)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:50;background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header__inner{min-height:var(--header-height);flex-wrap:wrap;align-items:center;gap:1rem;padding-block:.6rem;display:flex}.brand{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:.55rem;font-size:1.05rem;font-weight:680;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand__name{white-space:nowrap}.brand__name span{color:var(--ink-muted);font-weight:500}.site-nav{flex-wrap:wrap;align-items:center;gap:.25rem;margin-left:auto;display:flex}.site-nav a{color:var(--ink-soft);font-weight:550;font-size:var(--step--1);border-radius:var(--radius-sm);padding:.45rem .7rem;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);background:var(--bg-soft)}.theme-toggle{font:inherit;font-size:var(--step--1);color:var(--ink-soft);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:.4rem;padding:.4rem .6rem;font-weight:550;display:inline-flex}.theme-toggle:hover{color:var(--ink);background:var(--bg-soft);border-color:var(--border-strong)}.theme-toggle svg{width:1rem;height:1rem}.theme-toggle__label{white-space:nowrap}@media (width<=30rem){.theme-toggle__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.gem-orbit{--orbit-duration:36s;color:var(--app-accent);display:block}.gem-orbit__ring{fill:none;stroke:currentColor;stroke-width:1px;opacity:.32}.gem-orbit__gem{fill:currentColor}.gem-orbit__core{fill:currentColor;opacity:.9}@media (prefers-reduced-motion:no-preference){.gem-orbit__spin{transform-origin:50%;animation:gem-spin var(--orbit-duration) linear infinite}.gem-orbit__spin--reverse{animation-direction:reverse;animation-duration:calc(var(--orbit-duration) * 1.6)}}@keyframes gem-spin{to{transform:rotate(360deg)}}.button{font:inherit;font-size:var(--step--1);cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.15rem;font-weight:600;text-decoration:none;transition:background-color .12s,border-color .12s,transform .12s;display:inline-flex}.button:active{transform:translateY(1px)}.button--primary{background:var(--brand);color:var(--brand-contrast)}.button--primary:hover{background:var(--brand-ink);color:var(--brand-contrast)}.button--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.button--secondary:hover{background:var(--bg-soft);color:var(--ink)}.button--quiet{color:var(--ink-soft);border-color:var(--border);background:0 0}.button--quiet:hover{color:var(--ink);background:var(--bg-soft)}.button[aria-disabled=true],.button--disabled{background:var(--bg-soft);color:var(--ink-muted);border-color:var(--border);cursor:default}.button-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.badge{border:1px solid var(--border);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.78rem;font-weight:620;display:inline-flex}.badge--live{background:var(--live-bg);color:var(--live-ink);border-color:var(--live-border)}.badge--soon{background:var(--soon-bg);color:var(--soon-ink);border-color:var(--soon-border)}.badge__dot{background:currentColor;border-radius:50%;flex:none;width:.45rem;height:.45rem}.eyebrow{font-size:var(--step--1);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);font-weight:640}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1.1rem;display:grid}.app-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-sm);flex-direction:column;gap:.8rem;padding:1.35rem;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex;position:relative}.app-card:before{content:"";border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(90deg, var(--app-accent), color-mix(in oklab, var(--app-accent) 25%, transparent));height:3px;position:absolute;inset:0 0 auto}.app-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.app-card__head{align-items:flex-start;gap:.9rem;display:flex}.app-card__mark{flex:none;width:2.75rem;height:2.75rem}.app-card__title{font-size:var(--step-1);margin-bottom:.15rem}.app-card__title a{color:var(--ink);text-decoration:none}.app-card__title a:after{content:"";border-radius:var(--radius-lg);position:absolute;inset:0}.app-card__title a:hover{color:var(--brand)}.app-card__tagline{color:var(--ink-muted);font-size:var(--step--1)}.app-card__summary{color:var(--ink-soft);font-size:var(--step--1);flex:1}.app-card__foot{z-index:1;flex-wrap:wrap;align-items:center;gap:.6rem;display:flex;position:relative}.hero{border-bottom:1px solid var(--border);background:radial-gradient(60rem 30rem at 82% -12%, color-mix(in oklab, var(--brand) 13%, transparent), transparent 70%), var(--bg);padding-block:clamp(3rem,2rem + 6vw,6.5rem);position:relative;overflow:hidden}.hero__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,1rem + 3vw,4rem);display:grid}@media (width<=52rem){.hero__grid{grid-template-columns:minmax(0,1fr)}.hero__art{order:-1;max-width:16rem}}.hero h1{font-size:var(--step-4);margin-block:.6rem 1rem}.hero__lede{font-size:var(--step-1);color:var(--ink-soft);max-width:34ch;margin-bottom:1.6rem}.hero__art{justify-self:center;width:100%;max-width:22rem}.app-head{border-bottom:1px solid var(--border);background:var(--bg-soft);padding-block:clamp(1.75rem,1.2rem + 2.5vw,3rem) 0}.app-head__top{flex-wrap:wrap;align-items:flex-start;gap:1.15rem;display:flex}.app-head__mark{flex:none;width:3.5rem;height:3.5rem}.app-head__text{flex:18rem;min-width:0}.app-head__title{font-size:var(--step-3);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-head__tagline{color:var(--ink-soft);max-width:52ch;margin-top:.35rem}.app-head__actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.2rem;display:flex}.app-nav{scrollbar-width:thin;margin-top:1.4rem;overflow-x:auto}.app-nav ul{gap:.15rem;min-width:max-content;margin:0;padding:0;list-style:none;display:flex}.app-nav a{color:var(--ink-muted);font-size:var(--step--1);white-space:nowrap;border-bottom:2px solid #0000;padding:.6rem .85rem;font-weight:580;text-decoration:none;display:block}.app-nav a:hover{color:var(--ink)}.app-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--app-accent)}.prose{font-family:var(--font-serif);color:var(--ink-soft);max-width:var(--measure);font-size:1.075rem;line-height:1.72}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3,.prose h4{font-family:var(--font-sans);color:var(--ink);scroll-margin-top:calc(var(--header-height) + 1.5rem);margin-top:2.2em}.prose h2{font-size:var(--step-2)}.prose h3{font-size:var(--step-1)}.prose h4{font-size:var(--step-0)}.prose strong{color:var(--ink);font-weight:640}.prose ul,.prose ol{padding-left:1.35em}.prose li+li{margin-top:.4em}.prose blockquote{border-left:3px solid var(--app-accent);color:var(--ink-muted);padding-left:1.1em;font-style:italic}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:var(--step--1);display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.55rem .8rem}.prose th{color:var(--ink);white-space:nowrap;font-weight:640}.prose pre{border-radius:var(--radius);border:1px solid var(--border);padding:1rem 1.1rem;font-size:.86rem;line-height:1.55;overflow-x:auto}.prose :not(pre)>code{background:var(--bg-soft);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:4px;padding:.1em .35em}.prose a{overflow-wrap:anywhere}.prose img{border-radius:var(--radius);border:1px solid var(--border)}.heading-anchor{width:1ch;color:var(--ink-muted);opacity:0;font-family:var(--font-sans);margin-left:.35ch;font-weight:500;text-decoration:none;display:inline-block}.heading-anchor:after{content:"#"}h2:hover>.heading-anchor,h3:hover>.heading-anchor,.heading-anchor:focus-visible{opacity:1}.page-meta{font-family:var(--font-sans);font-size:var(--step--1);color:var(--ink-muted);margin-top:.5rem}.article-title{font-size:var(--step-3);max-width:var(--measure)}.article-title+.page-meta+.prose,.article-title+.prose{margin-top:1.6rem}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}.doc-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(1.75rem,1rem + 3vw,3.5rem);display:grid}@media (width>=62rem){.doc-layout--toc{grid-template-columns:minmax(0,1fr) 15rem}.doc-layout--sidebar{grid-template-columns:15rem minmax(0,1fr)}.doc-layout--sidebar-toc{grid-template-columns:14rem minmax(0,1fr) 14rem}}.toc{font-size:var(--step--1)}@media (width>=62rem){.toc{top:calc(var(--header-height) + 1.5rem);max-height:calc(100dvh - var(--header-height) - 3rem);position:sticky;overflow-y:auto}}.toc__title{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.6rem;font-size:.78rem;font-weight:660;display:none}@media (width>=62rem){.toc__title{display:block}}.toc ol{border-left:1px solid var(--border);margin:0;padding:0;list-style:none}.toc li a{color:var(--ink-muted);border-left:2px solid #0000;margin-left:-1px;padding:.3rem 0 .3rem .85rem;line-height:1.4;text-decoration:none;display:block}.toc li a:hover{color:var(--ink);border-left-color:var(--app-accent)}.toc li.toc__depth-3 a{padding-left:1.6rem;font-size:.92em}.toc details>summary{cursor:pointer;color:var(--ink);padding:.5rem 0;font-weight:620}.toc details>ol{max-height:40vh;overflow-y:auto}@media (width>=62rem){.toc details>summary{display:none}.toc details>ol{max-height:none;overflow-y:visible}}.theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}.docs-sidebar{font-size:var(--step--1)}@media (width>=62rem){.docs-sidebar{top:calc(var(--header-height) + 1.5rem);position:sticky}}.docs-sidebar ul{margin:0;padding:0;list-style:none}.docs-sidebar a{border-radius:var(--radius-sm);color:var(--ink-soft);padding:.4rem .7rem;text-decoration:none;display:block}.docs-sidebar a:hover{background:var(--bg-soft);color:var(--ink)}.docs-sidebar a[aria-current=page]{background:color-mix(in oklab, var(--app-accent) 16%, transparent);color:var(--ink);font-weight:600}.faq-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;margin-top:.7rem!important}.faq-item[open]{border-color:var(--border-strong)}.faq-question{cursor:pointer;font-family:var(--font-sans);padding:.95rem 1.1rem .95rem 2.5rem;list-style:none;position:relative}.faq-question::-webkit-details-marker{display:none}.faq-question:before{content:"";background:var(--app-accent);width:.55rem;height:.55rem;transition:transform .16s;position:absolute;top:1.45rem;left:1.1rem;transform:rotate(45deg)}.faq-item[open] .faq-question:before{transform:rotate(135deg)}.faq-question h2{font-size:var(--step-0);color:var(--ink);scroll-margin-top:calc(var(--header-height) + 1.5rem);font-weight:620;display:inline;margin:0!important}.faq-question:hover h2{color:var(--brand)}.faq-answer{color:var(--ink-soft);padding:0 1.1rem 1.1rem 2.5rem}.faq-answer>*+*{margin-top:.9em}.changelog .prose>h2{font-family:var(--font-mono);font-size:var(--step-1);letter-spacing:-.01em;margin-top:2.6em;padding-left:1.75rem;position:relative}.changelog .prose>h2:before{content:"";background:var(--app-accent);width:.6rem;height:.6rem;position:absolute;top:.5em;left:.15rem;transform:rotate(45deg)}.changelog .prose>h2:after{content:"";background:var(--border);width:1px;position:absolute;top:calc(.5em + .85rem);bottom:-2.9em;left:.43rem}.changelog .prose>h2:last-of-type:after{display:none}.changelog .prose>h2~:not(h2){padding-left:1.75rem}.changelog .prose>h2:first-of-type{margin-top:1.2em}.notice{border:1px solid var(--border);border-left:3px solid var(--app-accent);border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--ink-soft);font-size:var(--step--1);font-family:var(--font-sans);padding:.9rem 1.1rem}.callout-cta{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font-family:var(--font-sans);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:3rem;padding:1.4rem 1.5rem;display:flex}.callout-cta p{color:var(--ink-soft);font-size:var(--step--1);max-width:44ch;margin:0}.callout-cta strong{color:var(--ink);font-size:var(--step-0);margin-bottom:.15rem;display:block}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);font-size:var(--step--1);margin-top:4rem;padding-block:2.5rem 2rem}.site-footer__grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:1.75rem;display:grid}.site-footer h2{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.7rem;font-size:.78rem;font-weight:660}.site-footer ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.site-footer a{color:var(--ink-soft);text-decoration:none}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer__bottom{border-top:1px solid var(--border);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2.25rem;padding-top:1.25rem;display:flex}.legal-notice{color:var(--ink-muted);max-width:62ch;margin-top:.75rem}.lede{font-size:var(--step-1);color:var(--ink-soft);max-width:46ch}.stack{gap:1rem;display:grid}.page-header{padding-block:clamp(2rem,1.4rem + 2.5vw,3.25rem) 0}.page-header h1{font-size:var(--step-3)}.error-page{text-align:center;padding-block:clamp(3rem,2rem + 6vw,7rem)}.error-page__code{font-family:var(--font-mono);font-size:var(--step-4);color:var(--ink-muted)}.contact-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:.35rem;padding:1.25rem 1.4rem;display:grid}.contact-card__label{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);font-size:.78rem;font-weight:660}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1rem;margin-top:1.75rem;display:grid}.brand[data-astro-cid-fzpbxy5g] .brand__mark{width:1.75rem;height:1.75rem;color:var(--brand);flex:none}
