@font-face{font-family:"Roboto";src:url("fonts/Roboto-Regular.ttf") format("truetype");font-weight:400;font-display:swap}@font-face{font-family:"Roboto";src:url("fonts/Roboto-Medium.ttf") format("truetype");font-weight:500 700;font-display:swap}:root,[data-theme=dark]{--ground: #1d1d1d;--surface: #232323;--raised: #292929;--raised-hover: #2e2e2e;--well: #191919;--line-soft: #2e2e2e;--line: #3b3b3b;--line-strong: #4c4c4c;--text-1: #f3f3f3;--text-2: #cccccc;--text-3: #a0a0a0;--text-4: #777777;--accent: #5d96ff;--accent-text: #a6c6ff;--accent-wash: rgba(93, 150, 255, 0.14);--accent-line: rgba(93, 150, 255, 0.45);--tip: #5fb871;--tip-wash: rgba(95, 184, 113, 0.12);--warning: #e0a94e;--warning-wash: rgba(224, 169, 78, 0.12);--hl-keyword: #c99af7;--hl-string: #9ece6a;--hl-number: #ff9e64;--hl-comment: #6f6f6f;--hl-function: #7aa2f7;--hl-type: #2ac3de;--hl-meta: #e0af68;--hl-text: #e6e6e6;color-scheme:dark}[data-theme=light]{--ground: #f6f6f6;--surface: #ffffff;--raised: #ffffff;--raised-hover: #f1f1f1;--well: #1d1d1d;--line-soft: #e9e9e9;--line: #dddddd;--line-strong: #c4c4c4;--text-1: #151515;--text-2: #3b3b3b;--text-3: #666666;--text-4: #8e8e8e;--accent: #2f6fe0;--accent-text: #2a5fc4;--accent-wash: rgba(47, 111, 224, 0.09);--accent-line: rgba(47, 111, 224, 0.4);--tip: #3d8a4e;--tip-wash: rgba(61, 138, 78, 0.09);--warning: #8a5a00;--warning-wash: rgba(224, 169, 78, 0.14);--hl-keyword: #c99af7;--hl-string: #9ece6a;--hl-number: #ff9e64;--hl-comment: #7a7a7a;--hl-function: #7aa2f7;--hl-type: #2ac3de;--hl-meta: #e0af68;--hl-text: #e6e6e6;color-scheme:light}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{margin:0;background:var(--ground);color:var(--text-2);font-family:"Roboto",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}code,kbd,pre{font-family:"JetBrains Mono",ui-monospace,Consolas,monospace}.site-header{position:sticky;top:0;z-index:10;height:60px;background:color-mix(in srgb, var(--surface) 88%, rgba(0,0,0,0));backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}.site-header-inner{max-width:1440px;height:100%;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:10px;color:var(--text-1);font-weight:500;font-size:17px;letter-spacing:.01em}.site-nav{display:flex;gap:24px;font-size:14px;font-weight:500}.site-nav a{color:var(--text-3);transition:color .12s}.site-nav a:hover,.site-nav a.active{color:var(--text-1)}.header-tools{margin-left:auto;display:flex;align-items:center;gap:10px}.search-button{display:flex;align-items:center;gap:8px;width:240px;height:34px;padding:0 8px 0 12px;background:var(--raised);border:1px solid var(--line);border-radius:8px;color:var(--text-3);font:inherit;font-size:14px;cursor:pointer}.search-button:hover{border-color:var(--line-strong)}.search-button kbd{margin-left:auto;padding:0 6px;border:1px solid var(--line);border-radius:4px;font-size:12px;line-height:18px}.icon-button{display:grid;place-items:center;width:34px;height:34px;background:rgba(0,0,0,0);border:none;border-radius:8px;color:var(--text-3);cursor:pointer}.icon-button:hover{color:var(--text-1);background:var(--raised)}[data-theme=dark] .theme-toggle .moon,[data-theme=light] .theme-toggle .sun{display:none}.button{display:inline-flex;align-items:center;height:42px;padding:0 20px;border-radius:9px;border:1px solid var(--line);background:var(--raised);color:var(--text-1);font-weight:500;font-size:15px;transition:background .12s,border-color .12s}.button:hover{background:var(--raised-hover);border-color:var(--line-strong)}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:color-mix(in srgb, var(--accent) 88%, #fff)}.text-link{color:var(--accent-text);font-weight:500}.text-link:hover{text-decoration:underline;text-underline-offset:3px}.home-main{max-width:1120px;margin:0 auto;padding:0 24px}.hero{position:relative;display:flex;align-items:center;min-height:min(78vh,760px);margin-bottom:72px;background:linear-gradient(90deg, var(--ground) 0%, color-mix(in srgb, var(--ground) 86%, rgba(0,0,0,0)) 34%, rgba(0,0,0,0) 66%),linear-gradient(180deg, color-mix(in srgb, var(--ground) 45%, rgba(0,0,0,0)) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 70%, var(--ground) 100%),var(--hero-image) 0% 46%/max(135%,1300px) auto no-repeat}.hero h1{margin:0;color:var(--text-1);font-size:clamp(40px,5.6vw,68px);font-weight:500;line-height:1.05;letter-spacing:-.025em}.hero h1 span{color:var(--text-2)}[data-theme=light] .hero{--ground: #1d1d1d;--text-1: #f3f3f3;--text-2: #cccccc;--text-3: #b5b5b5;--raised: #292929;--raised-hover: #2e2e2e;--line: #3b3b3b;--line-strong: #4c4c4c;margin-bottom:0}.hero-inner{position:relative;width:100%;max-width:1120px;margin:0 auto;padding:96px 24px 120px}.hero-lede{max-width:470px;margin:24px 0 0;color:var(--text-3);font-size:18px;line-height:1.65}.hero-actions{display:flex;gap:12px;margin-top:36px}.hero-caption{position:absolute;right:24px;bottom:20px;margin:0;color:color-mix(in srgb, var(--text-1) 55%, rgba(0,0,0,0));font-size:12px}.editor-showcase{margin:24px 0 72px;text-align:center}.editor-showcase h2{margin:0;color:var(--text-1);font-size:clamp(28px,3.4vw,38px);font-weight:500;letter-spacing:-.02em}.editor-showcase>p{max-width:600px;margin:14px auto 40px;color:var(--text-3);font-size:17px}.editor-frame{margin:0;padding:8px;background:var(--raised);border:1px solid var(--line);border-radius:16px;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 40px 120px -20px rgba(93,150,255,.22),0 30px 60px -30px rgba(0,0,0,.7)}.editor-frame img{display:block;width:100%;height:auto;border-radius:9px}.features{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px}.feature{padding:28px;background:var(--raised);border:1px solid var(--line-soft);border-radius:14px}.feature h2{margin:0 0 10px;color:var(--text-1);font-size:17px;font-weight:500}.feature p{margin:0;color:var(--text-3);font-size:15px;line-height:1.65}.code-showcase{display:grid;grid-template-columns:1fr 1.25fr;gap:56px;align-items:center;padding:104px 0 120px}.code-showcase h2{margin:0 0 14px;color:var(--text-1);font-size:30px;font-weight:500;letter-spacing:-.015em}.code-showcase p{margin:0 0 20px;color:var(--text-3);font-size:17px}.code-showcase pre{margin:0}.site-footer{max-width:1120px;margin:0 auto;padding:32px 24px 48px;border-top:1px solid var(--line-soft);color:var(--text-4);font-size:14px}.docs-layout{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:280px minmax(0, 1fr) 240px}.docs-sidebar,.docs-toc{position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;padding:32px 20px 48px 24px}.docs-sidebar{border-right:1px solid var(--line-soft)}.docs-nav{font-size:14px}.docs-nav a{display:block;padding:5px 12px;border-radius:7px;color:var(--text-3);transition:color .12s,background .12s}.docs-nav a:hover{color:var(--text-1)}.docs-nav a.active{color:var(--accent-text);background:var(--accent-wash);font-weight:500}.docs-nav ul{list-style:none;margin:4px 0 0;padding:0 0 0 12px;border-left:1px solid var(--line-soft);margin-left:12px}.docs-nav li a{padding-left:12px}.docs-nav-home{margin-bottom:18px}.docs-nav-group{margin-bottom:22px}a.docs-nav-heading{color:var(--text-1);font-weight:500}.docs-main{min-width:0;padding:48px 56px 96px}.docs-toc{padding-left:8px;font-size:13px}.docs-toc .toc-title{margin:0 0 10px;color:var(--text-1);font-weight:500}.docs-toc ul{list-style:none;margin:0;padding:0}.docs-toc a{display:block;padding:4px 0;color:var(--text-3)}.docs-toc a:hover{color:var(--text-1)}.prose{max-width:740px}.prose .eyebrow{margin:0 0 8px;color:var(--accent-text);font-size:14px;font-weight:500}.prose h1{margin:0 0 20px;color:var(--text-1);font-size:38px;font-weight:500;line-height:1.15;letter-spacing:-.02em}.prose .lede{color:var(--text-3);font-size:18px}.prose h2{margin:52px 0 14px;color:var(--text-1);font-size:24px;font-weight:500;letter-spacing:-.01em}.prose h3{margin:36px 0 10px;color:var(--text-1);font-size:18px;font-weight:500}.prose p,.prose ul,.prose ol{margin:0 0 18px}.prose li{margin:6px 0}.prose li::marker{color:var(--text-4)}.prose strong{color:var(--text-1);font-weight:500}.prose a{color:var(--accent-text);font-weight:500}.prose a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-line)}.prose img{display:block;max-width:100%;height:auto;margin:28px 0 32px;border:1px solid var(--line);border-radius:10px}.prose :not(pre)>code{padding:2px 6px;background:var(--raised);border:1px solid var(--line-soft);border-radius:5px;color:var(--text-1);font-size:.86em}.prose table{width:100%;margin:24px 0 28px;border-collapse:collapse;font-size:15px}.prose th{padding:0 16px 10px 0;border-bottom:1px solid var(--line);color:var(--text-1);font-weight:500;text-align:left}.prose td{padding:12px 16px 12px 0;border-bottom:1px solid var(--line-soft);vertical-align:top}pre{margin:24px 0 28px;padding:20px 22px;overflow-x:auto;background:var(--well);border:1px solid var(--line-soft);border-radius:12px;color:var(--hl-text);font-size:14px;line-height:1.7}pre code{background:none;border:none;padding:0}[data-theme=light] pre{border-color:rgba(0,0,0,0)}.callout{margin:28px 0;padding:16px 20px;border-radius:12px;background:var(--accent-wash);border:1px solid var(--accent-line)}.callout p:last-child{margin-bottom:0}.callout .callout-title{margin:0 0 6px;color:var(--accent-text);font-weight:500}.callout-tip{background:var(--tip-wash);border-color:color-mix(in srgb, var(--tip) 45%, rgba(0,0,0,0))}.callout-tip .callout-title{color:var(--tip)}.callout-warning{background:var(--warning-wash);border-color:color-mix(in srgb, var(--warning) 45%, rgba(0,0,0,0))}.callout-warning .callout-title{color:var(--warning)}.card-grid{max-width:740px;display:grid;grid-template-columns:repeat(2, 1fr);gap:14px;margin-top:28px}.card{padding:22px 24px;background:var(--raised);border:1px solid var(--line-soft);border-radius:12px;transition:border-color .12s,background .12s}.card:hover{border-color:var(--accent-line)}.card h2{margin:0 0 6px;color:var(--text-1);font-size:16px;font-weight:500}.card p{margin:0;color:var(--text-3);font-size:14px;line-height:1.6}.pager{max-width:740px;display:flex;gap:14px;margin-top:64px;padding-top:28px;border-top:1px solid var(--line-soft)}.pager-link{flex:1;padding:16px 20px;border:1px solid var(--line-soft);border-radius:12px;color:var(--text-1);font-weight:500}.pager-link span{display:block;color:var(--text-3);font-size:13px;font-weight:400}.pager-link.next{text-align:right}.pager-link:hover{border-color:var(--accent-line)}.component{--category: var(--category-dark)}.component h2{display:flex;align-items:center;gap:12px}[data-theme=light] .component{--category: var(--category-light)}.component-icon{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb, var(--category) 14%, rgba(0,0,0,0));color:var(--category)}.component-icon svg{width:20px;height:20px;fill:currentColor}.prose .component-meta{margin:-6px 0 14px;color:var(--text-3);font-size:14px}.prose .choices{display:block;margin-top:2px;color:var(--text-3);font-size:13px}.prose .script-only{color:var(--text-3);font-style:italic}.search-dialog{width:min(640px,100vw - 32px);margin:12vh auto 0;padding:0;background:rgba(0,0,0,0);border:none;color:var(--text-2);overflow:visible}.search-dialog::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}.search-box{display:flex;flex-direction:column;max-height:min(560px,76vh);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.5);overflow:hidden}.search-field{display:flex;align-items:center;gap:12px;height:58px;padding:0 16px 0 18px;color:var(--text-3);border-bottom:1px solid rgba(0,0,0,0)}.has-results .search-field{border-bottom-color:var(--line-soft)}.search-input{flex:1;min-width:0;height:100%;background:none;border:none;outline:none;color:var(--text-1);font:inherit;font-size:17px}.search-input::placeholder{color:var(--text-4)}.search-input::-webkit-search-cancel-button{display:none}.search-dialog kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;background:var(--raised);border:1px solid var(--line);border-radius:5px;color:var(--text-3);font-family:inherit;font-size:11px;font-weight:500}.search-close{flex:none;width:30px;height:30px}.search-results{list-style:none;margin:0;padding:0 10px;overflow-y:auto}.search-results:empty{display:none}.search-results ul{list-style:none;margin:0;padding:0}.search-group{padding:12px 0 4px}.search-group+.search-group{border-top:1px solid var(--line-soft)}.search-group-title{margin:0 0 6px;padding:0 10px;color:var(--text-3);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.search-hit{display:flex;align-items:center;gap:12px;margin-bottom:2px;padding:10px 12px;border-radius:9px;color:var(--text-2)}.search-hit.selected{background:var(--accent-wash)}.search-hit.selected .search-hit-icon{color:var(--accent-text);border-color:var(--accent-line)}.search-hit.selected .search-hit-title{color:var(--accent-text)}.search-hit.selected .search-hit-enter{opacity:1}.search-hit-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;color:var(--text-4);font-size:14px;font-weight:500}.search-hit-icon:empty::before{content:"";width:11px;height:13px;border:1.5px solid currentColor;border-radius:2px}.search-hit-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.search-hit-title{color:var(--text-1);font-size:15px;font-weight:500}.search-hit-excerpt{overflow:hidden;color:var(--text-3);font-size:13px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.search-hit-excerpt mark{background:none;color:var(--text-1);font-weight:500;text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px}.search-hit-enter{flex:none;color:var(--accent-text);opacity:0}.search-status{margin:0;padding:28px 18px 32px;color:var(--text-3);font-size:14px;text-align:center;border-top:1px solid var(--line-soft)}.search-footer{display:flex;gap:18px;padding:10px 18px;background:var(--ground);border-top:1px solid var(--line-soft);color:var(--text-4);font-size:12px}.search-footer span{display:flex;align-items:center;gap:6px}.search-footer kbd{min-width:20px;height:20px;padding:0 4px}.prose img.zoomable{cursor:zoom-in;transition:border-color .12s}.prose img.zoomable:hover,.prose img.zoomable:focus-visible{border-color:var(--accent-line);outline:none}.lightbox{max-width:none;max-height:none;width:100vw;height:100vh;margin:0;padding:32px;border:none;background:rgba(0,0,0,0);cursor:zoom-out}.lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.lightbox::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}.lightbox img{max-width:100%;max-height:calc(100vh - 110px);border:1px solid var(--line);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.6)}.lightbox-close{position:fixed;top:18px;right:18px;width:40px;height:40px;color:#ccc;background:rgba(255,255,255,.08);border-radius:10px}.lightbox-close:hover{color:#fff;background:rgba(255,255,255,.16)}.lightbox-caption{max-width:760px;margin:0;color:#ccc;font-size:14px;text-align:center}@media (max-width: 1180px){.docs-layout{grid-template-columns:260px minmax(0, 1fr)}.docs-toc{display:none}}@media (max-width: 820px){.docs-layout{display:block}.docs-sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line-soft)}.docs-main{padding:32px 16px 64px}.search-button{width:auto}.search-button span,.search-button kbd{display:none}.features,.code-showcase,.card-grid{grid-template-columns:1fr}.site-header-inner,.home-main{padding:0 16px}}