@font-face{font-family:Immaculate Gothic;src:url(/_astro/ImmaculateGothic-Text.BLhAr9Re.woff2)format("woff2");font-style:normal;font-weight:450;font-display:swap}@font-face{font-family:Immaculate Gothic;src:url(/_astro/ImmaculateGothic-Bold.DvLAYvmk.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{color-scheme:light;--type-hero:clamp(2.25rem, 3.4vw, 3.25rem);--type-display:clamp(1.875rem, 2.6vw, 2.5rem);--type-heading:1.625rem;--type-title:1.0625rem;--type-body:1rem;--type-lead:1.0625rem;--type-control:.875rem;--section-space:7.5rem;--bg:#fff;--surface:#f4f4f4;--paper:#fff;--tint:#1717170d;--tint-strong:#17171717;--rule:#17171717;--rule-strong:#1717172e;--text:#171717;--text-2:#3d3d3d;--muted:#555;--faint:#666;--ok:#1e7359;--bad:#9b5050;--ink-button:#171717;--ink-button-hover:#333;--on-ink:#fff;--selection:#17171724;--scrollbar:#1717172e;--hairline:1px;--gutter:32px;--radius-tile:28px;--radius-card:20px;--radius-row:10px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-overshoot:cubic-bezier(.24, 1.34, .38, 1);--duration-press:.1s;--duration-release:.32s;--duration-quick:.12s;--duration-leave:.16s;--duration-arrive:.22s;--duration-swap:.32s;--duration-resize:.42s;font-kerning:normal;letter-spacing:-.005em;color:var(--text);background:var(--bg);font-synthesis:none;scroll-behavior:smooth;caret-color:var(--text);scrollbar-color:var(--scrollbar) var(--bg);-webkit-font-smoothing:antialiased;scroll-padding-top:100px;font-family:Immaculate Gothic,-apple-system,Segoe UI,sans-serif;font-weight:450}:root[data-theme=dark]{color-scheme:dark;--bg:#0a0a0a;--surface:#171717;--paper:#0a0a0a;--tint:#ffffff12;--tint-strong:#ffffff1f;--rule:#ffffff1c;--rule-strong:#ffffff2e;--text:#fff;--text-2:#dedede;--muted:#b8b8b8;--faint:#8e8e8e;--ok:#7cc4a2;--bad:#e2a3a3;--ink-button:#fff;--ink-button-hover:#e6e6e6;--on-ink:#000;--selection:#ffffff2e;--scrollbar:#ffffff2e}@media (resolution>=2x){:root{--hairline:.5px}}*{box-sizing:border-box}body{isolation:isolate;margin:0;position:relative}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}strong,b{font-weight:700}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;height:auto;display:block}svg{flex-shrink:0}::selection{background:var(--selection);color:var(--text)}:focus-visible{outline:2px solid var(--text);outline-offset:2px}p{color:var(--muted);line-height:1.6;font-size:var(--type-body);overflow-wrap:anywhere;margin:0}h1,h2,h3{text-wrap:balance;overflow-wrap:anywhere;margin:0;font-weight:450}h1{letter-spacing:-.03em;line-height:1.08;font-size:var(--type-display)}h2{letter-spacing:-.025em;max-width:22ch;line-height:1.12;font-size:var(--type-heading)}h3{letter-spacing:-.01em;line-height:1.35;font-size:var(--type-title)}.quiet{color:var(--faint)}.container{width:min(var(--content-width,1376px), calc(100% - 2 * var(--gutter)));margin-inline:auto}.site-home,.site-wide{--content-width:clamp(1376px, 68vw, 1760px)}.skip-link{z-index:100;background:var(--ink-button);color:var(--on-ink);border-radius:999px;padding:10px 16px;position:fixed;top:12px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:none}.site-header{--header-height:64px;z-index:50;min-height:var(--header-height);background:color-mix(in srgb, var(--bg) 84%, transparent);backdrop-filter:saturate(1.4)blur(16px);transition:background-color var(--duration-leave) ease;position:sticky;top:0}.site-header[data-at-top]{background:var(--bg)}.nav{min-height:var(--header-height);align-items:center;gap:4px 24px;display:flex}.nav-start{align-items:center;gap:inherit;flex:1;display:flex}.wordmark{letter-spacing:-.02em;align-items:center;gap:9px;font-size:1.0625rem;font-weight:450;display:inline-flex}.brand-mark{flex-shrink:0}.nav-links{color:var(--muted);font-size:var(--type-control);white-space:nowrap;align-items:center;gap:2px;display:flex}.nav-links a{height:32px;transition:background-color var(--duration-leave) ease, color var(--duration-leave) ease;border-radius:999px;align-items:center;padding:0 12px;display:inline-flex}.nav-links a:hover,.nav-links a[aria-current=page]{background:var(--tint);color:var(--text)}.nav-actions{flex:1;justify-content:flex-end;align-items:center;gap:4px;display:flex}.icon-button{width:36px;height:36px;color:var(--muted);transition:background-color var(--duration-leave) ease, color var(--duration-leave) ease, transform var(--duration-release) var(--ease-overshoot);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.icon-button:hover{background:var(--tint);color:var(--text)}.icon-button:active{transition-duration:var(--duration-leave), var(--duration-leave), var(--duration-press);transform:scale(.94)}.icon-swap{display:grid}.icon-swap>svg{transition:opacity var(--duration-leave) ease, filter var(--duration-leave) ease, transform var(--duration-arrive) var(--ease-out);grid-area:1/1}.icon-swap>svg[data-off]{opacity:0;filter:blur(2px);transform:scale(.8)}.nav-actions .button-small{margin-left:8px}.button{max-width:100%;min-height:40px;font-size:var(--type-control);text-align:center;white-space:nowrap;transition:background-color var(--duration-leave) ease, color var(--duration-leave) ease, transform var(--duration-release) var(--ease-overshoot);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:450;line-height:1.3;display:inline-flex}.button:active{transition-duration:var(--duration-leave), var(--duration-leave), var(--duration-press);transform:scale(.97)}.button-primary,.button-small{background:var(--ink-button);color:var(--on-ink)}.button-primary:hover,.button-small:hover{background:var(--ink-button-hover)}.button-small{min-height:32px;padding:0 14px}.button-secondary{background:var(--tint);color:var(--text)}.button-secondary:hover{background:var(--tint-strong)}.button-secondary svg{color:var(--muted)}.text-link{min-height:40px;color:var(--text);font-size:var(--type-control);align-items:center;gap:6px;display:inline-flex}.text-link svg{color:var(--faint);transition:transform var(--duration-arrive) var(--ease-out)}.text-link:hover svg{transform:translate(2px)}:root[data-reveal-ready] [data-reveal]{opacity:0;filter:blur(4px);transition:opacity var(--duration-arrive) var(--ease-out), filter var(--duration-arrive) var(--ease-out), transform var(--duration-arrive) var(--ease-out);transition-delay:calc(min(var(--reveal-index,0), 8) * 40ms);transform:translateY(4px)}:root[data-reveal-ready] [data-reveal][data-shown]{opacity:1;filter:none;transform:none}[data-arrive]{animation:arrive var(--duration-arrive) var(--ease-out) backwards;animation-delay:calc(var(--arrive-index,0) * 40ms)}@keyframes arrive{0%{opacity:0;filter:blur(4px);transform:translateY(4px)}}.footer{margin-top:var(--section-space);color:var(--muted);font-size:var(--type-control)}.footer-grid{border-top:var(--hairline) solid var(--rule);grid-template-columns:minmax(0,1fr) auto;gap:40px;padding-block:40px 64px;display:grid}.footer .wordmark{color:var(--text)}.footer-credit{font-size:var(--type-control);margin-top:14px}.footer-credit a{color:var(--text)}.footer-links{grid-template-columns:repeat(3,minmax(120px,auto));gap:32px 56px;display:grid}.footer-links>div{align-content:start;gap:2px;display:grid}.footer-links h2{color:var(--faint);font-size:var(--type-control);letter-spacing:0;margin-bottom:6px}.footer-links a{min-height:30px;transition:color var(--duration-leave) ease;align-items:center;display:inline-flex}.footer a:hover{color:var(--text)}@media (width<=1100px){.container{width:calc(100% - 2 * var(--gutter))}}@media (width<=860px){.nav-links .nav-secondary{display:none}}@media (width<=700px){:root{--gutter:16px;--type-heading:1.625rem;--type-title:1.125rem;--type-lead:1rem;--section-space:4.5rem;--radius-tile:22px}.site-header{--header-height:56px}.nav{gap:4px 8px}.nav-actions .button-small{display:none}.nav-actions{flex:none}.footer-grid{grid-template-columns:1fr}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.nav-links .nav-changelog{display:none}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.stage{isolation:isolate;border-radius:var(--radius-tile);background:var(--surface);position:relative;overflow:hidden}.mock-window,.demo-window{position:relative;overflow:hidden;container-type:inline-size}.demo-window{aspect-ratio:1360/850}.segmented{isolation:isolate;background:var(--tint);border-radius:999px;max-width:100%;padding:3px;display:inline-flex;position:relative}.segmented button{z-index:1;height:34px;color:var(--muted);font-size:var(--type-control);white-space:nowrap;transition:color var(--duration-leave) ease;background:0 0;border:0;border-radius:999px;padding:0 16px;position:relative}.segmented button:hover,.segmented button[aria-selected=true]{color:var(--text)}.segmented-knob{width:var(--knob-width,0);background:var(--paper);transform:translateX(var(--knob-x,0));border-radius:999px;position:absolute;top:3px;bottom:3px;left:0}.segmented[data-ready] .segmented-knob{transition:transform var(--duration-swap) var(--ease-out), width var(--duration-swap) var(--ease-out)}@media (forced-colors:active){.segmented button[aria-selected=true]{outline-offset:-3px;outline:2px solid highlight}}.search-pill{background:var(--tint);width:200px;height:36px;color:var(--faint);font-size:var(--type-control);transition:color var(--duration-leave) ease, transform var(--duration-release) var(--ease-overshoot);border:0;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 14px;display:flex}.search-pill:hover{color:var(--text)}.search-pill:active{transition-duration:var(--duration-leave), var(--duration-press);transform:scale(.97)}:root[data-search-shown]{overflow:hidden}:root[data-search-shown] .search-pill{opacity:0}.search-label{text-align:left;flex:1}.search-key{font:inherit;font-size:.8125rem}@property --search-x{syntax:"<length>";inherits:true;initial-value:0}@property --search-y{syntax:"<length>";inherits:true;initial-value:0}@property --search-width{syntax:"<length-percentage>";inherits:true;initial-value:100%}@property --search-height{syntax:"<length-percentage>";inherits:true;initial-value:100%}@property --search-inset{syntax:"<length>";inherits:true;initial-value:14px}@property --search-panel-y{syntax:"<length>";inherits:true;initial-value:0}@property --search-panel-height{syntax:"<length-percentage>";inherits:true;initial-value:100%}.search{--search-float:0 0 0 var(--hairline) var(--rule), 0 16px 40px -16px #0000003d;z-index:60;position:fixed;inset:0}:root[data-theme=dark] .search{--search-float:0 0 0 var(--hairline) var(--rule), 0 16px 40px -16px #000}.search-scrim{backdrop-filter:blur(8px);background:#0000002e;position:absolute;inset:0}:root[data-theme=dark] .search-scrim{background:#0000008c}.search-column{pointer-events:none;flex-direction:column;gap:10px;max-width:664px;margin-inline:auto;padding:12px 16px 0;display:flex;position:relative}.search-slot{z-index:1;height:48px;position:relative}.search-field{width:var(--search-width);height:var(--search-height);translate:var(--search-x) var(--search-y);isolation:isolate;padding:0 var(--search-inset);background:var(--tint);color:var(--faint);font-size:var(--type-control);pointer-events:auto;border-radius:999px;align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0}.search-field-fill{z-index:-1;border-radius:inherit;background:var(--surface);box-shadow:var(--search-float);position:absolute;inset:0}.search[data-state=open] .search-field :is(.search-label,.search-key),.search[data-state=closing] .search-field :is(.search-input,.search-clear){display:none}.search-input{min-width:0;height:100%;color:var(--text);font:inherit;font-size:var(--type-body);background:0 0;border:0;outline:none;flex:1;padding:0}.search-input::placeholder{color:var(--faint);opacity:1}.search-clear{width:28px;height:28px;color:var(--faint);transition:color var(--duration-leave) ease, opacity var(--duration-leave) ease, filter var(--duration-leave) ease, visibility var(--duration-leave), transform var(--duration-release) var(--ease-overshoot);background:0 0;border:0;border-radius:999px;place-items:center;margin-right:-6px;padding:0;display:grid}.search-clear:hover{color:var(--text)}.search-clear:active{transition-duration:var(--duration-leave), var(--duration-leave), var(--duration-leave), var(--duration-leave), var(--duration-press);transform:scale(.94)}.search-clear:not([data-shown]){visibility:hidden;opacity:0;filter:blur(2px);transform:scale(.8)}.search-panel{position:relative}.search-panel-fill{width:var(--search-width);height:var(--search-panel-height);translate:var(--search-x) var(--search-panel-y);background:var(--surface);box-shadow:var(--search-float);border-radius:28px;position:absolute;top:0;left:0}.search-content{overscroll-behavior:contain;max-height:calc(100dvh - 96px);clip-path:inset(var(--search-panel-y) calc(100% - var(--search-x) - var(--search-width)) calc(100% - var(--search-panel-y) - var(--search-panel-height)) var(--search-x) round 28px);scrollbar-width:none;pointer-events:auto;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 16px calc(100% - 16px),#0000);mask-image:linear-gradient(#0000,#000 16px calc(100% - 16px),#0000)}.search-content::-webkit-scrollbar{display:none}.search-results{translate:var(--search-x) 0;flex-direction:column;gap:20px;padding:16px;display:flex}.search-group{flex-direction:column;gap:8px;display:flex}.search-group-label{color:var(--faint);padding:0 6px;font-size:.8125rem;line-height:18px}.search-option{transition:background-color var(--duration-quick) ease, scale var(--duration-release) var(--ease-overshoot);border-radius:14px;flex-direction:column;gap:2px;padding:10px 12px;scroll-margin-block:16px;display:flex}.search-option:active{transition-duration:var(--duration-quick), var(--duration-press);scale:.98}.search-option[aria-selected=true]{background:var(--tint)}.search-option-name{color:var(--text);font-size:var(--type-control);line-height:20px}.search-option-about{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;line-height:18px;overflow:hidden}.search-empty{color:var(--faint);font-size:var(--type-control);text-align:center;padding:24px 6px}@media (width<=1023px){.search-pill{width:36px;padding:0 9px}.search-pill :is(.search-label,.search-key),.search[data-state=closing] .search-field :is(.search-label,.search-key){display:none}}
