*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--bg,#10171c);color:var(--ink,#eee9df);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 15% 0%,var(--wash,#263e40),transparent 55%);pointer-events:none;opacity:.5}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.4;cursor:default}.shell{max-width:1600px;margin:auto;padding:30px 5vw 20px;position:relative}.mast{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid #ffffff15;font-size:11px;letter-spacing:.12em}.mark{font-size:14px;letter-spacing:.16em;display:flex;gap:12px;align-items:center}.mark i{width:18px;height:18px;border:1px solid var(--accent);display:block;border-radius:50%;box-shadow:inset 6px 0 0 var(--accent)}.mast a{letter-spacing:0;opacity:.7}.intro{padding:44px 0 30px;display:flex;align-items:end;justify-content:space-between;gap:30px}.eyebrow,.kicker{font-size:10px;letter-spacing:.22em;color:var(--accent);font-family:monospace}.intro h1{font-size:clamp(34px,4vw,58px);font-weight:400;letter-spacing:.04em;margin:10px 0;line-height:1.3;font-family:"Noto Serif SC","Songti SC",SimSun,serif}.intro p{margin:8px 0;color:var(--muted,#9da7a7);font-size:13px}.edition{text-align:right;font-family:monospace;color:var(--muted);font-size:10px;letter-spacing:.12em;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:stretch}.stage{position:relative;min-width:0;height:610px;background:var(--stage,#111c23);border:1px solid #ffffff0e;border-radius:20px;overflow:hidden;box-shadow:0 25px 90px #0003}.stage canvas{width:100%;height:100%;display:block;touch-action:none}.scene-label{position:absolute;left:24px;top:22px;font-family:monospace;font-size:10px;letter-spacing:.16em;color:#ffffff87;pointer-events:none}.scene-note{position:absolute;bottom:23px;left:24px;font-size:11px;color:#ffffff94;pointer-events:none}.scene-state{position:absolute;right:24px;top:22px;font-size:11px;color:var(--accent);pointer-events:none;max-width:65%;text-align:right}.fallback{position:absolute;inset:80px 28px;display:grid;place-content:center;text-align:center;color:var(--muted);border:1px solid #ffffff1a;border-radius:200px}.fallback[hidden]{display:none}.fallback span{font-size:70px;color:var(--accent)}.controls{display:flex;flex-direction:column;padding:26px 24px;background:#ffffff03;border:1px solid #ffffff0c;border-radius:20px;gap:25px}.control{border-bottom:1px solid #ffffff0c;padding-bottom:23px}.control:last-of-type{border:0}.control-title{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;margin-bottom:13px}.control-title strong{font-size:12px;font-weight:400;color:var(--ink)}.choices{display:flex;flex-wrap:wrap;gap:6px}.choices button,.action{border:1px solid #ffffff1b;border-radius:8px;background:#ffffff02;color:var(--ink);padding:10px 13px;transition:background .2s,border-color .2s,transform .2s;font-size:12px}.choices button{flex:1;min-width:40px;white-space:nowrap;padding:9px 7px}.choices button[aria-pressed=true],.action.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.choices button:hover,.action:hover{border-color:var(--accent);transform:translateY(-1px)}.action{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.actions{display:grid;gap:9px}.control input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.control input[type=text]{width:100%;padding:12px;border-radius:8px;color:var(--ink);background:#0002;border:1px solid #ffffff20}.help{font-size:11px;line-height:1.9;color:var(--muted);margin:auto 0 0}.help p{margin:0 0 8px}.stat{font-size:30px;color:var(--accent);font-family:monospace;line-height:1.2}.meter{height:3px;background:#ffffff15;overflow:hidden;border-radius:5px;margin:8px 0}.meter i{display:block;height:100%;width:0;background:var(--accent)}.closing{display:flex;justify-content:space-between;gap:30px;padding:26px 0 20px;color:var(--muted);font-size:10px;border-bottom:1px solid #ffffff10;letter-spacing:.02em}.closing q{quotes:none;font-family:SimSun,serif;font-size:14px;color:#ffffff9b}.legal{color:var(--muted);font-size:9px;display:flex;justify-content:space-between;padding-top:17px;opacity:.65}.touch-row{position:absolute;bottom:22px;display:flex;gap:8px;left:50%;transform:translateX(-50%)}.touch-row button{background:#101520bd;border:1px solid #ffffff35;color:#fff;border-radius:10px;padding:12px 22px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);background:var(--accent);color:var(--bg);border-radius:10px;padding:10px 18px;opacity:0;pointer-events:none;transition:.2s;z-index:5}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:1700px){.stage{height:700px}}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 230px;gap:18px}.controls{padding:22px 18px}.stage{height:540px}}@media(max-width:760px){.shell{padding:20px 5vw}.mast{padding-bottom:18px}.mast>span{display:none}.intro{padding:28px 0 22px}.edition{display:none}.intro h1{font-size:35px}.intro p{font-size:12px}.workspace{grid-template-columns:1fr;gap:14px}.stage{height:450px;border-radius:15px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px;padding:22px}.control{padding-bottom:15px}.help{grid-column:1/-1}.closing{display:block;padding:24px 0}.closing q{display:block;margin-bottom:8px}.scene-label{left:18px;top:18px}.scene-note{left:18px;bottom:18px}.scene-state{right:18px;top:18px}.legal{gap:18px}.control.wide,.actions.wide{grid-column:1/-1}}@media(max-width:380px){.controls{padding:18px;gap:14px}.choices button{font-size:11px;padding:8px 5px}.stage{height:400px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
