@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-grotesk-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-variable.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root,[data-theme=dark]{--canvas: #0a0b10;--surface: #0f1115;--raised: #14171c;--raised-2: #1a1d24;--border: rgba(255, 255, 255, .07);--border-mid: rgba(255, 255, 255, .11);--border-strong: rgba(255, 255, 255, .16);--text: rgba(245, 246, 248, .96);--text-2: rgba(245, 246, 248, .66);--text-3: rgba(245, 246, 248, .46);--accent: #37a0ff;--on-accent: #06121b;--accent-soft: color-mix(in oklab, #37a0ff 14%, transparent);--accent-ring: color-mix(in oklab, #37a0ff 34%, transparent);--accent-line: color-mix(in oklab, #37a0ff 26%, transparent);--port: #ec4899;--edge: rgba(148, 163, 184, .55);--grid-dot: rgba(255, 255, 255, .05);--code-bg: #0c0e13;--code-tab: #14171c;--code-text: rgba(236, 238, 242, .92);--note: #37a0ff;--tip: #34d399;--warn: #fbbf24;--shadow-pop: 0 18px 48px -16px rgba(0, 0, 0, .7);--shadow-soft: 0 6px 20px -8px rgba(0, 0, 0, .55)}[data-theme=light]{--canvas: #fbfcfd;--surface: #ffffff;--raised: #f3f5f8;--raised-2: #eaeef3;--border: rgba(10, 15, 25, .08);--border-mid: rgba(10, 15, 25, .12);--border-strong: rgba(10, 15, 25, .2);--text: rgba(12, 16, 24, .96);--text-2: rgba(12, 16, 24, .62);--text-3: rgba(12, 16, 24, .46);--accent: #1f88f0;--on-accent: #ffffff;--accent-soft: color-mix(in oklab, #1f88f0 10%, transparent);--accent-ring: color-mix(in oklab, #1f88f0 30%, transparent);--accent-line: color-mix(in oklab, #1f88f0 22%, transparent);--port: #db2777;--edge: rgba(100, 116, 139, .6);--grid-dot: rgba(10, 15, 25, .07);--code-bg: #f6f8fa;--code-tab: #eceff3;--code-text: rgba(12, 16, 24, .82);--note: #1f88f0;--tip: #059669;--warn: #d97706;--shadow-pop: 0 18px 48px -20px rgba(15, 23, 42, .28);--shadow-soft: 0 6px 20px -10px rgba(15, 23, 42, .18)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--canvas);color:var(--text);font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.skip-link{position:fixed;top:10px;left:10px;z-index:100;padding:9px 14px;border-radius:8px;background:var(--accent);color:var(--on-accent);font-size:13px;font-weight:600;transform:translateY(-150%);transition:transform .16s ease}.skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;background-clip:padding-box;border-radius:8px}.scroll::-webkit-scrollbar-track{background:transparent}.eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}kbd{font-family:JetBrains Mono,monospace;font-size:11px;line-height:1;padding:3px 5px;border-radius:5px;border:1px solid var(--border-mid);background:var(--raised);color:var(--text-2)}.wf-logo{display:inline-flex;align-items:center;gap:9px;color:var(--text)}.wf-logo svg{display:block;overflow:visible;color:var(--accent)}.wf-logo .wm{font-family:Hanken Grotesk,sans-serif;font-weight:700;font-size:18px;letter-spacing:-.035em;line-height:1}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;height:60px;padding:0 22px;background:color-mix(in oklab,var(--canvas) 82%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--border)}.topbar__nav{display:flex;align-items:center;gap:2px}.topbar__link{font-size:13.5px;font-weight:500;color:var(--text-2);padding:7px 11px;border-radius:7px;transition:color .14s,background .14s}.topbar__link:hover{color:var(--text);background:var(--raised)}.topbar__link--active{color:var(--text)}.topbar__spacer{flex:1}.search-trigger{display:flex;align-items:center;gap:10px;width:230px;height:34px;padding:0 10px 0 11px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-3);font-size:13px;cursor:pointer;transition:border-color .14s,background .14s}.search-trigger:hover{border-color:var(--border-mid)}.search-trigger .grow{flex:1;text-align:left}.search-trigger kbd{background:var(--raised)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;transition:color .14s,border-color .14s,background .14s}.icon-btn:hover{color:var(--text);border-color:var(--border-mid);background:var(--raised)}.icon-btn svg{width:16px;height:16px}.gh-link{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 11px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:color .14s,border-color .14s,background .14s}.gh-link:hover{color:var(--text);border-color:var(--border-mid)}.gh-link .stars{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-3)}.hamburger{display:none}.layout{display:grid;grid-template-columns:270px minmax(0,1fr) 232px;max-width:1480px;margin:0 auto}.sidebar{position:sticky;top:60px;align-self:start;height:calc(100vh - 60px);overflow-y:auto;padding:26px 14px 60px 22px;border-right:1px solid var(--border)}.nav-group{margin-bottom:22px}.nav-group__label{font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);padding:0 10px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:7px;font-size:13.5px;color:var(--text-2);line-height:1.3;transition:color .13s,background .13s;position:relative}.nav-item:hover{color:var(--text);background:var(--raised)}.nav-item--active{color:var(--accent);background:var(--accent-soft);font-weight:550}.nav-item--active:before{content:"";position:absolute;left:-22px;top:50%;transform:translateY(-50%);width:2px;height:17px;border-radius:2px;background:var(--accent)}.content{min-width:0;padding:40px 56px 96px}.content-inner{max-width:760px}.breadcrumb{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-3);margin-bottom:18px}.breadcrumb span.sep{opacity:.5}.breadcrumb .cur{color:var(--text-2)}.toc{position:sticky;top:60px;align-self:start;height:calc(100vh - 60px);overflow-y:auto;padding:42px 22px 60px 8px}.toc__label{font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}.toc__link{display:block;font-size:12.5px;color:var(--text-3);padding:5px 0 5px 12px;border-left:1.5px solid var(--border-mid);transition:color .13s,border-color .13s;line-height:1.4}.toc__link:hover{color:var(--text-2)}.toc__link--sub{padding-left:24px}.toc__link--active{color:var(--accent);border-color:var(--accent)}.content h1{font-size:33px;font-weight:800;letter-spacing:-.025em;line-height:1.12;margin:6px 0 16px}.content .lead{font-size:17px;line-height:1.55;color:var(--text-2);margin:0 0 30px}.content h2{font-size:21px;font-weight:700;letter-spacing:-.018em;margin:46px 0 14px;padding-top:8px;scroll-margin-top:80px}.content h3{font-size:16.5px;font-weight:700;letter-spacing:-.01em;margin:32px 0 10px;scroll-margin-top:80px}.content p{margin:0 0 16px;color:var(--text)}.content p.muted,.content .muted{color:var(--text-2)}.content a.link,.prose a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-line);transition:border-color .14s}.content a.link:hover,.prose a:hover{border-color:var(--accent)}.content ul,.content ol{margin:0 0 18px;padding-left:22px}.content li{margin:6px 0;color:var(--text)}.content li::marker{color:var(--text-3)}.content hr{border:none;border-top:1px solid var(--border);margin:40px 0}.prose table{width:100%;margin:0 0 24px;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:11px;overflow:hidden;font-size:13.5px;line-height:1.55}.prose th,.prose td{padding:9px 13px;text-align:left;vertical-align:top;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.prose th:last-child,.prose td:last-child{border-right:none}.prose tbody tr:last-child td{border-bottom:none}.prose thead th{background:var(--raised);color:var(--text);font-weight:600;font-size:12px}.prose tbody td{color:var(--text-2)}.prose tbody td:first-child{color:var(--text);white-space:nowrap}.prose :not(pre)>code{font-family:JetBrains Mono,monospace;font-size:.85em;padding:.1em .4em;border-radius:5px;background:var(--raised);border:1px solid var(--border);color:var(--text)}.code{margin:0 0 22px;border-radius:11px;border:1px solid var(--border-mid);background:var(--code-bg);overflow:hidden}.code__bar{display:flex;align-items:center;height:40px;padding:0 8px 0 14px;background:var(--code-tab);border-bottom:1px solid var(--border)}.code__file{display:inline-flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-2)}.code__file svg{width:13px;height:13px;opacity:.65}.code__lang{margin-left:12px;font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.code__bar .sp{flex:1}.copy-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:26px;padding:0 9px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-3);font-size:11.5px;font-family:JetBrains Mono,monospace;cursor:pointer;transition:color .13s,background .13s,border-color .13s}.copy-btn:hover{color:var(--text);background:color-mix(in oklab,var(--text) 8%,transparent)}.copy-btn svg{width:13px;height:13px}.copy-btn.copied{color:var(--tip)}.code pre{margin:0;padding:16px 18px;overflow-x:auto;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.65;color:var(--code-text)}.code pre::-webkit-scrollbar{height:9px}.code pre::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}.code pre.astro-code{background:var(--code-bg)!important}.prose>pre.astro-code{margin:0 0 22px;padding:16px 18px;overflow-x:auto;border-radius:11px;border:1px solid var(--border-mid);background:var(--code-bg);font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.65}.astro-code,.astro-code span{color:var(--shiki-light)}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--shiki-dark)}.command{display:flex;align-items:center;gap:12px;height:48px;padding:0 8px 0 16px;border-radius:10px;border:1px solid var(--border-mid);background:var(--code-bg);font-family:JetBrains Mono,monospace;font-size:13.5px;color:var(--code-text)}.command .prompt{color:var(--port)}.command .grow{flex:1}.command .copy-btn{height:32px}.shot{margin:0 0 22px}.shot__media{display:block;width:100%;height:auto;border-radius:11px;border:1px solid var(--border-mid);background:var(--surface);box-shadow:var(--shadow-soft)}.shot__placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:180px;padding:28px 20px;text-align:center;border-radius:11px;border:1px dashed var(--border-strong);background:var(--surface)}.shot__placeholder-tag{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.shot__placeholder-text{max-width:34ch;font-size:13px;line-height:1.5;color:var(--text-3)}.shot__caption{margin-top:10px;font-size:13px;line-height:1.5;color:var(--text-3);text-align:center}.shot__frame{position:relative}.shot__badge{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 7px;border-radius:999px;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#ffffffeb;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}.shot__badge svg{width:10px;height:10px}.shot--medium .shot__media,.shot--medium .shot__placeholder,.shot--medium .shot__frame{max-width:560px;margin-inline:auto}.shot--narrow .shot__media,.shot--narrow .shot__placeholder,.shot--narrow .shot__frame{max-width:360px;margin-inline:auto}.callout{display:flex;gap:13px;margin:0 0 22px;padding:15px 17px;border-radius:10px;border:1px solid var(--border);background:var(--surface);position:relative;overflow:hidden}.callout:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c-color)}.callout__icon{flex:none;width:20px;height:20px;color:var(--c-color);margin-top:1px}.callout__icon svg{width:20px;height:20px}.callout__body{min-width:0}.callout__title{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--c-color);margin:0 0 3px}.callout__body p{margin:0;font-size:14px;color:var(--text-2);line-height:1.55}.callout--note{--c-color: var(--note)}.callout--tip{--c-color: var(--tip)}.callout--warn{--c-color: var(--warn)}.steps{margin:0 0 24px;padding-left:38px;border-left:1px solid var(--border);counter-reset:wf-step}.step{position:relative;padding-bottom:26px}.step:last-child{padding-bottom:0}.step__num{position:absolute;left:-53px;top:-2px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border-mid);background:var(--surface);font-family:JetBrains Mono,monospace;font-size:12.5px;font-weight:500;color:var(--text-2)}.step__num:before{counter-increment:wf-step;content:counter(wf-step)}.step__title{font-size:15.5px;font-weight:600;margin:2px 0 6px;letter-spacing:-.01em}.step__title+p{margin-top:0}.step p{color:var(--text-2);font-size:14px}.embed{margin:24px 0 32px;border-radius:14px;border:1px solid var(--border-mid);background:var(--surface);overflow:hidden}.embed__viewport{position:relative;isolation:isolate;height:min(680px,80vh)}.embed__canvas{height:100%}.embed__activate{position:absolute;inset:0;z-index:1001;display:none;align-items:center;justify-content:center;background:color-mix(in oklab,var(--canvas) 35%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);touch-action:pan-y;cursor:pointer;transition:opacity .18s ease}.embed.is-active .embed__activate{opacity:0;pointer-events:none}.embed__activate-pill{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-pop);font-size:15px;font-weight:600}.embed__activate-pill svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.embed__footer{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 14px;border-top:1px solid var(--border);background:var(--raised);font-size:11.5px;color:var(--text-3)}.embed__note{display:inline-flex;align-items:center;gap:8px;flex:1;min-width:0;text-align:left}.embed__action{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:26px;padding:0 9px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:11.5px;cursor:pointer;transition:color .12s,border-color .12s}.embed__action:hover{color:var(--text);border-color:var(--border-mid)}.embed__action svg{width:13px;height:13px}.embed__key[data-state=live]{color:var(--accent);border-color:var(--accent-line)}.embed:fullscreen{width:100%;height:100%;margin:0;border-radius:0;display:flex;flex-direction:column}.embed:fullscreen .embed__viewport{flex:1;min-height:0;height:auto}.embed:fullscreen .embed__canvas{height:100%}.embed__note:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tip);animation:wf-pulse 2s ease-in-out infinite}@keyframes wf-pulse{0%,to{opacity:.35}50%{opacity:1}}@media(max-width:640px){.embed__viewport,.hero__stage .embed__viewport{height:min(600px,64vh)}.embed__expand{display:none}.embed--live .embed__activate{display:flex}}.keymodal-scrim{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:20px;background:#04060a8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.keymodal-scrim.open{display:flex}.keymodal{width:min(440px,92vw);padding:22px;border-radius:14px;border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow-pop)}.keymodal__title{margin:0 0 8px;font-size:17px;font-weight:600;color:var(--text)}.keymodal__note{margin:0 0 16px;font-size:13px;line-height:1.5;color:var(--text-2)}.keymodal__select{width:100%;height:40px;margin-bottom:10px;padding:0 36px 0 12px;border-radius:9px;border:1px solid var(--border-mid);background-color:var(--raised);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23889099' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;appearance:none;-webkit-appearance:none}[data-theme=light] .keymodal__select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.keymodal__input{width:100%;height:40px;padding:0 12px;border-radius:9px;border:1px solid var(--border-mid);background:var(--raised);color:var(--text);font-family:JetBrains Mono,monospace;font-size:13px}.keymodal__select:focus,.keymodal__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.keymodal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media(max-width:640px){.keymodal__select,.keymodal__input{font-size:16px}}.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px;padding-top:28px;border-top:1px solid var(--border)}.pager a{display:flex;flex-direction:column;gap:4px;padding:15px 17px;border-radius:11px;border:1px solid var(--border);background:var(--surface);transition:border-color .14s,background .14s}.pager a:hover{border-color:var(--border-strong);background:var(--raised)}.pager .dir{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.pager .ttl{font-size:14.5px;font-weight:550;color:var(--text)}.pager .next{text-align:right}.doc-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:32px;padding-top:22px;border-top:1px solid var(--border)}.doc-foot__edit{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--text-2);transition:color .14s}.doc-foot__edit:hover{color:var(--text)}.doc-foot__edit svg{color:var(--text-3);transition:color .14s}.doc-foot__edit:hover svg{color:var(--accent)}.doc-foot__legal{margin:0;font-size:12.5px;color:var(--text-3)}.doc-foot__legal a{color:var(--text-2);transition:color .14s}.doc-foot__legal a:hover{color:var(--text)}.palette-scrim{position:fixed;inset:0;z-index:90;background:#04060a8c;backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding-top:13vh}.palette-scrim.open{display:flex}.palette{width:min(620px,92vw);border-radius:14px;border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow-pop);overflow:hidden}.palette__input{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;border-bottom:1px solid var(--border)}.palette__input svg{width:18px;height:18px;color:var(--text-3)}.palette__input input{flex:1;border:none;background:transparent;outline:none;font-family:Hanken Grotesk,sans-serif;font-size:16px;color:var(--text)}.palette__input input::placeholder{color:var(--text-3)}.palette__results{max-height:56vh;overflow-y:auto;padding:8px}.palette__group{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);padding:12px 10px 6px}.palette__item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;cursor:pointer}.palette__item .ic{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid var(--border);background:var(--raised);color:var(--text-2)}.palette__item .ic svg{width:15px;height:15px}.palette__item .tt{min-width:0}.palette__item .tt .t{display:block;font-size:14px;color:var(--text);font-weight:500}.palette__item .tt .d{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;color:var(--text-3)}.palette__item .tt .d mark{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}.palette__item .go{margin-left:auto;color:var(--text-3);opacity:0}.palette__item:hover,.palette__item.active{background:var(--accent-soft)}.palette__item:hover .go,.palette__item.active .go{opacity:1;color:var(--accent)}.palette__item:hover .ic,.palette__item.active .ic{border-color:var(--accent-line);color:var(--accent)}.palette__empty{padding:30px 16px;text-align:center;font-size:13.5px;color:var(--text-3)}.palette__empty [data-empty-query]{color:var(--text-2)}.palette__foot{display:flex;align-items:center;gap:16px;height:42px;padding:0 16px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-3)}.palette__foot .k{display:inline-flex;align-items:center;gap:6px}.palette__foot .sp{flex:1}.drawer-scrim{display:none}@media(max-width:1100px){.layout{grid-template-columns:250px minmax(0,1fr)}.toc{display:none}.content{padding:36px 40px 90px}}@media(max-width:820px){.topbar{gap:12px;padding:0 16px}.topbar__nav{display:none}.search-trigger{width:38px;padding:0;justify-content:center}.search-trigger .grow,.search-trigger kbd,.gh-link .stars{display:none}.hamburger{display:inline-flex}.layout{grid-template-columns:1fr;max-width:640px}.content{padding:26px 20px 80px}.content h1{font-size:27px}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:80;width:290px;height:100vh;background:var(--surface);border-right:1px solid var(--border-strong);transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);padding-top:22px}body.drawer-open .sidebar{transform:none}.drawer-scrim{position:fixed;inset:0;z-index:70;background:#04060a80;backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s}body.drawer-open .drawer-scrim{opacity:1;pointer-events:auto}.sidebar__close{display:flex}.pager{grid-template-columns:1fr}}.sidebar__close{display:none}@media(max-width:820px){.sidebar__close{display:flex;align-items:center;justify-content:space-between;padding:0 14px 16px 20px;margin-bottom:6px;border-bottom:1px solid var(--border)}}.hero{max-width:1180px;margin:0 auto;padding:70px 40px 40px;text-align:center}.hero__badge{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px 0 10px;border-radius:99px;border:1px solid var(--border-mid);background:var(--surface);font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--text-2);white-space:nowrap;margin-bottom:26px}.hero__badge .v{color:var(--accent)}.hero__badge .dot{width:6px;height:6px;border-radius:50%;background:var(--tip)}.hero h1{font-family:Hanken Grotesk,sans-serif;font-size:clamp(40px,7vw,72px);font-weight:800;letter-spacing:-.04em;line-height:1.02;text-wrap:balance;margin:0 0 20px}.hero h1 .accent{color:var(--accent)}.hero__pitch{font-size:clamp(17px,2.4vw,21px);color:var(--text-2);max-width:680px;margin:0 auto 32px;line-height:1.5}.hero__cta{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.btn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px;border-radius:10px;font-size:15px;font-weight:600;white-space:nowrap;cursor:pointer;border:1px solid transparent;transition:transform .12s,background .14s,border-color .14s}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:color-mix(in oklab,var(--accent) 88%,white 14%)}.btn--ghost{background:var(--surface);border-color:var(--border-mid);color:var(--text)}.btn--ghost:hover{border-color:var(--border-strong);background:var(--raised)}.btn svg{width:16px;height:16px}.hero .command{max-width:360px;margin:0 auto}.hero__start{max-width:620px;margin:30px auto 0;text-align:left}.codetabs{border:1px solid var(--border-mid);border-radius:12px;background:var(--code-bg);overflow:hidden}.codetabs__bar{display:flex;align-items:stretch;height:44px;padding-right:8px;background:transparent;border-bottom:1px solid var(--border)}.codetabs__tabs{display:flex;flex:1}.codetabs__tab{position:relative;padding:0 16px;border:0;background:transparent;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;color:var(--text-3);transition:color .13s}.codetabs__tab:hover{color:var(--text-2)}.codetabs__tab.is-active{color:var(--text)}.codetabs__tab.is-active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--accent)}.codetabs .copy-btn{align-self:center}.codetabs__panel{display:none}.codetabs__panel.is-active{display:block}.codetabs .command{height:auto;margin:0;padding:16px 18px;border:0;border-radius:0;background:transparent}.codetabs__panel pre.astro-code{margin:0;padding:16px 18px;overflow-x:auto;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.65;background:var(--code-bg)!important}.hero__stage{max-width:1080px;margin:54px auto 0}.hero__stage .embed{margin:0;box-shadow:var(--shadow-pop)}.hero__stage .embed__viewport{height:min(560px,72vh)}.features{max-width:1080px;margin:90px auto 0;padding:52px 44px 44px;border:1px solid var(--border);border-radius:24px;background:color-mix(in oklab,var(--surface) 55%,transparent)}.features__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature{padding:22px 22px 24px;border-radius:13px;border:1px solid var(--border);background:var(--surface);transition:border-color .14s}.feature:hover{border-color:var(--border-mid)}.feature__ic{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);margin-bottom:15px}.feature__ic svg{width:19px;height:19px}.feature h3{font-size:16px;font-weight:600;margin:0 0 7px;letter-spacing:-.01em}.feature p{margin:0;font-size:14px;color:var(--text-2);line-height:1.55}.section-head{text-align:center;margin-bottom:36px}.section-head .eyebrow{display:block;margin-bottom:12px}.section-head h2{font-size:clamp(26px,4vw,36px);font-weight:700;letter-spacing:-.025em;margin:0}.frameworks{max-width:1080px;margin:66px auto 0;padding:0 40px;text-align:center}.frameworks__lead{font-size:clamp(18px,2.4vw,22px);font-weight:500;letter-spacing:-.02em;color:var(--text);margin:0 0 26px}.frameworks__lead strong{color:var(--accent);font-weight:600}.frameworks__row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.frameworks__row li{display:flex;flex-direction:column;align-items:center;gap:11px;width:108px;padding:20px 10px 16px;border-radius:13px;border:1px solid var(--border);background:var(--surface);transition:border-color .14s,transform .14s}.frameworks__row li:hover{border-color:var(--border-mid);transform:translateY(-2px)}.frameworks__row img{width:38px;height:38px;display:block}.frameworks__row span{font-size:12.5px;font-weight:500;color:var(--text-2)}.frameworks__note{margin:24px 0 0;font-family:JetBrains Mono,monospace;font-size:13px;color:var(--text-3)}.trust{list-style:none;margin:36px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--text-2)}.trust li{position:relative}.trust li:not(:last-child):after{content:"·";position:absolute;right:-15px;color:var(--border-strong)}.usecases{max-width:1080px;margin:82px auto 0;padding:0 40px 24px}.usecases__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:40px}.usecases__head .eyebrow{display:block;margin-bottom:14px}.usecases__head h2{font-size:clamp(30px,4.5vw,44px);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin:0}.usecases__sub{max-width:400px;margin:0;font-size:15px;line-height:1.55;color:var(--text-2);text-wrap:balance}.usecases__grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border)}.usecase{padding:28px 22px 22px 24px;border-left:1px solid var(--border)}.usecase:first-child{border-left:none;padding-left:0}.usecase__ic{color:var(--accent);margin-bottom:14px}.usecase__ic svg{width:22px;height:22px}.usecase h3{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.usecase p{margin:0;font-size:13.5px;line-height:1.5;color:var(--text-2)}@media(max-width:820px){.features__grid{grid-template-columns:1fr}.hero{padding:48px 20px 30px}.features{margin-top:56px;padding:40px 24px 32px}.frameworks{margin-top:52px}.usecases{margin-top:56px}.frameworks,.usecases{padding-left:20px;padding-right:20px}.usecases__head{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:28px}.usecases__sub{max-width:none}.usecases__grid{grid-template-columns:1fr}.usecase{border-left:none;border-top:1px solid var(--border);padding:22px 0 0}.usecase:first-child{border-top:none;padding-top:22px}}@media(max-width:560px){.hero h1{font-size:clamp(30px,8.5vw,40px)}.hero h1 br{display:none}}.site-foot{max-width:1080px;margin:40px auto 0;padding:48px 40px 56px;border-top:1px solid var(--border)}.site-foot__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}.site-foot__brand{max-width:280px}.site-foot__tag{margin:14px 0 16px;font-size:14px;line-height:1.55;color:var(--text-2)}.site-foot__gh{display:inline-flex;color:var(--text-3);transition:color .14s}.site-foot__gh:hover{color:var(--text)}.site-foot__cols{display:flex;gap:64px}.site-foot__col{display:flex;flex-direction:column;gap:11px}.site-foot__col h4{margin:0 0 3px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.site-foot__col a{font-size:14px;color:var(--text-2);transition:color .14s}.site-foot__col a:hover{color:var(--text)}.site-foot__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:44px;padding-top:22px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text-3)}.site-foot__base a{color:var(--text-2);transition:color .14s}.site-foot__base a:hover{color:var(--text)}@media(max-width:640px){.site-foot{padding:40px 20px 48px}.site-foot__cols{gap:40px}}.navdrawer{display:none}@media(max-width:820px){.navdrawer{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:80;width:290px;height:100vh;background:var(--surface);border-right:1px solid var(--border-strong);transform:translate(-100%);transition:transform .26s cubic-bezier(.4,0,.2,1);padding:18px 16px}body.drawer-open .navdrawer{transform:none}}.navdrawer__head{display:flex;align-items:center;justify-content:space-between;padding:0 6px 14px;margin-bottom:8px;border-bottom:1px solid var(--border)}.navdrawer .nav-item{font-size:15px;padding:10px}.navdrawer__foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.navdrawer__foot .lbl{font-size:13px;color:var(--text-2)}@media(max-width:640px){.palette-scrim{padding-top:0;align-items:stretch}.palette{width:100vw;max-width:none;height:100vh;height:100dvh;border-radius:0;border:none;display:flex;flex-direction:column;box-shadow:none}.palette__input{height:60px}.palette__results{max-height:none;flex:1}}.prim-wrap{max-width:1080px;margin:0 auto;padding:48px 40px 100px}.prim-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.prim-card{border:1px solid var(--border);border-radius:13px;background:var(--surface);padding:22px 24px 26px}.prim-card>.eyebrow{display:block;margin-bottom:16px}.prim-card[id]{scroll-margin-top:76px}@media(max-width:820px){.prim-grid-2{grid-template-columns:1fr}.prim-wrap{padding:32px 20px 80px}}
