@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/geist-sans-latin-800-normal.EH2RlpXL.woff2)format("woff2"),url(/_astro/geist-sans-latin-800-normal.XNjooQKs.woff)format("woff")}:root{--bg:#080808;--bg-lift:#101010;--bg-rail:#0b0b0b;--panel:#0e0e0e;--hair:#1c1c1c;--hair-soft:#161616;--text:#e8e8e8;--text-dim:#9a9a9a;--text-faint:#6a6a6a;--white:#fff;--accent:#fff;--accent-soft:#777;--mono:"Geist Mono", "SF Mono", "Fira Code", monospace;--sans:"Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:where(.astro-lcdefpme){box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh}a:where(.astro-lcdefpme){color:inherit}.topbar:where(.astro-lcdefpme){z-index:50;backdrop-filter:blur(12px);border-bottom:1px solid var(--hair);background:#080808d1;justify-content:space-between;align-items:center;height:60px;padding:0 22px;display:flex;position:sticky;top:0}.brand:where(.astro-lcdefpme){align-items:center;gap:9px;text-decoration:none;display:flex}.brand:where(.astro-lcdefpme) img:where(.astro-lcdefpme){width:26px;height:26px}.brand:where(.astro-lcdefpme) b:where(.astro-lcdefpme){letter-spacing:-.03em;color:var(--white);font-size:1.05rem;font-weight:700}.brand:where(.astro-lcdefpme) .tag:where(.astro-lcdefpme){font-family:var(--mono);color:var(--text-faint);border:1px solid var(--hair);letter-spacing:.02em;border-radius:99px;padding:2px 8px;font-size:.62rem}.topnav:where(.astro-lcdefpme){color:var(--text-dim);gap:26px;font-size:.84rem;display:flex}.topnav:where(.astro-lcdefpme) a:where(.astro-lcdefpme){text-decoration:none;transition:color .15s}.topnav:where(.astro-lcdefpme) a:where(.astro-lcdefpme):hover{color:var(--text)}.topactions:where(.astro-lcdefpme){align-items:center;gap:9px;display:flex}.kbtn:where(.astro-lcdefpme){font-family:var(--sans);border-radius:8px;align-items:center;gap:9px;padding:7px 9px 7px 14px;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.kbtn:where(.astro-lcdefpme) .key:where(.astro-lcdefpme){min-width:18px;height:18px;font-family:var(--mono);border-radius:4px;place-items:center;padding:0 5px;font-size:.66rem;line-height:1;display:inline-grid}.kbtn:where(.astro-lcdefpme).solid{background:var(--accent);color:#080808}.kbtn:where(.astro-lcdefpme).solid .key:where(.astro-lcdefpme){color:#080808;background:#0000002e}.kbtn:where(.astro-lcdefpme).solid:hover{background:#e6e6e6}.kbtn:where(.astro-lcdefpme).ghost{color:var(--text);border:1px solid var(--hair)}.kbtn:where(.astro-lcdefpme).ghost .key:where(.astro-lcdefpme){color:var(--text-dim);border:1px solid var(--hair);background:#1a1a1a}.kbtn:where(.astro-lcdefpme).ghost:hover{background:var(--bg-lift);border-color:#333}.kbtn:where(.astro-lcdefpme).hot{color:var(--white);border:1.5px solid var(--white);background:#0c0c0c;padding-left:11px;animation:2.6s ease-in-out infinite hot-pulse;position:relative;overflow:hidden}.kbtn:where(.astro-lcdefpme).hot:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff47,#0000);width:40%;animation:3.4s ease-in-out infinite hot-shine;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-18deg)}.kbtn:where(.astro-lcdefpme).hot .key:where(.astro-lcdefpme){background:var(--white);color:#080808}.kbtn:where(.astro-lcdefpme).hot:hover{background:#1a1a1a;animation-play-state:paused;box-shadow:0 0 0 4px #ffffff2e,0 0 40px #fff6}.kbtn:where(.astro-lcdefpme).hot .play:where(.astro-lcdefpme){background:var(--white);border-radius:50%;place-items:center;width:20px;height:20px;display:inline-grid}.kbtn:where(.astro-lcdefpme).hot .play:where(.astro-lcdefpme):before{content:"";border-top:4.5px solid #0000;border-bottom:4.5px solid #0000;border-left:7px solid #080808;margin-left:2px}@keyframes hot-pulse{0%,to{box-shadow:0 0 #ffffff59,0 0 22px #ffffff2e}50%{box-shadow:0 0 0 7px #fff0,0 0 38px #ffffff57}}@keyframes hot-shine{0%,55%{left:-60%}to{left:130%}}@media (prefers-reduced-motion:reduce){.kbtn:where(.astro-lcdefpme).hot,.kbtn:where(.astro-lcdefpme).hot:after{animation:none}}.hp-menu:where(.astro-lcdefpme){position:relative}.hp-menu:where(.astro-lcdefpme)>summary:where(.astro-lcdefpme){cursor:pointer;padding:7px 11px;list-style:none}.hp-menu:where(.astro-lcdefpme)>summary:where(.astro-lcdefpme)::-webkit-details-marker{display:none}.hp-menu:where(.astro-lcdefpme)>summary:where(.astro-lcdefpme) .chev:where(.astro-lcdefpme){transition:transform .15s}.hp-menu:where(.astro-lcdefpme)[open]>summary:where(.astro-lcdefpme) .chev:where(.astro-lcdefpme){transform:rotate(180deg)}.hp-menu:where(.astro-lcdefpme) .menu:where(.astro-lcdefpme){z-index:40;background:var(--bg-lift);border:1px solid var(--hair);border-radius:10px;flex-direction:column;min-width:14rem;padding:5px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000080}.hp-menu:where(.astro-lcdefpme) .menu-item:where(.astro-lcdefpme){font-family:var(--sans);text-align:left;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:8px 9px;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.hp-menu:where(.astro-lcdefpme) .menu-item:where(.astro-lcdefpme):hover,.hp-menu:where(.astro-lcdefpme) .menu-item:where(.astro-lcdefpme):focus-visible{color:var(--text);background:var(--bg-rail)}.shell:where(.astro-lcdefpme){max-width:880px;margin:0 auto}.canvas:where(.astro-lcdefpme){background-image:radial-gradient(circle,#ffffff0b 1px,#0000 1px);background-position:top;background-size:22px 22px;position:relative}.canvas:where(.astro-lcdefpme):before{content:"";pointer-events:none;background:radial-gradient(80% 60% at 50% 0,#ffffff08,#0000 70%);position:absolute;inset:0}.canvas:where(.astro-lcdefpme)>:where(.astro-lcdefpme){position:relative}.hero:where(.astro-lcdefpme){border-bottom:1px solid var(--hair);padding:64px 56px 56px}h1:where(.astro-lcdefpme).headline{letter-spacing:-.045em;color:var(--white);margin-bottom:26px;font-size:clamp(2.6rem,5vw,3.7rem);font-weight:800;line-height:1.04}.mark:where(.astro-lcdefpme){background:var(--accent);color:#080808;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;margin:0 -.04em;padding:.02em .18em;display:inline-block;transform:rotate(-.6deg)}.hero:where(.astro-lcdefpme) .lede:where(.astro-lcdefpme){color:var(--text-dim);max-width:540px;margin-bottom:34px;font-size:1.12rem;line-height:1.7}.hero-actions:where(.astro-lcdefpme){flex-wrap:wrap;gap:11px;margin-bottom:44px;display:flex}.install-label:where(.astro-lcdefpme){font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px;font-size:.66rem}.install-tabs:where(.astro-lcdefpme){background:var(--panel);border:1px solid var(--hair);border-radius:8px;gap:2px;margin-bottom:10px;padding:3px;display:inline-flex}.install-tab:where(.astro-lcdefpme){font-family:var(--mono);color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:.72rem;font-weight:500;transition:color .15s,background .15s}.install-tab:where(.astro-lcdefpme).active{color:var(--text);background:#1c1c1c}.install-cmd:where(.astro-lcdefpme){display:none}.install-cmd:where(.astro-lcdefpme).active{display:block}.install-block:where(.astro-lcdefpme){background:var(--panel);border:1px solid var(--hair);font-family:var(--mono);border-left:2px solid #2e2e2e;border-radius:8px;align-items:center;gap:13px;max-width:520px;padding:14px 18px;font-size:.86rem;display:flex}.install-block:where(.astro-lcdefpme) .prompt:where(.astro-lcdefpme){color:var(--accent-soft);user-select:none}.install-block:where(.astro-lcdefpme) .cmd:where(.astro-lcdefpme){color:var(--text);overflow-x:auto}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme){border:1px solid var(--hair);width:28px;height:28px;color:var(--text-faint);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;place-items:center;margin-left:auto;transition:color .15s,border-color .15s,background .15s;display:inline-grid}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme):hover{color:var(--text);background:var(--bg-lift);border-color:#333}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme) svg:where(.astro-lcdefpme){width:14px;height:14px}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme) .ic-check:where(.astro-lcdefpme){display:none}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme).copied{color:#28c840;border-color:#28c840}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme).copied .ic-copy:where(.astro-lcdefpme){display:none}.install-block:where(.astro-lcdefpme) .copy-btn:where(.astro-lcdefpme).copied .ic-check:where(.astro-lcdefpme){display:block}.section:where(.astro-lcdefpme){border-bottom:1px solid var(--hair);padding:56px}.section-eyebrow:where(.astro-lcdefpme){font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:12px;font-size:.66rem}.section:where(.astro-lcdefpme) h2:where(.astro-lcdefpme){letter-spacing:-.035em;color:var(--white);margin-bottom:10px;font-size:1.7rem;font-weight:700}.section:where(.astro-lcdefpme)>p:where(.astro-lcdefpme).sub{color:var(--text-dim);max-width:560px;margin-bottom:34px;font-size:.95rem;line-height:1.6}.features-grid:where(.astro-lcdefpme){background:var(--hair);border:1px solid var(--hair);border-radius:12px;grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.feature:where(.astro-lcdefpme){background:var(--bg);padding:24px;transition:background .15s}.feature:where(.astro-lcdefpme):hover{background:var(--bg-lift)}.feature:where(.astro-lcdefpme) .ic:where(.astro-lcdefpme){font-family:var(--mono);color:var(--text-dim);letter-spacing:.04em;margin-bottom:12px;font-size:.72rem}.feature:where(.astro-lcdefpme) h3:where(.astro-lcdefpme){color:#f2f2f2;letter-spacing:-.01em;margin-bottom:7px;font-size:.96rem;font-weight:700}.feature:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--text-dim);font-size:.84rem;line-height:1.6}.feature:where(.astro-lcdefpme) code:where(.astro-lcdefpme){font-family:var(--mono);color:#ddd;background:#151515;border:1px solid #242424;border-radius:3px;padding:1px 5px;font-size:.82em}.demo-split:where(.astro-lcdefpme){background:var(--hair);border:1px solid var(--hair);border-radius:12px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.code-card:where(.astro-lcdefpme){background:var(--panel);min-width:0}.code-head:where(.astro-lcdefpme){border-bottom:1px solid var(--hair-soft);font-family:var(--mono);letter-spacing:.04em;color:var(--text-faint);background:#0b0b0b;align-items:center;gap:9px;padding:11px 16px;font-size:.68rem;display:flex}.dot:where(.astro-lcdefpme){border-radius:50%;width:8px;height:8px}.code-card:where(.astro-lcdefpme) pre:where(.astro-lcdefpme){font-family:var(--mono);white-space:pre;padding:20px 18px;font-size:.76rem;line-height:1.85;overflow-x:auto}.k:where(.astro-lcdefpme){color:#c792ea}.fn:where(.astro-lcdefpme){color:#82aaff}.s:where(.astro-lcdefpme){color:#c3e88d}.n:where(.astro-lcdefpme){color:#f78c6c}.cm:where(.astro-lcdefpme){color:#546e7a;font-style:italic}.p:where(.astro-lcdefpme),.yk:where(.astro-lcdefpme){color:#89ddff}.yv:where(.astro-lcdefpme){color:#c3e88d}.yb:where(.astro-lcdefpme){color:#f78c6c}.plain:where(.astro-lcdefpme){color:#cdd3de}.cta:where(.astro-lcdefpme){text-align:center;background:radial-gradient(70% 80% at 50% 0,#ffffff0a,#0000 70%);padding:64px 56px}.cta:where(.astro-lcdefpme) h2:where(.astro-lcdefpme){letter-spacing:-.04em;color:var(--white);margin-bottom:12px;font-size:2rem;font-weight:800}.cta:where(.astro-lcdefpme) .mark:where(.astro-lcdefpme){font-size:inherit}.cta:where(.astro-lcdefpme) p:where(.astro-lcdefpme){color:var(--text-dim);margin-bottom:28px;font-size:.98rem}.cta:where(.astro-lcdefpme) .hero-actions:where(.astro-lcdefpme){justify-content:center;margin-bottom:0}footer:where(.astro-lcdefpme){font-family:var(--mono);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:26px 56px;font-size:.72rem;display:flex}footer:where(.astro-lcdefpme) a:where(.astro-lcdefpme){color:var(--text-dim);text-decoration:none}footer:where(.astro-lcdefpme) a:where(.astro-lcdefpme):hover{color:var(--text)}@media (width<=880px){.shell:where(.astro-lcdefpme){max-width:720px}.topnav:where(.astro-lcdefpme){display:none}.hero:where(.astro-lcdefpme),.section:where(.astro-lcdefpme),.cta:where(.astro-lcdefpme){padding-left:26px;padding-right:26px}.features-grid:where(.astro-lcdefpme),.demo-split:where(.astro-lcdefpme){grid-template-columns:1fr}}
