*,:before,:after{box-sizing:border-box}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--container:1200px;--nav-height:72px;--ease:cubic-bezier(.22, 1, .36, 1);--duration:.3s}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--surface:#0b0b0d;--raised:#101114;--line:#ffffff14;--line-strong:#ffffff29;--text:#fafafa;--muted:#8f8f98;--faint:#55555e;--accent:#8b5cf6;--accent-text:#a78bfa;--btn-bg:#fafafa;--btn-text:#050505;--nav-bg:#050505b3;--mark-glow:#8b5cf638}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#f6f6f4;--raised:#efefec;--line:#0a0a0c1a;--line-strong:#0a0a0c38;--text:#0a0a0c;--muted:#5d5d66;--faint:#a2a2ab;--accent:#7c3aed;--accent-text:#6d28d9;--btn-bg:#0a0a0c;--btn-text:#fff;--nav-bg:#ffffffbf;--mark-glow:#7c3aed29}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--duration) var(--ease), color var(--duration) var(--ease);margin:0;font-size:16px;line-height:1.6;overflow-x:clip}#root{flex-direction:column;min-height:100vh;display:flex}main{flex:1}h1,h2,h3{letter-spacing:-.035em;margin:0;font-weight:650;line-height:1.04}p{margin:0}a{color:inherit}img,video{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}.skip-link{z-index:200;background:var(--text);color:var(--bg);transition:top var(--duration) var(--ease);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;position:absolute;top:-56px;left:16px}.skip-link:focus{top:14px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:32px}.label{letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-size:.72rem;font-weight:700}.navbar{z-index:100;height:var(--nav-height);transition:background-color var(--duration) var(--ease), border-color var(--duration) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.navbar.scrolled{background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--line)}.navbar-inner{height:var(--nav-height);align-items:center;gap:12px;display:flex}.brand{letter-spacing:.16em;align-items:center;gap:12px;font-size:.9rem;font-weight:750;text-decoration:none;display:inline-flex}.brand img{border-radius:9px;width:32px;height:32px}.nav-right{align-items:center;gap:4px;margin-left:auto;display:flex}.nav-link{color:var(--muted);transition:color var(--duration) var(--ease), background-color var(--duration) var(--ease);border-radius:999px;padding:9px 15px;font-size:.92rem;text-decoration:none}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-link.active{color:var(--text)}.icon-button{width:38px;height:38px;color:var(--muted);cursor:pointer;transition:color var(--duration) var(--ease), border-color var(--duration) var(--ease), transform var(--duration) var(--ease);background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;margin-left:8px;display:inline-flex}.icon-button:hover{color:var(--text);border-color:var(--line-strong);transform:translateY(-1px)}.menu-button,.mobile-menu{display:none}.btn{letter-spacing:.01em;cursor:pointer;white-space:nowrap;transition:transform var(--duration) var(--ease), background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:15px 32px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--btn-bg);color:var(--btn-text)}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-ghost{border-color:var(--line-strong);color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--text);transform:translateY(-1px)}.arrow-link{color:var(--text);align-items:center;gap:10px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.arrow-link .arrow{opacity:0;transition:opacity var(--duration) var(--ease), transform var(--duration) var(--ease);transform:translate(-6px)}.arrow-link:hover .arrow{opacity:1;transform:translate(0)}.hero{padding:150px 0 130px}.hero-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:60px;display:grid}.hero h1{max-width:12ch;margin:26px 0;font-size:clamp(3rem,7vw,5.4rem)}.hero-sub{color:var(--muted);max-width:44ch;margin-bottom:42px;font-size:1.2rem;line-height:1.65}.hero-cta{flex-wrap:wrap;gap:14px;display:flex}.hero-mark{justify-content:center;margin:0;display:flex}.hero-mark img{aspect-ratio:1;width:min(400px,100%);transition:box-shadow .6s var(--ease);border-radius:64px;animation:12s ease-in-out infinite mark-drift}.hero-mark canvas{aspect-ratio:1;width:min(400px,100%)}.logo-particles{cursor:crosshair}.hero-mark img:hover{box-shadow:0 0 120px -20px var(--mark-glow)}@keyframes mark-drift{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.section{padding:110px 0}.section-head{max-width:680px;margin-bottom:72px}.section-head h2{margin:20px 0 18px;font-size:clamp(2rem,4.6vw,3.2rem)}.section-head p{color:var(--muted);font-size:1.12rem;line-height:1.65}.product-block{grid-template-columns:1fr 1.25fr;align-items:center;gap:90px;padding:60px 0;display:grid}.product-block.mirror{grid-template-columns:1.25fr 1fr}.product-block.mirror .product-copy{order:2}.product-block.mirror .product-preview{order:1}.product-brand{letter-spacing:.22em;color:var(--faint);align-items:center;gap:14px;margin-bottom:26px;font-size:.78rem;font-weight:700;display:flex}.product-brand img{border-radius:12px;width:44px;height:44px}.product-copy h3{margin-bottom:14px;font-size:clamp(2.2rem,4.4vw,3.4rem)}.product-tagline{color:var(--text);letter-spacing:-.01em;margin-bottom:14px;font-size:1.3rem}.product-desc{color:var(--muted);max-width:44ch;margin-bottom:36px;font-size:1.05rem;line-height:1.7}.product-links{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.product-title-link{text-decoration:none}.product-preview{perspective:1200px}.preview-frame{border:1px solid var(--line);background:var(--surface);aspect-ratio:16/10;transition:transform .5s var(--ease), border-color .5s var(--ease);transform-style:preserve-3d;will-change:transform;border-radius:20px;position:relative;overflow:hidden;container-type:inline-size}.product-preview:hover .preview-frame{border-color:var(--line-strong)}.preview-frame video,.preview-frame .preview-mock{width:100%;height:100%;position:absolute;inset:0}.preview-frame video{object-fit:cover}.preview-frame.natural{aspect-ratio:auto}.preview-frame.natural .shot{width:100%;height:auto;position:relative;inset:auto}.preview-caption{color:var(--faint);align-items:center;gap:10px;margin-top:16px;font-size:.85rem;display:flex}.preview-caption:before{content:"";background:#22c55e;border-radius:50%;flex:none;width:6px;height:6px}.preview-mock{background:var(--surface);flex-direction:column;font-size:14px;display:flex}.mock-bar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:14px 20px;display:flex}.mock-dot{background:var(--line-strong);border-radius:50%;width:10px;height:10px}.mock-name{min-width:0;font-family:var(--font-mono);color:var(--faint);align-items:center;gap:10px;margin-left:10px;font-size:12px;display:flex}.mock-name img{border-radius:6px;flex:none;width:20px;height:20px}.mock-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mock-chat{flex-direction:column;flex:1;justify-content:center;gap:14px;padding:26px;display:flex}.mock-msg{border:1px solid var(--line);background:var(--raised);max-width:78%;color:var(--muted);border-radius:16px;padding:13px 18px;line-height:1.55}.mock-msg.user{background:var(--accent);color:#fff;border-color:#0000;border-bottom-right-radius:5px;align-self:flex-end}.mock-msg.assistant{border-bottom-left-radius:5px}.mock-msg code{font-family:var(--font-mono);color:var(--text);font-size:.86em}.mock-msg.user code{color:#fff}.mock-train .mock-bar{flex:none}.mock-steps{display:none}.mock-step{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border-radius:999px;padding:5px 12px;font-size:11px}.mock-step.active{color:var(--accent-text);border-color:var(--accent)}.mock-train-body{flex-direction:column;flex:1;justify-content:center;gap:18px;min-height:0;padding:20px 24px 4px;display:flex}.mock-card{border:1px solid var(--line);background:var(--raised);border-radius:14px;flex-direction:column;flex:1;min-height:0;max-height:320px;padding:14px 16px 10px;display:flex}.mock-card-title{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:10px;display:block}.mock-chart{flex:1;width:100%;min-height:52px;margin-top:8px;display:block}.mock-chart-line{stroke:var(--accent);stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke}.mock-metrics{gap:10px;margin:0;display:flex}.mock-metrics>div{border:1px solid var(--line);border-radius:12px;flex:1;min-width:0;padding:10px 12px}.mock-metrics dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:10px}.mock-metrics dd{font-family:var(--font-mono);color:var(--text);white-space:nowrap;margin:6px 0 0;font-size:13px}.mock-progress{background:var(--line);border-radius:999px;flex:none;height:3px;margin:18px 24px 20px;overflow:hidden}.mock-progress-fill{background:var(--accent);border-radius:999px;width:40%;height:100%;display:block}@container (width>=680px){.mock-steps{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:16px 20px;display:flex}}@container (width<=620px){.mock-train-body{gap:12px;padding:14px 16px 4px}.mock-card{padding:11px 12px 8px}.mock-step{padding:4px 9px;font-size:10px}.mock-metrics{gap:8px}.mock-metrics>div{padding:8px 10px}.mock-metrics dt{letter-spacing:.1em;font-size:9px}.mock-metrics dd{margin-top:4px;font-size:11px}.mock-progress{margin:12px 16px 16px}}@media (width<=620px){.preview-frame:has(.mock-train){aspect-ratio:4/5}}.eco{text-align:center;padding:40px 0 20px}.eco h2{margin:20px 0 70px;font-size:clamp(2rem,4.6vw,3.2rem)}.eco-mark{letter-spacing:.2em;align-items:center;gap:16px;font-size:1.1rem;font-weight:750;display:inline-flex}.eco-mark img{border-radius:14px;width:52px;height:52px}.eco-wire{background:var(--line-strong);width:1px;height:64px;margin:0 auto;position:relative}.eco-wire:after{content:"";background:var(--accent);width:5px;height:5px;animation:eco-travel 4s var(--ease) infinite;border-radius:50%;position:absolute;top:0;left:-2px}@keyframes eco-travel{0%{opacity:0;top:0}15%{opacity:1}85%{opacity:1}to{opacity:0;top:60px}}.eco-children{flex-wrap:wrap;justify-content:center;gap:0;margin-top:0;display:flex}.eco-child{border-top:1px solid var(--line-strong);letter-spacing:.24em;color:var(--muted);transition:color var(--duration) var(--ease);padding:18px 42px;font-size:.82rem;font-weight:700;text-decoration:none;position:relative}.eco-child+.eco-child{border-left:1px solid var(--line)}a.eco-child:hover{color:var(--text)}.eco-child.dim{color:var(--faint)}.principles{border-top:1px solid var(--line)}.principle{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:baseline;gap:40px;padding:56px 0;display:grid}.principle h3{font-size:clamp(1.8rem,3.6vw,2.6rem)}.principle p{color:var(--muted);max-width:40ch;font-size:1.1rem;line-height:1.65}.latest-list{border-top:1px solid var(--line)}.latest-row{border-bottom:1px solid var(--line);transition:padding var(--duration) var(--ease);grid-template-columns:220px 1fr auto;align-items:baseline;gap:32px;padding:30px 0;text-decoration:none;display:grid}.latest-row:hover{padding-left:8px}.latest-row:hover .latest-title .arrow{opacity:1;transform:translate(0)}.latest-product{letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-size:.78rem;font-weight:700}.latest-title{letter-spacing:-.02em;align-items:center;gap:12px;font-size:1.3rem;font-weight:600;display:flex}.latest-title .arrow{opacity:0;transition:opacity var(--duration) var(--ease), transform var(--duration) var(--ease);color:var(--accent-text);transform:translate(-6px)}.latest-kind{font-family:var(--font-mono);color:var(--faint);font-size:.82rem}.latest-more{margin-top:36px}.github-block{text-align:center;padding:60px 0;position:relative;overflow:clip}.particle-field{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.github-block>:not(.particle-field){z-index:1;position:relative}.github-block h2{margin-bottom:20px;font-size:clamp(2.4rem,5.6vw,4rem)}.github-block p{color:var(--muted);margin-bottom:40px;font-size:1.12rem}.footer{border-top:1px solid var(--line);margin-top:40px;padding:72px 0 36px}.footer-top{flex-wrap:wrap;justify-content:space-between;gap:40px;margin-bottom:64px;display:flex}.footer-brand p{color:var(--muted);margin-top:18px;font-size:.95rem}.footer-links{flex-wrap:wrap;gap:64px;display:flex}.footer-links nav{flex-direction:column;gap:12px;display:flex}.footer-links a{color:var(--muted);transition:color var(--duration) var(--ease);font-size:.93rem;text-decoration:none}.footer-links a:hover{color:var(--text)}.footer-bottom{border-top:1px solid var(--line);color:var(--faint);padding-top:28px;font-size:.85rem}.page{padding-bottom:60px}.page-hero{max-width:820px;padding:110px 0 60px}.page-hero h1{margin:24px 0 22px;font-size:clamp(2.6rem,6vw,4.4rem)}.lead{color:var(--muted);max-width:62ch;font-size:1.15rem;line-height:1.7}.breadcrumb{color:var(--faint);align-items:center;gap:10px;margin-bottom:30px;font-size:.86rem;display:flex}.breadcrumb a{color:var(--faint);text-decoration:none}.breadcrumb a:hover{color:var(--text)}.app-hero{grid-template-columns:1fr;gap:50px;padding:100px 0 70px;display:grid}.app-hero-icon{border-radius:24px;width:92px;height:92px}.app-hero h1{margin:26px 0 12px;font-size:clamp(2.8rem,6.4vw,4.8rem)}.app-hero .tagline{letter-spacing:-.02em;margin-bottom:18px;font-size:clamp(1.3rem,2.6vw,1.7rem)}.app-hero-meta{color:var(--muted);flex-wrap:wrap;gap:26px;margin:30px 0 40px;font-size:.9rem;display:flex}.app-hero-meta strong{color:var(--text);font-weight:600}.app-hero-cta{flex-wrap:wrap;gap:14px;display:flex}.app-section{border-top:1px solid var(--line);padding:70px 0}.app-section h2{margin-bottom:18px;font-size:clamp(1.7rem,3.4vw,2.4rem)}.app-section>p{color:var(--muted);max-width:64ch;font-size:1.06rem;line-height:1.7}.caps{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.cap{border:1px solid var(--line);border-radius:999px;padding:12px 24px;font-size:.92rem;font-weight:550}.download-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:40px;padding:20px 0;display:flex}.download-row h2{margin-bottom:12px}.download-btns{flex-wrap:wrap;gap:14px;display:flex}.filter-row{flex-wrap:wrap;gap:10px;margin:10px 0 70px;display:flex}.filter-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;transition:all var(--duration) var(--ease);background:0 0;border-radius:999px;padding:11px 24px;font-size:.9rem;font-weight:600}.filter-btn:hover{color:var(--text);border-color:var(--line-strong)}.filter-btn.active{background:var(--btn-bg);color:var(--btn-text);border-color:#0000}.reveal{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transform:translateY(26px)}.reveal.is-visible{opacity:1;transform:none}.not-found{text-align:center;padding:140px 0}.not-found h1{margin-bottom:18px;font-size:clamp(3rem,8vw,5rem)}.not-found p{color:var(--muted);margin-bottom:34px}@media (width<=1000px){.hero{padding:100px 0 90px}.hero-grid{grid-template-columns:1fr;gap:70px}.hero-mark{order:2}.hero-mark img{border-radius:48px;width:min(300px,78%)}.hero-mark canvas{width:min(300px,78%)}.product-block,.product-block.mirror{grid-template-columns:1fr;gap:48px;padding:40px 0}.product-block.mirror .product-copy,.product-block.mirror .product-preview{order:initial}.principle{grid-template-columns:1fr;gap:12px;padding:40px 0}.latest-row{grid-template-columns:1fr auto;gap:8px 20px}.latest-kind{grid-area:1/2}.section{padding:80px 0}}@media (width<=760px){.container{padding-inline:22px}.nav-right .nav-link{display:none}.menu-button{display:inline-flex}.mobile-menu{border-bottom:1px solid var(--line);background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);display:block}.mobile-menu nav{flex-direction:column;padding:10px 22px 18px;display:flex}.mobile-menu a{border-bottom:1px solid var(--line);padding:14px 0;font-size:1.05rem;text-decoration:none}.mobile-menu a:last-child{border-bottom:none}.hero{padding:80px 0 70px}.hero-cta .btn{flex:1;justify-content:center}.section{padding:64px 0}.section-head{margin-bottom:48px}.eco-child{letter-spacing:.16em;padding:14px 24px}.footer-top{flex-direction:column}.page-hero{padding:70px 0 44px}.app-hero{padding:70px 0 50px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.docs-grid{grid-template-columns:repeat(3,1fr);gap:22px;margin:48px 0 20px;display:grid}.doc-card{border:1px solid var(--line);background:var(--surface);transition:border-color var(--duration) var(--ease), transform var(--duration) var(--ease);border-radius:20px;flex-direction:column;gap:12px;padding:28px;text-decoration:none;display:flex}.doc-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}.doc-card-label{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);font-size:.75rem;font-weight:700}.doc-card h2{letter-spacing:-.02em;font-size:1.35rem}.doc-card-desc{color:var(--muted);flex:1;font-size:.95rem}.doc-card-meta{color:var(--faint);align-items:center;gap:8px;font-size:.82rem;display:flex}.docs-layout{grid-template-columns:230px 1fr;align-items:start;gap:56px;padding-top:110px;display:grid}.docs-side{top:calc(var(--nav-height) + 24px);border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:20px;position:sticky}.docs-side nav{flex-direction:column;gap:4px;margin-top:14px;display:flex}.docs-side-link{color:var(--muted);transition:background var(--duration) var(--ease), color var(--duration) var(--ease);border-radius:10px;padding:9px 12px;font-size:.92rem;text-decoration:none}.docs-side-link:hover{color:var(--text);background:var(--raised)}.docs-side-link.active{color:var(--text);background:var(--raised);font-weight:600}.docs-article h1{margin:18px 0 16px;font-size:clamp(2rem,4.5vw,3.2rem)}.docs-article .lead{color:var(--muted);margin-bottom:22px;font-size:1.1rem}.docs-p{color:var(--muted);max-width:72ch;margin-top:14px}.docs-p:first-of-type{margin-top:18px}.docs-list{color:var(--muted);flex-direction:column;gap:9px;max-width:78ch;margin:18px 0 0;padding-left:20px;display:flex}.docs-list li::marker{color:var(--accent-text)}.docs-code{border:1px solid var(--line);font-family:var(--font-mono);color:#e8e8ef;background:#0b0b0d;border-radius:14px;margin:20px 0 0;padding:18px 20px;font-size:.85rem;line-height:1.6;overflow-x:auto}:root[data-theme=light] .docs-code{color:#e8e8ef;background:#0b0b0d}.docs-nav{border-top:1px solid var(--line);justify-content:space-between;gap:16px;margin-top:56px;padding-top:28px;display:flex}@media (width<=960px){.docs-grid{grid-template-columns:1fr 1fr}.docs-layout{grid-template-columns:1fr;padding-top:80px}.docs-side{position:static}.docs-side nav{flex-flow:wrap}}@media (width<=640px){.docs-grid{grid-template-columns:1fr}}.page-hero-with-wave{position:relative;overflow:clip}.dot-wave{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.page-hero-with-wave>:not(.dot-wave){z-index:1;position:relative}.cursor-spotlight{z-index:1;pointer-events:none;opacity:0;transition:opacity .6s var(--ease);background:radial-gradient(520px circle at var(--cx,50%) var(--cy,30%), var(--mark-glow), transparent 65%);position:fixed;inset:0}:root.cursor-active .cursor-spotlight{opacity:1}main,.footer{z-index:2;position:relative}.navbar{z-index:50}a.btn,button.btn,.doc-card{transition:transform var(--duration) var(--ease), translate .18s var(--ease), background-color var(--duration) var(--ease), border-color var(--duration) var(--ease), color var(--duration) var(--ease)}.hero-mark img{transition:box-shadow .6s var(--ease), scale .4s var(--ease)}:root.cursor-active .hero-mark img{box-shadow:0 0 120px -20px var(--mark-glow);scale:1.015}:root.cursor-active .hero-mark canvas{scale:1.015}@media (pointer:coarse),(prefers-reduced-motion:reduce){.cursor-spotlight{display:none}}
