.bookend.tap{-webkit-clip-path:polygon(0 0,100% 0,100% 64%,50% 100%,0 64%);clip-path:polygon(0 0,100% 0,100% 64%,50% 100%,0 64%);padding-bottom:clamp(70px,9vw,132px)}@media (max-width:760px){.bookend.tap{-webkit-clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}}.hero-wrap{position:relative;background:var(--bg)}.hero-head{position:relative;z-index:var(--z-raise);text-align:center;padding:clamp(104px,11vw,132px) 0 clamp(90px,11vw,150px)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono),monospace;font-size:12.5px;letter-spacing:.02em;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);padding:6px 13px;border-radius:999px;margin-bottom:26px}.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.on-accent .eyebrow{color:#fff;background:rgba(11,31,84,.22);border-color:rgba(255,255,255,.3)}.on-accent .eyebrow .dot{background:#fff}.hero-head h1{color:var(--ink);font-size:clamp(2.9rem,7.2vw,6rem);line-height:1;font-weight:800;letter-spacing:-.022em;font-variation-settings:"wdth" var(--wd-display);text-wrap:balance;margin:0 auto 20px}.hero-head .sub{color:var(--ink-2);font-size:clamp(1.05rem,1.7vw,1.35rem);font-weight:400;max-width:44ch;margin:0 auto 30px}.hero-head.on-accent h1{color:#fff}.hero-head.on-accent .sub{color:rgba(255,255,255,.94)}@media (max-width:700px){.hero-head{padding-top:148px}}.hero-stage{position:relative;z-index:var(--z-raise);width:80%;max-width:none;margin:clamp(-150px,-9vw,-70px) auto -190px;padding:0}.hero-browser{width:100%;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-3),0 0 0 1px rgba(16,22,32,.06);border:1px solid rgba(255,255,255,.6)}.hb-chrome{display:flex;align-items:center;gap:14px;padding:11px 14px;background:#f4f6f9;border-bottom:1px solid var(--line)}.hb-dots{display:flex;gap:7px;flex:none}.hb-dots i{width:11px;height:11px;border-radius:50%;display:block}.hb-dots i:first-child{background:#ff5f57}.hb-dots i:nth-child(2){background:#febc2e}.hb-dots i:nth-child(3){background:#28c840}.hb-url{flex:1 1;text-align:center;font-family:var(--font-mono),monospace;font-size:12.5px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 12px;max-width:320px;margin:0 auto;transition:border-color .2s var(--ease),color .2s}.hb-url:hover{border-color:var(--accent);color:var(--accent)}.hb-open{flex:none;font-family:var(--font-mono),monospace;font-size:11.5px;color:var(--accent);font-weight:600;display:inline-flex;align-items:center;min-height:24px}.hb-open:hover{text-decoration:underline}.hb-body{display:grid;grid-template-columns:1fr 1.2fr;background:#fff}.hb-pane{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line)}.hb-code{flex:1 1;width:100%;min-height:500px;resize:none;display:block;border:0;font-family:var(--font-mono),monospace;font-size:11.5px;line-height:1.7;color:var(--ink-2);background:#fff;padding:14px 14px 10px;white-space:pre;overflow:auto;-moz-tab-size:1;tab-size:1}.hb-code:focus{background:var(--bg-2);outline:none}.hb-code:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hb-status{display:flex;align-items:center;gap:12px;font-family:var(--font-mono),monospace;font-size:10.5px;color:var(--ok);background:var(--ok-bg);border-top:1px solid var(--line);padding:5px 8px 5px 12px}.hb-status.bad{color:var(--bad);background:var(--bad-bg)}.hb-msg{flex:1 1;min-width:0;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.hb-break{flex:none;font:inherit;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:6px;padding:3px 8px;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}.hb-break:hover{background:#e2ebff;border-color:var(--accent)}.hb-break:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hb-right{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:16px}.hb-out{position:relative;aspect-ratio:16/9;background:var(--bg-2);overflow:hidden;border-radius:8px;border:1px solid var(--line);--hb-scale:1;--hb-w:1920px;--hb-h:1080px}.hb-frame{position:absolute;top:0;left:0;width:var(--hb-w);height:var(--hb-h);border:0;display:block;transform-origin:top left;transform:scale(var(--hb-scale));opacity:0;transition:opacity .45s var(--ease)}.hb-out.is-live .hb-frame{opacity:1}.hb-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .45s var(--ease)}.hb-out.is-live .hb-poster{opacity:0}.hb-badge{position:absolute;left:9px;bottom:8px;z-index:var(--z-badge);font-family:var(--font-mono),monospace;font-size:10px;color:var(--accent);background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--accent-line);border-radius:6px;padding:3px 7px}.hb-badge.bad{color:var(--bad);background:var(--bad-bg);border-color:#f0c9c9}.hb-meta{display:grid;grid-gap:6px;gap:6px;font-family:var(--font-mono),monospace;font-size:10.5px}.hb-meta div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:5px}.hb-meta dt{color:var(--muted)}.hb-meta dd{color:var(--accent)}.hero-mobile{display:none;border-radius:14px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);box-shadow:var(--shadow-3)}.hero-mobile video{width:100%;display:block;aspect-ratio:16/9;object-fit:contain}.hero-mobile .hm-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:#fff;border-top:1px solid var(--line);font-family:var(--font-mono),monospace;font-size:12px;color:var(--muted)}.hero-mobile .hm-cta a{color:var(--accent);font-weight:600}@media (max-width:900px){.hero-browser{display:none}.hero-mobile{display:block}.hero-stage{width:auto;padding:0 20px;margin-bottom:-120px}}.hero-foot{background:var(--bg);height:270px}.gal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}.gal-head a{color:var(--accent);font-weight:600;font-size:14.5px}.gal-head a .arw{display:inline-block;transition:transform .25s var(--ease)}.gal-head a:hover .arw{transform:translateX(3px)}.pf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:clamp(28px,4vw,56px);gap:clamp(28px,4vw,56px);margin-top:34px}.pf>*+*{border-left:1px solid var(--line);padding-left:clamp(28px,4vw,56px)}.pf h3{font-size:1.18rem;font-weight:700;letter-spacing:-.018em;margin-bottom:8px}.pf p{color:var(--ink-2);font-size:14.5px;line-height:1.55;max-width:46ch;margin-bottom:22px}@media (max-width:760px){.pf{grid-template-columns:1fr;gap:34px}.pf>*+*{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:34px}}.dg{display:block;width:100%;height:auto;overflow:visible}.dg text{font-family:var(--font-mono),monospace}.dg-lab{font-size:11px;fill:var(--muted);letter-spacing:.01em}.dg-lab.is-on{fill:var(--accent);font-weight:600}.dg-dim{font-size:9.5px;fill:var(--muted)}.dg-hash{font-size:12px;fill:var(--ink-2)}.dg-hash.is-key{fill:var(--accent);font-weight:600}.dg-strip{fill:var(--bg-2);stroke:var(--line);stroke-width:1}.dg-perf{fill:var(--bg);stroke:var(--line-2);stroke-width:.8}.dg-frame{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5}.dg-frame.is-on{fill:var(--accent)}.dg-wave{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.dg-wave.on-fill{stroke:#fff}.dg-card{fill:var(--bg-2);stroke:var(--line);stroke-width:1}.dg-chip{fill:var(--accent);stroke:none}.dg-chiptx{font-size:11px;fill:#fff}.dg-fan{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:3 3;opacity:.55}.fxwall{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:26px}.fx{min-width:0}.fx img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--bg-2);border:1px solid var(--line);border-radius:8px}.fx figcaption{margin-top:7px;font-family:var(--font-mono),monospace;font-size:11px;color:var(--ink-2)}.fx .fxfam,.fx figcaption{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx .fxfam{color:var(--muted);font-size:10px;margin-top:1px}@media (max-width:900px){.fxwall{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.fxwall{gap:10px}}