*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #000000;--surface: #0a0a0a;--surface-2: #111111;--surface-3: #161616;--fg: #ffffff;--ink: #ededed;--ink-2: #a1a1a1;--ink-3: #8f8f8f;--line: #242424;--line-2: #333333;--line-3: #4a4a4a;--r: 10px;--r-lg: 12px;--r-sm: 6px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--ease: cubic-bezier(.16, 1, .3, 1);--z-wire: 1;--z-node: 2;--z-drag: 3;--z-nav: 50;--band-y: clamp(68px, 7vw, 104px)}html{scroll-behavior:smooth;background:var(--bg)}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:3px}.wrap{max-width:1120px;margin:0 auto;padding-inline:clamp(20px,4vw,40px)}.wrap--wide{max-width:1320px}.sprite{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.icon{width:1.05em;height:1.05em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:absolute;left:20px;top:-100px;z-index:100;padding:10px 16px;background:var(--fg);color:#000;font-size:13px;font-weight:600;text-decoration:none;border-radius:var(--r-sm);transition:top .2s var(--ease)}.skip-link:focus-visible{top:14px}code{font-family:var(--mono);font-size:.92em;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;padding:0 16px;height:40px;border-radius:var(--r-sm);text-decoration:none;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:background-color .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-primary{background:var(--fg);color:#000}.btn-primary:hover{background:var(--ink-2)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--ink-3);background:var(--surface-2)}.btn-quiet{background:transparent;color:var(--ink-2)}.btn-quiet:hover{color:var(--ink);background:var(--surface-2)}.ico-arrow{transition:transform .15s var(--ease)}.btn:hover .ico-arrow{transform:translate(3px)}.nav{position:sticky;top:0;z-index:var(--z-nav);background:#000000b8;-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line)}.nav-in{max-width:1320px;margin:0 auto;padding:0 clamp(20px,4vw,40px);height:60px;display:flex;align-items:center;gap:28px}.nav-logo{display:flex;align-items:center}.nav-logo img{display:block;height:20px;width:auto}.nav-links{display:flex;gap:22px;margin-right:auto}.nav-links a{color:var(--ink-2);text-decoration:none;font-size:13px;font-weight:400;transition:color .15s var(--ease)}.nav-links a:hover{color:var(--ink)}.nav-act{display:flex;align-items:center;gap:8px}.nav-user{position:relative;display:flex}#auth-slot.is-user{order:1}.avatar-btn{display:block;padding:0;border:1px solid var(--line-2);border-radius:50%;background:none;cursor:pointer;line-height:0;overflow:hidden;transition:border-color .15s var(--ease)}.avatar-btn:hover{border-color:var(--line-3)}.avatar-btn:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.avatar-img{display:block;border-radius:50%;image-rendering:pixelated}.avatar-img--lg{border-radius:var(--r-sm)}.user-menu[hidden]{display:none}.user-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:var(--z-nav);min-width:232px;padding:6px;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 12px 28px #0009;display:flex;flex-direction:column;gap:2px}.user-menu-id{display:flex;align-items:center;gap:10px;padding:8px 9px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}.user-menu-who{display:flex;flex-direction:column;gap:2px;min-width:0}.user-menu-who strong{font-size:13px;font-weight:500;color:var(--ink)}.user-menu-who span{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{display:block;width:100%;padding:8px 9px;border:0;border-radius:var(--r-sm);background:none;font-family:var(--font);font-size:13px;text-align:left;text-decoration:none;color:var(--ink);cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease)}.user-menu-item--quiet{color:var(--ink-2)}.user-menu-item:hover{background:var(--surface-3);color:var(--fg)}.user-menu-item:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}@media(max-width:760px){.nav-links{display:none}.nav-act{margin-left:auto}}@media(max-width:420px){.nav-act #auth-slot .btn-quiet{display:none}}.hero{padding-top:clamp(56px,9vw,104px);padding-bottom:0}.hero-copy{max-width:760px;margin-inline:auto;text-align:center}h1{font-size:clamp(2.6rem,6.4vw,4.4rem);line-height:1.02;letter-spacing:-.03em;font-weight:500;color:var(--fg);text-wrap:balance}.lede{margin-top:22px;margin-inline:auto;max-width:62ch;font-size:clamp(15px,1.5vw,17px);line-height:1.62;color:var(--ink-2);text-wrap:pretty}.hero-act{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:30px}.hero-act .btn{height:44px;padding:0 20px;font-size:14px}.arc{--card-w: clamp(172px, 19vw, 264px);--card-h: calc(var(--card-w) * 1.36);margin-top:clamp(36px,4.5vw,60px)}.arc-track{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding-inline:clamp(20px,4vw,40px)}.card{width:var(--card-w);height:var(--card-h);display:flex;flex-direction:column;background:var(--surface-2);border:1px solid var(--line-2);border-radius:14px;padding:12px;gap:11px}.card-stage{position:relative;flex:1;min-height:0;background:var(--bg);border-radius:6px;overflow:hidden}.card--invert .card-stage{background:var(--ink)}.card-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.card-bar{padding:0 2px 2px;display:flex;flex-direction:column;gap:3px}.card-bar h2{font-size:13px;font-weight:500;color:var(--ink)}.card-bar span{font-family:var(--mono);font-size:11px;line-height:1.35;color:var(--ink-3)}.js .arc-viewport{position:relative;height:calc(var(--card-h) + var(--card-w) * .62);overflow:hidden;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-y}.js .arc-viewport.is-dragging{cursor:grabbing}.js .arc-viewport:focus-visible{outline-offset:-3px;border-radius:var(--r-lg)}.js .arc-track{display:block;position:absolute;left:50%;top:calc(var(--card-w) * .5);padding:0}.js .card{position:absolute;left:0;top:0;will-change:transform}@media(max-width:620px){.js .arc-viewport{height:calc(var(--card-h) + var(--card-w) * .4)}.js .arc-track{top:calc(var(--card-w) * .28)}}.band{padding-block:var(--band-y)}.band--ruled{border-top:1px solid var(--line)}.band-head{max-width:660px;margin-bottom:clamp(32px,4vw,48px)}.band-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1;letter-spacing:-.024em;font-weight:500;color:var(--fg);text-wrap:balance}.band-head p{margin-top:14px;color:var(--ink-2);font-size:15px;text-wrap:pretty}.frame{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.frame-chrome{display:flex;align-items:center;gap:10px;height:46px;padding:0 15px;border-bottom:1px solid var(--line);background:var(--surface-2)}.frame-dots{display:flex;gap:8px;flex-shrink:0}.frame-dots i{width:10px;height:10px;border-radius:50%;background:var(--line-3)}.frame-open{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);text-decoration:none;transition:color .15s var(--ease)}.frame-open:hover{color:var(--ink)}.frame-shell{position:relative;height:min(76vh,760px);min-height:520px}.frame-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:var(--bg)}.frame-skel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--surface)}.frame-skel-label{font-family:var(--mono);font-size:12px;color:var(--ink-3)}.frame-shell.is-live .frame-skel{display:none}.frame-fallback{display:none;flex-direction:column;align-items:flex-start;gap:16px;padding:clamp(24px,5vw,44px)}.frame-fallback p{color:var(--ink-2);font-size:15px}@media(max-width:900px){.frame-shell{display:none}.frame-fallback{display:flex}}.graph-hint{display:flex;align-items:flex-start;gap:8px;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--ink-3);margin-bottom:12px}.graph-hint .icon{margin-top:3px}.graph{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);background-image:radial-gradient(circle,var(--line) 1px,transparent 1px);background-size:26px 26px;background-position:13px 13px;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none}.graph::-webkit-scrollbar{width:0;height:0}.graph-plane{position:relative;width:972px;height:430px;margin:0 auto}.graph-wires{position:absolute;inset:0;width:100%;height:100%;z-index:var(--z-wire);pointer-events:none;overflow:visible}.graph-wires path{fill:none;stroke:var(--line-3);stroke-width:1.25}.graph-wires path.is-hot{stroke:var(--fg)}.node{position:absolute;top:0;left:0;transform:translate(var(--x),var(--y));width:244px;z-index:var(--z-node);background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r)}.node.is-dragging{z-index:var(--z-drag);border-color:var(--line-3)}.node--work{width:268px;background:var(--surface)}.node--out{width:280px}.node-head{font-size:12px;font-weight:500;letter-spacing:.01em;color:var(--ink);padding:9px 12px;border-bottom:1px solid var(--line);cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;display:flex;align-items:center;border-radius:var(--r) var(--r) 0 0}.node-head:hover{background:var(--surface-3)}.node.is-dragging .node-head{cursor:grabbing;background:var(--surface-3)}.node-body{padding:12px;display:flex;flex-direction:column;gap:11px}.node-body--flush{padding:0;gap:0}.node-note{font-size:12px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}.node-note--pad{padding:9px 12px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;color:var(--ink-3)}.node-stage{position:relative;aspect-ratio:4 / 3;background:var(--bg)}.node-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.port{position:absolute;top:15px;width:7px;height:7px;border-radius:50%;background:var(--surface);border:1px solid var(--line-3)}.port--in{left:-4px}.port--out{right:-4px}.fld{display:flex;flex-direction:column;gap:6px}.fld-k{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:11px;color:var(--ink-3)}.fld-k output{color:var(--ink);font-variant-numeric:tabular-nums}.node select{appearance:none;-webkit-appearance:none;width:100%;height:30px;padding:0 28px 0 9px;font-family:inherit;font-size:12px;color:var(--ink);background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238f8f8f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:13px;border:1px solid var(--line-2);border-radius:var(--r-sm);cursor:pointer}.node select:hover{border-color:var(--line-3)}.node select option{background:var(--surface-2);color:var(--ink)}.node input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:14px;background:transparent;cursor:pointer}.node input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--line-3);border-radius:2px}.node input[type=range]::-moz-range-track{height:2px;background:var(--line-3);border-radius:2px}.node input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--fg);border:0;margin-top:-5px}.node input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--fg);border:0}.graph-out{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:28px}.graph-out p{color:var(--ink-2);font-size:14px}.specs{border-top:1px solid var(--line)}.specs>div{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.specs dt{font-size:15px;font-weight:500;color:var(--fg)}.specs dd{color:var(--ink-2);font-size:14px;max-width:62ch}@media(max-width:640px){.specs>div{grid-template-columns:1fr;gap:6px}}.price{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.price-col{background:var(--bg);padding:clamp(26px,3.2vw,38px);display:flex;flex-direction:column}.price-col--pro{background:var(--surface)}.price-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.price-col h2{font-size:18px;font-weight:500;color:var(--fg)}.price-pill{font-family:var(--mono);font-size:11px;color:var(--ink-2);border:1px solid var(--line-2);border-radius:999px;padding:4px 10px;white-space:nowrap}.price-amt{margin-top:16px;display:flex;align-items:baseline;gap:9px}.price-amt strong{font-size:clamp(2.3rem,4vw,2.9rem);font-weight:500;letter-spacing:-.03em;line-height:1;color:var(--fg)}.price-amt span{font-size:15px;color:var(--ink-2)}.price-sub{margin-top:12px;color:var(--ink-2);font-size:14px}.price-list{list-style:none;margin-top:26px;margin-bottom:30px;display:flex;flex-direction:column;gap:11px}.price-list li{display:flex;gap:11px;font-size:14px;line-height:1.5;color:var(--ink);text-wrap:pretty}.price-tick{width:14px;height:14px;margin-top:4px;flex-shrink:0;fill:none;stroke:var(--ink-3);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.price-cta{margin-top:auto;width:100%}@media(max-width:720px){.price{grid-template-columns:1fr}}.foot{border-top:1px solid var(--line);padding-block:36px}.foot-in{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.foot-in img{display:block;height:18px;width:auto;opacity:.8}.foot-in p{color:var(--ink-3);font-size:13px}.js .rise{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}.js .rise.is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rise{opacity:1;transform:none;transition:none}.btn,.nav-links a,.frame-open,.ico-arrow{transition:none}}
