/* style.css */
:root{--ink:#43251a;--muted:#8c6948;--red:#8d2d22;--gold:#d2a55c;--blue:#173d65;--paper:#f4e5c6;--serif:'STSong','SimSun',serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(ellipse at 50% 45%,#594032,#170f0d);color:var(--ink);font-family:Arial,'Microsoft YaHei',sans-serif;display:grid;place-items:center}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;border:0;color:inherit;background:none;cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif)}a{color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.theatre-frame{position:relative;width:min(100vw,calc(100dvh * 9 / 16),480px);aspect-ratio:9/16;overflow:hidden;isolation:isolate;background:#eed5a2;container-type:inline-size;box-shadow:0 0 100px #0008}.stage-backdrop{position:absolute;inset:0;background:url('assets/v4/empty-stage.webp') center/100% 100% no-repeat;z-index:-4}#poster-layer{position:absolute;inset:0;background-position:center;background-size:100% 100%;z-index:-3}#app{position:absolute;inset:12.7% 8.4% 6%;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;z-index:3}#app::-webkit-scrollbar{display:none}#app[aria-busy=true]{pointer-events:none}.scene{position:relative;min-height:100%;padding:0 0 9px;display:flex;flex-direction:column;align-items:stretch}.scene-heading{text-align:center;margin-bottom:3cqw}.eyebrow{font-size:1.8cqw;letter-spacing:2px;color:var(--muted)}.scene-heading h1{font-size:6.2cqw;line-height:1.45;margin:1.4cqw 0;letter-spacing:.3px}.scene-heading p{font-size:2.3cqw;line-height:1.7;color:var(--muted)}.topbar{position:absolute;top:3.8%;left:5%;right:4%;height:6.2%;z-index:10;display:flex;align-items:center;justify-content:space-between;color:#f8dfa6}.topbar>button:first-child{font-size:4.3cqw;padding:2cqw;color:#e8bc7b}.mini-brand{font:4.3cqw var(--serif);letter-spacing:1.7px;text-shadow:0 2px 3px #2b160c}.mini-brand small{display:block;font:1.3cqw Arial;letter-spacing:2px;text-align:center;margin-top:.5cqw}.sound-btn{border:1px solid #d6ac6b;background:#4c291ccb;width:9cqw;height:9cqw;border-radius:50%;display:grid;place-items:center;position:relative;color:#ffefc7}.music-note{font-size:7cqw;line-height:1;translate:0 -1px}.sound-btn.playing:after{content:'';position:absolute;inset:-4px;border:1px solid #dcb25f88;border-radius:50%;animation:musicRing 3s ease-in-out infinite}#scene-footer{position:absolute;bottom:1.5%;left:6.5%;right:6.5%;display:flex;justify-content:space-between;gap:5px;align-items:center;color:#e1bb81;font-size:1.6cqw;z-index:8;text-shadow:0 1px 2px #27150c}#bg-toggle{font-size:1.7cqw;padding:6px 0;white-space:nowrap}.steps{display:flex;gap:3px}.steps i{height:3px;width:3px;background:#dec08c66;border-radius:4px;transition:width .4s}.steps .active{width:12px;background:#e8c27b}
.primary{position:relative;min-height:10.5cqw;display:flex;align-items:center;justify-content:center;gap:8cqw;font-family:var(--serif);font-size:4.1cqw;letter-spacing:2px;color:#fff0c1;background:linear-gradient(#a8502c,#7e2a1e);border:1px solid #dbb46d;box-shadow:inset 0 0 0 3px #7e2a1e,inset 0 0 0 4px #c39a57,0 3px 9px #52270d35;border-radius:16px 4px;transition:filter .2s;flex-shrink:0;padding:9px 15px}.primary span{position:absolute;right:6%;font-size:7cqw;line-height:1}.primary:active{filter:brightness(1.15)}.scene-actions{display:flex;flex-direction:column;gap:6px;margin-top:3cqw;align-items:stretch}.secondary{border:1px solid #a57c43;color:#784322;background:#f3dcadbb;border-radius:5px;padding:10px 12px;font:3cqw var(--serif);min-height:38px}.text-button,.bottom-links button{font-size:2.3cqw;padding:9px 5px;color:var(--red);min-height:32px}.agong-line{border-top:1px solid #b28b4e65;margin-top:3cqw;padding:3cqw 1cqw 0;display:flex;gap:2cqw;align-items:flex-start}.agong-line>span{writing-mode:vertical-rl;font:2.2cqw var(--serif);letter-spacing:2px;color:#9a4a2c;flex-shrink:0;border:1px solid #b7824c;border-radius:2px;padding:4px 2px}.agong-line p{font:3.2cqw/1.8 var(--serif);text-align:justify}.fine-note{font-size:1.9cqw;line-height:1.7;color:var(--muted);text-align:center;margin-top:2cqw}
.poster-mode #app{inset:0;overflow:hidden}.poster-mode .mini-brand{visibility:hidden}.poster-mode #scene-footer{color:#f9dfaa}.poster-mode #scene-footer #chapter-label,.poster-mode #scene-footer .steps{display:none}.poster-mode .sound-btn{background:#4d2919bb;border-color:#f6d79f}.poster-mode .topbar{top:3.8%}.poster-screen{position:absolute;inset:0}.cover-start{position:absolute;left:18%;width:65%;height:7.5%;top:77%;border-radius:40px;animation:buttonLight 4s ease-in-out infinite}.poster-next{position:absolute;left:13%;right:10%;top:72%;bottom:2%}.lock-target{position:absolute;left:42%;top:50%;width:16%;height:13%;border-radius:30px}.key-drag{position:absolute;left:0;top:73%;width:42%;height:13%;border-radius:50%;touch-action:none}.key-drag:focus-visible,.lock-target:focus-visible{outline:2px solid #ffdd85}.skip-intro{position:absolute;bottom:3%;left:25%;right:18%;font-size:2.4cqw;color:#f6d899;text-shadow:0 2px 3px #371307}.box-open .lock-target{box-shadow:0 0 70px 30px #ffdf83;transition:box-shadow .3s}
.origin-stage{position:relative;height:65cqw;display:flex;justify-content:center;align-items:center;border:1px solid #b58a4b4d;background:radial-gradient(ellipse,#e4ba7150,transparent 70%);border-radius:8px;flex-shrink:0}.lady-piece{height:59cqw;width:40cqw;position:relative;z-index:2;touch-action:pan-y}.static-lady,.puppet-svg{height:100%;width:100%;display:block}.static-lady{opacity:.55;filter:sepia(.3)}.projected .static-lady{opacity:1;filter:drop-shadow(3px 4px 1px #7b471b38)}.projection-light{position:absolute;inset:10%;background:radial-gradient(ellipse,#ffe3a7cc,transparent 65%);opacity:.3}.projected .projection-light{opacity:.9;animation:backlightPulse 6s ease-in-out infinite}.touch-hint,.detail-trigger{position:absolute;bottom:1.8cqw;left:0;right:0;font-size:2.2cqw;color:#83522f;text-align:center;z-index:4}.detail-trigger{min-height:30px}.eye-detail{position:absolute;right:2cqw;top:4cqw;width:21cqw;background:#f8e4b6ee;border:1px solid #be9459;border-radius:50% 50% 8px 8px;padding:9px 3px 3px;z-index:3;text-align:center;font:2cqw var(--serif)}.eye-detail svg{width:100%;height:20cqw}
.journey-stage{height:43cqw;position:relative;border:1px dashed #a886555f;border-radius:6px;overflow:hidden;flex-shrink:0}.river-landscape{position:absolute;inset:0;display:flex;align-items:flex-end;opacity:.2;transition:opacity 1.2s}.river-awake .river-landscape{opacity:1}.river-landscape svg{width:100%;height:100%;object-fit:contain}.stage-location{position:absolute;bottom:2cqw;left:0;right:0;text-align:center;font-size:1.8cqw;color:#7e694d}.drop-caption{position:absolute;inset:20% 4%;display:grid;place-content:center;text-align:center;line-height:2;font:3.4cqw/2 var(--serif);color:#896039}.drop-caption small{font:2cqw Arial}.poet-image{display:block;max-width:100%;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}.paper-image{mix-blend-mode:multiply}.hung-warrior{position:absolute;left:calc(50% - 13cqw);top:1cqw;width:26cqw;height:39cqw}.warrior-pick{width:100%;height:36cqw;display:flex;align-items:center;justify-content:center;gap:9cqw;font:3.2cqw var(--serif);touch-action:none}.warrior-pick img{height:34cqw;width:23cqw}.voice-choices{display:flex;gap:3cqw;margin:3cqw 0 0}.voice-choices button{border:1px solid #b28b4e88;background:#f5deb16b;border-radius:5px;flex:1;padding:2cqw;display:flex;flex-direction:column;align-items:center;gap:1.5cqw}.voice-choices b{font-size:5cqw;color:#a24d2a}.voice-choices span{font:2.8cqw var(--serif)}.voice-choices small{font-size:1.8cqw;color:#987045}.voice-choices .matched{background:#d4dfba66;border-color:#708754}.match-row{display:flex;align-items:center;justify-content:center;gap:7cqw}.match-warrior{height:19cqw;display:flex;align-items:center;gap:3cqw;touch-action:none}.match-warrior img{height:19cqw;width:14cqw}.match-warrior span{font-size:2cqw}.journey-scene .agong-line{margin-top:2cqw}.journey-scene .agong-line p{font-size:2.8cqw}
.craft-comparison{display:flex;gap:4cqw;height:79cqw;margin-bottom:1cqw}.comparison{flex:1;position:relative;border:1px solid #b18b4b6b;border-radius:90px 90px 6px 6px;padding:3cqw 0 11cqw;text-align:center;overflow:hidden;background:#f6e9ca60}.comparison .player-svg{height:100%;width:100%}.comparison b{position:absolute;left:0;right:0;bottom:7cqw;font:3cqw var(--serif)}.comparison small{position:absolute;left:0;right:0;bottom:3cqw;font-size:1.8cqw;color:var(--muted)}.comparison.carved .player-svg{filter:sepia(1) saturate(.7);opacity:.8}.comparison.carved:after{content:'';position:absolute;inset:16% 22% 22%;background:radial-gradient(circle,#f5e4bd 0 2px,transparent 3px) 0 0/9px 10px;clip-path:polygon(35% 0,75% 5%,95% 25%,75% 65%,90% 100%,20% 100%,25% 65%,0 30%);pointer-events:none}.step-tabs{display:flex;gap:8px;justify-content:center;font:3cqw var(--serif);color:#a6875f;padding:1cqw 0}.step-tabs i{font-style:normal;color:#be9a65}.step-tabs .active{color:var(--red)}.custom-preview{position:relative;height:76cqw;display:flex;align-items:center;justify-content:center;isolation:isolate;flex-shrink:0}.custom-preview .player-svg{height:100%;width:53cqw;position:relative;z-index:2}.custom-seal{position:absolute;right:2cqw;top:9cqw;font:2.5cqw/1.5 var(--serif);color:#9b4529;border:1px solid #9b4529;padding:5px}.player-svg{display:block;width:100%;height:100%;overflow:visible}.wardrobe-tabs,.paint-zones{display:flex;gap:1cqw;border-bottom:1px solid #aa7b3e77}.wardrobe-tabs button,.paint-zones button{flex:1;font:3.1cqw var(--serif);padding:2.2cqw 1cqw;min-height:32px;background:#24435c;color:#f8dc9c;border:1px solid #c59953;border-radius:7px 7px 0 0}.wardrobe-tabs .active,.paint-zones .active{background:#a24029}.wardrobe-options{display:flex;gap:2cqw;margin-top:2cqw;height:19cqw}.wardrobe-options button{position:relative;flex:1;background:#f6e1b477;border:1px solid #bd955e;border-radius:4px;padding:1cqw 1cqw 4cqw;overflow:hidden}.wardrobe-options .selected{outline:2px solid #a34426;outline-offset:-2px;background:#f6d99d}.wardrobe-options small{position:absolute;left:0;right:0;bottom:.6cqw;font-size:1.8cqw}.craft-step-1 .scene-heading{margin-bottom:1cqw}.craft-step-1 .scene-actions{margin-top:2cqw}.painting{height:70cqw}.pigment-tray{display:flex;justify-content:space-around;padding:3cqw 2cqw 1cqw;background:#956c4025;border-radius:0 0 12px 12px}.pigment-tray button{display:flex;flex-direction:column;align-items:center;gap:1.4cqw;touch-action:none}.pigment-tray i{width:10cqw;height:8cqw;border:3px solid #bc945d;background:var(--pigment);border-radius:50%;box-shadow:inset 0 0 0 2px #e9c48a,0 3px 3px #56331d33}.pigment-tray .picked{outline:2px solid #8e3924;outline-offset:2px}.pigment-tray span{font:2.6cqw var(--serif)}.translucent{height:94cqw}.translucent .player-svg{opacity:.9;filter:drop-shadow(2px 3px 1px #9857262b)}.preview-light{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(ellipse,#ffe2a7,#efb45a44 50%,transparent 70%);animation:backlightPulse 6s ease-in-out infinite}
.beat-list{display:flex;flex-direction:column;gap:3cqw;margin:2cqw 0 3cqw}.beat-choice{position:relative;min-height:23cqw;display:flex;align-items:center;gap:4cqw;padding:3cqw;border:1px solid #b18a4e6b;border-radius:6px;background:#f4dfb770;text-align:left}.beat-choice.selected{border-color:#9c4024;box-shadow:inset 0 0 0 1px #9c4024}.beat-choice>span{flex:1}.beat-choice b{font-size:4cqw}.beat-choice small{display:block;font-size:2cqw;color:#926642;margin-top:2cqw}.beat-choice em{font:4cqw var(--serif);font-style:normal;color:#9e4729;text-align:center}.beat-choice em small{font:1.5cqw Arial}.vinyl{width:16cqw;height:16cqw;border-radius:50%;background:repeating-radial-gradient(circle,#1f282e 0 1px,#36424a 2px,#17262c 3px 4px);display:grid;place-items:center;flex-shrink:0}.vinyl span{font:4cqw var(--serif);font-style:normal;color:#eed297;background:#a23d27;width:6cqw;height:6cqw;border-radius:50%;display:grid;place-items:center}.beat-choice.selected .vinyl{animation:vinylSpin 12s linear infinite}.poet-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.8cqw}.poet-card{position:relative;height:46cqw;border:1px solid #a8773c;border-radius:11px 3px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#f9e8bfcc,#eed3a355);padding:2cqw 0 7cqw;isolation:isolate}.poet-card.selected{outline:2px solid #b14724;outline-offset:-1px;box-shadow:0 0 15px #d7832a3b}.poet-card .poet-name{position:absolute;left:2cqw;top:3cqw;writing-mode:vertical-rl;color:#fff0ba;background:#903923;padding:5px 3px;border:1px solid #d1a059;border-radius:3px;font:3.3cqw var(--serif);z-index:2;letter-spacing:2px}.poet-card img{height:100%;width:100%;padding:0 1cqw 0 3cqw}.poet-card b{position:absolute;bottom:1.5cqw;left:10%;right:10%;font:2.6cqw var(--serif);color:#8b361f;background:#efd4a2cf;border-top:1px solid #a97b41;padding-top:3px}.poet-check{display:none;position:absolute;right:2cqw;top:2cqw;color:#fff0bb;background:#a94225;border:1px solid #d7b16a;border-radius:50%;width:6cqw;height:6cqw;place-items:center;font-size:3cqw}.selected .poet-check{display:grid}.partner-strip{display:flex;align-items:center;gap:3cqw;margin-top:2cqw;padding:1cqw 0}.my-avatar{height:15cqw;width:15cqw;border:1px solid #ba914e;border-radius:50%;background:#eed6a2;overflow:hidden;flex-shrink:0}.my-avatar .player-svg{height:35cqw;width:21cqw;translate:-1.5cqw 0}.partner-strip>span{font:3.3cqw var(--serif)}.partner-strip small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:1.9cqw/1.6 Arial;color:#835e39;margin-top:1cqw}.mc-scene .scene-actions{margin-top:1cqw;gap:0}.mc-scene .scene-actions>.text-button{padding-bottom:0;min-height:25px}
.battle-scene .scene-heading{margin-bottom:1.8cqw}.battle-scene .scene-heading h1{font-size:5.7cqw}.battle-speech{position:relative;min-height:27cqw;padding:4cqw 3cqw 3cqw;text-align:center;border:1px solid #b47d37;background:#f8e9c7a6;border-radius:12px 3px;z-index:3}.battle-speech>span{position:absolute;top:-2.3cqw;left:15%;right:15%;background:#8c3421;color:#f9dfa7;border:1px solid #c59c53;border-radius:9px;font:2.7cqw var(--serif);padding:2px 4px}#lyrics{font:3cqw/1.75 var(--serif);min-height:15cqw;display:flex;flex-direction:column;justify-content:center}#lyrics p{margin:.3cqw 0}.duel-stage{position:relative;height:61cqw;display:flex;justify-content:space-between;gap:6%;isolation:isolate;flex-shrink:0;margin-top:1cqw}.duel-user,.duel-poet{height:100%;width:47%;position:relative;z-index:2}.duel-user .player-svg{transform:scaleX(-1)}.duel-poet .poet-image{width:100%;height:100%}.duel-light{position:absolute;inset:0 -7% -3%;background:radial-gradient(ellipse at 50% 85%,#edb45755,transparent 65%);border-radius:50%;animation:duelGlow 7s ease-in-out infinite}.duel-labels{display:flex;justify-content:space-between;align-items:center;font:2.7cqw var(--serif);padding:1cqw 0 2cqw;border-bottom:1px solid #b78a4b55}.duel-labels b{font-size:5cqw;color:#b76628;font-style:italic}.duel-labels span{width:44%;text-align:center}.theme-buttons{display:flex;gap:3cqw;margin-top:2cqw}.theme-buttons button{flex:1;border:1px solid #a97940;border-radius:9px 3px;background:#153e5b;color:#eed59b;font:3.2cqw var(--serif);min-height:9cqw;padding:2cqw}.theme-buttons .selected{background:#9f3a25;color:#fff0bf}.battle-feedback{display:flex;gap:2cqw;margin-top:2cqw}.battle-feedback button{flex:1;min-height:14cqw;border:1px solid #b48c4a;border-radius:8px 2px;background:linear-gradient(#b9804255,#8e4d2e44);font:3.2cqw var(--serif);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1cqw;color:#6d321e}.battle-feedback button b{font:5.2cqw Arial}.battle-feedback .chosen{opacity:1;background:#9c3a24;color:#f6dfa8}.battle-response{font-size:2cqw;line-height:1.7;min-height:7cqw;text-align:center;padding-top:1.6cqw;color:#82532e}.battle-scene .scene-actions{margin-top:1cqw;gap:0}.battle-scene .scene-actions .primary{min-height:8.5cqw;font-size:3.4cqw}.battle-scene .text-button{min-height:22px;font-size:2cqw;padding:4px}.battle-scene .fine-note{margin-top:0;font-size:1.7cqw}.stage-soundwave{position:absolute;left:21%;right:21%;bottom:5%;height:14cqw;display:flex;align-items:center;gap:2px;opacity:.18;z-index:0}.stage-soundwave i{flex:1;height:calc(8px + var(--bar)*5px);background:#bd7b2e;transform:scaleY(.25);transform-origin:center}.battle-active .stage-soundwave i,.sound-active .stage-soundwave i{animation:meterPulse 1.2s ease-in-out infinite;animation-delay:var(--delay)}.feedback-fx{position:absolute;z-index:20;left:43%;top:35%;font-size:14cqw;color:#b96025;text-shadow:0 0 15px #ffedab;pointer-events:none;animation:feedbackFloat 1.5s ease-out forwards}.feedback-like .back-light{filter:brightness(1.3)}.feedback-battle .duel-light{box-shadow:0 0 30px #e1ab5844}
.card-preview{display:block;width:52cqw;max-width:100%;height:auto;min-height:65cqw;object-fit:contain;margin:0 auto 3cqw;box-shadow:0 6px 20px #71442133}.card-buttons{display:flex;gap:2cqw;flex-wrap:wrap}.card-buttons .primary{width:100%}.card-buttons .secondary{flex:1;font-size:2.8cqw;padding:6px;min-height:9cqw}.card-scene .agong-line p{font-size:2.7cqw}.bottom-links{display:flex;justify-content:space-between}.mentor-vignette{width:100%;height:45cqw;overflow:hidden;border:1px solid #a77b4080;border-radius:8px;position:relative}.mentor-vignette img{width:100%;height:100%;object-fit:cover;object-position:50% 66%}.keepsake{display:flex;align-items:center;gap:4cqw;justify-content:center;margin-top:3cqw}.keepsake>div{height:20cqw;width:15cqw}.keepsake p{font:3cqw/1.8 var(--serif);color:#8a562d}.end-words{font:3cqw/1.9 var(--serif);text-align:center;margin-top:3cqw}.end-buttons{display:flex;flex-direction:column;gap:2cqw;margin-top:4cqw}.end-buttons .secondary{font-size:2.8cqw;min-height:10cqw}.end-buttons .text-button{font-size:2.3cqw}
.background-fx{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden;contain:paint}.back-light{position:absolute;left:0;right:0;top:8%;height:84%;background:radial-gradient(ellipse at 48% 40%,#ffd98233,transparent 67%);mix-blend-mode:soft-light;animation:backlightPulse 7s ease-in-out infinite}.light-b{left:-40%;right:-20%;background:linear-gradient(120deg,transparent 30%,#ffdb7a25 46%,transparent 62%);transform-origin:50% 0;animation:lightSweep 17s ease-in-out infinite alternate}.lantern-glow{position:absolute;top:9%;width:29%;height:17%;border-radius:50%;background:radial-gradient(ellipse,#f1a93944,transparent 65%);filter:blur(8px);animation:lanternPulse 5s ease-in-out infinite alternate}.glow-l{left:-4%}.glow-r{right:-4%;animation-delay:-2s}.mist{position:absolute;left:-25%;right:-25%;bottom:4%;height:30%;background:radial-gradient(ellipse at 30% 60%,#fae3b54d,transparent 58%),radial-gradient(ellipse at 70% 70%,#d9b16f2a,transparent 50%);filter:blur(14px);opacity:.4;animation:mistDrift 18s ease-in-out infinite alternate}.mist-b{bottom:25%;opacity:.15;animation-delay:-9s}.floating-cloud{position:absolute;width:45%;height:12%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 70'%3E%3Cpath d='M4 45Q21 18 40 39C51 61 18 66 18 43C24 20 65 19 85 39C75 0 136 1 149 31C176 6 210 30 190 45Q211 39 218 57H53M68 46Q99 69 117 45C129 19 85 21 92 45C96 59 147 55 162 43' fill='none' stroke='%23b6823e' stroke-width='1.3'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.26;animation:cloudDrift 21s ease-in-out infinite alternate}.cloud-one{left:-15%;top:20%}.cloud-two{right:-18%;bottom:14%;animation-delay:-11s}.dust{position:absolute;inset:0}.dust i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#e2af50;box-shadow:0 0 7px #ffd899;opacity:0;animation:dustFloat var(--duration) linear infinite;animation-delay:var(--offset)}.water-lines{position:absolute;bottom:18%;left:-20%;right:-20%;height:26%;background:repeating-linear-gradient(0deg,transparent 0 13px,#9caa8b17 14px 15px);border-radius:50%;opacity:0;animation:waterFlow 11s ease-in-out infinite alternate}.page-2 .water-lines{opacity:1}.page-5 .back-light{background:radial-gradient(ellipse at 25% 50%,#eebc5b4d,transparent 52%),radial-gradient(ellipse at 85% 60%,#c5874c38,transparent 48%)}.poster-mode .background-fx{z-index:0}.poster-mode .floating-cloud{opacity:.14}.poster-mode .mist{opacity:.2}
@keyframes backlightPulse{0%,100%{opacity:.4}50%{opacity:.95}}@keyframes lightSweep{from{transform:rotate(-11deg)}to{transform:rotate(11deg)}}@keyframes lanternPulse{from{opacity:.35}to{opacity:.9}}@keyframes mistDrift{to{translate:8% -5%;opacity:.25}}@keyframes cloudDrift{to{translate:40px -8px}}@keyframes dustFloat{0%{opacity:0;translate:0 30px}25%{opacity:.35}75%{opacity:.2}100%{opacity:0;translate:17px -55px}}@keyframes waterFlow{to{translate:17px 5px;opacity:.6}}@keyframes buttonLight{50%{box-shadow:0 0 22px #ffd98255,inset 0 0 9px #ffd98211}}@keyframes musicRing{50%{opacity:.3;scale:1.1}}@keyframes vinylSpin{to{transform:rotate(360deg)}}@keyframes duelGlow{50%{opacity:.45}}@keyframes meterPulse{0%,100%{transform:scaleY(.25)}40%{transform:scaleY(1)}}@keyframes feedbackFloat{0%{opacity:0;transform:translateY(20px) scale(.7)}25%{opacity:1}100%{opacity:0;transform:translateY(-50px) scale(1.1)}}
.static-lady *,.player-svg *,.poet-image{animation:none!important}.fx-paused .background-fx *,.fx-paused .projection-light,.fx-paused .preview-light,.fx-paused .duel-light,.fx-paused .stage-soundwave i,.fx-paused .vinyl,.fx-paused .cover-start,.fx-paused .sound-btn:after{animation-play-state:paused!important}.fx-paused .dust i{opacity:.15}
.drag-ghost{position:fixed;width:85px;height:125px;z-index:100;pointer-events:none;translate:-50% -50%;filter:drop-shadow(0 6px 8px #4a2c1b66);display:flex;align-items:center;justify-content:center}.drag-ghost img{width:100%;height:100%;object-fit:contain}.drag-ghost>span:not(.key-symbol){display:none}.key-symbol{font-size:85px;color:#d5a74c;text-shadow:0 2px 2px #5d301b}.paint-ghost{width:30px;height:30px;border-radius:50%;background:var(--pigment,#b9342e);border:3px solid #e1bf80}.paint-ghost>*{display:none}[data-drag]{touch-action:none}
dialog{width:min(350px,calc(100vw - 34px));max-height:calc(100dvh - 45px);overflow-y:auto;background:#f2e3c3;color:var(--ink);border:1px solid #b08040;border-radius:9px;padding:30px 23px 22px;box-shadow:0 15px 70px #170b08aa}dialog::backdrop{background:#1f120fbb;backdrop-filter:blur(4px)}dialog h2{font-size:24px;line-height:1.5;margin:7px 0 15px}dialog p{font-size:12px;line-height:1.9;margin:12px 0}dialog .primary{font-size:16px;min-height:44px;margin-top:14px}dialog .primary span{font-size:25px}.close-dialog{position:absolute;right:7px;top:3px;font-size:27px;padding:8px;color:#9e7750}.chapter-menu{display:flex;flex-direction:column;gap:5px}.chapter-menu button{display:flex;align-items:center;gap:12px;border-bottom:1px solid #b995574d;padding:12px 5px;font-size:13px;text-align:left}.chapter-menu small{font-size:10px;color:#b17b48}.chapter-menu span{margin-left:auto;font-size:20px}#toast{position:absolute;left:7%;right:7%;bottom:7%;background:#4b291bea;color:#ffe4b3;border:1px solid #bf9456;border-radius:4px;padding:10px 14px;font-size:2.7cqw;line-height:1.7;text-align:center;z-index:40;opacity:0;pointer-events:none;transition:opacity .25s}#toast.show{opacity:1}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.dust i{opacity:.12}}

/* Compact the live controls into the 9:16 screen; keep captions readable over the wooden apron. */
.agong-line{background:#f4e3bed9;border:1px solid #b28b4e55;border-radius:5px;padding:2.2cqw;margin-top:2.5cqw}
.origin-stage{height:56cqw}.lady-piece{height:52cqw;width:35cqw}
.journey-stage{height:32cqw}.hung-warrior{height:29cqw;width:20cqw;left:calc(50% - 10cqw)}
.voice-choices button{height:17cqw;padding:1cqw;gap:.7cqw}.voice-choices b{font-size:4cqw}.voice-choices span{font-size:2.5cqw}.voice-choices small{font-size:1.7cqw}
.match-warrior{height:14cqw}.match-warrior img{height:14cqw;width:10cqw}.match-row{gap:3cqw}.match-row .text-button{font-size:2.1cqw}
.journey-scene .agong-line p{font-size:2.6cqw}.journey-scene .scene-actions{margin-top:2cqw}
.craft-step-1 .custom-preview{height:68cqw}.craft-step-2 .custom-preview{height:64cqw}
.poet-card{height:39cqw}.partner-strip{background:#f4e2bcdf;border:1px solid #b18b4e55;border-radius:6px;padding:1cqw 2cqw}.partner-strip small{font-size:1.8cqw}.my-avatar{height:12cqw;width:12cqw}.mc-scene .text-button{background:#f3dfb6b3;border-radius:3px}
.battle-scene .scene-heading{margin-bottom:2.5cqw}.battle-scene .scene-heading h1{font-size:5.2cqw;line-height:1.3;margin:.7cqw 0}.battle-scene .eyebrow{font-size:1.6cqw}
.battle-speech{height:24cqw;min-height:24cqw;padding:3cqw 3cqw 1cqw}.battle-speech:after{content:'↕';position:absolute;right:1.2cqw;bottom:1.2cqw;color:#ae8146;font-size:2.4cqw}
#lyrics{font-size:2.8cqw;line-height:1.6;display:block;min-height:0;height:19cqw;overflow-y:auto;scrollbar-width:none;padding-right:1cqw}
.duel-stage{height:43cqw;isolation:auto}.duel-poet{mix-blend-mode:multiply}.duel-labels{padding:.7cqw 0 1cqw;font-size:2.4cqw;background:#f1dbb0bd}.duel-labels b{font-size:4cqw}
.theme-buttons{margin-top:1.5cqw;gap:2cqw}.theme-buttons button{min-height:8cqw;font-size:3cqw;padding:1.2cqw}
.battle-feedback{margin-top:1.5cqw}.battle-feedback button{min-height:11cqw;font-size:3cqw;background:#e1bd86de}.battle-feedback button b{font-size:4.6cqw}.battle-feedback .chosen{background:#9c3a24}
.battle-response{min-height:6cqw;padding:1cqw 1cqw 0;font-size:1.9cqw;background:#f3dfb6bb;border-radius:3px;line-height:1.6}
.battle-scene .scene-actions{display:grid;grid-template-columns:1fr auto;gap:1cqw;align-items:center;margin-top:1.4cqw}.battle-scene .scene-actions .primary{font-size:3cqw;min-height:9cqw;letter-spacing:.5px;padding-right:8cqw}.battle-scene .scene-actions .text-button{font-size:1.9cqw;padding:5px;background:#f3dfb6c9;border-radius:3px}.battle-scene .fine-note{margin-top:1cqw;color:#e5c995;text-shadow:0 1px 2px #54321a}
.battle-feedback button:disabled{opacity:.75;background:#ebd0a4;color:#744a2c}.battle-feedback button.chosen{opacity:1;background:#9c3a24;color:#f6dfa8}
.duel-poet,.duel-poet .poet-image{mix-blend-mode:normal}
dialog .fine-note{font-size:10px}
.page-cover #poster-layer{animation:stageAwaken 1.8s ease-out both}
@keyframes stageAwaken{from{filter:brightness(.25)}to{filter:brightness(1)}}
.fx-paused #poster-layer{animation:none}
@media(prefers-reduced-motion:reduce){.page-cover #poster-layer{animation:none}}

/* experience.css */
/* 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)}

/* unlock-3d.css */
#unlock-3d-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;touch-action:none}.webgl-ready .floor-key{opacity:0;transform:none!important;filter:none!important;z-index:8;transition:none}.webgl-ready .floor-key:focus-visible{opacity:1;outline:2px solid #e5b96b;border-radius:50%;background:#fff2a222}.webgl-ready .floor-lock{z-index:7;border:1px solid #ffe1a14d;box-shadow:0 0 11px #f6d58865;animation:lockBreath 2.8s ease-in-out infinite}.webgl-ready .floor-lock.ready{border:2px solid #ffe4a1;background:radial-gradient(ellipse,#ffdf6c55,transparent 70%);box-shadow:0 0 22px 5px #f9ce7caa}.webgl-ready .unlock-warmth{display:none}.webgl-ready .unlock-hud{position:absolute;left:10%;right:10%;bottom:4.2%;z-index:11;text-align:center;pointer-events:auto;color:#ffe9b5;padding:3.5cqw 2cqw 1cqw;border-radius:7px;background:linear-gradient(#291b15d9,#271911f5);border:1px solid #c5995180;box-shadow:0 6px 20px #150d0a55;backdrop-filter:blur(8px)}.unlock-kicker{display:block;font:2.2cqw var(--serif);letter-spacing:3px;color:#c39a64;margin-bottom:1.2cqw}.webgl-ready #unlock-status{font:3.7cqw/1.7 var(--serif);min-height:7cqw;margin:0;padding:0 1cqw;position:static;border:0;background:none;color:#ffe9b5}.unlock-stages{display:flex;align-items:center;justify-content:center;gap:2.5cqw;margin:2cqw 0;font-size:2.7cqw;color:#b5956b}.unlock-stages i{width:6cqw;height:1px;background:#86663c}.unlock-stages .current{color:#ffdc85;text-shadow:0 0 8px #d79b3b}.unlock-stages .done{color:#d0ae73}.unlock-stages .done:before{content:'✓ ';font-size:2.5cqw}.unlock-mini-actions{display:flex;align-items:center;justify-content:center;gap:5cqw}.unlock-mini-actions button{font:2.5cqw var(--serif);padding:2cqw;color:#d6b37a;min-height:8cqw}.unlock-mini-actions button:disabled{opacity:.25}.unlock-enter{width:96%;margin:2cqw auto 1cqw;border:1px solid #d6aa61;border-radius:11px 3px;background:linear-gradient(#b78542,#805324);box-shadow:inset 0 0 0 2px #6f411e,inset 0 0 0 3px #d2a65d;color:#fff0c9;font:4cqw var(--serif);padding:2.5cqw 4cqw;letter-spacing:2px;min-height:11cqw}.unlock-enter span{float:right;font-size:5cqw;line-height:1}.unlock-enter[hidden],.unlock-mini-actions [hidden]{display:none}.unlock-3d-playing .floor-lock,.unlock-3d-complete .floor-lock{border:0;box-shadow:none;animation:none}.unlock-3d-playing~*{pointer-events:none}.page-unlock:has(.unlock-3d-playing) #poster-layer{filter:blur(calc(var(--unlock-focus,0)*2px))}.page-unlock .background-fx{z-index:1!important}.unlock-3d-complete .unlock-kicker{color:#e5be7a}.key-is-lifted .unlock-hud{border-color:#cf9a4f}.webgl-ready{--focus:0}.webgl-ready:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;background:radial-gradient(ellipse at 55% 56%,transparent 15%,#1b120b 90%);opacity:calc(var(--focus)*.55)}@keyframes lockBreath{50%{box-shadow:0 0 18px #f6d588a0;border-color:#ffe1a188}}@media(prefers-reduced-motion:reduce){.webgl-ready .floor-lock{animation:none}}

.webgl-ready .unlock-hud{bottom:3.8%;padding:2cqw 2cqw .5cqw}.webgl-ready .unlock-kicker{display:none}.webgl-ready #unlock-status{font-size:3.25cqw;line-height:1.45;min-height:4.8cqw}.unlock-stages{font-size:2.3cqw;gap:2cqw;margin:1.2cqw 0}.unlock-mini-actions button{font-size:2.3cqw;padding:1cqw;min-height:5cqw}.unlock-3d-complete .unlock-stages{display:none}.unlock-3d-complete .unlock-hud{padding:2.2cqw}.unlock-enter{font-size:3.5cqw;min-height:9cqw;padding:2cqw}

.webgl-ready .opened-plate{z-index:1}.unlock-3d-playing .key-path,.unlock-3d-complete .key-path{opacity:0}.webgl-ready:after{display:none}
.webgl-ready .unlock-hud{background:#301e13;backdrop-filter:none}

/* Keep status announcements accessible without showing opening captions. */
.floor-unlock #unlock-status{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.floor-unlock:not(.unlock-3d-complete) .unlock-hud{background:none;border:0;box-shadow:none;padding:0;pointer-events:none}

/* The chest light reveals the live next scene through a feathered aperture. */
.floor-unlock .unlock-hud{display:none}
.gold-scene-transition{position:absolute;inset:0;z-index:60;overflow:hidden;pointer-events:auto;isolation:isolate;touch-action:none}
.gold-scene-transition canvas{display:block;width:100%;height:100%;pointer-events:none}
.gold-transitioning .topbar,.gold-transitioning #scene-footer{pointer-events:none}
.gold-transitioning .origin-scene>:not(.origin-stage),.gold-transitioning .topbar,.gold-transitioning #scene-footer{opacity:var(--gold-ui,0)}
.gold-transitioning .origin-scene>:not(.origin-stage){transform:translateY(calc((1 - var(--gold-ui,0)) * 6px))}

/* origin-story.css */
/* Native full backgrounds at rest; all intentional close-ups share one camera. */
body:has(#theatre.origin-story-mode){padding:0;overflow:hidden}
.origin-story-mode{width:min(100vw,calc(100dvh * 941 / 1672),480px);height:auto;aspect-ratio:941/1672;max-height:100dvh;background:#160e08}
.origin-story-mode #app{position:absolute;inset:0;padding:0;display:block;overflow:hidden}.origin-story-mode #scene-footer,.origin-story-mode .background-fx{display:none!important}.origin-story-mode .mini-brand{visibility:hidden}.origin-story-mode .topbar{top:3%;z-index:25;pointer-events:none}.origin-story-mode .topbar>button{pointer-events:auto}.origin-story-mode .topbar>button:first-child{display:none}.origin-story-mode .sound-btn{width:8cqw;height:8cqw;background:#2e1a10dc;border-color:#c59b60;box-shadow:none}.origin-story-mode .music-note{font-size:4.5cqw}
.s1-layered{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#190f08;color:#f9e4bc;touch-action:none;user-select:none;-webkit-user-select:none;container-type:inline-size}.s1-layered [hidden]{display:none!important}.l-space{position:absolute;width:390px;height:844px;transform-origin:0 0;overflow:hidden}.l-camera{position:absolute;inset:0;transform-origin:0 0;will-change:transform}.l-background-layer,.l-foreground-layer{position:absolute;inset:0;pointer-events:none}.l-background,.l-foreground{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;display:block;-webkit-user-drag:none}.l-background-layer{z-index:0}.l-stage,.l-river{opacity:0}.l-environment-dim{position:absolute;inset:0;z-index:1;background:#1b0d03;opacity:0;pointer-events:none}.l-lighting-layer{position:absolute;left:0;top:0;width:380px;height:560px;transform-origin:0 0;z-index:2;mix-blend-mode:screen;pointer-events:none;opacity:0}.l-light-halo{position:absolute;inset:0;background:radial-gradient(ellipse,#ffda8ccd 0%,#f9bb6660 40%,#e9993c15 62%,transparent 74%)}.l-light-core{position:absolute;inset:16% 22%;border-radius:50%;background:radial-gradient(ellipse,#fff2c181,#ffe5a229 50%,transparent 75%)}
.l-puppet-layer,.l-projection-layer{position:absolute;left:0;top:0;width:220px;height:460px;transform-origin:0 0;will-change:transform}.l-puppet-layer{z-index:4}.l-projection-layer{z-index:3;opacity:0;mix-blend-mode:multiply;pointer-events:none}.l-puppet{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;outline:none;background:transparent;cursor:pointer;touch-action:none}.l-puppet:disabled{cursor:default;opacity:1}.l-puppet:focus-visible{outline:1px solid #f3d497b0;outline-offset:5px}.l-character,.l-projection,.l-puppet-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;pointer-events:none}.l-puppet-fallback{transform:none}.l-ribbons{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}.l-ribbon-joint{transform-origin:110px 60px}.l-puppet-gloss{position:absolute;inset:0;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse,#ffdb7933,transparent 65%);mix-blend-mode:screen;opacity:0}.s1-layered[data-stage=DISCOVER] .l-puppet-gloss{animation:lPulse 3.5s ease-in-out infinite}
.l-foreground-layer{z-index:5}.l-box-front{clip-path:polygon(4.8% 48.2%,63.1% 68.2%,99.9% 55.8%,100% 100%,0 100%,0 49.4%)}.l-stage-front{clip-path:polygon(0 72%,100% 72%,100% 100%,0 100%);opacity:0}.l-discover-hint{position:absolute;left:0;top:0;z-index:8;white-space:nowrap;font:13px/1.4 var(--serif);color:#ffe2a4;text-shadow:0 1px 4px #38200b;pointer-events:none}.l-discover-hint>span{display:inline-block;width:17px;height:17px;margin-right:7px;vertical-align:middle;border:1px solid #f7ce86;border-radius:50%;box-shadow:0 0 9px #ffc85e55;animation:lHint 2.5s ease-out infinite}
.l-heading{position:absolute;z-index:20;top:3.5%;left:7%;display:flex;align-items:center;gap:8px;font:3cqw/1.5 var(--serif);letter-spacing:1px;text-shadow:0 1px 6px #160b02;color:#f4dfb7;pointer-events:none}.l-heading span{color:#d5b37c}.l-heading i{width:1px;height:11px;background:#dab78280}.l-loading{position:absolute;z-index:30;inset:42% 12% auto;margin:0;padding:12px;text-align:center;font:15px var(--serif);background:#28160ada;border:1px solid #92703d;cursor:pointer}.l-caption-scrim{position:absolute;z-index:12;bottom:0;left:0;right:0;height:24%;background:linear-gradient(transparent,#110b05a8 48%,#110b05e6);pointer-events:none}.l-caption{position:absolute;z-index:22;left:8%;right:8%;bottom:4.6%;min-height:9%;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;font:3.85cqw/1.8 var(--serif);letter-spacing:.4px;color:#fff0d2;text-shadow:0 1px 4px #160b00;pointer-events:none}.l-caption span{white-space:pre-line}.l-dust{position:absolute;z-index:10;inset:10% 5% 16%;pointer-events:none;opacity:.5}.l-dust i{position:absolute;left:var(--x);top:var(--y);width:1.6px;height:1.6px;border-radius:50%;background:#ffe0a0;box-shadow:0 0 5px #ffd48b;animation:lDust 11s ease-in-out var(--delay) infinite}
.l-observe{position:absolute;z-index:15;inset:12% 0 23%;touch-action:none;cursor:grab;outline:none}.l-observe.is-dragging{cursor:grabbing}.l-observe:focus-visible{outline:1px solid #d2a65f77;outline-offset:-10px}.l-detail-label{position:absolute;z-index:17;display:flex;align-items:center;gap:7px;pointer-events:none;white-space:nowrap;font:3.1cqw/1.6 var(--serif);color:#f7dfac;text-shadow:0 1px 5px #1c0a00}.l-detail-label i{display:block;width:22px;height:1px;background:linear-gradient(90deg,transparent,#f4d598)}.l-detail-label span{border-bottom:1px solid #d5af6355;padding:2px 0}.l-observe-hint{position:absolute;z-index:20;left:0;right:0;bottom:21%;text-align:center;margin:0;font:2.8cqw var(--serif);letter-spacing:1px;color:#efdaa9;text-shadow:0 1px 4px #1c0e02;pointer-events:none}.l-detail-nav{position:absolute;z-index:20;left:25%;right:25%;bottom:15.8%;display:flex;justify-content:space-between;gap:8px}.l-detail-nav button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:33px;padding:5px 8px;background:#281307a6;border:1px solid #9f804955;border-radius:16px;color:#dec396;font:2.8cqw var(--serif)}.l-detail-nav button i{width:3px;height:3px;border:1px solid #d7b272;transform:rotate(45deg)}.l-detail-nav button[aria-pressed=true]{color:#ffe9b7;border-color:#c09c59}.l-detail-nav button[aria-pressed=true] i{background:#ffdf98}.l-complete{position:absolute;right:7%;bottom:27%;z-index:24;min-height:36px;padding:7px 12px;background:#793a21e8;border:1px solid #d4ad67;border-radius:3px;color:#ffe4ae;font:3.1cqw var(--serif);letter-spacing:.5px;box-shadow:0 3px 12px #170b0380}.l-complete span{margin-left:8px}
.l-exit{position:absolute;z-index:25;left:12%;right:12%;bottom:5%}.l-exit>p{margin:0 0 12px;text-align:center;font:3.45cqw var(--serif);color:#ffe6b4;letter-spacing:.5px;text-shadow:0 1px 4px #1d0d02}.l-exit-track{position:relative;height:44px;background:#482311e3;border:1px solid #b78d4a;border-radius:25px;box-shadow:inset 0 2px 5px #160a0570;overflow:hidden;cursor:ew-resize;touch-action:none}.l-exit-track:focus-visible{outline:2px solid #f5d594;outline-offset:3px}.l-track-line{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#e4bc79;font:20px Georgia;pointer-events:none}.l-track-fill{position:absolute;inset:0 auto 0 0;width:var(--fill,0%);background:#b9803d55}.l-exit-thumb{position:absolute;top:4px;bottom:4px;left:5px;aspect-ratio:1;display:grid;place-items:center;transform:translateX(var(--sx,0px));border-radius:50%;background:linear-gradient(135deg,#f7dfac,#c28c42);border:1px solid #f8da99;color:#673718;font:23px Georgia,serif;pointer-events:none}.s1-layered[data-stage=READY_TO_EXIT] .l-caption{visibility:hidden}.l-s1-exit-overlay{position:fixed;inset:auto;z-index:9999}.s1-entry-veil{position:absolute;inset:0;z-index:35;overflow:hidden;background:#21130b;transform-origin:70% 65%;pointer-events:all}.s1-entry-veil canvas{display:block;width:100%;height:100%;object-fit:cover}
@keyframes lPulse{0%,100%{opacity:.12}50%{opacity:.65}}@keyframes lHint{0%{transform:scale(.8);opacity:1}90%,100%{transform:scale(1.35);opacity:.2}}@keyframes lDust{0%,100%{opacity:0;transform:translate(0,8px)}25%,65%{opacity:.7}80%{transform:translate(5px,-20px);opacity:0}}@media(prefers-reduced-motion:reduce){.s1-layered *{animation:none!important;transition:none!important}.l-dust{display:none}}

/* journey-story.css */
/* Third act only. Full native 941×1672 compositions; the camera owns intentional zooms. */
body:has(#theatre.journey-story-mode){padding:0;overflow:hidden}
.journey-story-mode{width:min(100vw,calc(100dvh * 941 / 1672),480px);height:auto;aspect-ratio:941/1672;max-height:100dvh;background:#181b12}
.journey-story-mode #app{position:absolute;inset:0;padding:0;display:block;overflow:hidden}
.journey-story-mode #scene-footer,.journey-story-mode .background-fx{display:none!important}
.journey-story-mode .mini-brand{visibility:hidden}.journey-story-mode .topbar{top:3%;z-index:25;pointer-events:none}.journey-story-mode .topbar>button{pointer-events:auto}.journey-story-mode .topbar>button:first-child{display:none}.journey-story-mode .sound-btn{width:8cqw;height:8cqw;background:#262519df;border-color:#c3a46b;box-shadow:none}.journey-story-mode .music-note{font-size:4.5cqw}
.s3-journey{position:absolute;inset:0;isolation:isolate;overflow:hidden;background:#161a12;color:#f6e4bd;touch-action:none;user-select:none;-webkit-user-select:none;container-type:inline-size}
.s3-journey [hidden]{display:none!important}.j-space{position:absolute;width:390px;height:844px;transform-origin:0 0;overflow:hidden}.j-camera{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.j-background-layer,.j-foreground-layer{position:absolute;inset:0;pointer-events:none}.j-background-layer{z-index:0}.j-bg,.j-foreground{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;-webkit-user-drag:none}.j-bg:not(.j-bg-room){opacity:0}
.j-light-layer{position:absolute;left:0;top:0;width:390px;height:540px;transform-origin:0 0;pointer-events:none;z-index:2;opacity:0;mix-blend-mode:screen;background:radial-gradient(ellipse,#ffe7aa99 0%,#ffca6b55 30%,#df9f341c 57%,transparent 72%)}
.j-warrior-plane,.j-projection-layer{position:absolute;left:0;top:0;width:250px;height:406px;transform-origin:0 0;will-change:transform}.j-warrior-plane{z-index:4}.j-projection-layer{z-index:3;pointer-events:none;mix-blend-mode:multiply}.j-warrior-art,.j-shadow-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;-webkit-user-drag:none}.j-shadow-art{filter:brightness(.24) sepia(1) blur(1.5px)}
.j-warrior{position:absolute;inset:0;display:block;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;touch-action:none;cursor:grab}.j-warrior:disabled{cursor:default;opacity:1}.j-warrior:focus-visible{outline:1px solid #f5d89d;outline-offset:8px}.j-warrior:hover,.j-warrior:active{background:transparent;transform:none}.is-dragging .j-warrior{cursor:grabbing;filter:drop-shadow(0 3px 4px #180e0844)}
.s3-journey[data-phase=DISCOVER] .j-warrior-art{animation:jGloss 3s ease-in-out infinite}
.j-foreground-layer{z-index:5}.j-front-room{clip-path:polygon(13% 62%,78% 68%,97% 55%,100% 100%,0 100%)}.j-front-box{clip-path:polygon(0 79%,100% 61.6%,100% 100%,0 100%)}.j-front-curtain{clip-path:polygon(0 74%,100% 74%,100% 100%,0 100%)}.j-front-water{clip-path:polygon(0 78%,100% 78%,100% 100%,0 100%)}
.j-curtain-target{position:absolute;z-index:6;left:145px;top:210px;width:170px;height:260px;border:1px dashed #fff0b08c;border-radius:48% 48% 8px 8px;color:#fff0bf;pointer-events:none;transition:background .2s,border-color .2s,box-shadow .2s;box-shadow:inset 0 0 32px #fff0bc12}.j-curtain-target i{position:absolute;inset:13px;border:1px solid #f8dc8b25;border-radius:48% 48% 2px 2px}.j-curtain-target span{position:absolute;left:0;right:0;bottom:16px;text-align:center;font:13px var(--serif);letter-spacing:2px;text-shadow:0 1px 3px #2f210c}.j-curtain-target.is-near{border-color:#fff3b5;background:#fce6a52b;box-shadow:0 0 25px #ffe5a65c,inset 0 0 30px #ffe8b334}
.j-tap-hint{position:absolute;left:0;top:0;z-index:8;white-space:nowrap;font:13px/1.4 var(--serif);color:#ffe3a8;text-shadow:0 1px 5px #190e05;pointer-events:none}.j-tap-hint i{display:inline-block;width:17px;height:17px;border:1px solid #ffe1a0;border-radius:50%;margin-right:6px;vertical-align:middle;box-shadow:0 0 12px #f9c56888;animation:jHint 2s ease-out infinite}
.j-heading{position:absolute;z-index:20;top:3.8%;left:7%;font:3.8cqw/1.6 var(--serif);letter-spacing:2px;color:#fbe3b7;text-shadow:0 2px 5px #100b04;pointer-events:none}.j-heading span{display:block;font:2.6cqw/1.6 var(--serif);letter-spacing:1px;color:#d0bb91}.j-loading{position:absolute;z-index:30;left:12%;right:12%;top:42%;padding:15px;text-align:center;background:#202319ed;border:1px solid #b19767;font:3.6cqw var(--serif);cursor:pointer}
.j-voice-layer{position:absolute;inset:0;z-index:6;pointer-events:none}.j-horn{position:absolute;top:21.5%;width:25.65%;height:42%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#f4e0ad;pointer-events:auto;cursor:pointer;touch-action:manipulation;isolation:isolate}.j-horn-north{left:4.1%}.j-horn-haining{right:4.1%}.j-horn:hover,.j-horn:active{background:transparent;transform:none}.j-horn:focus-visible{outline:1px solid #f6d691;outline-offset:2px}.j-horn-glow{position:absolute;inset:0 -8px -8px;z-index:-1;border-radius:45% 45% 10px 10px;background:radial-gradient(ellipse at 50% 24%,#ffd56c55,transparent 67%);border:1px solid transparent;opacity:0;transition:opacity .25s,border-color .25s,box-shadow .25s}.j-horn.is-near .j-horn-glow,.j-horn.is-playing .j-horn-glow{opacity:1;border-color:#ffe2a49c;box-shadow:0 0 20px #ffc95a70}.j-horn.is-correct .j-horn-glow{opacity:1;border-color:#fce9a8;box-shadow:0 0 25px #ffe6a3cc;background:radial-gradient(ellipse,#ffd77866,transparent 75%)}.j-horn.is-wrong .j-horn-glow{opacity:1;border-color:#e99b6c;background:#c7652929;animation:jWrong .35s ease-in-out 2}
.j-horn-name{position:absolute;top:44%;left:0;right:0;margin:auto;writing-mode:vertical-rl;width:1.2em;font:17px/1.2 var(--serif);letter-spacing:4px;text-shadow:0 1px 2px #000}.j-horn-note{position:absolute;left:0;right:0;bottom:5px;font:8px/1.4 var(--serif);letter-spacing:1px;color:#ddc99c;text-shadow:0 1px 3px #15130b}.j-volume{position:absolute;top:81%;left:0;right:0;margin:auto;display:grid;place-items:center;width:23px;height:23px;border:1px solid #d2b26d;border-radius:50%;font:20px Georgia}.j-sound-wave{position:absolute;display:flex;align-items:center;gap:3px;justify-content:center;left:0;right:0;top:15%;height:22px;opacity:0}.j-sound-wave i{width:2px;height:7px;background:#ffe3a1;box-shadow:0 0 6px #ffcb60;transform:scaleY(.5)}.j-horn.is-playing .j-sound-wave{opacity:1}.j-horn.is-playing .j-sound-wave i{animation:jSound .6s ease-in-out infinite alternate}.j-sound-wave i:nth-child(2){animation-delay:-.2s!important}.j-sound-wave i:nth-child(3){animation-delay:-.4s!important}.j-sound-wave i:nth-child(4){animation-delay:-.1s!important}.j-correct-mark{position:absolute;left:320px;top:338px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #ffe7a4;border-radius:50%;background:#74622bd9;color:#fff0bb;font:24px Georgia;box-shadow:0 0 20px #ffda8666}
.j-subtitle-scrim{position:absolute;z-index:12;bottom:0;left:0;right:0;height:20%;pointer-events:none;background:linear-gradient(transparent,#10170c88 50%,#0e130ce8)}.j-subtitle{position:absolute;z-index:22;left:7%;right:7%;bottom:4.2%;min-height:10%;display:flex;align-items:center;justify-content:center;padding:3% 6%;box-sizing:border-box;background:linear-gradient(110deg,#1c2922dc,#1f2b23e8 70%,#29352bd9);border:1px solid #b39762a3;border-radius:2px;box-shadow:0 3px 16px #0c0f0a55;pointer-events:none}.j-subtitle:before,.j-subtitle:after{content:'';position:absolute;width:9px;height:9px;border:1px solid #e2c990;transform:rotate(45deg);background:#34402a}.j-subtitle:before{left:-5px;top:calc(50% - 5px)}.j-subtitle:after{right:-5px;top:calc(50% - 5px)}.j-subtitle p{margin:0;white-space:pre-line;text-align:center;font:3.5cqw/1.9 var(--serif);letter-spacing:.5px;text-shadow:0 1px 3px #0b1309;color:#f8e8c7}
.j-recording-status{position:absolute;z-index:23;left:7%;right:7%;bottom:24%;margin:0;text-align:center;font:2.6cqw/1.5 var(--serif);letter-spacing:.5px;color:#ffe3ac;text-shadow:0 1px 4px #100b04;pointer-events:none}
.j-preview-enable,.j-next{position:absolute;z-index:25;left:20%;right:20%;bottom:17%;min-height:38px;padding:8px 14px;border:1px solid #d7b477;border-radius:2px;box-shadow:inset 0 0 0 3px #b58b4930,0 4px 14px #10130988;background:linear-gradient(110deg,#64402a,#825430);font:3.2cqw/1.5 var(--serif);letter-spacing:1px;color:#ffebc4;cursor:pointer}.j-preview-enable span,.j-next span{float:right;margin-left:8px}.j-next{left:22%;right:22%;background:linear-gradient(110deg,#663a21,#8a512d)}
.j-crossing-effects{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}.j-passing-frame{position:absolute;inset:0;width:390px;height:844px;object-fit:fill;opacity:0;clip-path:polygon(0 0,17% 0,17% 100%,0 100%);mask-image:linear-gradient(to right,#000 12%,transparent 17%);transform-origin:0 0}.j-crossing-mist{position:absolute;left:-110px;width:650px;height:170px;opacity:0;background:radial-gradient(ellipse at 30% 50%,#ead9b4aa,transparent 62%),radial-gradient(ellipse at 78% 55%,#e7d6b2bb,transparent 60%);mix-blend-mode:screen}.j-mist-far{top:370px;height:120px}.j-mist-near{top:555px}.j-crossing-wash{position:absolute;left:0;top:150px;width:220px;height:525px;opacity:0;mix-blend-mode:screen;background:linear-gradient(100deg,transparent 15%,#f8d49040 40%,#ffe3a990 55%,transparent 85%)}.j-river-sheen{position:absolute;left:0;top:505px;width:390px;height:150px;color:#fff2c2;opacity:0;mask-image:radial-gradient(ellipse at 55% 65%,#000,transparent 64%)}.j-river-sheen svg{width:100%;height:100%}.s3-journey[data-phase=WATER_REVEAL] .j-river-sheen svg{animation:jRiverShimmer 3.8s ease-in-out infinite alternate}.fx-paused .j-crossing-effects *{animation:none!important}
@keyframes jRiverShimmer{from{transform:translateX(4px);opacity:.5}to{transform:translateX(-8px);opacity:1}}
@keyframes jGloss{0%,100%{filter:drop-shadow(0 0 1px #fbd58622)}50%{filter:drop-shadow(0 0 6px #ffda7788)}}@keyframes jHint{0%{transform:scale(.75);opacity:.9}100%{transform:scale(1.5);opacity:.15}}@keyframes jSound{to{transform:scaleY(2.5)}}@keyframes jWrong{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){.s3-journey *{animation:none!important;transition:none!important}}

/* workshop.css */
body:has(#theatre.workshop-mode){padding:0;overflow:hidden}.workshop-mode{width:min(100vw,calc(100dvh * 390 / 844),480px);height:auto;aspect-ratio:390/844;max-height:100dvh;background:#21170e}.workshop-mode #app{position:absolute;inset:0;padding:0;overflow:hidden}.workshop-mode #scene-footer,.workshop-mode .background-fx,.workshop-mode .mini-brand,.workshop-mode .topbar>button:first-child{display:none!important}.workshop-mode .topbar{top:3%;z-index:30;pointer-events:none;justify-content:flex-end}.workshop-mode .topbar .sound-btn{margin-left:auto;pointer-events:auto;width:8cqw;height:8cqw;background:#2c1b10c7;border-color:#bc9858;box-shadow:none}.workshop-mode .music-note{font-size:4cqw}
.w-workshop{position:absolute;inset:0;isolation:isolate;overflow:hidden;container-type:inline-size;touch-action:none;user-select:none;-webkit-user-select:none;color:#f6e4bc;font-family:var(--serif)}.w-workshop [hidden]{display:none!important}.w-world{position:absolute;width:390px;height:844px;transform-origin:0 0}.w-camera{position:absolute;inset:0;transform-origin:50% 35%;animation:wEnter 1s ease-out both}.w-background{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}.w-room-shade{position:absolute;inset:0;background:linear-gradient(#190c0477,transparent 24%,transparent 55%,#160e06a3);pointer-events:none}.w-backlight{position:absolute;left:26px;top:120px;width:340px;height:450px;background:radial-gradient(ellipse,#ffe5a9c4,#f3bf6050 45%,transparent 72%);opacity:0;mix-blend-mode:screen;pointer-events:none}.w-subject,.w-shadow{position:absolute;left:75px;top:112px;width:240px;height:400px;transform-origin:52% 50%;will-change:transform}.w-subject{z-index:4;transition:opacity .65s}.w-shadow{z-index:3;opacity:0;mix-blend-mode:multiply;pointer-events:none;filter:blur(.6px)}.w-character,.w-shadow canvas,.w-costume-ghost{position:absolute;inset:0;width:100%;height:100%;display:block}.w-costume-ghost{pointer-events:none;z-index:2}.w-character{cursor:pointer}.w-markers{position:absolute;inset:0;pointer-events:none;z-index:5}.w-markers button{pointer-events:auto;touch-action:manipulation}.w-joint{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;display:grid;place-items:center;border:1px solid #fce0a1;border-radius:50%;background:#83592bde;color:#fff3c9;font:13px var(--serif);box-shadow:0 0 14px #ffda7b66}.w-joint:disabled{opacity:.4}.w-joint.confirmed{background:#395d48}.w-paint-point{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;display:grid;place-items:center;border:1px solid #ffe2a2;border-radius:50%;background:#48271688;box-shadow:0 0 12px #e2b35c55}.w-paint-point i{width:7px;height:7px;border:1px solid #ffe8b4;border-radius:50%;background:#ffe8b477}.w-paint-point.chosen{border-width:2px;box-shadow:0 0 12px #fff1bb}.w-header{position:absolute;z-index:15;top:3.3%;left:8%;right:16%;text-shadow:0 1px 5px #170c05}.w-header>span{font-size:2.5cqw;letter-spacing:2px;color:#e6cea0}.w-header i{font-style:normal;margin-left:12px;padding-left:12px;border-left:1px solid #b7a075}.w-header h1{font:5.8cqw/1.4 var(--serif);letter-spacing:2px;margin:8px 0}.w-progress{display:flex;gap:5px}.w-progress i{width:12px;height:2px;background:#ad956355}.w-progress i.done{background:#e7c684}.w-caption{position:absolute;z-index:16;left:7%;right:7%;bottom:3%;min-height:8%;display:flex;justify-content:center;align-items:center;padding:2% 4%;box-sizing:border-box;border-top:1px solid #bb995d77;color:#ffe9bd;background:linear-gradient(90deg,transparent,#22140cd9 18% 82%,transparent);pointer-events:none}.w-caption p{margin:0;text-align:center;white-space:pre-line;font:3.05cqw/1.8 var(--serif);letter-spacing:.5px;text-shadow:0 1px 3px #180c04}.w-loading{position:absolute;z-index:35;top:40%;left:10%;right:10%;padding:14px;text-align:center;background:#3b2716e8;border:1px solid #c1a16e;font:3.5cqw var(--serif)}
.w-controls{position:absolute;inset:0;z-index:8;pointer-events:none}.w-controls button{pointer-events:auto;touch-action:manipulation;font-family:var(--serif)}.w-paper{position:absolute;left:14px;right:14px;top:548px;border:1px solid #9e6938;border-radius:3px;background:radial-gradient(ellipse at 30% 10%,#f8e6bb,#e5c997);box-shadow:0 0 0 3px #d9b17b44,0 8px 28px #170c0880;color:#50321d;pointer-events:auto}.w-primary,.w-secondary{min-height:40px;padding:8px 17px;border:1px solid #e9c486;border-radius:20px 3px;background:linear-gradient(130deg,#a33923,#7a2519);color:#ffe8b7;box-shadow:inset 0 0 0 3px #b98a3f55,0 3px 8px #1c0c0480;font:15px var(--serif);letter-spacing:1px;cursor:pointer}.w-primary:disabled{opacity:.55;cursor:default}.w-secondary{background:#3e2a1ce8;border-color:#b48b51}.w-text{border:0;border-bottom:1px solid #9d753c70;border-radius:0;background:transparent;color:#704a25;padding:7px 10px;font:12px var(--serif)}.w-primary:focus-visible,.w-secondary:focus-visible,.w-item:focus-visible{outline:2px solid #f4d895;outline-offset:3px}.w-action-panel{position:absolute;left:35px;right:35px;top:660px;display:flex;justify-content:center;gap:8px}.w-action-panel .w-primary{min-width:215px}.w-base-note{position:absolute;left:35px;top:557px;display:flex;gap:12px}.w-base-note span{font-size:12px;color:#eed6a4;border-bottom:1px solid #c4a05b;padding:5px 0;text-shadow:0 1px 4px #291509}.w-joint-progress{position:absolute;top:572px;left:60px;right:60px;display:flex;justify-content:space-between}.w-joint-progress>span{font:17px var(--serif);display:flex;flex-direction:column;align-items:center;gap:6px;color:#c3a16b}.w-joint-progress i{font-style:normal;font-size:15px}.w-joint-progress .done{color:#e9d3a0}.w-joint-progress .current{color:#fff0c4;text-shadow:0 0 8px #eec36c}
.w-category-tabs{display:flex;border-bottom:1px solid #b78b4d;padding:7px 8px 0;gap:4px}.w-category-tabs button{flex:1;border:0;border-radius:4px 4px 0 0;background:#d9b17b44;color:#6b4b2c;font-size:13px;padding:6px 3px 8px;display:flex;gap:4px;align-items:center;justify-content:center}.w-category-tabs button>span{width:20px;height:20px}.w-category-tabs svg{display:block;width:100%;height:100%}.w-category-tabs button.chosen{background:#a83424;color:#fbe2b0;box-shadow:inset 0 0 0 1px #d8a959}.w-item-row{display:flex;gap:8px;padding:10px 10px 7px;min-height:109px}.w-item{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px 4px;border:1px solid #bc945d;border-radius:4px;background:linear-gradient(130deg,#f4dfb6,#e4c48c);color:#58351c;overflow:hidden}.w-item img{width:84px;height:73px;object-fit:contain;pointer-events:none}.w-item small{font:11px/1.5 var(--serif);white-space:nowrap}.w-item.chosen{border:2px solid #a93423;padding:4px 3px;box-shadow:0 0 0 1px #d5a25f,inset 0 0 14px #b95a2533}.w-item i{display:none;position:absolute;right:2px;bottom:19px;width:16px;height:16px;line-height:16px;border-radius:50%;background:#9c3421;color:#ffe7b6;font-style:normal;font-size:11px}.w-item.chosen i{display:block}.w-missing{font-size:13px;color:#9b7b4e;gap:8px;background:#cdae7933;border-style:dashed}.w-missing small{font-size:10px}.w-tools{display:flex;gap:6px;align-items:center;justify-content:space-between;padding:4px 10px 10px}.w-tools .w-primary{font-size:12px;min-height:35px;padding:6px 14px}.w-tools .w-text{font-size:11px;padding:6px}.w-zone-tabs{display:flex;gap:3px;padding:8px;border-bottom:1px solid #b88b4555}.w-zone-tabs button{flex:1;border:0;background:#b68a4530;color:#785331;border-radius:2px;padding:6px 2px;font:10px var(--serif)}.w-zone-tabs button.chosen{background:#9b3e27;color:#ffe5b2}.w-pigments{display:flex;justify-content:space-around;padding:10px 9px}.w-pigments button{display:flex;flex-direction:column;align-items:center;gap:5px;border:0;background:transparent;color:#674423;font-size:11px;padding:4px}.w-pigments i{display:block;width:27px;height:27px;border-radius:50%;background:var(--pigment);box-shadow:inset 0 0 0 3px #ddc595,inset 0 0 0 4px #603e23,0 2px 3px #6e482855}.w-pigments .chosen i{outline:2px solid #9c3321;outline-offset:3px}.w-pattern-row{display:flex;justify-content:space-around;padding:10px 5px}.w-pattern-row button{display:flex;flex-direction:column;gap:4px;border:1px solid #a8854a66;background:#ecd29d;color:#795126;border-radius:3px;font-size:11px;padding:7px 10px}.w-pattern-row b{font:28px Georgia}.w-pattern-row .chosen{background:#9e3925;color:#ffe0a3}.w-loupe{position:absolute;z-index:10;right:21px;top:186px;width:88px;height:88px;border:2px solid #f5d38e;border-radius:50%;background:#ebcf98;box-shadow:0 4px 20px #1b0d0777;pointer-events:none}.w-rod{position:absolute;z-index:9;left:288px;top:522px;width:48px;height:114px;padding:0;border:0;background:transparent;box-shadow:none;touch-action:none;cursor:grab}.w-rod svg{display:block;width:100%;height:100%;pointer-events:none}.w-rod:active{cursor:grabbing}.w-rod-target{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;border:1px dashed #fff0b6;border-radius:50%;font-size:20px;color:#fff0b6;background:#71572555;transition:box-shadow .2s}.w-rod-target.near{box-shadow:0 0 18px #ffdc87;border-style:solid;background:#bc8a3e88}.w-rod-line{position:absolute;inset:0;width:390px;height:844px;z-index:5;opacity:0;pointer-events:none}.w-rod-line path{fill:none;stroke:#51391e;stroke-width:2;filter:drop-shadow(1px 0 0 #c79b56)}.w-workshop[data-workshop-phase=RODS].rod-installed .w-rod-line,.w-workshop[data-workshop-phase=PREVIEW] .w-rod-line{opacity:1}.w-preview-note{position:absolute;top:600px;left:20px;right:20px;text-align:center;font-size:12px;color:#f4dba8;text-shadow:0 1px 3px #2f1708}.w-result-tools{position:absolute;left:30px;right:30px;top:595px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.w-result-tools button{font-size:13px;padding:10px 14px}.w-result-tools button:last-child{width:80%}.w-save-image{position:absolute;z-index:30;top:95px;left:25px;right:25px;height:460px;display:block;background:#23170e;pointer-events:auto;border:1px solid #bf9b61}.w-save-image img{width:100%;height:100%;object-fit:contain}.w-save-image:after{content:'长按保存 · 轻触查看原图';position:absolute;bottom:7px;left:0;right:0;text-align:center;font-size:12px;color:#f1d9a7}.w-workshop[data-workshop-phase=INTRO] .w-subject{opacity:0}.w-workshop[data-workshop-phase=PREVIEW] .w-room-shade{background:#160d0755}.w-calibration{position:absolute;z-index:50;top:11%;left:4%;width:168px;max-height:70%;overflow:auto;padding:10px;background:#271c13ed;border:1px solid #c3a56d;font:10px sans-serif;color:#f1dab1;touch-action:pan-y}.w-calibration label{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:5px 0}.w-calibration input[type=number]{width:64px}.w-calibration select,.w-calibration textarea{width:100%;box-sizing:border-box}.w-calibration textarea{height:90px;font-size:9px}.w-calibration input,.w-calibration select,.w-calibration textarea{background:#f0dfbd;color:#362718;border:1px solid #a18355;padding:3px}.w-calibration button{background:#7b3822;color:#ffe7b5;border:1px solid #bb915b;padding:6px}.w-cal-anchor{position:absolute;font:12px sans-serif;color:#f2ff9c;transform:translate(-50%,-50%);text-shadow:0 1px 3px #111;white-space:nowrap}
@keyframes wEnter{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.w-workshop *{animation:none!important;transition:none!important}}

.w-workshop[aria-busy=true] .w-controls button{pointer-events:none;opacity:.6}

.fx-paused .w-camera{animation:none}

/* One continuous rod, with a shared wrist anchor and an accessible handle. */
.w-rod{z-index:12!important;border:1px dashed #f3d58e55!important;border-radius:18px!important;background:#e4b76509!important;transform:none!important;box-shadow:none!important;touch-action:none!important;min-width:44px;min-height:44px}
.w-rod:hover,.w-rod:focus-visible,.rod-dragging .w-rod{border-color:#ffe2a9!important;background:#e4b76522!important;outline:none}
.w-rod-line{z-index:6;opacity:0;overflow:visible}
.w-workshop[data-workshop-phase=RODS] .w-rod-line,.w-workshop[data-workshop-phase=PREVIEW] .w-rod-line{opacity:1}
.w-rod-line path{stroke:#39271b;stroke-width:3.5;stroke-linecap:round;filter:drop-shadow(1px 0 #c39a5c)}
.w-rod-grip{stroke:#c79e60;stroke-width:7;stroke-linecap:round}
.w-rod-pin{fill:#bd8e45;stroke:#ffe5a3;stroke-width:1.3}
.w-rod-tools{position:absolute;top:610px;left:32px;right:32px;display:flex;gap:14px;justify-content:center}
.w-rod-tools button{min-height:44px;font-size:12px;padding:7px 16px}

/* scene-01.css */
/* First chapter: preserve one camera, with a low theatre dialogue panel. */
.agong-opening{position:absolute;inset:0;overflow:hidden;background:#100a07;container-type:inline-size}
.scene01-canvas{display:block;width:100%;height:100%;background-size:100% 100%;background-position:center}
.scene01-pause{position:absolute;right:4%;top:3.8%;width:9cqw;height:9cqw;padding:0;border:1px solid #e2bd79;border-radius:50%;background:#3f2418b8;color:#ffe8b3;display:grid;place-items:center;font:5cqw/1 Georgia,serif;cursor:pointer;z-index:2;box-shadow:0 1px 7px #180c0566}
.scene01-pause:focus-visible{outline:2px solid #fff0c9;outline-offset:3px}
.agong-only-first #app{inset:0;overflow:hidden}
.agong-only-first #poster-layer,.agong-only-first .background-fx,.agong-only-first #scene-footer,.agong-only-first .version-mark,.page-cover #scene-footer,.page-cover .version-mark,.chapter-one-active #scene-footer,.chapter-one-active .version-mark,.chapter-one-active .topbar>button:first-child{display:none!important}
.agong-only-first .topbar{pointer-events:none}
.agong-only-first .topbar .sound-btn{display:none}
.agong-only-first .mini-brand{visibility:hidden}
.chapter-one-active.page-unlock .background-fx,.chapter-one-active .floor-unlock #unlock-status{display:none!important}
.same-shot-unlock{position:absolute;inset:0;pointer-events:none;z-index:6;animation:keyWithLamplight 1.65s ease-out both}
.same-shot-unlock .floor-key{pointer-events:auto;touch-action:none}
.same-shot-unlock .floor-lock{pointer-events:none}
/* Keep the lock's drop target while hiding its rectangular light guide. */
.same-shot-unlock .floor-lock,
.same-shot-unlock .floor-lock.ready{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  animation:none!important;
}
.same-shot-unlock .unlock-hud,.same-shot-unlock .floor-key-help{display:none!important}
.same-shot-unlock .same-shot-flat-key{left:19%;top:82%;width:32%;height:10%;padding:0;transform-origin:94% 52%;opacity:1;background:none;border:0}
.same-shot-flat-key img{width:100%;height:100%;object-fit:contain;pointer-events:none}

.agong-subtitle{position:absolute;left:5%;right:5%;bottom:9%;margin:0;text-align:center;color:#fff3d5;font:4.7cqw/1.6 var(--serif);letter-spacing:.12cqw;text-shadow:0 1px 2px #180b04,0 2px 6px #180b04,0 0 12px #180b04;z-index:12;pointer-events:none;animation:subtitleIn .35s ease both}
.agong-subtitle.spoken{animation:subtitleOut 1.5s ease both}
.key-floor-glow{position:absolute;left:14%;top:85.7%;width:35%;height:3.8%;background:radial-gradient(ellipse,#ffd57766 0%,#eab55324 48%,transparent 72%);filter:blur(3px);transform:rotate(9deg);animation:floorGlow 3.2s ease-in-out infinite;z-index:3;pointer-events:none}
.key-pickup-hint{position:absolute;left:49%;top:82.8%;margin:0;color:#ffe7b0;font:3.5cqw/1.6 var(--serif);letter-spacing:.2cqw;white-space:nowrap;text-shadow:0 1px 4px #201006,0 0 8px #201006;pointer-events:none;z-index:6;transition:opacity .25s}
.key-pickup-hint span{display:block;margin-left:-2.5cqw;font:4.5cqw/1 var(--serif);color:#e8bd77}
.key-is-lifted .key-floor-glow,.key-is-lifted .key-pickup-hint,.unlock-3d-playing .key-floor-glow,.unlock-3d-playing .key-pickup-hint,.unlock-3d-complete .key-floor-glow,.unlock-3d-complete .key-pickup-hint{opacity:0;animation:none}
.same-shot-unlock .same-shot-flat-key{top:84%;height:6%;transform:rotate(10deg) scaleY(.7);filter:drop-shadow(1px 2px 1px #190c08a0)}
@keyframes floorGlow{50%{opacity:.55;filter:blur(5px)}}
@keyframes keyWithLamplight{from{opacity:0}to{opacity:1}}
@keyframes subtitleIn{from{opacity:0}to{opacity:1}}
@keyframes subtitleOut{0%,65%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.same-shot-unlock,.key-floor-glow,.agong-subtitle{animation:none}.agong-subtitle.spoken{animation:subtitleOut 1.5s linear both}}

/* mc-selection.css */
body:has(.mc-select-mode){padding:0;overflow:hidden}.mc-select-mode{width:min(100vw,calc(100dvh * 941 / 1672),480px);height:auto;aspect-ratio:941/1672;max-height:100dvh;background:#25170e}.mc-select-mode #app{position:absolute;inset:0;padding:0;overflow:hidden}.mc-select-mode #scene-footer,.mc-select-mode .background-fx,.mc-select-mode .mini-brand,.mc-select-mode .topbar>button:first-child{display:none!important}.mc-select-mode .topbar{top:2%;right:3.7%;left:auto;z-index:30}.mc-select-mode .sound-btn{width:8cqw;height:8cqw;border:0;background:#1b160bd9;color:#fff2cd;box-shadow:none;padding:0}.mc-select-mode .music-note{font-size:5cqw}.mc-selector{position:absolute;inset:0;overflow:hidden;container-type:inline-size;font-family:var(--serif);color:#ffedc1;user-select:none;-webkit-user-select:none}.mc-selection-stage{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.mc-select-grid{position:absolute;left:10.1%;top:24.3%;width:79.1%;height:52.8%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1.5cqw 2.2cqw;background:#f4dba0;padding:.6cqw;box-sizing:border-box}.mc-select-card{position:relative;min-width:0;min-height:0;overflow:visible;padding:0;border:1.05cqw double #8a3b19;border-radius:1.5cqw;background:#f5dc9c;box-shadow:inset 0 0 0 .4cqw #f8e8b9;cursor:pointer;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease;touch-action:manipulation;isolation:isolate}.mc-select-card>img{position:absolute;left:2%;top:2%;width:96%;height:80%;object-fit:cover;object-position:center;pointer-events:none;border-radius:.7cqw}.mc-select-name{position:absolute;left:2%;top:3%;writing-mode:vertical-rl;letter-spacing:.22em;background:#8d190f;color:#fff0b9;border:.4cqw solid #eabf5d;border-radius:1.8cqw;padding:1.8cqw 1.2cqw;font-size:3.2cqw;line-height:1.3}.mc-select-tag{position:absolute;bottom:10%;left:4%;width:92%;box-sizing:border-box;padding:.8cqw .2cqw;background:#9c180f;border:.5cqw double #f7d478;border-radius:3cqw;font-size:3cqw;line-height:1.2;white-space:nowrap}.mc-select-line{position:absolute;left:0;right:0;bottom:0;height:9.5%;display:flex;align-items:center;justify-content:center;background:#54230f;color:#ffe3a5;font-size:1.95cqw;white-space:nowrap}.mc-select-check{display:none;position:absolute;z-index:3;right:-1.1cqw;bottom:9%;width:5.8cqw;height:5.8cqw;line-height:5.8cqw;border:.6cqw solid #fff0ba;border-radius:50%;background:#b8230e;color:#fff9d5;font:bold 4.4cqw/5.8cqw sans-serif;box-shadow:0 0 1.8cqw #ffca42}.mc-select-card.chosen{border-color:#fff5ac;box-shadow:0 0 0 .45cqw #d32609,0 0 2.4cqw .4cqw #ff6c18,inset 0 0 0 .4cqw #ffcf5e;z-index:2;transform:translateY(-.4cqw)}.mc-select-card.chosen .mc-select-check{display:block}.mc-select-card:focus-visible{outline:.7cqw solid #fff;outline-offset:.7cqw}.mc-select-card:active{transform:scale(.975)}.mc-select-partner{position:absolute;left:18%;top:78.3%;width:66%;height:9%;pointer-events:none}.mc-select-partner p{position:absolute;left:25%;right:-2%;top:0;margin:0;padding:1.2cqw 1.3cqw;color:#fff0bf;background:#2d170de8;font-size:2.9cqw;line-height:1.6;text-align:center;clip-path:polygon(2% 0,96% 3%,100% 80%,93% 97%,0 90%)}.mc-own-puppet{position:absolute;left:0;top:-7%;width:27%;height:104%;border:.6cqw solid #d5ad5e;border-radius:50%;background:radial-gradient(#fff1be,#dbb364);overflow:hidden}.mc-own-puppet svg{width:100%;height:100%;display:block}.mc-select-confirm{position:absolute;left:28%;top:88%;width:42%;height:4.8%;border:.65cqw double #f6c56b;border-radius:3cqw;background:linear-gradient(#ac2712,#8b160b);box-shadow:inset 0 0 0 .5cqw #ab2715;color:#ffebae;font-family:var(--serif);font-size:5.5cqw;line-height:1;cursor:pointer;touch-action:manipulation}.mc-select-confirm span{font:3.2cqw sans-serif;margin-left:1cqw}.mc-select-confirm:active{transform:scale(.97)}.mc-select-confirm:focus-visible{outline:.6cqw solid white}.mc-selector.confirming .mc-select-card.chosen{box-shadow:0 0 5cqw #ffdb7c}.mc-select-confirm:disabled{opacity:.8}@media(prefers-reduced-motion:reduce){.mc-selector *{transition:none!important}}

/* rap-scene.css */
body:has(.rap-mode){padding:0;overflow:hidden}
.rap-mode{width:min(100vw,calc(100dvh * 390 / 844),480px);height:auto;aspect-ratio:390/844;max-height:100dvh;background:#321e12}
.rap-mode #app{position:absolute;inset:0;padding:0;overflow:hidden}
.rap-mode #scene-footer,.rap-mode .background-fx,.rap-mode .mini-brand,.rap-mode .topbar>button:first-child{display:none!important}
.rap-mode .topbar{top:max(18px,env(safe-area-inset-top));left:auto;right:5%;z-index:20}
.rap-mode .sound-btn{width:44px;height:44px;padding:0;border:1px solid #eed5a45c;border-radius:50%;background:#42291ba6;color:#f8e8c6;box-shadow:none}
.rap-mode .music-note{font-size:20px}
.rap-scene{position:absolute;inset:0;isolation:isolate;overflow:hidden;container-type:inline-size;font-family:var(--serif);color:#452b21;user-select:none;-webkit-user-select:none}
.rap-scene [hidden]{display:none!important}
.rap-background{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;object-fit:fill}
.rap-heading{position:absolute;top:max(29px,calc(env(safe-area-inset-top) + 18px));left:7%;right:23%;height:5%;display:flex;align-items:center}
.rap-heading h1{margin:0;font:500 clamp(12px,3.45cqw,15px)/1.4 var(--serif);letter-spacing:.12em;color:#fff0ce;text-shadow:0 1px 5px #2a190e}
.rap-verse{position:absolute;left:10%;right:10%;top:15%;height:17%;box-sizing:border-box;padding:3cqw 2cqw 0;text-align:center;z-index:5;background:radial-gradient(ellipse at center,#f9e9c7ed 0%,#f5e0b596 62%,transparent 76%);pointer-events:none}
.rap-credit{display:block;min-height:20px;color:#963f2b;font-size:clamp(13px,3.45cqw,15px);font-weight:500;letter-spacing:.06em}
.rap-current{display:block;margin:1.5cqw 0 0;padding-top:1cqw;min-height:21cqw;max-height:30cqw;font-size:clamp(23px,6.15cqw,27px);font-weight:500;line-height:1.58;letter-spacing:.02em;color:#472b21;text-wrap:balance;overflow-wrap:anywhere}
.rap-current span{display:contents}.rap-current strong{display:inline;font-weight:600;color:#9b3528;transform-origin:center}
.rap-scene:not(.has-verse) .rap-current,.rap-scene:not(.has-verse) .rap-credit{visibility:hidden}.rap-scene:not(.has-verse) .rap-verse{background:none}
.rap-previous{display:none!important}
.rap-lamp{position:absolute;left:7%;right:7%;top:30%;height:43%;background:radial-gradient(ellipse at center,#fff2b94a,transparent 72%);pointer-events:none;mix-blend-mode:screen}
.rap-performer{position:absolute;top:31%;width:44%;height:39.5%;transform-origin:50% 100%;pointer-events:none;filter:drop-shadow(0 3px 3px #65381524)}
.rap-user{left:2.5%}.rap-poet{left:53.5%}
.rap-sway{position:absolute;inset:0;transform-origin:50% 100%}
.rap-art{position:absolute;display:block;max-width:none;object-fit:contain;transform-origin:50% 100%}
.performing .rap-poet .rap-sway{animation:rapLean 2.5s ease-in-out infinite}
.rap-interaction{position:absolute;z-index:7;left:7%;right:7%;top:75.5%;bottom:auto;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:12px 10px 14px;box-sizing:border-box;background:linear-gradient(180deg,#2b1c18c9,#2b1c18e8);border-radius:7px}
.rap-caption{margin:0;min-height:22px;max-height:46px;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-align:center;font-size:clamp(13px,3.55cqw,15px);line-height:1.6;color:#f0dfbd;font-weight:400;text-wrap:balance}
.rap-controls{display:flex;flex-direction:column;gap:8px}
.rap-controls:empty{display:none}
.rap-controls button{box-sizing:border-box;min-height:44px;font:500 clamp(13px,3.6cqw,16px)/1.4 var(--serif);padding:9px 8px;border:1px solid #d9b78182;border-radius:5px;background:#823728;color:#fff0d5;box-shadow:none;cursor:pointer;touch-action:manipulation;transition:background .18s,transform .18s,border-color .18s}
.rap-controls button:active{transform:scale(.97);background:#9b4731}
.rap-controls button:focus-visible{outline:2px solid #fae4ab;outline-offset:3px}
.rap-controls button:disabled{opacity:.4;cursor:default}
.rap-topics,.rap-pair,.rap-choices{display:flex;gap:8px}
.rap-topics>button,.rap-pair>button,.rap-choices>button{flex:1;min-width:0}
.rap-choices button{min-height:48px;padding:10px 4px}
.rap-topics button{background:#efdfbf;color:#5b382a;min-height:57px;border-color:#d3b68b}
.rap-topics button b{display:block;font-size:clamp(14px,3.8cqw,17px);font-weight:500}
.rap-topics button small{display:block;font-size:clamp(9px,2.5cqw,11px);margin-top:4px;white-space:nowrap;opacity:.78}
.rap-topics:has(.selected) button:not(.selected){opacity:.7}
.rap-topics button.selected{border-color:#efcc7f;background:#fff0cd;box-shadow:inset 0 -2px #b98040;transform:translateY(-2px)}
.rap-pair button{background:#38493d;color:#e9e3cf}
.rap-progress{height:2px;background:#e3c69a29;border-radius:2px;overflow:hidden;margin:auto 18% 8px;display:none}
.rap-progress i{display:block;width:0;height:100%;background:#d7b47b}
.rap-scene[data-phase=POET_RESPONSE] .rap-progress{display:block}
.rap-scene[data-phase=POET_RESPONSE] .rap-caption{margin-top:6px}
.rap-scene[data-phase=TOPIC_SELECT] .rap-interaction{gap:7px;padding-top:9px}
.rap-scene[data-phase=TOPIC_SELECT] .rap-caption{font-size:12px;min-height:19px}
.rap-scene[data-phase=READY_NEXT] .rap-caption{font-size:12px}
.rap-fx{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.rap-paper-heart{position:absolute;top:45%;font-size:24px;color:#a34f3c;animation:rapHeart 1.6s ease-out both}
.rap-paper-heart.h1{left:40%}.rap-paper-heart.h2{left:49%;animation-delay:.15s}.rap-paper-heart.h3{left:57%;animation-delay:.3s}
.rap-counter-ring{position:absolute;left:44%;top:49%;width:12%;aspect-ratio:1;border:1px solid #a6402b88;border-radius:50%;animation:rapRing .7s ease-out both}
.rap-quote{position:absolute;z-index:6;top:15%;left:13%;right:13%;padding:22px 17px 18px;background:#f6e7c7;border:1px solid #a96343;border-radius:2px;box-shadow:0 6px 20px #3f291924;text-align:center;color:#512e22;transform-origin:50% 0}
.rap-quote small{font-size:12px;letter-spacing:.08em;color:#a0553d}.rap-quote blockquote{font-size:clamp(22px,6cqw,27px);line-height:1.7;letter-spacing:.04em;margin:14px 0}.rap-quote cite{font-style:normal;font-size:12px;color:#8d6e4d}
.quote-focus .rap-verse{visibility:hidden}.quote-focus .rap-lamp{opacity:.3!important}
@keyframes rapLean{0%,100%{transform:rotate(0)}38%{transform:rotate(-.5deg) translateY(-1px)}60%{transform:rotate(-.5deg) translateY(-1px)}85%{transform:rotate(0)}}
@keyframes rapHeart{from{opacity:0;transform:translateY(0) scale(.7)}30%{opacity:.65}to{opacity:0;transform:translateY(-38px) scale(1)}}
@keyframes rapRing{from{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(1.7)}}
@media(prefers-reduced-motion:reduce){.rap-scene *{animation:none!important;transition:none!important}}
.rap-scene.fx-paused *{animation-play-state:paused!important}

/* quote-card.css */
body:has(.quote-card-mode){padding:0;overflow:auto;background:#251b14}.quote-card-mode{width:min(100vw,calc(100dvh * 390 / 844),480px);height:100dvh;min-height:650px;max-height:none;margin:auto;aspect-ratio:auto;background:#352014;overflow:auto}.quote-card-mode #app{position:absolute;inset:0;padding:0;overflow:visible}.quote-card-mode #scene-footer,.quote-card-mode .background-fx,.quote-card-mode .topbar{display:none!important}.c6-scene{position:relative;min-height:100%;padding:24px 0 max(16px,env(safe-area-inset-bottom));box-sizing:border-box;isolation:isolate;container-type:inline-size;color:#f8e8c5;font-family:var(--serif)}.c6-scene [hidden]{display:none!important}.c6-stage,.c6-stage-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}.c6-stage{object-fit:cover}.c6-stage-shade{z-index:-1;background:linear-gradient(#24160dd9,#28190d66 35%,#28170bcc)}.c6-scene header{text-align:center;margin:0 auto 18px;padding:0 6%}.c6-scene header small{font-size:11px;color:#c7aa7a;letter-spacing:.1em}.c6-scene h1{margin:8px 0 0;font-size:22px;line-height:1.45;font-weight:500;letter-spacing:.1em}.c6-card{position:relative;display:block;width:89%;aspect-ratio:3/4;margin:0 auto;overflow:hidden;background:#f4e8cf;box-shadow:0 8px 25px #120b075c}.c6-card>canvas,.c6-card>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}.c6-card>img{touch-action:auto;-webkit-touch-callout:default;user-select:auto}.c6-actions{width:89%;margin:18px auto 0;display:flex;flex-direction:column;gap:9px}.c6-actions>div{display:flex;gap:10px}.c6-actions button{min-height:44px;box-sizing:border-box;border:1px solid #b2946266;border-radius:5px;color:#eddfc2;background:#3c3027e8;padding:10px 12px;font:14px/1.4 var(--serif);cursor:pointer;touch-action:manipulation}.c6-actions .c6-primary{background:#843b28;border-color:#bc8d58;color:#fff1d0;font-size:16px;letter-spacing:.08em}.c6-actions>div>button{flex:1}.c6-actions button:active{transform:scale(.98);filter:brightness(1.1)}.c6-actions button:focus-visible{outline:2px solid #f6deb0;outline-offset:3px}.c6-actions button:disabled{opacity:.45;cursor:default}.c6-status{margin:12px 6% 0;text-align:center;min-height:16px;font-size:11px;line-height:1.6;color:#c3ab85}@media(max-height:730px){.c6-scene{padding-top:16px}.c6-scene header{margin-bottom:12px}.c6-scene h1{font-size:20px}.c6-actions{margin-top:12px;gap:8px}.c6-status{margin-top:8px}}@media(prefers-reduced-motion:reduce){.c6-scene *{animation:none!important;transition:none!important}}

.c6-ending{display:block;margin:12px auto 0;padding:6px 15px;background:none;border:0;color:#d9bd8e;font:12px var(--serif);cursor:pointer;touch-action:manipulation}

/* dialogue.css */
/* Named dialogue follows the supplied reference. Narration omits the name row. */
#theatre .l-dialogue{
  position:absolute;z-index:26;left:3.5%;right:3.5%;bottom:2.6%;
  padding:4.5cqw 4.5cqw 4cqw;background:linear-gradient(120deg,#03182ef5,#041323ed);
  border:1px solid #72c8ecb3;box-shadow:0 9px 22px #00102455;
  color:#f4f7ff;font-family:Arial,'Microsoft YaHei',sans-serif;
}
#theatre .l-dialogue::before{
  content:'';position:absolute;left:-1.1cqw;top:50%;width:1.8cqw;height:1.8cqw;
  background:#ef42ae;border:1px solid #a4d8f1;transform:rotate(45deg);
}
#theatre .l-speaker{
  display:flex;align-items:center;gap:2cqw;margin:0 0 2.4cqw;
  color:#94dff4;font-size:3.3cqw;line-height:1.4;letter-spacing:.3cqw;
}
#theatre .l-speaker[hidden]{display:none!important}
#theatre .l-speaker::before{content:'';width:1.3cqw;height:1.3cqw;background:#f140ae;border-radius:50%;flex:none}
#theatre .l-dialogue .l-caption{
  position:static;display:block;min-height:0;margin:0;color:#eef4ff;
  text-align:left;font:500 4.1cqw/1.65 Arial,'Microsoft YaHei',sans-serif;
  letter-spacing:0;text-shadow:none;pointer-events:none;text-wrap:pretty;
}
#theatre .l-dialogue .l-caption span{white-space:normal}
#theatre .l-dialog-action{
  display:flex;align-items:center;justify-content:center;gap:3cqw;width:100%;
  min-height:11.8cqw;margin-top:4.2cqw;padding:2.4cqw 3cqw;border:1px solid #ffb8e0;
  border-radius:0;background:linear-gradient(100deg,#f77bce,#ee329f);
  color:#130c23;font:bold 4.1cqw/1.4 Arial,'Microsoft YaHei',sans-serif;
  box-shadow:0 .7cqw 0 #851968;touch-action:manipulation;
}
#theatre .l-dialog-action[hidden]{display:none!important}
#theatre .l-dialog-action span{font-size:5.4cqw;font-weight:400;line-height:1}
#theatre .l-dialog-action:hover{filter:brightness(1.06)}
#theatre .l-dialog-action:active{transform:translateY(.4cqw);box-shadow:0 .3cqw 0 #851968}
#theatre .l-dialog-action:focus-visible{outline:2px solid #a7e7ff;outline-offset:4px}
#theatre .l-caption-scrim{display:none}
#theatre .s1-layered[data-stage=DISCOVER] .l-discover-hint{display:none}
#theatre .l-detail-nav{bottom:29%}
#theatre .l-observe-hint{bottom:35%}
#theatre .l-complete{bottom:39%}
#theatre .l-observe{bottom:40%}
#theatre .s1-layered[data-stage=READY_TO_EXIT] .l-dialogue,
#theatre .s1-layered[data-stage=EXITING] .l-dialogue{display:none}

/* opening-design.css */
/* Reference-inspired first chapter only. */
body:has(#theatre.page-cover){background:radial-gradient(ellipse at 20% 20%,#503455,#142841 65%,#07101c)}
.page-cover .opening-nav{position:absolute;left:22%;right:22%;top:2%;height:5%;z-index:18;display:flex;align-items:center;justify-content:center;gap:2cqw;border:1px solid #9ed9ee80;border-radius:50px;background:#031427ef;color:#e6f3fc;font:3cqw Arial,'Microsoft YaHei',sans-serif;letter-spacing:.15cqw;box-shadow:0 2px 12px #00102266;pointer-events:auto}
.page-cover .opening-nav::before{content:'';width:1.3cqw;height:1.3cqw;background:#f047ae;border-radius:50%;box-shadow:0 0 9px #f047ae77}
.page-cover .opening-nav span{color:#9eb4c6;margin-left:1cqw;font-size:3.6cqw}
.page-cover.agong-only-first .topbar{top:3%;right:3%;left:auto;height:auto;z-index:20}
.page-cover.agong-only-first .topbar .mini-brand{display:none}
.page-cover.agong-only-first .topbar .sound-btn{display:grid!important;width:10cqw;height:10cqw;pointer-events:auto;background:#031427f5;border:1px solid #b3d5e9;border-radius:50%;box-shadow:0 .5cqw 0 #02101e;color:#dff6ff}
.page-cover .music-note{font-size:6cqw}
.page-cover .sound-btn:not(.playing)::before{content:'';position:absolute;width:5cqw;height:1px;background:#dff6ff;transform:rotate(45deg)}
.page-cover .scene01-pause{left:3%;right:auto;top:2.1%;width:8.8cqw;height:8.8cqw;border-radius:50%;background:#041527de;border:1px solid #8eb7d36b;color:#a6d4e9;font-size:3.6cqw;z-index:19}
.page-cover .opening-key-tray{position:absolute;left:14%;top:75%;width:32%;height:8%;border:1px solid #e6c2e9;border-radius:2.4cqw;background:#04162acf;box-shadow:0 4px 14px #00152f77;pointer-events:none;z-index:3}
.page-cover .same-shot-flat-key{left:14%!important;top:79%!important;width:32%!important;height:7%!important}
.page-cover .key-floor-glow,.page-cover .key-pickup-hint{display:none}
.page-cover .opening-lock-label{position:absolute;left:60%;top:69.2%;color:#a2e6f5;background:#06172dbf;padding:.7cqw 1.7cqw;border-radius:2px;font:2.6cqw Arial,'Microsoft YaHei',sans-serif;pointer-events:none;z-index:8}
.page-cover .opening-tutorial{position:absolute;left:7%;right:7%;bottom:3.2%;z-index:15;min-height:10%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:3.6cqw 3cqw;background:linear-gradient(120deg,#04172af5,#071428eb);border:1px solid #90d6ecb8;box-shadow:0 6px 20px #00102055;color:#e7f3fb;text-align:center;pointer-events:auto}
.page-cover .opening-tutorial::before{content:'';position:absolute;left:-1cqw;top:50%;width:1.6cqw;height:1.6cqw;transform:rotate(45deg);background:#f044ab;border:1px solid #b5e9ff}
.page-cover .opening-tutorial p{font:500 3.7cqw/1.6 Arial,'Microsoft YaHei',sans-serif}
.page-cover .opening-auto{font:3.3cqw/1.5 Arial,'Microsoft YaHei',sans-serif;color:#90e2f5;text-decoration:underline;text-underline-offset:.7cqw;padding:1cqw 2cqw}
.page-cover .opening-progress{position:absolute;left:27%;right:27%;bottom:1.1%;display:flex;gap:1.1cqw;z-index:15;pointer-events:none}
.page-cover .opening-progress i{flex:1;height:.7cqw;border-radius:5px;background:#5373958c}
.page-cover .opening-progress i:first-child{background:#94e8ff;box-shadow:0 0 9px #9ae6ff}
.page-cover.opening-key-accepted .opening-tutorial,.page-cover.opening-key-accepted .opening-key-tray,.page-cover.opening-key-accepted .opening-lock-label{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s}
.page-cover .agong-subtitle{left:7%;right:7%;bottom:4%;padding:4cqw 4cqw 4cqw!important;border:1px solid #8dd5e5;background:#05162deb;text-align:left;font:3.8cqw/1.7 Arial,'Microsoft YaHei',sans-serif;color:#edf7ff;text-shadow:none;pointer-events:none}
.page-cover .agong-subtitle::before{content:'●  陈阿公';display:block;margin-bottom:1.8cqw;font-size:3cqw;color:#96dfee;letter-spacing:.2cqw}
@media(prefers-reduced-motion:reduce){.page-cover .opening-tutorial{transition:none}}

/* scene-navigation.css */
#theatre>.scene-back{
  position:absolute;z-index:60;left:3%;top:2.2%;width:8.8cqw;height:8.8cqw;
  display:grid;place-items:center;padding:0;border:1px solid #9dcde6a6;
  border-radius:50%;background:#031629ed;color:#d9f3ff;
  box-shadow:0 2px 8px #00132666;cursor:pointer;touch-action:manipulation;
}
#theatre>.scene-back>span:first-child{font:300 8cqw/.8 Arial;transform:translateY(-.4cqw)}
#theatre>.scene-back:hover{background:#15334e}
#theatre>.scene-back:active{transform:scale(.95)}
#theatre>.scene-back:focus-visible{outline:2px solid #f49bd1;outline-offset:3px}
#theatre>.scene-back:disabled{opacity:.5;cursor:wait}
#theatre .topbar>button:first-child{display:none!important}
#theatre .l-heading,#theatre .j-heading{left:15%;right:15%}
#theatre .w-header{left:15%;right:16%}
#theatre.page-cover .scene01-pause{left:3%;top:13%;width:7cqw;height:7cqw;font-size:3cqw}

/* dialogue-advance.css */
#theatre .subtitle-advanceable{pointer-events:auto!important;cursor:pointer}
#theatre .subtitle-advanceable::after{content:'点击下一句 ›';display:block;margin-top:1.6cqw;color:#99dfee;font:2.4cqw/1.5 Arial,'Microsoft YaHei',sans-serif;text-align:right;letter-spacing:.1cqw;text-shadow:none}
#theatre .subtitle-advanceable:focus-visible{outline:2px solid #f49bd3;outline-offset:3px}
#theatre .opening-lock-label{display:none!important}

/* origin-art.css */
/* Newly generated art uses its actual colors, without a global tint. */
#theatre.origin-story-mode .l-background,
#theatre.origin-story-mode .l-foreground,
#theatre.origin-story-mode .l-character,
#theatre.origin-story-mode .l-puppet-fallback{filter:none!important}

/* origin-loupe.css */
#theatre .l-loupe{position:absolute;z-index:24;right:6%;top:auto;bottom:32%;width:40cqw;height:40cqw;margin:0;pointer-events:none;filter:drop-shadow(0 5px 12px #031a4680)}
#theatre .l-loupe[hidden]{display:none!important}
#theatre .l-loupe canvas{position:relative;z-index:2;width:100%;height:100%;display:block;border-radius:50%;border:1.2cqw solid #ef80c4;outline:.45cqw solid #b2e5ff;background:#eaf5ff;box-shadow:inset 0 0 0 .6cqw #123453;filter:none!important}
#theatre .l-loupe::before{content:'';position:absolute;z-index:3;inset:2cqw;border-radius:50%;border-top:.6cqw solid #ffffffa3;transform:rotate(-30deg)}
#theatre .l-loupe-handle{position:absolute;right:-.5cqw;bottom:-4cqw;width:4cqw;height:10cqw;background:linear-gradient(90deg,#183958,#355b7a);border:.5cqw solid #a9dff3;border-radius:2cqw;transform:rotate(-40deg);transform-origin:50% 0;z-index:1}
#theatre .l-loupe figcaption{position:absolute;z-index:4;left:5%;right:5%;bottom:-1cqw;padding:1cqw .5cqw;border:1px solid #9cd9ef;border-radius:2cqw;background:#061b34ec;color:#dff4ff;font:2.8cqw/1.5 Arial,'Microsoft YaHei',sans-serif;text-align:center;white-space:nowrap}
#theatre .l-complete{left:7%;right:auto;bottom:35%}

/* river-passage.css */
#theatre .river-passage{position:absolute;inset:0;z-index:50;overflow:hidden;isolation:isolate;background:#12385b;color:#edf8ff;container-type:inline-size;font-family:Arial,'Microsoft YaHei',sans-serif}
.r-world{position:absolute;inset:0;overflow:hidden;background:#12385b}
#theatre .r-panorama{position:absolute;left:0;top:0;width:190%;height:100%;max-width:none;object-fit:cover;filter:none!important;will-change:transform}
.r-atmosphere{position:absolute;inset:0;background:linear-gradient(#03152b87,transparent 35%,#4689b51c 65%,#05162eda)}
.r-heading{position:absolute;left:16%;right:12%;top:4%;text-shadow:0 2px 12px #071e45}
.r-heading small{font-size:2.5cqw;letter-spacing:.5cqw;color:#a9dff5}
.r-heading h1{font:500 6.5cqw/1.5 'STSong','SimSun',serif;letter-spacing:.35cqw;margin:1.8cqw 0}
.r-heading p{font-size:2.8cqw;letter-spacing:.2cqw;color:#e9d4ea}
.r-sound{position:absolute;z-index:3;right:3%;top:2.5%;width:9cqw;height:9cqw;border:1px solid #9cdaee;border-radius:50%;background:#061b32e8;color:#e6f9ff;font:6cqw Arial;display:grid;place-items:center;padding:0}
.r-route{position:absolute;top:20%;left:16%;right:16%;display:flex;align-items:center;gap:2cqw;padding:2cqw 3cqw;border:1px solid #b5e8ff45;border-radius:20px;background:#09294b8c;font-size:2.5cqw;color:#a3bbcf}
.r-route i{flex:1;height:1px;background:#9ad3e354}.r-route span.active{color:#ffbae4;text-shadow:0 0 9px #f297cc}
.r-water{position:absolute;left:-40%;right:-40%;top:43%;bottom:17%;overflow:hidden;transform:perspective(300px) rotateX(26deg);opacity:.5}
.r-water i{position:absolute;left:0;right:0;height:15%;background:repeating-linear-gradient(0deg,transparent 0 9px,#bde7f04d 10px 11px,transparent 12px 23px);animation:rWater 8s linear infinite}.r-water i:nth-child(2){top:25%;animation-delay:-2s}.r-water i:nth-child(3){top:50%;animation-delay:-4s}.r-water i:nth-child(4){top:75%;animation-delay:-6s}
.r-boat{position:absolute;left:4%;bottom:30%;width:62cqw;height:55cqw;will-change:left;transition:left .18s linear}
.r-boat-sway{position:absolute;inset:0;animation:rBoat 5.8s ease-in-out infinite;transform-origin:50% 90%}
#theatre .r-passenger{position:absolute;z-index:2;left:15%;bottom:10cqw;width:40cqw;height:54cqw;object-fit:contain;filter:none!important}
#theatre .r-hull{position:absolute;z-index:4;bottom:0;width:100%;height:24cqw;object-fit:contain;overflow:visible;filter:drop-shadow(0 4px 2px #061a3480)}
.r-boat-lamp{position:absolute;z-index:5;right:14%;bottom:11cqw;height:30cqw;width:2px;background:#a7c8d9;transform:rotate(-8deg)}
.r-boat-lamp i{position:absolute;top:-2cqw;left:-3cqw;width:6cqw;height:8cqw;border:1px solid #dff7ff;border-radius:40%;background:radial-gradient(#fff7e9,#ffb7da 60%,#d954ac);box-shadow:0 0 4cqw 1cqw #f3aed585}
.r-wake{position:absolute;left:-12%;right:-12%;bottom:-1.5cqw;height:7cqw;border-bottom:1px solid #d0edff88;border-top:1px solid #97d7ef6b;border-radius:50%;animation:rWake 3.5s ease-out infinite;opacity:.6}
.r-mist{position:absolute;left:-30%;right:-30%;height:20%;pointer-events:none;background:radial-gradient(ellipse,#b6e3ed54,transparent 65%);filter:blur(7px);animation:rMist 18s ease-in-out infinite alternate}
.r-mist-far{top:32%;opacity:.7}.r-mist-near{top:63%;animation-delay:-7s;opacity:.6}
.r-shore{position:absolute;right:7%;top:34%;opacity:calc(.1 + var(--river-progress)*.9);color:#c6ecff;text-align:center;text-shadow:0 2px 8px #092547;transition:opacity .3s}
.r-shore span{writing-mode:vertical-rl;font:5cqw 'STSong','SimSun',serif;letter-spacing:1cqw;padding:2cqw;border-right:1px solid #e2b3d9}
.r-shore i{display:block;width:1.2cqw;height:1.2cqw;margin:2cqw auto;border-radius:50%;background:#f7addc;box-shadow:0 0 8px #ffcaee}
.r-petals{position:absolute;inset:18% 0 18%;pointer-events:none;overflow:hidden}
.r-petals i{position:absolute;left:calc(var(--n)*13%);top:-5%;width:1.6cqw;height:2.6cqw;border-radius:80% 15% 80% 20%;background:#e9a0d8a6;animation:rPetal 15s linear infinite;animation-delay:calc(var(--n)*-2s)}
.r-controls{position:absolute;left:6%;right:6%;bottom:3%;padding:3cqw 4cqw;background:linear-gradient(125deg,#03172cf2,#081b31ed);border:1px solid #91d4e6ad;box-shadow:0 8px 22px #06182b77}
.r-caption{width:100%;padding:0;text-align:left;color:#ecf6ff;background:none;border:0;cursor:pointer}
.r-caption small{display:block;color:#a3e2f2;font-size:2.8cqw;letter-spacing:.15cqw;margin-bottom:1.7cqw}
.r-caption p{font:3.5cqw/1.8 Arial,'Microsoft YaHei',sans-serif;min-height:12.6cqw;text-wrap:pretty}
.r-caption>span{display:block;text-align:right;font-size:2.1cqw;color:#9ed5eb;margin-top:1cqw}
.r-range-label{display:block;margin:2.5cqw 0;color:#a6d5ed;font-size:2.5cqw}.r-range-label output{float:right;color:#e4badb}
#theatre .r-progress{display:block;width:100%;margin:2cqw 0 0;accent-color:#f265bd;height:4cqw;cursor:ew-resize}
.r-sail{display:flex;justify-content:center;align-items:center;gap:5cqw;width:100%;min-height:10cqw;border:1px solid #ffcae8;background:linear-gradient(110deg,#f58bce,#ed3ea6);box-shadow:0 .6cqw 0 #8a226d;color:#130e26;font:bold 3.8cqw Arial,'Microsoft YaHei',sans-serif}
.r-sail span{font:5cqw Arial}.r-arrived .r-sail{background:linear-gradient(110deg,#b3e7f4,#f1b2dc)}
@keyframes rBoat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(1.5cqw) rotate(1deg)}}
@keyframes rWater{to{transform:translateX(-12%) translateY(15px)}}
@keyframes rWake{from{transform:scale(.85);opacity:.7}to{transform:scale(1.25);opacity:.05}}
@keyframes rMist{to{transform:translateX(12%)}}
@keyframes rPetal{to{transform:translate(20cqw,95cqw) rotate(280deg)}}
@media(prefers-reduced-motion:reduce){.river-passage *{animation:none!important;transition:none!important}}
#theatre .l-exit>p,#theatre .l-exit-track{display:none}
#theatre .l-river-start{display:flex;justify-content:center;align-items:center;gap:4cqw;width:100%;min-height:11cqw;border:1px solid #ffd5ec;background:linear-gradient(110deg,#f79bd5,#ef4caf);box-shadow:0 .6cqw 0 #81255f;color:#160e28;font:600 3.8cqw Arial,'Microsoft YaHei',sans-serif}
#theatre .l-river-start span{font:5cqw Arial}

/* jiangnan-character.css */
#theatre.journey-story-mode .j-warrior-art{filter:none!important}
#theatre.journey-story-mode .j-shadow-art{filter:brightness(.18) saturate(0) blur(1.5px)}

#theatre.journey-story-mode .j-bg,#theatre.journey-story-mode .j-foreground,#theatre.journey-story-mode .j-passing-frame{filter:none!important}
/* Soft, responsive interaction for the Jiangnan chapter. */
#theatre.journey-story-mode .j-light-layer{background:radial-gradient(ellipse,#fbefff88 0%,#bceeff55 32%,#f4a5d52b 55%,transparent 73%)}
#theatre.journey-story-mode .j-curtain-target{display:block;pointer-events:auto;cursor:pointer;border:0!important;border-radius:50%;padding:0;margin:0;background:radial-gradient(ellipse,#dff7ff26,transparent 70%)!important;box-shadow:none!important;color:#395e80!important;transition:background .35s,filter .35s;isolation:isolate}
#theatre.journey-story-mode .j-curtain-target i{inset:20px 4px;border:1px solid #e4f8ff99!important;border-radius:50%;box-shadow:0 0 25px #ddf7ff88,inset 0 0 35px #c7eeff44;animation:jLightBreathe 3.6s ease-in-out infinite}
#theatre.journey-story-mode .j-curtain-target span{bottom:45%;color:#294b6e!important;text-shadow:0 1px 8px white;font-size:15px;letter-spacing:5px}
#theatre.journey-story-mode .j-curtain-target small{position:absolute;left:0;right:0;bottom:35%;font:9px var(--serif);letter-spacing:1px;color:#486b88}
#theatre.journey-story-mode .j-curtain-target.is-near{background:radial-gradient(ellipse,#fce4f888,#c3ecff55 45%,transparent 72%)!important;filter:drop-shadow(0 0 12px #d5f5ff)}
#theatre.journey-story-mode .j-curtain-target:focus-visible{outline:2px solid #f58bc2;outline-offset:4px}
#theatre.journey-story-mode .j-horn-glow{background:radial-gradient(ellipse at 50% 24%,#f5b4db66,transparent 68%)!important;border-radius:45% 45% 8px 8px}
#theatre.journey-story-mode .j-horn.is-playing .j-horn-glow,#theatre.journey-story-mode .j-horn.is-near .j-horn-glow,#theatre.journey-story-mode .j-horn.is-selected .j-horn-glow{opacity:1;border-color:#bfeeff99!important;box-shadow:0 0 20px #a6d9ff66!important}
#theatre.journey-story-mode .j-horn.is-correct .j-horn-glow{background:radial-gradient(ellipse,#edb1d677,transparent 75%)!important;border-color:#f6c3e5!important;box-shadow:0 0 30px #e7c8f4aa!important}
#theatre.journey-story-mode .j-horn.is-wrong .j-horn-glow{animation:none;background:#c6eaff22!important;border-color:#a9d9ed!important}
#theatre.journey-story-mode .j-sound-wave i{background:#dcf6ff!important;box-shadow:0 0 6px #ffc0e5!important}
#theatre.journey-story-mode .j-correct-mark{font:12px var(--serif);width:38px;height:38px;letter-spacing:2px;color:#fff!important;background:#183d60dd!important;border:1px solid #efa5d1!important;box-shadow:0 0 25px #f5afd477!important}
#theatre.journey-story-mode .j-voice-confirm,#theatre.journey-story-mode .j-next{position:absolute;z-index:25;left:15%;right:15%;bottom:18%;min-height:43px;padding:10px 16px;border:1px solid #e2c5e7!important;border-radius:24px;background:linear-gradient(110deg,#f6c2e7ee,#b8def7ee)!important;color:#173c5d!important;box-shadow:0 4px 24px #193e6a33, inset 0 1px #ffffffcc!important;font:3.1cqw/1.5 var(--serif);letter-spacing:1px;cursor:pointer;transition:box-shadow .25s,translate .25s}
#theatre.journey-story-mode .j-voice-confirm:hover,#theatre.journey-story-mode .j-next:hover{translate:0 -2px;box-shadow:0 5px 25px #e5abd177!important}
.j-voice-confirm span{float:right}.j-voice-confirm:focus-visible{outline:2px solid white;outline-offset:4px}
#theatre.journey-story-mode .j-subtitle{background:linear-gradient(115deg,#06192de8,#102842e8)!important;border-color:#a8d9f777!important;border-radius:2px 15px!important;box-shadow:0 5px 24px #06182b44!important;min-height:10.5%}
#theatre.journey-story-mode .j-subtitle p{color:#eaf7ff!important;font-size:3.65cqw;line-height:1.9;letter-spacing:1px}
#theatre.journey-story-mode .j-subtitle:after{display:none}#theatre.journey-story-mode .j-subtitle:before{background:#f389c4!important;border-color:#edc8e9!important}
#theatre.journey-story-mode .j-recording-status{bottom:25%;color:#e8f6ff!important;letter-spacing:1px}
.j-chapter-steps{position:absolute;top:11%;left:24%;right:24%;z-index:20;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 10px;border:1px solid #c3e8ff33;border-radius:20px;background:#061b35b8;backdrop-filter:blur(10px);pointer-events:none;font:2.7cqw var(--serif);letter-spacing:2px;color:#b4c9de}
.j-chapter-steps i{height:1px;flex:1;background:#c9ddf044}.j-chapter-steps .is-current{color:#ffb4dc;text-shadow:0 0 12px #f6b7d9}.j-chapter-steps .is-done{color:#c0efff}
.j-petals{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden;opacity:.65;transition:opacity .8s}.j-petals i{position:absolute;top:-5%;left:calc(6% + var(--n) * 11%);width:calc(4px + mod(var(--n),3) * 1px);height:9px;border-radius:75% 0 75% 25%;background:linear-gradient(145deg,#ffe7f6,#ef90c6);animation:jPetalFall calc(12s + var(--n) * .7s) linear infinite;animation-delay:calc(var(--n) * -2.3s);opacity:.65}
.s3-journey[data-phase=DISCOVER] .j-petals,.s3-journey[data-phase=ROOM] .j-petals{opacity:.25}
.s3-journey .j-warrior-art{transform-origin:50% 65%}.s3-journey:not(.is-dragging)[data-phase=DRAG_CURTAIN] .j-warrior-art,.s3-journey[data-phase=VOICE_CHOICE] .j-warrior-art,.s3-journey .j-arrived{animation:jSilkSway 6s ease-in-out infinite}
.fx-paused .j-petals i,.fx-paused .j-warrior-art,.fx-paused .j-curtain-target i{animation-play-state:paused!important}
@keyframes jPetalFall{0%{translate:0 -10px;rotate:0deg}50%{translate:-23px 450px;rotate:150deg}100%{translate:15px 900px;rotate:310deg}}
@keyframes jSilkSway{0%,100%{transform:rotate(-.65deg) translateY(0)}50%{transform:rotate(.65deg) translateY(-3px)}}
@keyframes jLightBreathe{0%,100%{opacity:.45;scale:.97}50%{opacity:1;scale:1.025}}
@media(prefers-reduced-motion:reduce){.s3-journey .j-petals{display:none}.s3-journey .j-warrior-art,.s3-journey .j-curtain-target i{animation:none!important}}

/* workshop-redesign.css */
/* Fourth act: a readable atelier, with the puppet above a compact tool tray. */
#theatre.workshop-mode .w-background,#theatre.workshop-mode .w-character,#theatre.workshop-mode .w-item img{filter:none!important}
#theatre.workshop-mode .w-room-shade{background:linear-gradient(#071d3599,transparent 24%,transparent 55%,#06182bc9)!important}
#theatre.workshop-mode .w-subject{opacity:1!important}
#theatre.workshop-mode .w-header{top:2.8%;left:20%;right:16%;text-shadow:0 2px 8px #071a30}
#theatre.workshop-mode .w-header>span{font-size:9px;letter-spacing:2px;color:#bce4f5!important}
#theatre.workshop-mode .w-header h1{font-size:16px;line-height:1.5;margin:5px 0;color:#f5ebf8!important;letter-spacing:1px}
#theatre.workshop-mode .w-progress{gap:5px}.w-progress i{flex:1!important;height:3px!important;border-radius:5px;background:#a1ccdf44!important}.w-progress i.done{background:#eea7cf!important}
.w-step-nav{position:absolute;z-index:16;top:13%;left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;color:#d8edfa;font:10px var(--serif);letter-spacing:1px}
#theatre.workshop-mode .w-step-nav button{border:1px solid #bde6fa66;border-radius:14px;background:#0d2c48c9;color:#d8edfa;padding:6px 10px;min-height:30px;font:10px var(--serif)}
#theatre.workshop-mode .w-paper{top:548px;left:16px;right:16px;border:1px solid #b8ddef99!important;border-radius:16px!important;background:linear-gradient(135deg,#eff7fffa,#fcecf8f7)!important;box-shadow:0 7px 28px #05182d44!important;color:#254c70!important;overflow:hidden}
#theatre.workshop-mode .w-primary,#theatre.workshop-mode .w-secondary{border:1px solid #b5d9ef!important;border-radius:20px!important;background:linear-gradient(110deg,#f5b7dd,#a8d6f0)!important;color:#153955!important;box-shadow:inset 0 1px #ffffff99,0 3px 15px #183a5733!important;font-size:13px;min-height:40px;letter-spacing:.5px}
#theatre.workshop-mode .w-secondary{background:#e6f0faee!important;color:#28516f!important}
#theatre.workshop-mode .w-text{border:0!important;color:#456b8c!important;background:transparent!important;min-height:32px}
#theatre.workshop-mode .w-caption{bottom:2.5%;left:6%;right:6%;min-height:8%;border:1px solid #b1d9ed77!important;border-radius:2px 14px!important;background:#0a213be8!important;color:#e7f4fe!important;padding:10px 12px;box-shadow:0 3px 16px #04182b33}
#theatre.workshop-mode .w-caption p{font-size:11px;line-height:1.9;letter-spacing:.4px;color:#e7f4fe!important;text-shadow:none}
#theatre.workshop-mode .w-category-tabs{padding:7px 8px 0;border-color:#afcade66!important}
#theatre.workshop-mode .w-category-tabs button,#theatre.workshop-mode .w-zone-tabs button{border-radius:12px!important;background:transparent!important;color:#52738e!important;font-size:11px;padding:6px 2px;min-height:32px}
#theatre.workshop-mode .w-category-tabs button.chosen,#theatre.workshop-mode .w-zone-tabs button.chosen{background:#d9eafa!important;color:#244f77!important;box-shadow:none!important}
#theatre.workshop-mode .w-item-row{min-height:94px;padding:9px;gap:7px}
#theatre.workshop-mode .w-item{border:1px solid #bad1e1!important;border-radius:10px!important;background:#ffffffb8!important;color:#36597b!important;padding:5px 3px}
#theatre.workshop-mode .w-item img{height:61px;width:72px}.w-item small{font-size:10px!important}
#theatre.workshop-mode .w-item.chosen{border:2px solid #dc88b6!important;padding:4px 2px;box-shadow:inset 0 0 16px #f5d0e744!important}
#theatre.workshop-mode .w-item i{background:#bb6098!important;color:white!important}
#theatre.workshop-mode .w-tools{padding:4px 9px 8px;gap:4px;flex-wrap:wrap}.w-tools .w-primary,.w-tools .w-secondary{font-size:11px!important;min-height:32px!important;padding:6px 10px!important}
#theatre.workshop-mode .w-tools .w-text{font-size:10px;padding:5px 6px}
#theatre.workshop-mode .w-zone-tabs{padding:5px 7px;border-color:#afcade66!important}
.w-palette-presets{display:flex;gap:8px;justify-content:center;padding:3px 5px 0}.w-palette-presets .w-text{font-size:10px;padding:3px 8px;min-height:24px!important;border:1px solid #b4cddd!important;border-radius:12px!important}
#theatre.workshop-mode .w-pigments{padding:5px 7px;gap:4px}#theatre.workshop-mode .w-pigments button{font-size:9px;color:#426582!important;gap:4px;padding:3px;min-width:45px}
#theatre.workshop-mode .w-pigments i{background:var(--pigment)!important;box-shadow:inset 0 0 0 2px white,0 1px 5px #2d5a8033!important;width:25px;height:25px}
#theatre.workshop-mode .w-pigments .chosen i{outline:2px solid #c775a6!important;outline-offset:2px}
#theatre.workshop-mode .w-pattern-row button{border:1px solid #b1cddf!important;background:#ffffffaa!important;color:#456b88!important;border-radius:10px;padding:8px 12px;min-width:62px}#theatre.workshop-mode .w-pattern-row button.chosen{background:#f3cce5!important;border-color:#d899bd!important;color:#633c68!important}
#theatre.workshop-mode .w-base-note{top:559px;left:35px;right:35px;justify-content:center;gap:14px}#theatre.workshop-mode .w-base-note span{font-size:11px;color:#e0f2fc!important;border-color:#b8dff577!important}
#theatre.workshop-mode .w-action-panel{top:675px;left:25px;right:25px}
#theatre.workshop-mode .w-joint-progress{top:578px;color:#c9e6f5!important}#theatre.workshop-mode .w-joint-progress .done{color:#edb3d6!important}#theatre.workshop-mode .w-joint-progress .current{color:#eff9ff!important}
#theatre.workshop-mode .w-joint,#theatre.workshop-mode .w-paint-point{background:#153c62de!important;border:1px solid #c6e7f9!important;color:#e5f7ff!important;box-shadow:0 0 16px #c2def655!important;width:34px;height:34px}
#theatre.workshop-mode .w-joint.confirmed{background:#ba77a4!important}#theatre.workshop-mode .w-paint-point.chosen{background:#bd73a3!important}
#theatre.workshop-mode .w-loupe{right:12px;top:196px;width:76px;height:76px;border-color:#e3b0d3!important;background:#e2f3fc!important}
#theatre.workshop-mode .w-backlight{background:radial-gradient(ellipse,#e6f7ffe0,#a5d9ed66 45%,transparent 72%)!important}
#theatre.workshop-mode .w-rod{border-color:#b8e7ff99!important;background:#b7dff51a!important}
#theatre.workshop-mode .w-rod-target{border-color:#f0b9dc!important;background:#dca6ce33!important;color:#eeceee!important}
#theatre.workshop-mode .w-rod-line path{stroke:#375976!important;filter:drop-shadow(1px 0 #e7b9d2)!important}.w-rod-grip{stroke:#b6d9e9!important}.w-rod-pin{fill:#deb780!important;stroke:#fbefd4!important}
#theatre.workshop-mode .w-light-control{position:absolute;top:555px;left:40px;right:40px;display:flex;align-items:center;gap:10px;background:#112e49df;padding:12px 14px;border:1px solid #abd4e977;border-radius:18px;color:#d5eefc;font:11px var(--serif);pointer-events:auto}.w-light-control input{min-width:0;flex:1;accent-color:#e796c5;touch-action:pan-x}.w-light-control output{width:32px}
#theatre.workshop-mode .w-result-tools{top:586px}.w-result-tools .w-primary{min-width:130px}
#theatre.workshop-mode .w-save-image{top:118px;height:450px;background:#112d48!important;border:1px solid #a9d8ef!important;border-radius:12px}
.w-save-close{position:absolute;z-index:32;right:30px;top:125px;border:1px solid #bfdfee;border-radius:15px;padding:6px 10px;background:#112d48e8;color:#edf7ff;pointer-events:auto;font:11px var(--serif)}
#theatre.workshop-mode button:focus-visible{outline:2px solid #f5add6!important;outline-offset:3px}
/* Twelve pieces in a true pink/blue wardrobe, and a playable joint lesson. */
.w-collection-note{margin:8px 12px 0;color:#6484a0;font:10px var(--serif);letter-spacing:1px}
#theatre.workshop-mode .w-wardrobe{top:528px}
#theatre.workshop-mode .w-wardrobe .w-item-row{min-height:91px}
#theatre.workshop-mode .w-joint-lesson{top:541px;padding:12px 14px 8px;box-sizing:border-box}
.w-joint-lesson-top{display:flex;justify-content:space-between;align-items:center;color:#6687a4;font:10px var(--serif);letter-spacing:2px}.w-joint-lesson-top b{color:#b55f98;font-weight:normal;letter-spacing:1px}
.w-joint-lesson h2{font:16px/1.4 var(--serif);letter-spacing:2px;margin:6px 0;color:#254d72}.w-joint-lesson p{font:10px/1.7 var(--serif);margin:4px 0 9px;min-height:34px;letter-spacing:.5px;color:#466982}
.w-joint-sequence{display:flex;gap:6px}.w-joint-sequence button{flex:1;border:1px solid #b8cfe1;background:#f8fcff;color:#6a879e;border-radius:10px;padding:5px 2px;font:13px var(--serif);min-height:41px}.w-joint-sequence small{display:block;font-size:8px;margin-top:3px;letter-spacing:1px}.w-joint-sequence button.current{border-color:#e39fc8;background:#fbe6f3;color:#925879;box-shadow:0 0 10px #e0b7d644}.w-joint-sequence button.done{border-color:#97c6dd;background:#deeffa;color:#325f7f}.w-joint-sequence button:disabled{opacity:.45;cursor:default}
#theatre.workshop-mode .w-joint-lesson .w-tools{padding:7px 0 0;flex-wrap:nowrap;gap:4px}.w-joint-lesson .w-tools .w-primary{font-size:10px!important;padding:6px 9px!important}
.w-joint-demo{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
#theatre.workshop-mode .w-joint.current{border:2px solid #ffc0e3!important;background:#bd75a5!important;box-shadow:0 0 0 6px #f2bed533,0 0 22px #ffc3e888!important}
#theatre.workshop-mode .w-joint.confirmed{background:#326a91!important;border-color:#bcdef5!important}
#theatre.workshop-mode .w-joint{width:34px;height:34px;font-size:11px}
.w-connection-pin{position:absolute;z-index:6;width:16px;height:16px;margin:-8px;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 35% 30%,#fff2cb,#d9b66f 32%,#87663b 70%);border:1px solid #ffe0aa;box-shadow:0 0 0 4px #f3b9da77,0 0 18px #b6e5ff}
/* Reference-led high-contrast accessory cards and readable controls. */
#theatre.workshop-mode .w-header h1{font-size:20px!important;font-weight:600;line-height:1.4}
#theatre.workshop-mode .w-header>span{font-size:11px!important;color:#d6f0ff!important}
#theatre.workshop-mode .w-step-nav{font-size:13px;top:13.2%}.w-step-nav button{font-size:12px!important}
#theatre.workshop-mode .w-caption{padding:10px 13px;min-height:83px;bottom:1.5%;background:#06192df5!important;border-color:#9ed3ee!important}
#theatre.workshop-mode .w-caption p{font:14px/1.65 var(--serif)!important;letter-spacing:.3px;color:#f0f9ff!important}
#theatre.workshop-mode .w-workshop[data-workshop-phase=WARDROBE] .w-subject{top:100px;left:85px;width:219px;height:365px}
#theatre.workshop-mode .w-wardrobe{top:484px!important;left:12px;right:12px;background:#071e35f7!important;border-color:#80badb!important;border-radius:12px!important}
.w-wardrobe .w-collection-note{display:none}
#theatre.workshop-mode .w-wardrobe .w-category-tabs{padding:6px 6px 4px;gap:4px;border-bottom:1px solid #6b9eb755!important}
#theatre.workshop-mode .w-wardrobe .w-category-tabs button{font-size:14px!important;font-weight:600;color:#c4e8fa!important;background:#102c47!important;min-height:34px;padding:5px 2px}
#theatre.workshop-mode .w-wardrobe .w-category-tabs button.chosen{color:#08213c!important;background:#90daf4!important}
#theatre.workshop-mode .w-wardrobe .w-category-tabs button>span{width:16px;height:16px}
#theatre.workshop-mode .w-wardrobe .w-item-row{padding:7px 7px 5px;gap:7px;min-height:109px;box-sizing:border-box}
#theatre.workshop-mode .w-wardrobe .w-item{background:#0a233d!important;border:1px solid #749dbc!important;border-radius:0!important;box-shadow:none!important;padding:4px 2px;min-height:99px}
#theatre.workshop-mode .w-wardrobe .w-item img{width:92px;height:61px;object-fit:contain}
#theatre.workshop-mode .w-wardrobe .w-item small{font:600 15px/1.5 var(--serif)!important;color:#d6ecfa!important;letter-spacing:0;white-space:nowrap}
#theatre.workshop-mode .w-wardrobe .w-item.chosen{border:2px solid #ff3ca7!important;padding:3px 1px;box-shadow:0 0 12px #ff38a72b!important}
#theatre.workshop-mode .w-wardrobe .w-item i{top:4px;right:4px;bottom:auto;width:20px;height:20px;font:17px/20px sans-serif;background:#f53ba5!important;color:#061d36!important}
#theatre.workshop-mode .w-wardrobe .w-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px 7px 7px}
#theatre.workshop-mode .w-wardrobe .w-tools button{font:600 13px/1.3 var(--serif)!important;padding:7px 5px!important;min-height:35px!important;border-radius:6px!important;letter-spacing:0}
#theatre.workshop-mode .w-wardrobe .w-tools .w-secondary{background:#123650!important;border-color:#779fbf!important;color:#e1f1ff!important}
#theatre.workshop-mode .w-wardrobe .w-tools [data-w-action=save]{background:#175876!important;color:#e9faff!important;border-color:#72d5ef!important}
#theatre.workshop-mode .w-joint-lesson{top:507px!important;padding:12px 13px 8px}
.w-joint-lesson h2{font-size:19px!important;font-weight:600}.w-joint-lesson p{font-size:13px!important;line-height:1.6;min-height:43px;color:#244d6c!important}.w-joint-lesson-top{font-size:12px}.w-joint-sequence small{font-size:11px}.w-joint-sequence button{font-size:16px}.w-joint-lesson .w-tools .w-primary{font-size:12px!important}
#theatre.workshop-mode .w-zone-tabs button{font-size:12px!important;color:#244d6e!important}.w-palette-presets .w-text{font-size:12px!important}
#theatre.workshop-mode .w-pigments button{font-size:12px!important}.w-pattern-row button{font-size:12px!important}
#theatre.workshop-mode .w-action-panel .w-primary{font-size:16px!important}.w-result-tools button{font-size:15px!important}
.w-save-status{position:absolute;left:20px;right:20px;top:455px;z-index:15;text-align:center;pointer-events:none;margin:0;color:#e7faff;text-shadow:0 1px 5px #031324;font:12px var(--serif)}
#theatre.workshop-mode .w-save-image{z-index:34;top:110px;height:520px;background:repeating-conic-gradient(#112c46 0 25%,#1b3a53 0 50%) 0/24px 24px!important}
#theatre.workshop-mode .w-save-close{z-index:35;top:116px;font-size:14px;min-height:34px}
#theatre.workshop-mode .w-save-image:after{content:'透明 PNG · 长按保存';font-size:14px;background:#061a30dd;padding:6px}
#theatre.workshop-mode .w-wardrobe .w-item small{font-size:17px!important}
#theatre.workshop-mode .w-wardrobe .w-tools button{font-size:15px!important}
#theatre.workshop-mode .w-step-label{background:#08213de8;border:1px solid #85bbda99;border-radius:14px;padding:6px 10px;color:#e6f7ff}
#theatre.workshop-mode .w-base-note span{font-size:14px!important;color:#effaff!important}
#theatre.workshop-mode .w-zone-tabs button{font-size:14px!important}
#theatre.workshop-mode .w-pigments button{font-size:13px!important}
#theatre.workshop-mode .w-pattern-row button{font-size:14px!important}
#theatre.workshop-mode .w-light-control{font-size:14px!important}
/* Guochao streetwear collection. */
#theatre.workshop-mode .w-workshop[data-workshop-phase=WARDROBE] .w-subject{left:92px;top:98px;width:207px;height:345px}
#theatre.workshop-mode .w-wardrobe{top:460px!important;border-radius:10px!important;border-color:#487490!important;background:linear-gradient(150deg,#09192bf7,#102b41fa)!important;box-shadow:0 10px 30px #03132488!important}
#theatre.workshop-mode .w-wardrobe button{font-family:'Microsoft YaHei','PingFang SC',sans-serif!important}
#theatre.workshop-mode .w-wardrobe .w-category-tabs{padding:6px;gap:4px;border:0!important}
#theatre.workshop-mode .w-wardrobe .w-category-tabs button{border-radius:5px!important;background:#16344c!important;color:#a9cee5!important;font-size:14px!important;min-height:33px;box-shadow:none!important;transition:background .18s,color .18s}
#theatre.workshop-mode .w-wardrobe .w-category-tabs button.chosen{background:#f54ba8!important;color:#07192d!important;box-shadow:inset 0 -3px #86e2ff!important}
.w-look-row{display:flex;align-items:center;gap:5px;padding:0 8px 3px;height:26px;box-sizing:border-box}.w-look-row>span{margin-right:auto;font:11px sans-serif;letter-spacing:1px;color:#abcadd}
#theatre.workshop-mode .w-wardrobe .w-look-row button{min-height:23px!important;padding:3px 10px!important;border:1px solid #477690!important;border-radius:3px!important;color:#c6eefd!important;background:#16384d!important;font:12px/1.2 sans-serif!important}
#theatre.workshop-mode .w-wardrobe .w-look-row button:hover{background:#2c5a72!important;border-color:#8be0fc!important}
#theatre.workshop-mode .w-wardrobe .w-item{position:relative;background:linear-gradient(145deg,#122c43,#0b2137)!important;border-color:#58798e!important;border-radius:5px!important;overflow:hidden}
#theatre.workshop-mode .w-wardrobe .w-item img{height:64px;width:96px;transition:scale .18s}
#theatre.workshop-mode .w-wardrobe .w-item:hover img{scale:1.06}
#theatre.workshop-mode .w-wardrobe .w-item small{font:600 16px/1.5 'Microsoft YaHei',sans-serif!important;color:#e3f3ff!important}
#theatre.workshop-mode .w-wardrobe .w-item.chosen{border-color:#ff4dac!important;background:linear-gradient(145deg,#213249,#13223a)!important;box-shadow:inset 0 0 16px #fa3b9c15!important}
.w-piece-number{position:absolute;left:5px;top:3px;font:10px/1.4 Arial,sans-serif;font-style:normal;letter-spacing:1px;color:#7296ad;pointer-events:none}
#theatre.workshop-mode .w-wardrobe .w-item.chosen .w-piece-number{color:#ffa3d2}
#theatre.workshop-mode .w-wardrobe .w-tools button{font-size:14px!important;border-radius:4px!important;font-weight:600}
#theatre.workshop-mode .w-wardrobe .w-tools .w-primary{background:#ed4ca4!important;color:#06192d!important;border-color:#ff8dca!important;box-shadow:none!important}
#theatre.workshop-mode .w-wardrobe .w-tools [data-w-action=save]{background:#59c7e6!important;color:#082338!important;border-color:#a1edff!important}
#theatre.workshop-mode .w-wardrobe .w-tools .w-secondary:not([data-w-action=save]){background:#153449!important;color:#cbe6f7!important}
#theatre.workshop-mode .w-workshop[data-workshop-phase=WARDROBE] .w-header h1{font:600 18px/1.4 'Microsoft YaHei',sans-serif!important;letter-spacing:.5px}
#theatre.workshop-mode .w-wardrobe .w-look-row button{font-size:14px!important;padding:2px 10px!important}
#theatre.workshop-mode .w-wardrobe{top:452px!important}
/* Three real control points and a jointed cutout preview. */
.w-articulated{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
#theatre.workshop-mode .w-rod{z-index:12!important;border:1px solid #9bdbf3!important;background:#102e49ed!important;border-radius:50%!important;color:#e1f5ff!important;font:10px/1.2 'Microsoft YaHei',sans-serif!important;box-shadow:0 0 0 4px #75ceef22!important;cursor:grab}
#theatre.workshop-mode .w-rod-main{border-color:#f19ecb!important;color:#ffc2e5!important}
#theatre.workshop-mode .w-rod-line [data-rod-line=main] path{stroke:#d5a367!important;stroke-width:3.5px}
#theatre.workshop-mode .w-rod-line [data-rod-line=left] path{stroke:#78c8e8!important;stroke-width:2.5px}
#theatre.workshop-mode .w-rod-line [data-rod-line=right] path{stroke:#e8a6d1!important;stroke-width:2.5px}
#theatre.workshop-mode .w-three-rod-panel{position:absolute;top:558px;left:20px;right:20px;pointer-events:auto}
.w-rod-install-list{display:flex;gap:7px}.w-rod-install-list button{flex:1;min-height:49px;border:1px solid #80c2e3;border-radius:8px;padding:6px 2px;background:#09233eed;color:#e2f3ff;font:13px 'Microsoft YaHei',sans-serif}.w-rod-install-list small{display:block;font-size:10px;margin-top:5px;color:#94bfd6}.w-rod-install-list button.installed{background:#215b77;border-color:#a8e6fa}.w-rod-install-list button.installed small{color:#cdeffc}
#theatre.workshop-mode .w-three-rod-panel .w-rod-tools{position:static;margin:9px 0;gap:9px}
#theatre.workshop-mode .w-three-rod-panel .w-action-panel{position:static;margin:8px 0}
#theatre.workshop-mode .w-three-rod-panel .w-action-panel button{font-size:14px!important;min-height:38px}
#theatre.workshop-mode .w-rod-target{font:10px 'Microsoft YaHei',sans-serif!important;width:32px;height:32px}
#theatre.workshop-mode .w-workshop[data-workshop-phase=RODS] .w-header h1{font-size:18px!important}
#theatre.workshop-mode .w-workshop[data-workshop-phase=PREVIEW] .w-rod-tools{top:615px;gap:6px;left:20px;right:20px}
#theatre.workshop-mode .w-workshop[data-workshop-phase=PREVIEW] .w-rod-tools button{padding:6px 10px;min-height:38px;font-size:12px}

/* Keep narration and controls in the same scaled coordinate space. Reserve a fixed footer. */
#theatre.workshop-mode .w-world>.w-caption{position:absolute;top:744px;bottom:auto;left:20px;right:20px;height:84px;min-height:0;max-height:84px;padding:10px 12px;box-sizing:border-box;display:block;overflow:auto;overscroll-behavior:contain;pointer-events:auto;touch-action:pan-y;scrollbar-width:thin;align-content:center}
#theatre.workshop-mode .w-world>.w-caption p{font:14px/1.6 var(--serif)!important;letter-spacing:0;white-space:pre-line;overflow-wrap:anywhere;margin:0}
#theatre.workshop-mode .w-workshop[data-workshop-phase=PREVIEW] .w-controls>.w-action-panel{top:675px;max-height:48px}

/* mc-selection-redesign.css */
/* A shadow-puppet casting stage in pink and blue. */
#theatre.mc-select-mode{background:#071c34!important}
#theatre.mc-select-mode .mc-selector{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#e6f6ff!important}
#theatre.mc-select-mode .mc-selection-stage{inset:0;background:radial-gradient(ellipse at 12% 19%,#9f508c4d,transparent 42%),radial-gradient(ellipse at 89% 43%,#2b94c848,transparent 42%),linear-gradient(155deg,#0c213b,#07182c 70%,#18374c)!important;filter:none!important;overflow:hidden}
.mc-selection-stage:before{content:'';position:absolute;inset:17% 5% 34%;border:1px solid #74b5d333;border-radius:48% 48% 10px 10px;box-shadow:inset 0 0 80px #315c7f28}
.mc-selection-stage:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 54px,#b2ddfa04 55px 56px);pointer-events:none}
.mc-selection-stage i{position:absolute;width:6px;height:6px;border-radius:50%;background:#f99fd3;box-shadow:0 0 15px #fa92cd99;left:11%;top:32%}.mc-selection-stage i:nth-child(2){left:88%;top:22%;background:#9bd9fa}.mc-selection-stage i:nth-child(3){left:81%;top:55%;width:4px;height:4px}
.mc-selection-heading{position:absolute;top:9.5%;left:7%;right:7%;z-index:5}.mc-selection-heading>span{font-size:11px;letter-spacing:3px;color:#a8d4ed}.mc-selection-heading h1{font:600 6.1cqw/1.45 var(--serif);letter-spacing:2px;margin:8px 0 5px;color:#f5e7f5;text-shadow:0 2px 12px #06172b}.mc-selection-heading p{font-size:13px;letter-spacing:1px;margin:0;color:#b6d4e8}
.mc-shadow-theatre{position:absolute;left:7%;right:7%;top:21%;height:42%;border-bottom:2px solid #8fc8e64d;pointer-events:none}
.mc-silk-light{position:absolute;left:1%;width:65%;height:100%;background:radial-gradient(ellipse,#bceaff45,#6ba9ca17 50%,transparent 72%);filter:blur(9px)}
.mc-shadow-theatre>i{position:absolute;left:2%;right:2%;bottom:-6px;height:1px;background:linear-gradient(90deg,#e890c9,transparent 65%,#71b8db)}
.mc-feature-figure{position:absolute;z-index:3;top:21%;height:42%;left:7%;width:59%;pointer-events:none}
#theatre.mc-select-mode .mc-feature-figure img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(9px 5px 0 #020d1c55)!important;display:block}
.mc-feature-copy{position:absolute;z-index:4;top:29%;left:67%;right:7%;text-align:left;pointer-events:none}.mc-feature-label{font-size:10px;letter-spacing:2px;color:#a0c8e2}.mc-feature-copy h2{font:600 6.9cqw/1.5 var(--serif);letter-spacing:3px;margin:5px 0 8px;color:#f3bcdd}.mc-feature-tag{display:block;font-size:11px;color:#a4e3fb;letter-spacing:1px;line-height:1.8}.mc-feature-copy p{font:14px/1.9 var(--serif);color:#d2e7f3;letter-spacing:1px;margin:15px 0 0}
#theatre.mc-select-mode .mc-select-grid{left:6%;top:65%;width:88%;height:12%;padding:0;background:none!important;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr;gap:7px;z-index:6}
#theatre.mc-select-mode .mc-select-card{border:1px solid #6c99b96b!important;border-radius:8px!important;background:linear-gradient(145deg,#153450,#0b253f)!important;box-shadow:none!important;overflow:hidden;padding:0;transition:border-color .18s,background .18s,translate .18s;transform:none}
#theatre.mc-select-mode .mc-select-card>img{left:8%;top:2px;width:84%;height:67%;object-fit:contain;object-position:center;filter:none!important;border-radius:0;opacity:.9}
#theatre.mc-select-mode .mc-select-name{writing-mode:horizontal-tb;left:0;right:0;top:auto;bottom:5px;padding:0;border:0!important;background:none!important;border-radius:0;letter-spacing:1px;font:600 15px/1.4 var(--serif);color:#d6edf9!important;text-align:center}
#theatre.mc-select-mode .mc-select-tag{display:none}
#theatre.mc-select-mode .mc-select-card.chosen{border:2px solid #f28dc9!important;background:linear-gradient(145deg,#313954,#152e49)!important;box-shadow:0 0 16px #f58dca22!important;translate:0 -2px;transform:none}
#theatre.mc-select-mode .mc-select-card.chosen>img{opacity:1}.mc-select-index{position:absolute;z-index:2;left:4px;top:3px;font:9px Arial,sans-serif;letter-spacing:1px;color:#7ca7c3}
#theatre.mc-select-mode .mc-select-check{right:3px;top:3px;bottom:auto;width:17px;height:17px;border:0!important;background:#f093ca!important;color:#102840!important;box-shadow:none!important;font:600 13px/17px sans-serif}
#theatre.mc-select-mode .mc-select-card:focus-visible{outline:2px solid #b1e9ff;outline-offset:3px}
#theatre.mc-select-mode .mc-select-partner{position:absolute;z-index:6;left:6%;top:79%;width:88%;height:8%;display:flex;gap:10px;align-items:center;box-sizing:border-box;padding:8px 10px;background:#0d2a44e8;border:1px solid #74b2d25c;border-radius:10px;pointer-events:auto;min-height:55px}
#theatre.mc-select-mode .mc-own-puppet{position:relative;left:auto;top:auto;flex:0 0 35px;width:35px;height:44px;overflow:hidden;border:1px solid #80bedb!important;border-radius:6px;background:#bcdff422!important}
.mc-pair-mark{flex:0 0 35px;font:12px/1.6 var(--serif);color:#edafd4;text-align:center;border-right:1px solid #82b7cd55;padding-right:9px}
.mc-partner-copy{min-width:0;flex:1}.mc-partner-copy strong{display:block;color:#9ad8f2;font:11px/1.3 sans-serif;letter-spacing:1px}
#theatre.mc-select-mode .mc-select-partner p{position:static;left:auto;right:auto;top:auto;padding:0;margin:4px 0 0;clip-path:none!important;background:none!important;color:#e2f1fa!important;font:12px/1.5 var(--serif);text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mc-audition{flex:0 0 auto;border:1px solid #9bcce17a;border-radius:16px;padding:7px 9px;background:#173e58;color:#c9efff;font:11px/1.3 sans-serif;cursor:pointer;min-height:34px}.mc-audition[aria-pressed=true]{border-color:#efa3d2;color:#ffcce9;background:#3e3551}
#theatre.mc-select-mode .mc-select-confirm{left:6%;top:89%;width:88%;height:6.8%;min-height:45px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;box-sizing:border-box;background:linear-gradient(105deg,#f3a9d3,#b4dbf5)!important;border:1px solid #f7dbed!important;border-radius:10px!important;box-shadow:0 5px 20px #04122255!important;color:#0e2b49!important;font:600 17px/1.4 'Microsoft YaHei',sans-serif;letter-spacing:1px}
#theatre.mc-select-mode .mc-select-confirm span{font:inherit;margin:0}.mc-select-confirm span:last-child{font-size:25px!important}
#theatre.mc-select-mode .sound-btn{background:#0a2743eb!important;border:1px solid #80bedb88!important;color:#cceeff!important}
#theatre.mc-select-mode .mc-select-confirm:hover{filter:brightness(1.06)}
@media(prefers-reduced-motion:reduce){#theatre.mc-select-mode .mc-select-card{transition:none}}
/* Light leather faces against the blue silk projection screen. */
#theatre.mc-select-mode .mc-selection-stage{background:#0c2541 url('assets/poets-pink-blue/stage.webp') center/100% 100% no-repeat!important}
#theatre.mc-select-mode .mc-selection-stage:before,#theatre.mc-select-mode .mc-selection-stage:after,#theatre.mc-select-mode .mc-selection-stage i,.mc-silk-light{display:none}
#theatre.mc-select-mode .mc-feature-copy{padding:10px 5px;background:#e6f5ffb8;border-radius:10px}
#theatre.mc-select-mode .mc-feature-label{color:#365575}
#theatre.mc-select-mode .mc-feature-copy h2{color:#8d346d;text-shadow:0 1px #fff}
#theatre.mc-select-mode .mc-feature-tag{color:#235c83}
#theatre.mc-select-mode .mc-feature-copy p{color:#183c5c}

/* rap-stage-upgrade.css */
#theatre.rap-mode{width:min(100vw,calc(100dvh * 390 / 844),480px);background:#071d36}
#theatre.rap-mode .rap-scene{--accent:#f7a3d3;--wash:#8bd7ff;--heat:0;color:#e8f6ff;font-family:'Microsoft YaHei',sans-serif}
#theatre.rap-mode .rap-background{content:url('assets/poets-pink-blue/stage.webp');filter:none!important;opacity:.6}
.concert-scenery{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:linear-gradient(#08254460 10%,transparent 28%,#08234025 50%,#071a35 69%);z-index:1}
.concert-moon{position:absolute;top:29%;left:42%;width:19%;aspect-ratio:1;border-radius:50%;background:#effaff;box-shadow:0 0 35px #c9edffbd;opacity:.8;transition:background .6s,transform .6s}
.concert-mountains{position:absolute;left:0;right:0;top:38%;height:23%;background:linear-gradient(145deg,#76bed8,#193e69);clip-path:polygon(0 65%,15% 22%,28% 55%,43% 4%,65% 70%,79% 25%,100% 65%,100% 100%,0 100%);opacity:.35;transition:opacity .6s}
.concert-river{position:absolute;left:0;right:0;top:56%;height:11%;background:repeating-linear-gradient(178deg,transparent 0 10px,#9ce6ff5c 11px 12px,transparent 13px 20px);transform:perspective(100px) rotateX(25deg);opacity:.4}
.concert-blossoms i{position:absolute;color:#ffb2dc;font-size:22px;left:calc(var(--n)*14%);top:calc(27% + mod(var(--n),3)*8%);opacity:0;animation:concertPetal 10s calc(var(--n)*-1.3s) linear infinite;transition:opacity .6s}
.concert-beam{position:absolute;top:22%;height:43%;width:70%;background:linear-gradient(#9ce7ff44,transparent);clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);transform-origin:50% 0;mix-blend-mode:screen}
.beam-left{left:-24%;rotate:-18deg;animation:concertBeam 8s ease-in-out infinite alternate}.beam-right{right:-24%;rotate:18deg;filter:hue-rotate(80deg);animation:concertBeam 9s ease-in-out infinite alternate-reverse}
.concert-proscenium{position:absolute;inset:26% 6% 36%;border-left:1px solid #9cddff66;border-right:1px solid #f6a3d666;border-radius:42% 42% 0 0;box-shadow:inset 8px 0 30px #78d2ff1c,inset -8px 0 30px #f6a3d61c}
.concert-deck{position:absolute;top:61%;height:5%;left:1%;right:1%;border-radius:50%;background:linear-gradient(#badbff33,#d979c755,#0c2545);border-top:1px solid #e4b0e8;box-shadow:0 8px 25px #ee9bd433}
.concert-audience{position:absolute;top:65%;left:3%;right:3%;height:4%;display:flex;justify-content:space-around;align-items:flex-end}.concert-audience i{display:block;width:5%;height:66%;border-radius:40% 40% 5% 5%;background:#143a5c;position:relative;box-shadow:0 -4px 12px #82d4ff22}.concert-audience i:before{content:'';position:absolute;left:20%;top:-36%;width:60%;aspect-ratio:1;border-radius:50%;background:#1c476c}.concert-audience i:nth-child(2n){height:85%;background:#4a355c}.concert-audience i:nth-child(3n):after{content:'';position:absolute;width:2px;height:13px;right:-3px;top:-9px;background:var(--accent);box-shadow:0 0 calc(4px + var(--heat)*10px) var(--accent);rotate:18deg}
#theatre.rap-mode .rap-heading{top:3.7%;left:15%;right:19%;height:4%;z-index:6}#theatre.rap-mode .rap-heading h1{font:600 15px/1.4 'Microsoft YaHei',sans-serif;letter-spacing:1px;color:#e3f5ff}
.concert-themes{position:absolute;z-index:8;top:9%;left:7%;right:7%;display:flex;gap:6px}.concert-themes button{flex:1;border:1px solid #8fc8e35c;border-radius:20px;background:#0d2a44d9;color:#d4ecfc;font:12px/1.2 'Microsoft YaHei',sans-serif;padding:8px 2px;cursor:pointer}.concert-themes button[aria-pressed=true]{background:#e8b8de;color:#122e50;border-color:#ffd7ef}
.concert-hud{position:absolute;z-index:6;top:14.5%;left:8%;right:8%;display:flex;justify-content:space-between;color:#a9d8ed;font-size:10px;letter-spacing:1px}.concert-heat{font-size:13px;color:#ffc7e5}
.concert-steps{position:absolute;z-index:8;top:69.5%;left:7%;right:7%;display:flex;gap:6px;justify-content:space-between;font-size:10px;color:#749db8}.concert-steps span{border-top:2px solid #547a9559;padding-top:6px;flex:1;text-align:center}.concert-steps .active{color:#fbb8df;border-color:#f6a0cf}.concert-steps .done{color:#9cddf7;border-color:#78b9de}
#theatre.rap-mode .rap-verse{top:18%;height:15%;left:7%;right:7%;background:none;z-index:5;padding:0;text-shadow:0 1px 8px #effaff}#theatre.rap-mode .rap-credit{color:#315a7e;font:11px/1.4 'Microsoft YaHei',sans-serif;min-height:0}#theatre.rap-mode .rap-current{font:600 20px/1.65 var(--serif);color:#183b60;min-height:0;max-height:21cqw;margin:8px 0 0;padding:0}#theatre.rap-mode .rap-current strong{color:#984a7a}
#theatre.rap-mode .rap-performer{top:30%;height:32%;z-index:3}#theatre.rap-mode .rap-lamp{top:32%;height:31%;z-index:2}
#theatre.rap-mode .rap-interaction{top:74%;bottom:2.2%;left:5%;right:5%;gap:7px;padding:10px 12px;background:linear-gradient(145deg,#102c4bef,#0b203bee);border:1px solid #78a9cb77;border-radius:13px;box-shadow:0 10px 22px #04102155;z-index:9;overflow:auto;scrollbar-width:thin}
#theatre.rap-mode .rap-caption{color:#def2ff;font:12px/1.55 'Microsoft YaHei',sans-serif;min-height:20px;max-height:none;margin:0}#theatre.rap-mode .rap-controls{gap:7px;flex:1;justify-content:center}#theatre.rap-mode .rap-controls button{background:#23476b;border:1px solid #97cee576;border-radius:8px;color:#e8f8ff;font:600 12px/1.5 'Microsoft YaHei',sans-serif;min-height:35px;padding:7px 5px}#theatre.rap-mode .rap-controls>button:last-child{background:linear-gradient(110deg,#f4acd6,#b4e2f9);color:#173b5e;border-color:#f6d2e8}#theatre.rap-mode .rap-topics button{background:#1b3c60;color:#eff7ff;min-height:49px}#theatre.rap-mode .rap-topics b{font-size:13px}#theatre.rap-mode .rap-topics small{font-size:9px;color:#b3d6ec}#theatre.rap-mode .rap-topics button.selected{background:#524467;border-color:#f7abd9}
#theatre.rap-mode .rap-quote{top:19%;left:9%;right:9%;background:#eff6ffed;color:#284b70;border:1px solid #e2a5d3;border-radius:10px;padding:14px 12px;z-index:7}#theatre.rap-mode .rap-quote blockquote{font-size:20px;margin:12px 0;line-height:1.6}#theatre.rap-mode .rap-quote cite{font-size:11px}#theatre.rap-mode .rap-progress{margin:0 10%;flex-shrink:0}
.concert-beat-options{display:flex;gap:6px;justify-content:center}.concert-beat-options button{flex:1;min-height:27px!important;padding:3px!important;font-size:10px!important}.concert-beat-options button[aria-pressed=true]{border-color:#f6a6d8!important;color:#ffd0ea!important;background:#483c60!important}.concert-beat-track{position:relative;height:16px;border-bottom:1px solid #77afce66;margin:1px 4px 0}.concert-beat-track>i{position:absolute;width:9px;height:9px;border-radius:50%;background:#abebff;left:10%;top:3px;box-shadow:0 0 12px #78d9ff;translate:-50% 0}.concert-beat-target{position:absolute;left:10%;top:-1px;width:16px;height:16px;border:2px solid #f6a8d6;border-radius:50%;translate:-50% 0}.concert-beat-meta{display:flex;justify-content:space-between;gap:3px;font-size:9px;color:#aed8ed}.concert-beat-count{white-space:nowrap}.concert-beat-judge{color:#f8c0df}
#theatre.rap-mode .concert-pad{min-height:38px;font-size:13px;touch-action:manipulation}.concert-pad.hit{animation:concertHit .25s ease-out}.concert-result{display:flex;align-items:center;gap:12px;padding:6px;color:#d6edff}.concert-result b{font-size:25px;color:#ffb4df;white-space:nowrap}.concert-result span{font-size:12px;line-height:1.7}
.concert-rhyme-line{font:600 16px/1.65 var(--serif);margin:0;text-align:center;color:#f8e5f3}.concert-rhyme-hint{font:11px/1.5 'Microsoft YaHei',sans-serif;color:#abcfe9;margin:0;text-align:center}#theatre.rap-mode .rap-controls .rap-choices button{min-height:37px}#theatre.rap-mode .sound-btn{background:#102d4be8;color:#d9f3ff;border-color:#7cadcf77}#theatre.rap-mode button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.rap-scene[data-scenery=blossom]{--accent:#ff91cb;--wash:#edb2df}.rap-scene[data-scenery=blossom] .concert-blossoms i{opacity:.7}.rap-scene[data-scenery=blossom] .concert-moon{background:#fce9f8;transform:translateX(-50%) scale(.8)}.rap-scene[data-scenery=blossom] .concert-mountains{opacity:.17}.rap-scene[data-scenery=blossom] .concert-scenery{background:linear-gradient(#2525443d,#e99dc92e 48%,#111f3e 69%)}
.rap-scene[data-scenery=river] .concert-mountains{opacity:.65}.rap-scene[data-scenery=river] .concert-river{opacity:.85}.rap-scene[data-scenery=river] .concert-moon{transform:translate(70%,-8%) scale(.65);opacity:.65}.rap-scene[data-scenery=river]{--accent:#8edfff}
.concert-pulse .concert-deck{animation:concertDeck .35s ease-out}.concert-pulse .concert-audience i:nth-child(odd){animation:concertAudience .3s ease-out}
@keyframes concertBeam{to{transform:rotate(16deg);opacity:.5}}@keyframes concertPetal{from{translate:10px -20px;rotate:0deg}to{translate:-35px 200px;rotate:120deg}}@keyframes concertHit{50%{scale:.97;box-shadow:0 0 22px #f5a6d788}}@keyframes concertDeck{40%{box-shadow:0 0 35px #ffa8dbaa}}@keyframes concertAudience{50%{translate:0 -3px}}
@media(prefers-reduced-motion:reduce){.concert-scenery *,.concert-pad.hit{animation:none!important;transition:none!important}}
@media(max-height:620px){#theatre.rap-mode .rap-caption{font-size:10px}#theatre.rap-mode .rap-controls button{min-height:29px;padding:4px}#theatre.rap-mode .rap-interaction{padding:7px}.concert-rhyme-line{font-size:13px}.concert-beat-meta{font-size:8px}}
.concert-beat-target{left:50%}
#theatre.fx-paused .concert-scenery *{animation:none!important}

/* rap-readable.css */
/* Spacious stage, opaque text surfaces, original performer colours. */
#theatre.rap-mode{width:min(100vw,calc(100dvh * 9 / 16),500px);aspect-ratio:9/16;background:#071426}
#theatre.rap-mode .rap-scene{background:radial-gradient(ellipse at 15% 33%,#a65b9766,transparent 43%),radial-gradient(ellipse at 90% 36%,#2887b26b,transparent 44%),linear-gradient(#0b1930,#142b49 56%,#071426 72%);color:#fff}
#theatre.rap-mode .rap-background{display:none}
#theatre.rap-mode .concert-scenery{background:linear-gradient(90deg,#081323a8,transparent 20% 80%,#081323a8);inset:16% 0 35%}
#theatre.rap-mode .concert-proscenium{inset:2% 5% 8%;border:1px solid #b2d8f07a;border-radius:44% 44% 3px 3px;box-shadow:inset 12px 0 40px #e985c020,inset -12px 0 40px #6fceff22}
#theatre.rap-mode .concert-moon{top:24%;left:38%;width:24%;background:#dcefff;opacity:.65;box-shadow:0 0 60px #9acfff66}
#theatre.rap-mode .concert-mountains{top:45%;height:45%;opacity:.3;background:linear-gradient(#78a9cc,#19344e)}
#theatre.rap-mode .concert-river{top:77%;height:20%;opacity:.4}
#theatre.rap-mode .concert-blossoms i{top:15%}
#theatre.rap-mode .concert-beam{top:0;height:100%;opacity:.55}
#theatre.rap-mode .concert-deck{top:87%;height:8%;left:2%;right:2%;border-top:1px solid #e7b7dc;background:linear-gradient(#35608688,#3f3459,#0b1c34);box-shadow:0 0 30px #79bfee24}
#theatre.rap-mode .concert-audience{top:95%;height:6%;opacity:.8}
#theatre.rap-mode .rap-heading{left:16%;right:17%;top:3%;height:5%;justify-content:center}
#theatre.rap-mode .rap-heading h1{font:600 18px/1.4 'Microsoft YaHei',sans-serif;letter-spacing:2px;color:#fff;text-shadow:none;white-space:nowrap}
#theatre.rap-mode .topbar{top:2.8%;right:4%}
#theatre.rap-mode .sound-btn{width:36px;height:36px;background:#142d49!important;border:1px solid #8cb6d5!important;color:#fff!important}
#theatre.rap-mode .concert-themes{top:9.5%;left:5%;right:5%;gap:8px}
#theatre.rap-mode .concert-themes button{font-size:14px;font-weight:600;min-height:37px;padding:7px 2px;background:#16334e;border-color:#648aa9;color:#eef9ff}
#theatre.rap-mode .concert-themes button[aria-pressed=true]{background:#f5b5d9;color:#11283f;border-color:#ffd6ed}
#theatre.rap-mode .concert-hud{top:15.3%;left:7%;right:7%;color:#d3eaff;font-size:12px;letter-spacing:1px}
#theatre.rap-mode .concert-heat{font-size:15px;color:#ffb9e0}
#theatre.rap-mode .rap-verse{top:20%;height:auto;min-height:13%;left:6%;right:6%;padding:10px 12px;background:#f2f7fe!important;border:1px solid #c4e1f2;border-radius:12px;box-shadow:0 6px 20px #030d1f55;text-shadow:none;box-sizing:border-box}
#theatre.rap-mode .rap-scene:not(.has-verse) .rap-verse{display:none}
#theatre.rap-mode .rap-credit{font:12px/1.5 'Microsoft YaHei',sans-serif;color:#365b7b;min-height:0}
#theatre.rap-mode .rap-current{font:600 21px/1.55 'Microsoft YaHei',sans-serif;color:#132e4a;max-height:none;min-height:0;margin:5px 0 0;padding:0;letter-spacing:.4px}
#theatre.rap-mode .rap-current strong{color:#8e3469}
#theatre.rap-mode .rap-performer{top:32%;height:30%;filter:none!important}
#theatre.rap-mode .rap-poet .rap-art,#theatre.rap-mode .rap-user .rap-art,#theatre.rap-mode .rap-custom-puppet{filter:none!important;opacity:1!important;mix-blend-mode:normal;scale:.8;transform-origin:50% 100%}
#theatre.rap-mode .rap-lamp{display:none}
#theatre.rap-mode .concert-steps{top:63.5%;left:6%;right:6%;font-size:12px;gap:8px;color:#b2cce0}
#theatre.rap-mode .concert-steps span{border-color:#3b5873;padding-top:7px}
#theatre.rap-mode .concert-steps .active{color:#ffc2e3;border-color:#ff9dd4}
#theatre.rap-mode .concert-steps .done{color:#b1e9ff;border-color:#8ed9fa}
#theatre.rap-mode .rap-interaction{top:68%;bottom:2%;left:4%;right:4%;padding:12px 14px;gap:9px;background:#10263e;border:1px solid #6c99ba;border-radius:16px;box-shadow:0 8px 25px #020b1855;overflow:auto}
#theatre.rap-mode .rap-caption{font:500 14px/1.65 'Microsoft YaHei',sans-serif;color:#f3f9ff;min-height:23px;max-height:none;text-align:left;justify-content:flex-start;text-wrap:pretty;margin:0}
#theatre.rap-mode .rap-controls{gap:9px;justify-content:center}
#theatre.rap-mode .rap-controls button{font:600 15px/1.4 'Microsoft YaHei',sans-serif;color:#f5fbff;background:#234965;border:1px solid #85b9d7;padding:10px 6px;min-height:43px;border-radius:9px;opacity:1}
#theatre.rap-mode .rap-controls>button:last-child{background:linear-gradient(100deg,#f8b6db,#bbdef8);border-color:#ffdaee;color:#122d47;font-size:16px}
#theatre.rap-mode .rap-controls button:disabled{opacity:.55}
#theatre.rap-mode .rap-topics button{min-height:62px;background:#1c3a56;color:#fff}
#theatre.rap-mode .rap-topics b{font-size:16px}
#theatre.rap-mode .rap-topics small{white-space:normal;font-size:11px;line-height:1.5;color:#d4eafa;opacity:1}
#theatre.rap-mode .rap-topics button.selected{background:#493e61;border:2px solid #ffb0dd;box-shadow:none}
#theatre.rap-mode .concert-beat-options button{font-size:12px!important;min-height:32px!important;padding:5px!important}
#theatre.rap-mode .concert-beat-meta{font-size:11px;color:#d4ebfa;align-items:center}
#theatre.rap-mode .concert-beat-judge{color:#ffd2ea}
#theatre.rap-mode .concert-beat-track{height:20px;margin:1px 5px}
#theatre.rap-mode .concert-pad{font-size:16px;min-height:43px}
#theatre.rap-mode .concert-rhyme-line{font:600 18px/1.6 'Microsoft YaHei',sans-serif;color:#fff4fc;text-align:left}
#theatre.rap-mode .concert-rhyme-hint{font:12px/1.6 'Microsoft YaHei',sans-serif;color:#d7eafb;text-align:left}
#theatre.rap-mode .concert-result span{font-size:14px;color:#e4f3ff}
#theatre.rap-mode .rap-quote{top:20%;left:6%;right:6%;background:#f5f8ff;border:1px solid #f1aed6;color:#163551;box-shadow:0 8px 30px #020d2555;padding:16px}
#theatre.rap-mode .rap-quote small,#theatre.rap-mode .rap-quote cite{font-size:13px;color:#405774}
#theatre.rap-mode .rap-quote blockquote{font-size:22px;line-height:1.6}
#theatre.rap-mode .rap-scene[data-scenery=blossom] .concert-scenery{background:radial-gradient(ellipse at 25% 25%,#c25b963b,transparent 60%)}
#theatre.rap-mode .rap-scene[data-scenery=river] .concert-scenery{background:linear-gradient(#12365b55,#1d638d33)}
.concert-guide{display:flex;gap:10px;margin:8px 0 15px;justify-content:space-between}.concert-guide span{flex:1;font-size:13px;color:#e4f4ff;text-align:center}.concert-guide b{display:block;font:600 19px/1.5 'Microsoft YaHei',sans-serif;color:#f2b4db;margin-bottom:5px}
@media(max-height:600px){#theatre.rap-mode .rap-interaction{top:66%;bottom:1.5%}#theatre.rap-mode .concert-steps{top:60%}#theatre.rap-mode .rap-performer{top:29%;height:29%}#theatre.rap-mode .rap-art{scale:.65!important}#theatre.rap-mode .rap-caption{font-size:13px}#theatre.rap-mode .rap-controls button{min-height:39px;padding:8px 5px}#theatre.rap-mode .concert-rhyme-line{font-size:16px}}

/* rap-duet.css */
/* Give dialogue a dedicated strip above the performance space. */
#theatre.rap-mode .rap-background{display:block;content:url('assets/rap/hiphop-blue-pink.webp');object-fit:fill;opacity:1;filter:none!important}
#theatre.rap-mode .rap-scene{background:#0c2141}
#theatre.rap-mode .concert-scenery{inset:16% 0 35%;background:none!important}
#theatre.rap-mode .concert-proscenium,#theatre.rap-mode .concert-moon,#theatre.rap-mode .concert-mountains,#theatre.rap-mode .concert-river{display:none}
#theatre.rap-mode .concert-deck{opacity:.3}
#theatre.rap-mode .concert-beam{opacity:.28}
#theatre.rap-mode .concert-themes button{font-size:12px;min-height:32px;font-weight:500;padding:6px}
#theatre.rap-mode .rap-heading h1{font-size:16px;letter-spacing:1px}
#theatre.rap-mode .concert-hud{font-size:11px;top:15%}
#theatre.rap-mode .rap-verse{top:19%;left:6%;right:6%;height:12%;min-height:0;max-height:12%;padding:8px 12px;background:#0c2644f2!important;border:1px solid #9ccde688;border-radius:9px;box-shadow:0 3px 15px #04112733;overflow:auto;scrollbar-width:thin;text-align:left}
#theatre.rap-mode .rap-credit{font-size:11px;line-height:1.4;color:#a5dff7}
#theatre.rap-mode .rap-current{font:500 16px/1.55 'Microsoft YaHei',sans-serif;letter-spacing:.3px;color:#fff1fb;margin:4px 0 0;min-height:0;max-height:none}
#theatre.rap-mode .rap-current strong{color:#ffb3db;font-weight:600}
#theatre.rap-mode .rap-performer{top:35%;height:27%;width:44%}
#theatre.rap-mode .rap-art{scale:.70!important;transform-origin:50% 100%}
#theatre.rap-mode .rap-user{left:3%}#theatre.rap-mode .rap-poet{left:52%}
#theatre.rap-mode .rap-performer:after{position:absolute;left:0;right:0;bottom:-16px;text-align:center;font:11px/1.4 'Microsoft YaHei',sans-serif;letter-spacing:1px;color:#c6e9ff;text-shadow:0 1px 4px #06162d}
#theatre.rap-mode .rap-user:after{content:'你的皮影'}#theatre.rap-mode .rap-poet:after{content:'诗人搭档'}
#theatre.rap-mode .rap-scene[data-speaker=poet] .rap-poet:after{content:'♪ 诗人接句';color:#ffbee1}
#theatre.rap-mode .rap-scene[data-speaker=user] .rap-user:after{content:'♪ 你来接句';color:#b6ebff}
#theatre.rap-mode .performing .rap-poet .rap-sway{animation:none}
#theatre.rap-mode .rap-scene[data-speaker=poet] .rap-poet .rap-art{animation:duetBeat 1.15s ease-in-out infinite}
#theatre.rap-mode .rap-scene[data-speaker=user] .rap-user .rap-art{animation:duetBeat 1.4s ease-in-out 2}
#theatre.rap-mode .concert-steps{top:65%;font-size:10px;gap:7px}
#theatre.rap-mode .rap-interaction{top:70%;bottom:2%;padding:11px 13px;gap:7px;border-radius:12px;background:#10263ff5}
#theatre.rap-mode .rap-caption{font-size:13px;line-height:1.6;min-height:20px}
#theatre.rap-mode .rap-controls button{font-size:14px;min-height:38px;padding:8px 5px}
#theatre.rap-mode .rap-controls>button:last-child,#theatre.rap-mode .concert-pad{font-size:14px;min-height:39px}
#theatre.rap-mode .rap-topics b{font-size:14px}#theatre.rap-mode .rap-topics small{font-size:10px}
#theatre.rap-mode .concert-rhyme-line{font-size:16px;line-height:1.6}
#theatre.rap-mode .concert-rhyme-hint{font-size:11px}
#theatre.rap-mode .rap-quote{top:18.5%;left:6%;right:6%;height:14%;box-sizing:border-box;overflow:auto;padding:8px 12px;text-align:left;background:#102a46f5;color:#fff3fb;border-radius:9px}
#theatre.rap-mode .rap-quote small,#theatre.rap-mode .rap-quote cite{font-size:10px;color:#b7e3f6}
#theatre.rap-mode .rap-quote blockquote{font-size:16px;line-height:1.5;margin:4px 0}
#theatre.rap-mode .concert-guide{margin:4px 0 8px}#theatre.rap-mode .concert-guide b{font-size:17px}#theatre.rap-mode .concert-guide span{font-size:12px}
@keyframes duetBeat{0%,100%{transform:rotate(-.7deg) translateY(0)}50%{transform:rotate(.7deg) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){#theatre.rap-mode .rap-art{animation:none!important}}
#theatre.fx-paused .rap-art{animation:none!important}
@media(max-height:600px){#theatre.rap-mode .rap-verse{top:19%;height:13%;max-height:13%}#theatre.rap-mode .rap-performer{top:35%;height:26%}#theatre.rap-mode .rap-art{scale:.65!important}#theatre.rap-mode .rap-interaction{top:69%;bottom:1.5%}#theatre.rap-mode .rap-current{font-size:14px}#theatre.rap-mode .rap-controls button{font-size:13px;min-height:35px}}

/* rap-readable-controls.css */
/* Keep legible UI separate from the full-body performance area. */
#theatre.rap-mode .concert-themes button{font-size:14px;min-height:35px;font-weight:600}
#theatre.rap-mode .rap-heading h1{font-size:17px}
#theatre.rap-mode .concert-hud{font-size:13px;color:#fff;text-shadow:0 1px 4px #07182c}
#theatre.rap-mode .concert-heat{font-size:15px}
#theatre.rap-mode .rap-credit{font-size:13px;color:#b9eaff}
#theatre.rap-mode .rap-current{font-size:17px;line-height:1.5}
#theatre.rap-mode .rap-verse{top:19%;height:12%;max-height:12%;padding:7px 11px}
#theatre.rap-mode .rap-performer:after{font-size:13px;font-weight:600;bottom:-19px;color:#e0f5ff}
#theatre.rap-mode .concert-steps{font-size:12px;top:65%;gap:6px}
#theatre.rap-mode .rap-interaction{top:69%;bottom:1.5%;padding:10px 12px;gap:7px;background:#0c243dfc}
#theatre.rap-mode .rap-caption{font-size:15px;line-height:1.5;color:#fff}
#theatre.rap-mode .rap-controls{gap:7px;flex:1;justify-content:center}
#theatre.rap-mode .rap-controls button,#theatre.rap-mode .rap-controls>button:last-child{font-size:16px;line-height:1.35;min-height:40px;padding:8px 6px}
#theatre.rap-mode .rap-controls .duet-demo{background:#193e5d;color:#c5efff;border:1px solid #88c4e4;font-size:14px;min-height:35px;padding:7px}
#theatre.rap-mode .rap-controls .duet-demo:active{background:#3c527d}
#theatre.rap-mode .rap-controls [data-rap-action=start]{background:linear-gradient(100deg,#f8b6db,#bbdef8);color:#132d47;border-color:#f6d7ee}
#theatre.rap-mode .rap-topics b{font-size:16px}
#theatre.rap-mode .rap-topics small{font-size:13px;line-height:1.5;white-space:normal;color:#d5ecff}
#theatre.rap-mode .rap-topics>button{min-height:64px}
#theatre.rap-mode .concert-beat-options button{font-size:14px!important;min-height:34px!important}
#theatre.rap-mode .concert-beat-meta{font-size:13px;line-height:1.4}
#theatre.rap-mode .concert-beat-judge{font-size:13px}
#theatre.rap-mode .concert-beat-count{min-width:57px}
#theatre.rap-mode .concert-rhyme-line{font-size:17px;line-height:1.5}
#theatre.rap-mode .concert-rhyme-hint{font-size:13px;line-height:1.5;color:#d8efff}
#theatre.rap-mode .concert-result span{font-size:15px}
#theatre.rap-mode .concert-guide{margin:3px 0 5px}
#theatre.rap-mode .concert-guide span{font-size:14px}
#theatre.rap-mode .concert-guide b{font-size:17px;margin-bottom:1px}
#theatre.rap-mode .rap-quote small,#theatre.rap-mode .rap-quote cite{font-size:13px}
#theatre.rap-mode .rap-quote blockquote{font-size:17px;line-height:1.45}
#theatre.rap-mode .rap-scene[data-speaker=user] .rap-user .rap-art,#theatre.rap-mode .rap-scene[data-speaker=poet] .rap-poet .rap-art{animation:none}
#theatre.rap-mode .rap-jointed-puppet{filter:none!important;pointer-events:none}
@media(max-height:600px){#theatre.rap-mode .rap-interaction{top:67%;bottom:1%}#theatre.rap-mode .concert-steps{top:63%}#theatre.rap-mode .rap-caption{font-size:14px}#theatre.rap-mode .rap-controls button{font-size:15px}#theatre.rap-mode .rap-current{font-size:16px}}

/* rap-reference-ui.css */
/* Reference layout: duet on a full-height theatre, dark lower dialogue board. */
#theatre.rap-mode{width:min(100vw,calc(100dvh * 9 / 16),500px);aspect-ratio:9/16}
#theatre.rap-mode .rap-background{content:url('assets/rap/reference-courtyard.webp');opacity:1;filter:none!important}
#theatre.rap-mode .concert-scenery,#theatre.rap-mode .concert-themes,#theatre.rap-mode .concert-hud,#theatre.rap-mode .concert-steps,.concert-guide{display:none}
#theatre.rap-mode .rap-heading{left:25%;right:25%;top:1.8%;height:4.7%;border:1px solid #79a9c66b;border-radius:30px;background:#03182cef;box-sizing:border-box;gap:9px;justify-content:center;padding:0 8px;z-index:12}
#theatre.rap-mode .rap-heading h1{font:500 14px/1.2 'Microsoft YaHei',sans-serif;letter-spacing:.5px;white-space:nowrap}
#theatre.rap-mode .rap-heading h1:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#f444ae;margin-right:7px;vertical-align:middle;box-shadow:0 0 8px #ee45b0}
.duel-menu{border:0;background:none;color:#d7efff;font:16px/1 sans-serif;padding:3px;cursor:pointer}
#theatre.rap-mode .topbar{top:3%;right:3%}#theatre.rap-mode .sound-btn{width:39px;height:39px;background:#041a2fee!important}
.duel-intro{position:absolute;z-index:3;top:8.7%;left:7%;right:7%;text-align:center;color:#d8f3ff;pointer-events:none}.duel-intro p{font-size:12px;letter-spacing:1px;margin:0 0 8px;text-shadow:0 1px 4px #071d39}.duel-intro h2{font:500 25px/1.4 var(--serif);color:#f2faff;letter-spacing:1px;margin:0;text-shadow:0 2px 6px #174066}
.duel-equalizer{position:absolute;z-index:3;left:42%;right:42%;top:20%;height:2.5%;display:flex;align-items:end;justify-content:center;gap:4px;pointer-events:none}.duel-equalizer i{width:4px;background:#8fe5ff;height:35%}.duel-equalizer i:nth-child(2n){background:#f174c8;height:65%}.duel-equalizer i:nth-child(3n){height:100%}
#theatre.rap-mode .rap-verse{top:16.5%;height:8.2%;max-height:8.2%;left:7%;right:7%;padding:6px 10px;border:1px solid #9fd4ea80;border-radius:4px;background:#08233ce8!important;text-align:center;z-index:5}
#theatre.rap-mode .rap-credit{font-size:11px;line-height:1.3;color:#b9eaff}
#theatre.rap-mode .rap-current{font:500 16px/1.5 'Microsoft YaHei',sans-serif;margin-top:2px;color:#fff2fb}
#theatre.rap-mode .has-verse .duel-equalizer{display:none}
#theatre.rap-mode .rap-performer{top:28%;height:28.5%;width:44%}
#theatre.rap-mode .rap-user{left:2%}#theatre.rap-mode .rap-poet{left:53%}
#theatre.rap-mode .rap-art{scale:.76!important;filter:none!important}
#theatre.rap-mode .rap-performer:after{display:none}
.duel-vs{position:absolute;left:45%;width:10%;top:36%;z-index:5;font:italic 600 24px/1 Georgia,serif;text-align:center;color:#f451af;text-shadow:1px 1px #f1faff;pointer-events:none}
.duel-names{position:absolute;z-index:5;top:57%;left:7%;right:7%;display:flex;gap:8%;pointer-events:none}.duel-names span{flex:1;min-width:0;text-align:center;padding:5px 3px;background:#051e36df;border:1px solid #5e98b45e;color:#d6f2ff;font-size:13px;white-space:nowrap}
.duel-tools{position:absolute;z-index:8;top:61.2%;left:8%;right:8%;display:flex;justify-content:space-between;gap:6px}.duel-tools button{background:#041c33d9;color:#a9e5fc;border:1px solid #6ca2be66;padding:5px 7px;font:12px/1.4 'Microsoft YaHei',sans-serif;cursor:pointer}.duel-tools button:disabled{opacity:.6}
#theatre.rap-mode .rap-interaction{top:65%;bottom:3.5%;left:6%;right:6%;background:#03172df5;border:1px solid #8fbed8;border-radius:0;padding:10px 11px;gap:6px;box-shadow:0 3px 0 #81366680;overflow:auto;scrollbar-width:thin}
.duel-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:5px;color:#9adcf4;font:11px/1.5 'Microsoft YaHei',sans-serif}.duel-round{white-space:nowrap}
#theatre.rap-mode .rap-caption{font:500 15px/1.65 'Microsoft YaHei',sans-serif;letter-spacing:.3px;color:#e6f5ff;min-height:0;text-align:left;text-wrap:pretty}
#theatre.rap-mode .rap-controls{gap:6px;justify-content:flex-end;flex:1}
#theatre.rap-mode .rap-controls button{border:1px solid #729eb9;background:#0e2c45;border-radius:0;font:600 14px/1.4 'Microsoft YaHei',sans-serif;min-height:35px;padding:7px 5px;color:#c6e8f8;box-shadow:none}
#theatre.rap-mode .rap-controls>button:last-child{background:linear-gradient(100deg,#f47cc8,#e92e9b);color:#071b30;border:1px solid #f3abd7;border-radius:0;font-size:15px;min-height:36px;box-shadow:0 3px #7d2861}
#theatre.rap-mode .rap-controls button:disabled{opacity:.4}
#theatre.rap-mode .rap-topics>button{min-height:35px;font-size:15px;background:#0b2b44;border-color:#8ebcd5;padding:7px}
#theatre.rap-mode .rap-topics button.selected{background:#243851;border:1px solid #f38cc9;box-shadow:inset 0 -2px #ef59b5;transform:none}
#theatre.rap-mode .duel-preview-actions button{min-height:30px;font-weight:500;color:#98cde4}
#theatre.rap-mode .duel-preview-actions button:disabled{opacity:.65}
#theatre.rap-mode .rap-choices button{min-height:34px;font-size:14px}
#theatre.rap-mode .concert-rhyme-line{font-size:16px;line-height:1.5}
#theatre.rap-mode .concert-rhyme-hint{font-size:12px;line-height:1.5}
#theatre.rap-mode .concert-beat-options button{font-size:12px!important;min-height:29px!important}
#theatre.rap-mode .concert-beat-meta{font-size:11px}
#theatre.rap-mode .concert-beat-judge{font-size:11px}
#theatre.rap-mode .rap-scene[data-phase=RHYTHM] .rap-caption{font-size:13px}
#theatre.rap-mode .rap-scene[data-phase=RHYME] .rap-caption{font-size:13px}
#theatre.rap-mode .rap-quote{top:16.5%;height:8.4%;left:7%;right:7%;border-radius:4px;padding:5px 10px;background:#071f38f0}
#theatre.rap-mode .rap-quote blockquote{font-size:16px;line-height:1.4;margin:2px 0}
#theatre.rap-mode .rap-quote small,#theatre.rap-mode .rap-quote cite{font-size:10px}
#theatre.rap-mode button:focus-visible{outline:2px solid #e2f8ff;outline-offset:2px}
.duel-equalizer i{animation:duelMeter .8s ease-in-out infinite alternate}.duel-equalizer i:nth-child(2n){animation-delay:-.35s}.duel-equalizer i:nth-child(3n){animation-delay:-.65s}
@keyframes duelMeter{to{height:20%}}
@media(prefers-reduced-motion:reduce){.duel-equalizer i{animation:none}}
@media(max-height:620px){#theatre.rap-mode .rap-interaction{top:64%;bottom:2.5%;padding:8px 10px;gap:6px}#theatre.rap-mode .rap-caption{font-size:14px}#theatre.rap-mode .rap-controls button{min-height:31px;padding:5px}.duel-intro h2{font-size:22px}.duel-tools button{font-size:11px;padding:4px}.duel-panel-heading{font-size:10px}}

/* rap-art-title.css */
/* Brush lettering with a pink/cyan offset, kept within the title's own space. */
#theatre.rap-mode .duel-intro h2{position:relative;display:inline-block;font-family:'STXingkai','华文行楷','KaiTi','STKaiti',cursive;font-size:33px;font-weight:600;line-height:1.08;letter-spacing:1px;white-space:nowrap;transform:skewX(-6deg) rotate(-2deg);isolation:isolate;color:#fff5fc;-webkit-text-stroke:.6px #113157;paint-order:stroke fill;text-shadow:1px 2px 0 #10233e,3px 3px 0 #e346a5,-2px -1px 0 #85dfff,0 4px 9px #07213e;margin:0 0 4px}
#theatre.rap-mode .duel-intro h2:before{content:'';position:absolute;z-index:-1;left:3%;right:1%;bottom:-4px;height:5px;background:linear-gradient(100deg,#ff64ba 0 52%,#89e5ff 54% 100%);clip-path:polygon(3% 0,100% 20%,96% 75%,0 100%);opacity:.8}
#theatre.rap-mode .duel-title-name{color:#ffa6d9;text-shadow:1px 2px 0 #10233e,3px 3px 0 #c83791,-2px -1px 0 #fff0fb,0 4px 9px #07213e}
#theatre.rap-mode .duel-title-finish{color:#9aeaff;text-shadow:1px 2px 0 #10233e,3px 3px 0 #237ba7,-2px -1px 0 #fff2fb,0 4px 9px #07213e}
#theatre.rap-mode .duel-title-comma{display:inline-block;font-size:.7em;width:.55em;color:#ffb0df}
#theatre.rap-mode .duel-intro p{margin-bottom:8px}
@media(max-width:360px),(max-height:620px){#theatre.rap-mode .duel-intro h2{font-size:29px;letter-spacing:0}}

/* quote-card-poster.css */
#theatre.quote-card-mode{width:min(100vw,calc(100dvh * 9 / 16),500px);background:#07192f;min-height:100dvh}
#theatre.quote-card-mode .c6-stage{content:url('assets/rap/reference-courtyard.webp');filter:none!important;opacity:.5}
#theatre.quote-card-mode .c6-stage-shade{background:linear-gradient(#07182be6,#071a2b9c,#07182bf0)}
#theatre.quote-card-mode .c6-scene{color:#e9f5ff;padding-top:20px}
#theatre.quote-card-mode .c6-scene header{margin-bottom:14px}
#theatre.quote-card-mode .c6-scene header small{font:12px/1.5 'Microsoft YaHei',sans-serif;letter-spacing:2px;color:#a7daef}
#theatre.quote-card-mode .c6-scene h1{font:500 30px/1.2 'STXingkai','华文行楷','KaiTi',serif;color:#f8d0ea;text-shadow:2px 2px #124263,-1px -1px #e9f8ff;margin-top:6px;letter-spacing:2px}
#theatre.quote-card-mode .c6-card{width:84%;background:#081a31;box-shadow:0 10px 35px #010a1db3,0 0 0 1px #79b8d36b;filter:none!important}
#theatre.quote-card-mode #card-preview{filter:none!important}
#theatre.quote-card-mode .c6-actions{width:84%;margin-top:13px;gap:8px}
#theatre.quote-card-mode .c6-actions button{font:14px/1.4 'Microsoft YaHei',sans-serif;background:#112e49;color:#cceafa;border:1px solid #729fbf;border-radius:6px;min-height:39px;padding:8px}
#theatre.quote-card-mode .c6-actions .c6-primary{font-size:16px;font-weight:600;background:linear-gradient(110deg,#f390cb,#acdff5);border-color:#f4b7dd;color:#0b2947;box-shadow:0 3px #663c68}
#theatre.quote-card-mode .c6-status{font:12px/1.6 'Microsoft YaHei',sans-serif;color:#bfdcec;margin-top:10px}
#theatre.quote-card-mode .c6-ending{font:13px/1.5 'Microsoft YaHei',sans-serif;color:#ddc8e6;margin-top:8px}

/* touch-controls.css */
#theatre button,#theatre [role=button],#modal button{touch-action:manipulation;-webkit-tap-highlight-color:#ee8fc64d}
#theatre .floor-key,#theatre .same-shot-flat-key,#theatre [data-drag],#theatre .l-observe,#theatre .l-exit-track,#theatre .j-warrior,#theatre .w-rod{touch-action:none!important;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#theatre img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
#theatre #card-preview,#theatre .w-save-image img{user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}
#theatre input[type=range]{touch-action:pan-y;min-height:36px}
#theatre .rap-interaction,#theatre .mc-select-partner,#theatre .c6-scene{touch-action:pan-y;overscroll-behavior-y:contain}
html.touch-input #theatre .rap-controls button,html.touch-input #theatre .mc-audition,html.touch-input #theatre .duel-tools button,html.touch-input #theatre .c6-actions button,html.touch-input #modal button{min-height:44px}
html.touch-input #theatre .duel-tools{top:60.8%;gap:4px}
html.touch-input #theatre .duel-tools button{padding:6px 5px;font-size:12px}
html.touch-input #theatre .rap-interaction{top:67.5%;bottom:2%;overflow-y:auto;touch-action:pan-y}
html.touch-input #theatre .duel-preview-actions{display:none}
html.touch-input #theatre .concert-beat-options button{min-height:36px!important}
html.touch-input #theatre.rap-mode .rap-controls>button:last-child{min-height:44px}
html.touch-input #theatre .scene-back,html.touch-input #theatre .sound-btn{min-width:44px;min-height:44px}
html.touch-input #theatre .w-joint,html.touch-input #theatre .w-paint-point{width:44px;height:44px}
html.touch-input #theatre .w-paper{max-height:265px;overflow-y:auto!important;touch-action:pan-y;overscroll-behavior:contain}
html.touch-input #theatre .w-category-tabs button,html.touch-input #theatre .w-tools button{min-height:40px}
html.touch-input #theatre .w-item-row{touch-action:pan-y}
html.touch-input #theatre input[type=text]{font-size:16px}
@media(any-pointer:coarse){#theatre input[type=text]{font-size:16px}#theatre .floor-key{min-height:44px}}

/* scene-curtain.css */

#theatre .scene-curtain{position:absolute;inset:0;z-index:180;pointer-events:all;overflow:hidden;isolation:isolate;container-type:inline-size}
.scene-curtain .sc-leaf{position:absolute;top:0;bottom:0;width:50.2%;overflow:hidden;background:repeating-linear-gradient(90deg,#09214500 0 10%,#8ceaff09 11%,#010b1c44 14%,#09214500 19%),linear-gradient(145deg,#07182f,#113d67 55%,#07162e);box-shadow:inset 0 0 7cqw #010a1d;will-change:transform}
.scene-curtain .sc-left{left:0;transform:translateX(-102%);border-right:2px solid #ff83ce}
.scene-curtain .sc-right{right:0;transform:translateX(102%);border-left:2px solid #70ddff;background:repeating-linear-gradient(90deg,#091b3600 0 10%,#ff96d909 11%,#010b1c44 14%,#091b3600 19%),linear-gradient(215deg,#15152e,#49315c 55%,#061a35)}
.sc-lattice{position:absolute;inset:3% 7%;border:1px solid #82dbef99;box-shadow:inset 0 0 0 5px #071b31,inset 0 0 0 6px #f078bf88}
.sc-lattice:before,.sc-lattice:after{content:'';position:absolute;left:9%;right:9%;height:9%;border:1px solid #ef8fca99;background:repeating-linear-gradient(90deg,transparent 0 18%,#73d7ee55 19% 20%,transparent 21% 39%);clip-path:polygon(0 0,100% 0,100% 70%,90% 70%,90% 100%,10% 100%,10% 70%,0 70%)}
.sc-lattice:before{top:2%}.sc-lattice:after{bottom:2%;transform:rotate(180deg)}
.sc-moon{position:absolute;width:65cqw;height:65cqw;top:27%;left:35%;border:1px solid #9be7ff77;border-radius:50%;box-shadow:0 0 0 2cqw #6acaf511,0 0 0 2.2cqw #ec8aca55,0 0 13cqw #78daff22,inset 0 0 12cqw #8bdaff0d}
.sc-right .sc-moon{left:auto;right:35%;border-color:#f69fd177}
.sc-wave{position:absolute;width:110cqw;height:65cqw;left:-25cqw;bottom:-23cqw;border:1px solid #f384cb88;border-radius:50%;box-shadow:0 -2cqw 0 #81dfff33,0 -2.3cqw 0 #81dfff66,0 -6cqw 0 #eb77c622,0 -6.3cqw 0 #f09bd577;transform:rotate(-18deg)}
.sc-right .sc-wave{transform:rotate(18deg);border-color:#8ce5ff99}
.sc-flower{position:absolute;top:20%;left:14%;font:18cqw Georgia;color:#f496d4;opacity:.82;text-shadow:0 0 5cqw #f45cbd55;font-style:normal}.sc-right .sc-flower{top:auto;bottom:20%;left:auto;right:14%;color:#87dfff}.sc-flower.sc-flower-small{top:65%;left:24%;font-size:7cqw;color:#89def5;opacity:.5}.sc-right .sc-flower-small{top:19%;left:33%;right:auto;color:#f29fd7}
.scene-curtain .sc-seal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78%;text-align:center;opacity:0;color:#effbff;text-shadow:0 2px 12px #000c}
.sc-seal span{display:block;color:#a5e8ff;font:3.2cqw/1.8 Arial,'Microsoft YaHei',sans-serif;letter-spacing:1.1cqw}
.sc-seal b{display:block;font:normal 10cqw/1.6 'STXingkai','华文行楷','KaiTi',serif;letter-spacing:1cqw;color:#ffe3f5;text-shadow:2px 2px 0 #732765,-1px -1px 0 #93e8ff55}
.sc-seal i{display:block;font:2.3cqw/2 Arial;letter-spacing:.55cqw;color:#9fd7ed;font-style:normal}.sc-seal em{display:block;margin:4cqw auto 0;width:15cqw;height:2px;background:linear-gradient(90deg,#f878c6 50%,#8bdfff 50%);box-shadow:0 0 8px #99dfff88}
#theatre .curtain-transition,#theatre .s1-entry-veil{display:none!important}

/* poet-original-opening.css */
#theatre .rap-scene.original-opening .rap-caption{cursor:pointer;color:#b7eaff}#theatre .rap-scene.original-opening .rap-caption:focus-visible{outline:1px solid #f887ce;outline-offset:4px}