@charset "UTF-8";
:root{--green:#32f08c;--ink:#e8f2ec;--muted:#8a9bb0;--line:#1e2a36;--night:#0b1220;--panel:#121a26;--panel-line:#24324a;font-family:Inter,"Helvetica Neue","PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--night);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}[hidden]{display:none!important}button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:5px}button:disabled{cursor:default}svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.page{height:100svh;min-height:740px;display:flex;flex-direction:column;overflow:hidden}
.header{height:84px;flex:none;display:flex;align-items:center;justify-content:space-between;margin:0 48px;border-bottom:1px solid var(--line);position:relative;z-index:3}
.brand{font-size:35px;line-height:1;font-weight:950;letter-spacing:-2.4px;display:flex;align-items:center;gap:6px;color:#f4f8f6}.brand-dot{width:8px;height:8px;background:var(--green);margin-top:20px;box-shadow:0 0 10px #32f08c99}.edition{position:absolute;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:1.3px;display:flex;gap:9px;align-items:center;white-space:nowrap;color:#c9d7e6}.edition i{display:block;width:6px;height:6px;background:var(--green);box-shadow:0 0 8px var(--green)}.header-note{font-size:11px;letter-spacing:.6px;color:var(--muted)}.header-note span{padding-left:14px;font-size:19px}
.intro{text-align:center;position:relative;z-index:2;flex:none;padding:29px 20px 0;pointer-events:none;transition:opacity .4s}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:600;color:#6fe3a6;display:flex;align-items:center;justify-content:center;gap:12px;font-family:Menlo,Consolas,monospace}.eyebrow>span{display:block;width:19px;height:1px;background:#2a3a4a}h1{font-size:clamp(30px,3.2vw,48px);font-weight:650;letter-spacing:-1.5px;margin:15px 0 12px;line-height:1.3;color:#f4f8f6}.headline-accent{position:relative;color:var(--green);text-shadow:0 0 18px #32f08c55}.headline-accent svg{position:absolute;bottom:-7px;left:0;width:100%;height:13px;stroke:var(--green);stroke-width:5}.intro p{font-size:12px;color:var(--muted);margin:0;letter-spacing:.5px;line-height:1.9}
.celebrating .intro{opacity:.15}
.stage{flex:1;min-height:300px;position:relative;margin-top:-8px;isolation:isolate}.stage-top{position:absolute;top:32px;left:50px;display:flex;align-items:center;gap:7px;font-size:10px;color:#7f93aa;z-index:1;letter-spacing:.8px}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #32f08c22,0 0 8px var(--green)}#canvas-host{position:absolute;inset:-18px 0 -20px;touch-action:none}#canvas-host canvas{display:block;background:var(--canvas-bg,var(--night));width:100%;height:100%;outline:none;touch-action:none}
.stage-tools{position:absolute;right:48px;top:26px;display:flex;gap:7px;z-index:3}.icon-button{width:35px;height:35px;background:#121a26cc;border:1px solid var(--panel-line);border-radius:50%;display:grid;place-items:center;transition:background .15s,border-color .15s;color:#c9d7e6}.icon-button:hover{background:#1a2433;border-color:#32f08c88}.icon-button svg{width:17px;height:17px}.motion-play{display:none}.icon-button[aria-pressed=true] .motion-pause{display:none}.icon-button[aria-pressed=true] .motion-play{display:block}
.scene-label{position:absolute;top:0;left:0;pointer-events:none;transform:translate(-50%,0);z-index:2;display:flex;align-items:center;gap:7px;color:#cfe0d6;font-size:10px;letter-spacing:.6px;white-space:nowrap;padding:6px 11px;border-radius:20px;background:#121a26e6;border:1px solid var(--panel-line);box-shadow:0 3px 12px #0006;opacity:0;transition:background .2s}.scene-label.active{background:#0f2a1d;border-color:var(--green);box-shadow:0 0 14px #32f08c44}.scene-label>span{font-size:15px;color:#9fd2f2}.tiny-pixel{width:7px;height:7px;display:block;background:var(--green);box-shadow:2px 0 var(--green),-2px 0 var(--green),0 2px var(--green),0 -2px var(--green)}
.orbit-hint{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:9px;color:#6f8299;letter-spacing:.6px;pointer-events:none}.orbit-hint svg{width:17px;height:17px;color:#6f8299}
.interaction{flex:none;position:relative;z-index:3;padding:18px 25px 12px}.interaction-dock{display:flex;align-items:flex-start;justify-content:center;gap:47px}.actor-button{display:flex;align-items:center;gap:11px;text-align:left;padding:7px 0;background:none;transition:transform .15s}.actor-button:hover{transform:translateY(-3px)}.actor-button strong{display:block;font-size:12px;font-weight:550;line-height:1.6}.actor-button small{display:block;font-size:9px;color:#7f93aa;line-height:1.7;letter-spacing:.5px}.actor-symbol{width:41px;height:41px;border:1px solid var(--panel-line);border-radius:13px;display:flex;align-items:center;justify-content:center;flex:none}.coder-symbol{background:#1b2c5c;color:#9fd2f2;font-size:30px;border-color:#2a55c8}.bot-symbol{background:#0f1a14;gap:7px;border-color:#2a3a30}.bot-symbol i{height:6px;width:6px;background:var(--green);transform:rotate(45deg)}
.main-action{width:270px;text-align:center}.celebrate{height:52px;padding:0 23px;background:var(--green);color:#07130d;border:1px solid #27dc7d;border-radius:13px;box-shadow:0 5px 0 #1a9d58,0 10px 26px #32f08c40;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:14px;font-weight:650;transition:transform .15s,box-shadow .15s}.celebrate:hover{transform:translateY(-2px);box-shadow:0 7px 0 #1a9d58,0 14px 30px #32f08c55}.celebrate:active{transform:translateY(3px);box-shadow:0 2px 0 #1a9d58}.celebrate:disabled{background:#1f4a35;color:#9fd6b6;box-shadow:0 3px 0 #16352a;border-color:#2a6047}.button-star{font-size:21px}.button-arrow{font-size:21px;font-weight:400}.action-note{display:flex;align-items:center;justify-content:center;gap:7px;min-height:25px;margin-top:7px;font-size:9px;color:#7f93aa;letter-spacing:.4px}#skip{background:none;color:var(--green);font-size:10px;border-bottom:1px solid #32f08c66;padding:1px 3px}
.dialogue{position:absolute;bottom:calc(100% + 11px);left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:14px;border:1px solid #2a3a4a;box-shadow:0 10px 30px #0008,0 0 24px #32f08c1f;background:#121a26f2;text-align:center;width:max-content;max-width:calc(100vw - 36px);animation:appear .18s ease-out;pointer-events:none}.dialogue::after{content:"";position:absolute;bottom:-5px;left:50%;width:9px;height:9px;background:#121a26;transform:rotate(45deg);border-bottom:1px solid #2a3a4a;border-right:1px solid #2a3a4a}.dialogue>span{color:var(--green);font-size:9px;letter-spacing:1px}.dialogue p{margin:5px 0 0;font-size:13px;line-height:1.6}
.footer{height:51px;flex:none;margin:0 48px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:9px;color:#6f8299;letter-spacing:.5px}.footer button{display:flex;align-items:center;gap:7px;font-size:10px;background:none;color:#9fb3c8;padding:8px 0}.footer button svg{width:15px;height:15px}.footer button[aria-pressed=true]{opacity:.6}.footer-credit{letter-spacing:1.6px;font-size:8px}.footer-credit>span{color:var(--green);font-size:12px}
.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-size:12px;color:var(--muted);background:#0b1220e8;z-index:4}.loading-star{font-size:38px;color:var(--green);animation:loading 1.6s ease-in-out infinite}.fallback{position:absolute;inset:20px 0 35px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:radial-gradient(ellipse at 50% 45%,#13241d 0,transparent 60%),#0d1524}.fallback-number{font-size:clamp(70px,12vw,160px);font-weight:900;letter-spacing:-8px;color:var(--green);text-shadow:0 7px #0f3a26,0 0 40px #32f08c55}.fallback h2{font-size:21px;margin:12px 0}.fallback p{font-size:12px;color:var(--muted);max-width:380px;line-height:1.8}.fallback button{padding:9px 17px;border:1px solid var(--panel-line);border-radius:8px;background:var(--panel);font-size:12px}.noscript{position:fixed;top:40%;left:15%;right:15%;padding:30px;background:var(--panel);text-align:center}
@keyframes loading{50%{transform:rotate(35deg) scale(1.2)}}@keyframes appear{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
@media(min-width:1700px){.stage{margin-left:5vw;margin-right:5vw}.intro{padding-top:35px}}
@media(max-width:800px){.header{margin:0 24px;height:68px}.brand{font-size:30px}.header-note{display:none}.edition{position:static;transform:none;font-size:9px;letter-spacing:.6px}.intro{padding-top:27px}.intro h1{font-size:35px}.stage-top{left:24px}.stage-tools{right:24px}.interaction-dock{gap:25px}.main-action{width:250px}.actor-button strong{font-size:11px}.actor-button small{font-size:8px}.actor-symbol{width:35px;height:35px}.footer{margin:0 24px}.footer-center{display:none}}
@media(max-width:540px){.page{min-height:700px}.header{height:61px;margin:0 20px}.brand{font-size:29px}.intro{padding-top:23px}.eyebrow{font-size:8px;letter-spacing:1.5px}.intro h1{font-size:31px;margin-top:14px}.intro p{font-size:10px;line-height:1.9}.intro-break{display:block}.stage{min-height:270px;margin-top:4px}.stage-top{left:21px;top:18px;font-size:8px}.stage-tools{right:18px;top:12px;gap:5px}.icon-button{width:30px;height:30px}.icon-button svg{width:14px;height:14px}.scene-label{font-size:8px;padding:4px 8px}.scene-label>span{font-size:12px}.orbit-hint{font-size:8px;letter-spacing:0;bottom:3px}.interaction{padding:13px 22px 10px}.interaction-dock{display:grid;grid-template-columns:1fr 1fr;gap:11px 22px;align-items:center}.main-action{grid-row:1;grid-column:1/3;width:100%}.celebrate{height:48px;max-width:320px;margin:auto;font-size:13px}.action-note{margin-top:5px;min-height:22px}.actor-button{justify-content:center;gap:8px;padding:0}.actor-button strong{font-size:10px}.actor-button small{font-size:8px}.actor-symbol{width:33px;height:33px;border-radius:10px}.footer{height:44px;margin:0 20px}.footer-credit{font-size:7px;letter-spacing:1.1px}.dialogue{bottom:calc(100% + 8px);padding:10px 15px}.dialogue p{font-size:11px}.fallback-number{letter-spacing:-3px}}
@media(max-height:600px) and (min-width:541px){.page{min-height:570px}.header{height:52px}.intro{padding-top:12px}.intro h1{font-size:27px;margin:7px 0}.intro p{font-size:10px}.eyebrow{font-size:8px}.stage{min-height:240px}.interaction{padding-top:9px;padding-bottom:3px}.footer{height:36px}}
@media(max-height:480px) and (min-width:541px){.page{min-height:360px}.header{height:44px}.intro{padding-top:6px}.intro h1{font-size:24px;margin:4px 0}.intro p,.eyebrow{display:none}.stage{min-height:130px}.stage-top{top:10px}.stage-tools{top:5px}.interaction{padding-top:6px}.footer{height:30px}.orbit-hint{font-size:8px}.scene-label{font-size:8px;padding:3px 7px}}
.page{background:var(--canvas-bg,var(--night))}.action-note{position:relative;padding:0 34px}#skip{position:absolute;right:0;top:0;min-height:24px;padding:3px 8px}#celebration-status{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
