html,body,#app{width:100%;height:100%;margin:0}body{color:#fff;background:#111;font-family:Arial,Helvetica,sans-serif}.home[data-v-d196eb21]{box-sizing:border-box;background:#111;min-height:100%;padding:48px}h1[data-v-d196eb21]{margin-bottom:8px}.subtitle[data-v-d196eb21]{color:#aaa}nav[data-v-d196eb21]{flex-direction:column;gap:16px;margin-top:40px;display:flex}a[data-v-d196eb21]{color:#fff;font-family:monospace;font-size:1.4rem}.warp-canvas[data-v-60b8a5d8]{width:100%;height:100%;display:block}.player-stage[data-v-74f9fbfd]{-webkit-user-select:none;user-select:none;touch-action:none;cursor:none;background:#000;position:fixed;inset:0;overflow:hidden}.player-stage.debug[data-v-74f9fbfd]{cursor:auto}.surface[data-v-74f9fbfd]{width:100%;height:100%;display:block;position:absolute;inset:0}.status[data-v-74f9fbfd]{color:#fff;pointer-events:none;background:#000000b3;border-radius:6px;padding:6px 10px;font:13px monospace;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.status.error[data-v-74f9fbfd]{color:#ff6b6b}.failure[data-v-74f9fbfd]{color:#ffd166;white-space:pre-line;pointer-events:none;background:#000000b8;border-radius:6px;max-width:min(90vw,900px);padding:8px 10px;font:12px/1.5 monospace;position:fixed;bottom:52px;left:50%;transform:translate(-50%)}.debug[data-v-74f9fbfd]{color:#9be7ff;white-space:pre-line;pointer-events:none;background:#000000b8;border-radius:6px;max-width:min(70vw,640px);padding:8px 10px;font:12px/1.5 monospace;position:fixed;top:14px;left:14px}.bars[data-v-74f9fbfd]{flex-direction:column;gap:3px;margin-top:6px;display:flex}.bar[data-v-74f9fbfd]{background:#ffffff2e;height:3px}.fill[data-v-74f9fbfd]{height:100%;display:block}.scene-progress[data-v-74f9fbfd]{background:#ffd166}.story-progress[data-v-74f9fbfd]{background:#9be7ff}.player-stage.controls-visible[data-v-74f9fbfd]{cursor:auto}.controls[data-v-74f9fbfd]{opacity:0;pointer-events:none;background:linear-gradient(#0000,#0009);flex-direction:column;gap:10px;padding:26px 20px 16px;transition:opacity .25s,transform .25s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(10px)}.controls.visible[data-v-74f9fbfd]{opacity:1;pointer-events:auto;transform:translateY(0)}.controls .track[data-v-74f9fbfd]{background:#ffffff38;border-radius:2px;height:4px;position:relative}.controls .track .fill[data-v-74f9fbfd]{background:#9be7ff;border-radius:2px;height:100%;position:absolute;top:0;left:0}.controls .chapter-marker[data-v-74f9fbfd]{background:#ffffffb3;width:2px;height:8px;position:absolute;top:-2px}.controls .pause-marker[data-v-74f9fbfd]{background:#9be7ff;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;box-shadow:0 0 6px #9be7ffb3}.top-overlay[data-v-74f9fbfd]{z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:clamp(4px,.8vh,10px);max-width:min(880px,90vw);display:flex;position:fixed;top:clamp(8px,1.6vh,18px);left:50%;transform:translate(-50%)}.touch-hint[data-v-74f9fbfd]{color:#ffffffeb;letter-spacing:.02em;background:#0000008c;border-radius:999px;align-items:center;gap:8px;padding:clamp(5px,1vh,9px) clamp(10px,1.4vw,18px);font:clamp(11px,1.7vh,14px)/1.2 Segoe UI,system-ui,sans-serif;animation:2.4s ease-in-out infinite touch-hint-breathe-74f9fbfd;display:flex}.chapter-note[data-v-74f9fbfd]{color:#fffffff7;text-align:center;background:#0009;border-radius:12px;margin:0;padding:clamp(6px,1.3vh,13px) clamp(12px,1.6vw,22px);font:600 clamp(16px,2.6vh,30px)/1.35 Segoe UI,system-ui,sans-serif}.touch-hint-dot[data-v-74f9fbfd]{background:#9be7ff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #9be7ffe6}@keyframes touch-hint-breathe-74f9fbfd{0%,to{opacity:.55}50%{opacity:1}}.controls .progress-meta[data-v-74f9fbfd]{color:#ffffffd9;justify-content:space-between;margin-top:6px;font:11px/1.4 monospace;display:flex}.controls .buttons[data-v-74f9fbfd]{justify-content:center;gap:10px;display:flex}.controls .buttons button[data-v-74f9fbfd]:disabled{opacity:.35;cursor:default}.controls .buttons .back-button[data-v-74f9fbfd]{color:#fff;background:#9be7ff38;align-items:center;gap:7px;margin-right:auto;display:inline-flex}.controls .buttons .back-button[data-v-74f9fbfd]:hover{background:#9be7ff61}.back-label[data-v-74f9fbfd]{letter-spacing:.02em;font-size:.85em}@media (width<=520px){.back-label[data-v-74f9fbfd]{display:none}}.controls .buttons button[data-v-74f9fbfd]{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:8px;min-width:42px;height:34px;padding:0 10px;font-size:15px}.controls .buttons button[data-v-74f9fbfd]:hover{background:#ffffff47}.stage[data-v-53b68927]{-webkit-user-select:none;user-select:none;touch-action:none;background:#000;position:fixed;inset:0;overflow:hidden}.renderer[data-v-53b68927],.mesh[data-v-53b68927]{width:100%;height:100%;position:absolute;inset:0}.mesh[data-v-53b68927]{overflow:visible}.grid-line[data-v-53b68927]{stroke:#ffffffeb;stroke-width:1.6px;vector-effect:non-scaling-stroke;pointer-events:none}.control-point[data-v-53b68927]{cursor:grab}.control-point[data-v-53b68927]:active{cursor:grabbing}.hit-area[data-v-53b68927]{fill:#0000;pointer-events:all}.handle-outer[data-v-53b68927]{fill:#fff;stroke:#000;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}.handle-middle[data-v-53b68927]{fill:#000;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.handle-center[data-v-53b68927]{fill:#ff2d00;stroke:#fff;stroke-width:1.4px;vector-effect:non-scaling-stroke;pointer-events:none}.point-label[data-v-53b68927]{fill:#fff;stroke:#000;stroke-width:2px;paint-order:stroke fill;pointer-events:none;font:2.1px monospace}.status[data-v-53b68927]{color:#fff;pointer-events:none;background:#000000b3;border-radius:6px;padding:6px 10px;font:13px monospace;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.hidden[data-v-53b68927]{display:none}.project-stage[data-v-daf3c6a4]{-webkit-user-select:none;user-select:none;background:#000;position:fixed;inset:0;overflow:hidden}.status[data-v-daf3c6a4]{color:#fff;pointer-events:none;background:#000000b3;border-radius:6px;padding:6px 10px;font:13px monospace;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}
