/* V5: visible moving scenery, tangible props, and per-scene feedback. */
.background-fx{z-index:1!important}.back-light,.lantern-glow,.mist,.floating-cloud,.dust,.water-lines{display:none}#atmosphere{display:block;width:100%;height:100%}.scene{z-index:2}.scene-heading{background:radial-gradient(ellipse,#f5e4c0a6,transparent 80%)}.scene-heading p,.fine-note{font-size:2.3cqw}.eyebrow{font-size:2.1cqw}.poster-mode .topbar{z-index:12}.version-mark{position:absolute;left:7%;bottom:5%;font-size:2cqw;color:#f7d497;text-shadow:0 1px 3px #000;z-index:4}.interaction-tip{font:2.6cqw/1.6 var(--serif);text-align:center;color:#81522d;background:#f7e6c6db;border:1px solid #bd935b66;border-radius:5px;padding:1.5cqw;margin:2cqw 0}.interaction-tip.good{color:#35634a;border-color:#63916c}.interaction-tip.bad{color:#a53326;border-color:#c15f40}.instrument-meter{display:flex;align-items:center;justify-content:center;gap:3px;height:6cqw}.instrument-meter i{height:30%;width:3px;background:#bc5d31;border-radius:2px}.is-listening .instrument-meter i,.sound-active .selected .instrument-meter i{animation:meterPulse var(--beat-time,.7s) ease-in-out infinite;animation-delay:calc(var(--i)*-.08s)}.range-control{display:flex;align-items:center;justify-content:center;gap:2cqw;margin:2cqw 0;background:#f5e5c9e6;padding:2cqw;border-radius:5px;font:2.6cqw var(--serif)}input[type=range]{accent-color:#9e3b26;min-width:0;width:50%;touch-action:pan-x}.scene .primary:disabled{opacity:.5}.scene-status{font:2.5cqw/1.6 var(--serif);min-height:5cqw;text-align:center;color:#7e4b2d;background:#f7e7c9d9;padding:1cqw;border-radius:4px}.scene-status:empty{display:none}
.unlock-scene{position:absolute;inset:13% 8% 6%;display:flex;flex-direction:column;align-items:stretch}.unlock-scene h1{font:6cqw var(--serif)}.unlock-scene .chest-prop{margin-top:10cqw;height:54cqw}.unlock-scene .scene-heading p{font-size:3cqw}.mentor-caption{font:3.1cqw/1.7 var(--serif);background:#f3dfb9ed;border:1px solid #bd935b;padding:2cqw 3cqw;text-align:center;border-radius:7px;margin-top:2cqw}.key-prop{display:block;height:19cqw;width:38cqw;margin:2cqw auto;touch-action:none;filter:drop-shadow(0 4px 3px #6c381b44)}.key-prop svg{width:100%;height:100%}.key-prop:focus-visible{outline:2px solid #9c3d24}.key-trail{font:3cqw var(--serif);text-align:center;color:#9b4d23;margin-top:3cqw}.chest-prop{position:relative;width:100%;height:42cqw;perspective:500px;isolation:isolate;flex-shrink:0}.chest-body{position:absolute;left:9%;right:9%;bottom:8%;height:52%;background:repeating-linear-gradient(4deg,#9b3b27 0 8px,#a9482b 9px,#923323 10px 17px);border:2px solid #5f3520;border-radius:3px 3px 7px 7px;box-shadow:inset 0 0 0 4px #d3a251,inset 0 0 0 7px #613b25,0 8px 10px #4d2e2740;z-index:3}.chest-body:before,.chest-body:after{content:'卍';position:absolute;bottom:18%;font:9cqw var(--serif);color:#d5a34b;opacity:.7}.chest-body:before{left:15%}.chest-body:after{right:15%}.chest-lid{position:absolute;left:9%;right:9%;bottom:60%;height:22%;background:linear-gradient(#a94d2a,#76291e);border:2px solid #6f3c22;box-shadow:inset 0 0 0 3px #d2a257;border-radius:8px 8px 2px 2px;transform-origin:50% 100%;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter 1s;z-index:4}.chest-lock{position:absolute;left:calc(50% - 5cqw);top:-6cqw;width:10cqw;height:14cqw;border:2px solid #5d3a21;border-radius:4px;background:linear-gradient(125deg,#f3cb73,#b17c35);display:grid;place-items:center;box-shadow:inset 0 0 0 2px #d6ad55;z-index:5}.chest-lock:after{content:'';width:2cqw;height:5cqw;background:#4f301d;clip-path:polygon(20% 0,80% 0,100% 35%,65% 55%,85% 100%,15% 100%,35% 55%,0 35%)}.chest-light{position:absolute;left:9%;right:9%;bottom:25%;height:75%;background:radial-gradient(ellipse at 50% 90%,#fff4b8,transparent 68%);opacity:0;transition:opacity 1s;z-index:2}.chest-prop.open .chest-lid{transform:rotateX(-105deg);filter:brightness(.65)}.chest-prop.open .chest-light{opacity:1}.chest-prop.open .chest-lock{opacity:0}.chest-prop.ready .chest-lock{box-shadow:0 0 15px #ffe7a0,inset 0 0 0 2px #d6ad55}.drag-target{outline:2px dashed #a85229;outline-offset:-3px;background-color:#f8d89580!important}.drag-source{opacity:.3!important}.drag-ghost.key-ghost{width:135px;height:65px}.key-ghost svg{width:100%;height:100%}.drop-error{animation:dropError .35s ease-in-out 2}.chest-quote{position:absolute;left:0;right:0;top:1%;font:3cqw var(--serif);text-align:center;color:#8d3a22}.box-opening{pointer-events:none}.box-opening .key-prop{opacity:0;transition:opacity .2s}.curtain-transition{position:absolute;inset:0;pointer-events:none;z-index:25;background:linear-gradient(90deg,#6f1f17 0%,#a13a26 48%,#d2a459 49%,#d2a459 51%,#a13a26 52%,#6f1f17 100%);animation:curtainPass .75s ease-in-out both}
.origin-stage{height:50cqw}.origin-stage .lady-piece{height:46cqw}.origin-stage .projection-light{transition:opacity .5s;opacity:var(--lamp,.5)}.origin-stage.projected{background:radial-gradient(ellipse,#ffe6a7d9,#e8c48b55)}.projected .static-lady{opacity:var(--lamp,1);transition:opacity .15s;filter:drop-shadow(6px 3px 1px #7b471b4d)}.eye-detail{box-shadow:0 0 0 4px #f9e1a071}.detail-trigger{font-size:2.6cqw}.origin-scene .agong-line p{font-size:2.8cqw}.inspect-strip{display:flex;gap:2cqw;margin-top:1cqw}.inspect-strip button{flex:1;border:1px solid #b99153;background:#f6e4c4;padding:2cqw;font:2.6cqw var(--serif);border-radius:4px}.journey-stage{height:35cqw;transition:background 1s}.river-awake .journey-stage{background:linear-gradient(#f3dfbb55,#8bacaa3b)}.river-awake .river-landscape{animation:riverReveal 1.1s both}.river-awake .river-landscape svg{transform:scale(1.2)}.river-landscape .river-boat{animation:boatPass 14s linear infinite}.voice-choices button{height:auto;min-height:23cqw;transition:background .3s,box-shadow .3s}.voice-choices .is-listening{background:#ffdf9d;box-shadow:0 0 0 2px #b4612c}.voice-choices small{font-size:2cqw}.match-row{min-height:17cqw}.match-warrior span{font-size:2.5cqw}.voice-choices .match-answer{font:2.6cqw var(--serif);border-top:1px solid #b28b4e66;width:100%;padding-top:1.3cqw}.journey-scene .agong-line{display:none}.journey-scene .fine-note{font-size:2cqw}.craft-tools{display:flex;gap:1.5cqw;justify-content:center;margin:2cqw 0}.craft-tools button{font:2.6cqw var(--serif);background:#f1dcb7ed;border:1px solid #b28b4e;padding:2cqw 3cqw;border-radius:5px}.craft-step-2 .custom-preview{height:56cqw}.craft-step-2 .scene-heading p{font-size:2.5cqw}.craft-step-3 .custom-preview{height:73cqw}.paint-zones button{font-size:2.7cqw}.paint-splash{position:fixed;pointer-events:none;z-index:110;width:14px;height:14px;border:3px solid var(--paint-color);border-radius:50%;animation:inkSplash .55s ease-out both}.brush-dot{position:fixed;z-index:100;pointer-events:none;width:8px;height:8px;background:var(--paint-color);border-radius:50%;opacity:.65;animation:inkFade .6s ease-out forwards}.paint-zones .completed{box-shadow:inset 0 -3px #b9cb8e}.comparison{cursor:pointer}.comparison.active{box-shadow:inset 0 0 0 2px #9f442b}.compare-note{font:3cqw/1.7 var(--serif);background:#f3e0bc;padding:2cqw;border-radius:5px;text-align:center}.beat-status{display:flex;align-items:center;justify-content:space-between;background:#f1d9adee;border:1px solid #b1854b;border-radius:4px;font:2.6cqw var(--serif);padding:2cqw}.beat-status button{padding:1cqw 3cqw;border:1px solid #b77e3d;border-radius:4px}.beat-choice .instrument-meter{justify-content:flex-start;height:4cqw}.beat-choice{min-height:24cqw}.beat-scene .agong-line p{font-size:2.7cqw}.poet-card.selected{animation:selectionHalo .7s ease-out}.partner-strip small{-webkit-line-clamp:3;font-size:2.1cqw}.partner-strip .my-avatar{height:14cqw;width:14cqw}.partner-strip{min-height:20cqw}.mc-scene .scene-heading p{font-size:2.5cqw}
.battle-speech{height:28cqw;min-height:28cqw}.battle-speech:after{display:none}#lyrics{height:23cqw;font-size:3cqw;line-height:1.7}#lyrics p{opacity:.45;padding:.4cqw .5cqw;border-radius:4px;transition:opacity .3s,background .3s}#lyrics p.cue{opacity:1;color:#862f20;background:#eac68c87}#lyrics p.heard{opacity:1}.lyric-controls{display:flex;justify-content:space-between;align-items:center;font:2.3cqw var(--serif);margin-top:1cqw;background:#f5e5c6dd;border-radius:3px;padding:.7cqw 1.4cqw}.lyric-controls button{font:2.4cqw var(--serif);padding:1cqw}.lyric-progress{width:40%;height:3px;background:#c5a77c;overflow:hidden}.lyric-progress i{display:block;height:100%;width:0;background:#a63e28;transition:width .4s}.duel-stage{height:38cqw}.battle-feedback button{min-height:11cqw}.battle-response{font-size:2.4cqw;min-height:8cqw}.battle-scene .scene-heading h1{font-size:4.9cqw}.battle-scene .scene-actions{grid-template-columns:1fr auto}.quote-drop{position:absolute;left:5%;right:5%;top:20%;padding:2cqw;background:#f7e6bfeF;border:1px solid #c1954c;text-align:center;font:3cqw/1.6 var(--serif);z-index:8;box-shadow:0 5px 10px #693c2733;animation:quoteArrive .6s both}.quote-drop small{display:block;font-size:2cqw;color:#9b623c}.counter-flash{position:absolute;inset:0;border:2px solid #b8442b;border-radius:50%;pointer-events:none;animation:counterRing .7s both}.round-chip{font-size:2.3cqw;color:#8b3c22}.card-loading{font:3cqw var(--serif);text-align:center;padding:3cqw;background:#f4dfb7;margin-bottom:2cqw}.card-preview.ready{animation:quoteArrive .7s both}.card-scene .scene-heading p{font-size:2.5cqw}.card-scene .card-buttons .secondary{font-size:3cqw}.card-status{font:2.5cqw/1.8 var(--serif);text-align:center;color:#875125;background:#f4dfb9;padding:1cqw;border-radius:4px}.quote-options{display:flex;gap:2cqw;margin-bottom:2cqw}.quote-options button{flex:1;border:1px solid #b68a50;background:#f7e4c2;padding:1.5cqw;font:2.5cqw var(--serif)}.quote-options .active{background:#8e3425;color:#ffe9bc}
.ending-return{position:relative;height:70cqw}.ending-return .chest-prop{position:absolute;bottom:0;height:38cqw}.return-puppet{position:absolute;left:35%;top:0;width:30%;height:43cqw;z-index:5;touch-action:none;transition:transform .7s,opacity .6s}.return-puppet .player-svg{height:100%}.ending-return.returned .return-puppet{transform:translateY(18cqw) scale(.2);opacity:0;pointer-events:none}.ending-return.returned .chest-prop .chest-light{opacity:0}.end-scene .scene-heading h1{font-size:5.5cqw}.end-scene .end-words{font-size:2.9cqw;margin-top:1cqw;background:#f4e2c3dd;border-radius:5px;padding:2cqw}.end-scene .end-buttons{margin-top:2cqw}.end-scene .end-buttons .secondary{font-size:3cqw}.mentor-badge{font:3cqw/1.8 var(--serif);padding:2cqw;text-align:center;background:#f4dfbde6;border:1px solid #b88c4c;border-radius:6px}.return-ready .chest-body{box-shadow:inset 0 0 0 4px #d3a251,inset 0 0 0 7px #613b25,0 0 20px #f1c667}.fx-paused .instrument-meter i,.fx-paused .river-boat{animation-play-state:paused!important}
@keyframes dropError{25%{translate:-5px}75%{translate:5px}}@keyframes curtainPass{0%{clip-path:inset(0 50%)}45%{clip-path:inset(0 0)}100%{clip-path:inset(0 50%)}}@keyframes riverReveal{from{opacity:0;transform:translateX(20%)}to{opacity:1;transform:none}}@keyframes boatPass{from{transform:translateX(-80px)}to{transform:translateX(100px)}}@keyframes inkSplash{to{scale:4;opacity:0}}@keyframes inkFade{to{opacity:0;scale:.3}}@keyframes selectionHalo{from{box-shadow:0 0 22px #d7832a}to{box-shadow:0 0 5px #d7832a44}}@keyframes quoteArrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes counterRing{from{scale:.3;opacity:1}to{scale:1.2;opacity:0}}
@media(prefers-reduced-motion:reduce){.river-boat,.instrument-meter i,.return-puppet,.chest-lid{animation:none!important;transition:none!important}.curtain-transition{display:none}}
.floor-key{position:absolute;left:0;top:74.5%;width:42%;height:13%;padding:0;touch-action:none;z-index:8;transform-origin:96% 55%;filter:drop-shadow(0 2px 2px #29180d88);will-change:transform,left,top}.floor-key img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.floor-key.lifted{filter:drop-shadow(0 10px 6px #29180d99) brightness(1.12)}.floor-lock{position:absolute;left:45.5%;top:54.4%;width:11.5%;height:8%;border-radius:20%;z-index:6;transition:box-shadow .2s}.floor-lock.ready{box-shadow:0 0 20px 5px #ffdc7e,inset 0 0 12px #ffedb6}.key-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;opacity:.65}.key-path path{fill:none;stroke:#ffe8b6;stroke-width:.33;stroke-dasharray:1.3 1;animation:keyPath 1s linear infinite}.opened-plate{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;z-index:1;clip-path:inset(37% 0 23% 16%);transition:opacity 1.2s ease-in-out}.lid-opening .opened-plate{opacity:1}.floor-unlock-status{position:absolute;left:10%;right:10%;bottom:6.8%;padding:1.7cqw 1cqw;font:2.7cqw/1.5 var(--serif);color:#ffe4aa;background:#482918dc;border:1px solid #a4773c;border-radius:4px;text-align:center;z-index:9}.floor-key-help{position:absolute;bottom:2.2%;left:25%;right:20%;font:2.4cqw var(--serif);color:#f4d598;text-shadow:0 1px 3px #000;z-index:10}.unlocking .key-path,.unlocking .floor-key-help{opacity:0;pointer-events:none}.turning img{animation:keyTurn .6s ease-in-out .05s both;transform-origin:96% 55%}.unlatched .floor-lock{box-shadow:0 0 35px 9px #ffdf87}.unlock-warmth{position:absolute;left:15%;right:-5%;top:43%;height:35%;pointer-events:none;opacity:0;z-index:4;background:radial-gradient(ellipse at 50% 45%,#ffda7e65,transparent 68%);transition:opacity 1s}.lid-opening .unlock-warmth{opacity:1}.unlocking{pointer-events:none}@keyframes keyPath{to{stroke-dashoffset:-2.3}}@keyframes keyTurn{0%{transform:rotateX(0)}60%{transform:rotateX(75deg)}100%{transform:rotateX(60deg)}}
.fx-paused .key-path path{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.key-path path,.turning img{animation:none!important}.opened-plate{transition:none}}

.poster-mode .topbar{top:1.3%}.floor-unlock-status{background:#482918;border-color:#bb914e}.painting [data-paint]{cursor:crosshair}.painting [data-paint]:hover{filter:brightness(1.12)}
