.language-picker{position:relative}.language-trigger{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);font:11px var(--font-mono);cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:8px 10px;list-style:none;display:flex}.language-trigger::-webkit-details-marker{display:none}.language-trigger>svg:first-child{color:var(--accent)}.language-trigger:hover,.language-picker[open] .language-trigger{border-color:var(--accent);background:var(--surface-2)}.language-chevron{transition:transform .18s}.language-picker[open] .language-chevron{transform:rotate(180deg)}.language-panel{border:1px solid var(--border);background:var(--surface);z-index:5;border-radius:14px;width:250px;max-width:calc(100vw - 32px);padding:10px;position:absolute;top:calc(100% + 14px);right:0;box-shadow:0 18px 54px #0003}.language-panel input{width:100%;min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--border);font:12px var(--font-body);border-radius:8px;margin-bottom:8px;padding:11px 12px}.language-panel nav{gap:2px;max-height:min(380px,65vh);display:grid;overflow:auto}.language-panel a{min-height:44px;color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:10px 12px;font-size:13px;text-decoration:none;display:flex}.language-panel a:hover{background:var(--surface-2)}.language-panel a[aria-current]{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.language-code{color:var(--muted);font:10px var(--font-mono)}.language-panel a[hidden]{display:none}.language-panel p{margin:12px;font-size:12px}html:lang(ja),html:lang(zh){line-break:strict}html:lang(ja) h1,html:lang(zh) h1,html:lang(ja) h2,html:lang(zh) h2{letter-spacing:-.02em}@media (width<=640px){.language-trigger{gap:5px;padding:8px}.language-chevron{display:none}.language-panel{right:-8px}.header-actions{gap:8px}.header-actions .github-link{display:none}}@media (prefers-reduced-motion:reduce){.language-chevron{transition:none}}@media (width>=901px) and (width<=1100px){.site-header .main-nav{background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;padding:24px;display:none;position:absolute;top:100%;left:0;right:0}.site-header .main-nav.is-open{display:flex}.site-header .main-nav a{padding:13px;font-size:16px}.site-header .main-nav a[aria-current=page]:after{display:none}.site-header .mobile-contact,.site-header .menu-toggle{display:block}}@media (width<=640px){.site-header .header-actions{gap:8px}.site-header .language-panel{position:fixed;top:88px;right:16px}}html:lang(ja) h1,html:lang(ja) h2,html:lang(zh) h1,html:lang(zh) h2{text-wrap:balance}html:lang(ja) .hero h1{font-size:clamp(1.7rem,3.5vw,3.4rem);line-height:1.3}.theme-picker{position:relative}.theme-trigger{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);border-radius:9px;align-items:center;gap:9px;padding:8px 12px;font-size:11px;display:inline-flex}.theme-trigger:hover,.theme-trigger[aria-expanded=true]{border-color:var(--accent);background:var(--surface-2)}.theme-trigger [data-theme-icon]{color:var(--accent)}.theme-current{text-align:left;min-width:43px}.theme-chevron{color:var(--muted);transition:transform .2s}.theme-trigger[aria-expanded=true] .theme-chevron{transform:rotate(180deg)}.theme-panel{border:1px solid var(--border);background:var(--surface);transform-origin:100% 0;z-index:2;border-radius:14px;width:264px;max-width:calc(100vw - 32px);padding:9px;position:absolute;top:calc(100% + 14px);right:0;box-shadow:0 18px 54px #0003}.theme-panel-title{font:9px var(--font-mono);letter-spacing:.12em;color:var(--muted);padding:10px 11px 13px;display:block}.theme-options{gap:4px;display:grid}.theme-option{cursor:pointer;color:var(--muted);border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:12px 10px;transition:background .18s,color .18s,border-color .18s;display:flex;position:relative}.theme-option:hover{color:var(--text);background:var(--surface-2)}.theme-option:has(input:checked){color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, var(--surface));border-color:color-mix(in srgb, var(--accent) 28%, var(--border))}.theme-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.theme-option-copy{flex:1;gap:3px;font-size:12px;font-weight:500;display:grid}.theme-option-copy small{color:var(--muted);font-size:10px;font-weight:400}.theme-check{opacity:0}.theme-option:has(input:checked) .theme-check{opacity:1}@media (width<=640px){.theme-trigger{justify-content:center;min-width:42px;min-height:42px;padding:10px}.theme-current{clip-path:inset(50%);width:1px;min-width:0;height:1px;position:absolute;overflow:hidden}.theme-chevron{display:none}.theme-panel{right:-48px}}@media (prefers-reduced-motion:no-preference){.theme-panel:not([hidden]){animation:.18s cubic-bezier(.2,.8,.2,1) both theme-open}@keyframes theme-open{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:none}}}.theme-trigger [data-theme-icon][data-active=false]{display:none}.theme-option .theme-radio{opacity:0;z-index:1;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body:"Inter Variable", sans-serif;--font-display:"Space Grotesk Variable", sans-serif;--font-mono:Consolas, "Courier New", monospace;--bg:#101218;--surface:#171a22;--surface-2:#20242e;--text:#f2f2f5;--muted:#a4a8b7;--border:#303440;--accent:#c2b2ff;--accent-strong:#a68dff;--mint:#b7efce;--warning:#e8bd7c;--danger:#ff9c9c;--on-accent:#191327;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--radius:8px;--radius-lg:14px;--max-width:1280px;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--shadow:0 20px 60px #0003;--transition:.18s ease;--z-header:30;--z-dialog:100;--breakpoint-mobile:640px;--breakpoint-tablet:900px;color-scheme:dark}:root[data-theme=light]{--bg:#f7f7fa;--surface:#fff;--surface-2:#ebedf3;--text:#20222b;--muted:#5c6171;--border:#d9dbe4;--accent:#6240c3;--accent-strong:#5130b3;--mint:#216345;--warning:#865513;--danger:#aa262b;--on-accent:#fff;--shadow:0 20px 60px #25253610;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a,button,select{transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition)}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button:active,.button:active{transform:translateY(1px)}img,video{max-width:100%;display:block}svg{flex-shrink:0}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-weight:600;line-height:1.12}h1{font-size:clamp(3rem,6vw,5.7rem)}h2{font-size:clamp(2rem,4vw,3.5rem)}h3{font-size:1.5rem}p{color:var(--muted);margin:0 0 1.2em}p:last-child{margin-bottom:0}.container{width:min(var(--max-width), calc(100% - 96px));margin-inline:auto}.section{padding-block:104px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font:500 11px/1.5 var(--font-mono);color:var(--accent);align-items:center;gap:10px;margin-bottom:24px;display:flex}.eyebrow:before{content:"";background:currentColor;width:6px;height:6px}.section-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:48px;display:flex}.section-heading p{max-width:390px;margin:0}.section-heading h2{max-width:640px}.button{border:1px solid var(--border);background:var(--surface);min-height:48px;color:var(--text);border-radius:5px;justify-content:center;align-items:center;gap:22px;padding:12px 22px;font-size:13px;font-weight:600;display:inline-flex}.button:hover{background:var(--surface-2);border-color:var(--muted)}.button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button.small{min-height:40px;padding:8px 15px}.text-link{align-items:center;gap:18px;font-size:13px;font-weight:600;display:inline-flex}.text-link:hover{color:var(--accent)}.text-link span:last-child{transition:transform var(--transition)}.text-link:hover span:last-child{transform:translate(4px)}.actions{flex-wrap:wrap;gap:12px;display:flex}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:12px}.pill{border:1px solid var(--border);border-radius:5px;align-items:center;gap:7px;padding:4px 10px;font-size:10px;font-weight:500;line-height:1.6;display:inline-flex}.pill.live{color:var(--mint);border-color:color-mix(in srgb, var(--mint) 30%, transparent);background:color-mix(in srgb, var(--mint) 5%, transparent)}.pill.dev{color:var(--warning)}.pill.live:before{content:"";background:var(--mint);border-radius:50%;width:5px;height:5px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:var(--on-accent);z-index:101;padding:12px 20px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--border);background:var(--bg);height:86px;z-index:var(--z-header);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;height:100%;display:flex}.brand{font:700 16px/1.1 var(--font-display);letter-spacing:.03em;align-items:center;gap:10px;display:inline-flex}.brand-sub{letter-spacing:.29em;margin-top:5px;font-size:10px;display:block}.main-nav{align-items:center;gap:30px;display:flex}.main-nav a{color:var(--muted);font-size:12px}.main-nav a:hover,.main-nav a[aria-current=page]{color:var(--text)}.main-nav a[aria-current=page]{position:relative}.main-nav a[aria-current=page]:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-33px;left:0;right:0}.header-actions{align-items:center;gap:22px;display:flex}.github-link:hover{color:var(--accent)}.menu-toggle{color:var(--text);background:0 0;border:0;padding:10px;display:none}.menu-toggle span{background:currentColor;width:20px;height:2px;margin:5px 0;display:block}.mobile-contact{display:none}.site-footer{border-top:1px solid var(--border);padding:60px 0 24px}.footer-top{grid-template-columns:1fr 1fr 1fr;gap:32px;padding-bottom:56px;display:grid}.footer-top>p{font-family:var(--font-display);color:var(--text);font-size:24px;line-height:1.3}.footer-top nav{color:var(--muted);grid-template-columns:1fr 1fr;gap:18px;font-size:12px;display:grid}.footer-top a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:20px;padding-top:22px;font-size:10px;display:flex}.page-intro{border-bottom:1px solid var(--border);padding:80px 0 64px}.page-intro h1{max-width:900px;margin-bottom:24px;font-size:clamp(2.7rem,6vw,4.8rem)}.page-intro .lead{max-width:640px;font-size:17px}.breadcrumb{color:var(--muted);gap:10px;margin-bottom:36px;font-size:11px;display:flex}.breadcrumb a:hover{color:var(--accent)}.notice{border-left:2px solid var(--accent);background:var(--surface);color:var(--muted);padding:20px 24px;font-size:13px}.notice strong{color:var(--text)}.code-wrap{border-radius:var(--radius);color:#d5d9e5;background:#11141d;border:1px solid #303440;position:relative;overflow:hidden}.code-toolbar{font:11px var(--font-mono);color:#a4a8b7;border-bottom:1px solid #303440;justify-content:space-between;padding:12px 18px;display:flex}.code-toolbar button{color:#c2b2ff;font:inherit;background:0 0;border:0}.code-wrap pre{font:12px/1.9 var(--font-mono);margin:0;padding:24px;overflow:auto}.code-wrap .kw{color:#c2b2ff}.code-wrap .fn{color:#b7efce}.code-wrap .cm{color:#838b9e}.code-wrap .str{color:#e8bd7c}.divider{border-top:1px solid var(--border)}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;padding:40px}.empty-state h3{margin-bottom:12px}.empty-state p{max-width:500px;margin-inline:auto}.skeleton{background:linear-gradient(90deg, var(--surface), var(--surface-2), var(--surface));background-size:200% 100%;border-radius:4px;min-height:20px;animation:1.5s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);max-width:min(1000px,95vw);max-height:94vh;box-shadow:var(--shadow);border-radius:12px;padding:18px}dialog::backdrop{backdrop-filter:blur(6px);background:#05070cdf}.dialog-head{justify-content:space-between;align-items:center;gap:30px;margin-bottom:12px;display:flex}.dialog-head button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 15px}.dialog-image{width:auto;max-height:75vh;margin:auto}.dialog-caption{padding-top:12px;font-size:12px}.prose{color:var(--muted);font-size:15px;line-height:1.85}.prose h2{color:var(--text);margin:44px 0 18px;scroll-margin-top:110px;font-size:28px}.prose h3{color:var(--text);margin:32px 0 14px;font-size:20px}.prose a{color:var(--accent);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.prose strong{color:var(--text)}.prose pre{border:1px solid var(--border);border-radius:8px;padding:24px;font-size:12px;overflow:auto}.prose :not(pre)>code{background:var(--surface-2);color:var(--text);overflow-wrap:anywhere;border-radius:3px;padding:2px 6px;font-size:.87em}.prose table{border-collapse:collapse;width:100%;font-size:12px;display:block;overflow:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:12px}.prose th{color:var(--text)}.prose blockquote{border-left:2px solid var(--accent);margin:24px 0;padding:8px 24px}.prose ul,.prose ol{padding-left:24px}.prose li{margin:8px 0}::selection{background:var(--accent);color:var(--on-accent)}@media (width>=1800px){:root{--max-width:1440px}.section{padding-block:120px}}@media (width<=1100px){.container{width:calc(100% - 64px)}.main-nav{gap:20px}.header-actions{gap:12px}}@media (width<=900px){.container{width:calc(100% - 48px)}.site-header{height:74px}.main-nav{background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:0;padding:24px;display:none;position:absolute;top:73px;left:0;right:0}.main-nav.is-open{display:flex}.main-nav a{padding:13px;font-size:16px}.main-nav a[aria-current=page]:after{display:none}.mobile-contact,.menu-toggle{display:block}.section{padding-block:72px}.section-heading{flex-direction:column;align-items:start;gap:20px}.footer-top{grid-template-columns:1fr 1fr}.footer-top nav{grid-column:1/-1}.footer-bottom{flex-wrap:wrap}.page-intro{padding:56px 0 40px}}@media (width<=640px){.container{width:calc(100% - 40px)}body{font-size:14px}.section{padding-block:56px}.brand{font-size:13px}.brand-sub{font-size:8px}.logo-mark{width:29px;height:29px}.header-inner,.header-actions{gap:12px}.github-link{display:none}.footer-top{grid-template-columns:1fr;gap:32px}.footer-top nav{grid-column:auto}.footer-bottom{flex-direction:column;gap:12px}.page-intro .lead{font-size:15px}.eyebrow{margin-bottom:18px;font-size:10px}.section-heading{margin-bottom:30px}.actions .button{flex:1}.notice{padding:16px}.button{gap:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}[hidden]{display:none!important}.diagram-caption a,.code-source a,p a:not(.button){text-underline-offset:3px;text-decoration:underline}@media (prefers-reduced-motion:no-preference){.hero h1>span{background:linear-gradient(100deg, var(--accent) 25%, var(--mint) 48%, var(--accent) 72%);color:#0000;background-size:240% 100%;-webkit-background-clip:text;background-clip:text;animation:3s ease-out title-light}.hero .status-dot{animation:1.3s ease-out 3 status-pulse}.feature.motion-entered .cube-one{animation:3.8s ease-in-out cube-float}.feature.motion-entered .cube-two{animation:3.8s ease-in-out .15s cube-float}.feature.motion-entered .scene-tabs span{animation:.9s ease-out cycle-step}.feature.motion-entered .scene-tabs span:nth-child(2){animation-delay:.22s}.feature.motion-entered .scene-tabs span:nth-child(3){animation-delay:.44s}.feature,.latest-update,.system-row,.button,.gallery-trigger{transition:transform .25s cubic-bezier(.2,.8,.2,1),background .2s,border-color .2s,box-shadow .25s}.feature:hover,.feature:focus-visible,.latest-update:hover{transform:translateY(-5px)}.button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0001}.button:active{transform:translateY(0)}.feature .feature-arrow{transition:transform .25s;display:inline-block}.feature:hover .feature-arrow{transform:translate(3px,-3px)}.feature-input:hover kbd,.feature-input:focus-visible kbd{animation:.7s ease-out key-press}.feature-input kbd:nth-child(2){animation-delay:80ms}.feature-input kbd:nth-child(3){animation-delay:.16s}.feature-input kbd:nth-child(4){animation-delay:.24s}dialog[open]{animation:.23s cubic-bezier(.2,.8,.2,1) both panel-enter}dialog[open]::backdrop{animation:.23s both backdrop-enter}.main-nav.is-open{animation:.2s ease-out both panel-enter}@keyframes title-light{0%{background-position:100% 0}to{background-position:0 0}}@keyframes status-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--mint) 40%, transparent)}90%,to{box-shadow:0 0 0 7px #0000}}@keyframes cube-float{0%,to{translate:0}50%{translate:0 -18px}}@keyframes cycle-step{40%{background:var(--surface-2);color:var(--accent);translate:0 -4px}}@keyframes key-press{35%{color:var(--accent);border-color:var(--accent);transform:translateY(4px)}}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}}
