/* One shared camera projects both WebGL tables and the interactive SVG paper. */
.scene.room-active{perspective:none;background:#302720;touch-action:none;isolation:isolate}
.room-canvas,.room-css{position:absolute;inset:0;display:block;width:100%;height:100%}.room-css{pointer-events:none;z-index:1}
.room-3d.room-active .table-plane{position:absolute!important;inset:auto!important;width:1000px!important;height:700px!important;transition:none!important;pointer-events:auto;backface-visibility:hidden}
.room-active .table-plane.surface-locked{pointer-events:none}
.room-3d.room-active #workbench{overflow:visible}
.room-controls{position:absolute;inset:auto 16px 40px;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;pointer-events:none}
.room-controls button,.supply-label{pointer-events:auto;color:#f8ead0;background:linear-gradient(135deg,#5e402eee,#382c23f5);border:1px solid #c2a16c88;box-shadow:0 3px 10px #160f0b40,inset 0 1px #efd5a226;border-radius:4px;padding:9px 13px;font-size:15px;min-height:39px}
.room-view{display:flex;gap:5px;flex-wrap:wrap;max-width:300px}.room-view button[aria-pressed="true"]{color:#32251c;background:linear-gradient(135deg,#f1dfb9,#bfa375)}
.material-note{display:flex;align-items:flex-end;flex-direction:column;gap:8px;max-width:300px;text-align:right}.material-note span{color:#f8ead5;font-size:15px;line-height:1.5;text-shadow:0 2px 5px #000;max-width:285px}
.material-note button{background:linear-gradient(135deg,#b96a46,#763b2c);border-color:#e2ac75}
.supply-label{position:absolute;left:0;top:0;z-index:3;white-space:nowrap;background:linear-gradient(135deg,#f7e7c5,#c9b186);color:#4a3021}
.room-active .scene-tag{z-index:3;pointer-events:none}.room-active .scene-bottom{z-index:4;font-size:12px;padding:11px 16px}.room-active #floating-score{z-index:5}
.room-controls[hidden],.supply-label[hidden],.room-canvas[hidden],.room-css[hidden]{display:none!important}
.room-active[data-camera-mode="orbit"]{cursor:grab}.room-active[data-camera-mode="orbit"]:active{cursor:grabbing}
.room-fallback.room-supply .table-plane{opacity:.12;pointer-events:none}.room-fallback .room-controls{inset:auto 20px 50px}.room-fallback.room-supply:before{content:'器材准备桌 · 描样纸 / 铆钉 / 竹签';position:absolute;inset:30% 0 auto;text-align:center;color:#f1dcb7;font-size:24px}
.room-active .room-controls button:focus-visible,.supply-label:focus-visible{outline:2px solid #fff0be;outline-offset:3px}
body[data-step="3"] .motion-svg{overflow:visible;filter:drop-shadow(3px 5px 2px #674c2b3d)}
@media(max-width:850px){.room-controls{inset:auto 10px 43px;gap:7px}.room-view{max-width:150px}.room-controls button,.supply-label{font-size:13px;padding:8px 9px}.material-note{max-width:190px}.material-note span{font-size:13px}.room-active .scene-bottom{font-size:11px}}
@media(max-width:600px){.scene.room-active{height:440px;aspect-ratio:auto;min-height:440px}.room-controls{inset:auto 9px 36px}.room-view{max-width:140px}.material-note{max-width:170px}.room-active .scene-tag{font-size:12px}.room-active .scene-bottom{font-size:10px}.room-view button{min-height:40px}.room-active .view-toggle{display:flex}}
@media(prefers-reduced-motion:reduce){.room-controls button{transition:background-color 160ms ease,color 160ms ease}.motion-svg .weapon-trails,.motion-svg .m-dust{display:none}}

.room-hands{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%}.room-hands[hidden]{display:none!important}

.battle-3d{position:absolute;inset:0;z-index:1;pointer-events:none;width:100%;height:100%}
.live-puppet-3d .motion-svg>g{visibility:hidden}
body[data-step="3"] .scene-tag,body[data-step="3"] .scene-bottom{z-index:3}
