/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-boy-found-dead { background: linear-gradient(180deg, #1a1520 0%, #2b1e28 40%, #3a2630 100%), radial-gradient(ellipse at 50% 100%, #2b1e28 0%, transparent 70%); }
.scn-boy-found-dead .room { position:absolute; inset:0; background: linear-gradient(135deg, #2b1e28 0%, #1a1520 100%); opacity:0.8; }
.scn-boy-found-dead .cushion { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2518 100%); border-radius:60% 60% 30% 30% / 80% 80% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-boy-found-dead .figure-boy { position:absolute; bottom:28%; left:42%; width:16%; height:18%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: bfd-sleep 6s ease-in-out infinite alternate; }
.scn-boy-found-dead .shadow-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, transparent 40%, rgba(0,0,0,.3) 70%); animation: bfd-shadow 12s ease-in-out infinite alternate; }
.scn-boy-found-dead .candle { position:absolute; bottom:38%; left:72%; width:4%; height:15%; background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%); border-radius:10% 10% 20% 20% / 30% 30% 10% 10%; }
.scn-boy-found-dead .candle-glow { position:absolute; bottom:48%; left:70%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bfd-glow 3s ease-in-out infinite alternate; }
.scn-boy-found-dead .moth { position:absolute; bottom:45%; left:30%; width:2%; height:2%; background: rgba(200,180,160,.2); border-radius:50%; filter: blur(2px); animation: bfd-moth 8s linear infinite; }
@keyframes bfd-sleep { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes bfd-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes bfd-glow { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.9; } 100% { transform: scale(1); opacity:0.7; } }
@keyframes bfd-moth { 0% { transform: translateY(0) translateX(0) rotate(0deg); } 25% { transform: translateY(-10px) translateX(8px) rotate(20deg); } 50% { transform: translateY(-20px) translateX(0) rotate(40deg); } 75% { transform: translateY(-10px) translateX(-8px) rotate(60deg); } 100% { transform: translateY(0) translateX(0) rotate(80deg); } }

.scn-belarius-hope { background: linear-gradient(180deg, #1a2a2a 0%, #2a3a30 40%, #3a4a40 100%), radial-gradient(ellipse at 50% 100%, #2a3a30 0%, transparent 60%); }
.scn-belarius-hope .tomb { position:absolute; bottom:25%; left:20%; width:30%; height:20%; background: linear-gradient(180deg, #6a7060 0%, #4a5040 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 6px 10px rgba(0,0,0,.4); }
.scn-belarius-hope .figure-fidele { position:absolute; bottom:30%; left:55%; width:12%; height:22%; background: linear-gradient(180deg, #3a4a40 0%, #1a2a20 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateY(0); animation: bh-kneel 5s ease-in-out infinite alternate; }
.scn-belarius-hope .flowers { position:absolute; bottom:28%; left:22%; width:8%; height:8%; background: radial-gradient(circle, #b0a080 0%, #807060 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(180,160,120,.3); animation: bh-sway 7s ease-in-out infinite; }
.scn-belarius-hope .flowers-2 { position:absolute; bottom:30%; left:38%; width:6%; height:6%; background: radial-gradient(circle, #c0b090 0%, #908070 100%); border-radius:50%; animation: bh-sway 8s ease-in-out infinite reverse; }
.scn-belarius-hope .fairy { position:absolute; top:20%; left:40%; width:4%; height:4%; background: radial-gradient(circle, rgba(200,220,180,.6) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: bh-fairy 15s linear infinite; }
.scn-belarius-hope .fairy-glow { position:absolute; top:18%; left:38%; width:8%; height:8%; background: radial-gradient(circle, rgba(200,220,180,.2) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: bh-glow 4s ease-in-out infinite alternate; }
.scn-belarius-hope .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a30 0%, #1a2a20 100%); border-radius:0 0 20% 20% / 0 0 30% 30%; }
@keyframes bh-kneel { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes bh-sway { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes bh-fairy { 0% { transform: translateX(-20px) translateY(0) scale(1); } 25% { transform: translateX(10px) translateY(-10px) scale(1.2); } 50% { transform: translateX(30px) translateY(0) scale(0.9); } 75% { transform: translateX(10px) translateY(10px) scale(1.1); } 100% { transform: translateX(-20px) translateY(0) scale(1); } }
@keyframes bh-glow { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-ruddock-charity { background: linear-gradient(180deg, #1a2a20 0%, #2a3a30 40%, #3a4a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a30 0%, transparent 50%); }
.scn-ruddock-charity .mound { position:absolute; bottom:20%; left:25%; width:50%; height:18%; background: linear-gradient(180deg, #4a5a40 0%, #2a3a20 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; }
.scn-ruddock-charity .robin { position:absolute; bottom:28%; left:40%; width:8%; height:10%; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rc-hop 3s ease-in-out infinite alternate; }
.scn-ruddock-charity .robin-beak { position:absolute; bottom:33%; left:45%; width:2%; height:3%; background: linear-gradient(90deg, #d4b060 0%, #b09040 100%); border-radius:0 50% 50% 0 / 60% 30% 30% 60%; transform: rotate(-20deg); animation: rc-peck 4s ease-in-out infinite; }
.scn-ruddock-charity .moss { position:absolute; bottom:22%; left:30%; width:15%; height:4%; background: linear-gradient(180deg, #708060 0%, #506040 100%); border-radius:40% 60% 40% 60% / 60% 40% 60% 40%; filter: blur(2px); animation: rc-moss 10s ease-in-out infinite alternate; }
.scn-ruddock-charity .flowers { position:absolute; bottom:25%; left:35%; width:4%; height:6%; background: radial-gradient(circle, #c0a080 0%, #908060 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(160,140,100,.3); animation: rc-flower 6s ease-in-out infinite; }
.scn-ruddock-charity .snow-flowers { position:absolute; bottom:24%; left:48%; width:3%; height:3%; background: radial-gradient(circle, #d0c0a0 0%, #b0a080 100%); border-radius:50%; animation: rc-snow 8s ease-in-out infinite reverse; }
@keyframes rc-hop { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes rc-peck { 0% { transform: rotate(-20deg) scale(1); } 33% { transform: rotate(-30deg) scale(0.9); } 66% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes rc-moss { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes rc-flower { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(15deg) scale(1.2); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes rc-snow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(0.9); } 100% { transform: translateY(0) scale(1); } }

.scn-bury-by-mother { background: linear-gradient(180deg, #1a2028 0%, #2a3038 40%, #3a4048 100%), radial-gradient(ellipse at 50% 100%, #2a3038 0%, transparent 60%); }
.scn-bury-by-mother .grave { position:absolute; bottom:15%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #4a5048 0%, #2a3028 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; }
.scn-bury-by-mother .mother { position:absolute; bottom:35%; left:35%; width:14%; height:25%; background: linear-gradient(180deg, #3a4048 0%, #1a2028 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: bm-bow 6s ease-in-out infinite alternate; }
.scn-bury-by-mother .child-left { position:absolute; bottom:30%; left:28%; width:10%; height:18%; background: linear-gradient(180deg, #2a3038 0%, #1a2028 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: bm-weep 8s ease-in-out infinite; }
.scn-bury-by-mother .child-right { position:absolute; bottom:30%; right:28%; width:10%; height:18%; background: linear-gradient(180deg, #2a3038 0%, #1a2028 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-10deg); animation: bm-weep 8s ease-in-out infinite reverse; }
.scn-bury-by-mother .tear { position:absolute; bottom:25%; left:32%; width:1%; height:2%; background: rgba(180,200,220,.3); border-radius:50% 50% 0 0; filter: blur(1px); animation: bm-tear 4s ease-in infinite; }
.scn-bury-by-mother .tear-2 { position:absolute; bottom:25%; right:32%; width:1%; height:2%; background: rgba(180,200,220,.3); border-radius:50% 50% 0 0; filter: blur(1px); animation: bm-tear 4.5s ease-in infinite; }
.scn-bury-by-mother .night-sky { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a1018 0%, #1a2028 100%); }
@keyframes bm-bow { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bm-weep { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02) translateY(-2px); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes bm-tear { 0% { transform: translateY(0) scale(1); opacity:1; } 80% { transform: translateY(20px) scale(0.8); opacity:0.3; } 100% { transform: translateY(25px) scale(0.5); opacity:0; } }

.scn-palace-queen-scheme {
  background: 
    linear-gradient(135deg, #e8dcc4 0%, #c0a87a 40%, #a08050 70%, #604030 100%),
    radial-gradient(ellipse at 70% 10%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-palace-queen-scheme .bg-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #c8b89a 0px, #c8b89a 2px, #d8c8a8 2px, #d8c8a8 4px); opacity:0.3; animation: pqs-wall-pulse 6s ease-in-out infinite; }
.scn-palace-queen-scheme .window-light { position:absolute; top:5%; left:20%; width:40%; height:55%; background: radial-gradient(ellipse at 30% 50%, #fef8e0 0%, #e0c898 50%, transparent 80%); animation: pqs-light 3s ease-in-out infinite alternate; }
.scn-palace-queen-scheme .throne { position:absolute; bottom:15%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5% / 40% 40% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-palace-queen-scheme .queen { position:absolute; bottom:18%; left:30%; width:12%; height:45%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqs-bow 10s ease-in-out infinite; }
.scn-palace-queen-scheme .courtier { position:absolute; bottom:18%; right:25%; width:10%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: pqs-nod 8s ease-in-out infinite; }
.scn-palace-queen-scheme .letter { position:absolute; bottom:35%; left:33%; width:8%; height:6%; background: #e0d0b0; border: 1px solid #806040; border-radius: 4px; transform: rotate(-15deg); animation: pqs-letter 4s ease-in-out infinite; }
.scn-palace-queen-scheme .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: pqs-shadow 5s ease-in-out infinite alternate; }
@keyframes pqs-wall-pulse { 0%,100% { opacity:0.2 } 50% { opacity:0.4 } }
@keyframes pqs-light { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes pqs-bow { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg) } }
@keyframes pqs-nod { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) scale(1.01) } 70% { transform: translateY(0) } }
@keyframes pqs-letter { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes pqs-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-palace-box-dropped {
  background: 
    linear-gradient(180deg, #b0a090 0%, #806850 40%, #503820 100%),
    radial-gradient(ellipse at 50% 0%, #d0c0a0 0%, transparent 80%);
}
.scn-palace-box-dropped .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #908060 0px, #908060 3px, #a09070 3px, #a09070 6px); opacity:0.5; }
.scn-palace-box-dropped .box-body { position:absolute; top:-10%; left:45%; width:20%; height:30%; background: linear-gradient(180deg, #b07040 0%, #805030 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,0.6); animation: pbd-fall 3s ease-in infinite; }
.scn-palace-box-dropped .box-lid { position:absolute; top:-12%; left:47%; width:16%; height:8%; background: linear-gradient(180deg, #d09060 0%, #a06030 100%); border-radius: 2px; transform-origin: left center; animation: pbd-lid 3s ease-in infinite; }
.scn-palace-box-dropped .box-shadow { position:absolute; bottom:30%; left:44%; width:22%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); animation: pbd-shadow 3s ease-in infinite; }
.scn-palace-box-dropped .dust-a { position:absolute; top:20%; left:50%; width:8px; height:8px; background: #e0d0b0; border-radius:50%; animation: pbd-dust 3s ease-out infinite; }
.scn-palace-box-dropped .dust-b { position:absolute; top:40%; left:30%; width:5px; height:5px; background: #d0c0a0; border-radius:50%; animation: pbd-dust 3s ease-out 0.5s infinite; }
@keyframes pbd-fall { 0% { top:-10%; transform: rotate(0deg); } 80% { top:55%; transform: rotate(360deg) scale(1.05); } 100% { top:55%; transform: rotate(360deg) scale(1); } }
@keyframes pbd-lid { 0% { top:-12%; transform: rotate(0deg); } 70% { top:55%; transform: rotate(30deg) translateX(-20px); } 100% { top:55%; transform: rotate(30deg) translateX(-20px); } }
@keyframes pbd-shadow { 0% { opacity:0; transform: scale(0); } 70% { opacity:1; transform: scale(1.5); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes pbd-dust { 0% { opacity:1; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-80px) scale(0.2); } }

.scn-palace-pisanio-tempted {
  background: 
    linear-gradient(180deg, #c0a890 0%, #908060 60%, #604830 100%),
    radial-gradient(ellipse at 50% 20%, #e0d0b8 0%, transparent 70%);
}
.scn-palace-pisanio-tempted .deep-wall { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #b09878 0px, #b09878 1px, #c8a880 1px, #c8a880 3px); opacity:0.2; animation: ppt-wall 8s ease-in-out infinite; }
.scn-palace-pisanio-tempted .bright-window { position:absolute; top:15%; left:10%; width:25%; height:50%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #e0c8a0 50%, transparent 90%); animation: ppt-window 4s ease-in-out infinite alternate; }
.scn-palace-pisanio-tempted .queen-figure { position:absolute; bottom:15%; left:20%; width:15%; height:50%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ppt-queen 6s ease-in-out infinite; }
.scn-palace-pisanio-tempted .pisanio-figure { position:absolute; bottom:15%; right:20%; width:12%; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; animation: ppt-pisanio 7s ease-in-out infinite; }
.scn-palace-pisanio-tempted .bribe-purse { position:absolute; bottom:35%; left:30%; width:10%; height:8%; background: #b09060; border-radius: 30% 30% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: ppt-purse 3s ease-in-out infinite; }
.scn-palace-pisanio-tempted .whisper-lines { position:absolute; bottom:50%; left:25%; width:15%; height:2px; background: transparent; border-top: 1px dashed #806040; opacity:0; animation: ppt-whisper 4s ease-in-out infinite; }
.scn-palace-pisanio-tempted .floor-reflection { position:absolute; bottom:5%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, rgba(128,96,64,0.3) 0%, transparent 100%); }
@keyframes ppt-wall { 0%,100% { opacity:0.1 } 50% { opacity:0.3 } }
@keyframes ppt-window { 0% { opacity:0.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.7; transform: scaleY(0.95) } }
@keyframes ppt-queen { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(-2deg) } 70% { transform: translateY(0) rotate(1deg) } }
@keyframes ppt-pisanio { 0%,100% { transform: translateY(0) scaleX(1) } 40% { transform: translateY(-2px) scaleX(0.98) } 80% { transform: translateY(0) scaleX(1.02) } }
@keyframes ppt-purse { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(10deg) } }
@keyframes ppt-whisper { 0%,100% { opacity:0; transform: translateX(0) } 50% { opacity:0.5; transform: translateX(10px) } }

.scn-palace-flowers-closet {
  background: 
    linear-gradient(180deg, #e4dcc8 0%, #c0b098 40%, #907860 100%),
    radial-gradient(ellipse at 50% 80%, #f0e8d0 0%, transparent 70%);
}
.scn-palace-flowers-closet .closet-bg { position:absolute; inset:0; background: linear-gradient(90deg, #b8a890 0%, #d0c0a8 30%, #b8a890 70%, #908060 100%); border-radius: 20px; box-shadow: inset 0 0 40px rgba(0,0,0,0.1); }
.scn-palace-flowers-closet .shelf { position:absolute; bottom:40%; left:5%; right:5%; height:4%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-palace-flowers-closet .violet { position:absolute; bottom:45%; left:15%; width:6%; height:8%; background: #7a5a8a; border-radius: 50% 50% 30% 30%; animation: pfc-sway 4s ease-in-out infinite; }
.scn-palace-flowers-closet .cowslip { position:absolute; bottom:45%; left:30%; width:7%; height:10%; background: #b89820; border-radius: 40% 40% 30% 30%; animation: pfc-sway 5s ease-in-out infinite 0.5s; }
.scn-palace-flowers-closet .primrose { position:absolute; bottom:45%; left:50%; width:6%; height:9%; background: #c8a840; border-radius: 50% 50% 40% 40%; animation: pfc-sway 4.5s ease-in-out infinite 1s; }
.scn-palace-flowers-closet .gentle-light { position:absolute; top:10%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 80%); opacity:0.4; animation: pfc-light 7s ease-in-out infinite alternate; }
.scn-palace-flowers-closet .soft-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(80,60,40,0.2) 100%); }
@keyframes pfc-sway { 0%,100% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(-2px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(3deg) translateX(2px) } }
@keyframes pfc-light { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.05) } 100% { opacity:0.4; transform: scale(0.95) } }

/* garden-leave-taking (calm, sunlit) */
.scn-garden-leave-taking { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #c2b280 100%), radial-gradient(ellipse at 30% 100%, #f0e68c 0%, transparent 60%); }
.scn-garden-leave-taking .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%); animation: glt-sky 8s ease-in-out infinite alternate; }
.scn-garden-leave-taking .garden-wall { position:absolute; bottom:35%; left:0; width:70%; height:40%; background: linear-gradient(180deg, #c4a777 0%, #a0855c 100%); border-radius: 10% 40% 0 0 / 20% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: glt-wall 12s ease-in-out infinite alternate; }
.scn-garden-leave-taking .path { position:absolute; bottom:20%; left:15%; width:45%; height:15%; background: linear-gradient(90deg, #d2b48c 0%, #b8860b 100%); border-radius: 30% 30% 50% 50%; animation: glt-path 6s ease-in-out infinite; }
.scn-garden-leave-taking .figure { position:absolute; bottom:25%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: glt-walk 5s ease-in-out infinite; }
.scn-garden-leave-taking .ship { position:absolute; bottom:45%; right:5%; width:80px; height:30px; background: linear-gradient(180deg, #8B4513 0%, #5a3a1a 100%); border-radius: 20% 20% 40% 40%; animation: glt-ship 20s ease-in-out infinite; }
.scn-garden-leave-taking .sail { position:absolute; bottom:55%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #f5deb3 0%, #e8d5a0 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: glt-sail 5s ease-in-out infinite alternate; }
.scn-garden-leave-taking .cloud-a { position:absolute; top:10%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, #ffffff 0%, rgba(255,255,255,0.3) 100%); border-radius: 50%; filter: blur(5px); animation: glt-drift-a 35s linear infinite; }
.scn-garden-leave-taking .cloud-b { position:absolute; top:18%; right:10%; width:60px; height:15px; background: linear-gradient(180deg, #ffffff 0%, rgba(255,255,255,0.2) 100%); border-radius: 50%; filter: blur(4px); animation: glt-drift-b 50s linear infinite reverse; }
@keyframes glt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes glt-wall { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(0.98) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes glt-path { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(0) } }
@keyframes glt-walk { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(10px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(20px) translateY(0) rotate(0deg) } 75% { transform:translateX(30px) translateY(-2px) rotate(-2deg) } 100% { transform:translateX(40px) translateY(0) rotate(0deg) } }
@keyframes glt-ship { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-5px) rotate(1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes glt-sail { 0% { transform:rotate(5deg) scaleY(1) } 50% { transform:rotate(8deg) scaleY(1.05) } 100% { transform:rotate(5deg) scaleY(1) } }
@keyframes glt-drift-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes glt-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* public-place-cloten (funny, sunlit) */
.scn-public-place-cloten { background: linear-gradient(180deg, #add8e6 0%, #f5deb3 30%, #c2b280 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%); }
.scn-public-place-cloten .bg { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #d3b8a0 0px, #d3b8a0 2px, transparent 2px, transparent 20px); opacity:0.3; animation: pcl-bg 8s linear infinite; }
.scn-public-place-cloten .fountain { position:absolute; bottom:20%; left:50%; width:60px; height:50px; background: radial-gradient(ellipse, #4682b4 0%, #2a6a8a 100%); border-radius: 50% 50% 30% 30%; transform:translateX(-50%); box-shadow: 0 -10px 20px rgba(70,130,180,0.4); animation: pcl-fountain 3s ease-in-out infinite alternate; }
.scn-public-place-cloten .statue { position:absolute; bottom:30%; left:70%; width:25px; height:55px; background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform:rotate(10deg); animation: pcl-statue 6s ease-in-out infinite; }
.scn-public-place-cloten .cloten { position:absolute; bottom:25%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcl-cloten 1.5s ease-in-out infinite alternate; }
.scn-public-place-cloten .lord-a { position:absolute; bottom:28%; left:10%; width:22px; height:45px; background: linear-gradient(180deg, #5c4033 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: pcl-lord-a 2.4s ease-in-out infinite; }
.scn-public-place-cloten .lord-b { position:absolute; bottom:26%; left:50%; width:20px; height:42px; background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: pcl-lord-b 1.6s ease-in-out infinite alternate; }
.scn-public-place-cloten .puddle { position:absolute; bottom:15%; left:35%; width:40px; height:8px; background: linear-gradient(180deg, #87CEEB 0%, #4682b4 100%); border-radius: 50%; animation: pcl-puddle 4s ease-in-out infinite; }
.scn-public-place-cloten .bird { position:absolute; top:15%; left:60%; width:14px; height:10px; background: #8B4513; border-radius: 50% 50% 0 0; animation: pcl-bird 3s ease-in-out infinite; }
@keyframes pcl-bg { 0% { background-position:0 0 } 100% { background-position:20px 0 } }
@keyframes pcl-fountain { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.2) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes pcl-statue { 0% { transform:rotate(10deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(10deg) } }
@keyframes pcl-cloten { 0% { transform:rotate(-3deg) } 100% { transform:rotate(3deg) } }
@keyframes pcl-lord-a { 0% { transform:translateX(0) } 50% { transform:translateX(8px) } 100% { transform:translateX(0) } }
@keyframes pcl-lord-b { 0% { transform:rotate(0deg) } 100% { transform:rotate(-10deg) } }
@keyframes pcl-puddle { 0% { transform:scaleX(1) scaleY(1) } 50% { transform:scaleX(1.2) scaleY(0.8) } 100% { transform:scaleX(1) scaleY(1) } }
@keyframes pcl-bird { 0% { transform:translateX(0) } 50% { transform:translateX(-30px) } 100% { transform:translateX(0) } }

/* public-place-aside-mockery (funny, sunlit) */
.scn-public-place-aside-mockery { background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 40%, #d2b48c 100%), radial-gradient(ellipse at 30% 100%, #f0e68c 0%, transparent 60%); }
.scn-public-place-aside-mockery .bg-mid { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0c9a0 0%, transparent 100%); animation: pfm-bg 12s ease-in-out infinite; }
.scn-public-place-aside-mockery .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2b280 0%, #a0855c 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-public-place-aside-mockery .jester { position:absolute; bottom:25%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #ff8c00 0%, #d2691e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfm-jester 2s ease-in-out infinite; }
.scn-public-place-aside-mockery .target-figure { position:absolute; bottom:28%; left:65%; width:22px; height:45px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pfm-target 1.5s ease-in-out infinite alternate; }
.scn-public-place-aside-mockery .shadow-puppet { position:absolute; bottom:25%; left:30%; width:25px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 80% 50% 50% / 60% 40% 40% 60%; transform:rotate(20deg); animation: pfm-puppet 3s ease-in-out infinite; }
.scn-public-place-aside-mockery .cape { position:absolute; bottom:25%; left:42%; width:35px; height:30px; background: linear-gradient(180deg, #b22222 0%, #8b0000 100%); border-radius: 0 0 50% 50%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); transform:rotate(-10deg); animation: pfm-cape 2.5s ease-in-out infinite; }
.scn-public-place-aside-mockery .cloud-mock { position:absolute; top:12%; left:20%; width:70px; height:18px; background: linear-gradient(180deg, #ffffff 0%, rgba(255,255,255,0.3) 100%); border-radius: 50%; filter: blur(4px); animation: pfm-cloud 45s linear infinite; }
@keyframes pfm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pfm-jester { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-5px) rotate(5deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-3px) rotate(-5deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pfm-target { 0% { transform:translateX(0) scaleY(1) } 100% { transform:translateX(5px) scaleY(0.9) } }
@keyframes pfm-puppet { 0% { transform:rotate(20deg) translateX(0) } 50% { transform:rotate(25deg) translateX(4px) } 100% { transform:rotate(20deg) translateX(0) } }
@keyframes pfm-cape { 0% { transform:rotate(-10deg) scaleX(1) } 50% { transform:rotate(-15deg) scaleX(1.1) } 100% { transform:rotate(-10deg) scaleX(1) } }
@keyframes pfm-cloud { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }

/* public-place-love-refusal (tense, sunlit) */
.scn-public-place-love-refusal { background: linear-gradient(180deg, #add8e6 0%, #f0e68c 20%, #d2b48c 100%), radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 80%); }
.scn-public-place-love-refusal .bg-tense { position:absolute; inset:0; background: repeating-linear-gradient(135deg, #e0c9a0 0px, #e0c9a0 3px, transparent 3px, transparent 30px); opacity:0.4; animation: plr-bg 4s linear infinite; }
.scn-public-place-love-refusal .ground-tense { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c2b280 0%, #a0855c 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-public-place-love-refusal .refuser { position:absolute; bottom:25%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plr-refuse 2s ease-in-out infinite; }
.scn-public-place-love-refusal .rejecter { position:absolute; bottom:28%; left:55%; width:25px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: plr-reject 1.5s ease-in-out infinite alternate; }
.scn-public-place-love-refusal .shadow-block { position:absolute; bottom:22%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, #3a2a1a 0%, transparent 70%); opacity:0.7; animation: plr-shadow 3s ease-in-out infinite; }
.scn-public-place-love-refusal .dust { position:absolute; bottom:15%; left:45%; width:10px; height:10px; background: #c2b280; border-radius: 50%; filter: blur(2px); animation: plr-dust 1.6s ease-in-out infinite alternate; }
.scn-public-place-love-refusal .crack { position:absolute; bottom:20%; left:50%; width:20px; height:2px; background: #4a3a2a; transform:rotate(30deg); animation: plr-crack 2.4s ease-in-out infinite; }
.scn-public-place-love-refusal .glint { position:absolute; top:30%; left:60%; width:6px; height:6px; background: #ffd700; border-radius: 50%; box-shadow: 0 0 12px 2px #ffd700; animation: plr-glint 2s ease-in-out infinite; }
@keyframes plr-bg { 0% { background-position:0 0 } 100% { background-position:30px 30px } }
@keyframes plr-refuse { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(8deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes plr-reject { 0% { transform:translateX(0) rotate(0deg) } 100% { transform:translateX(-8px) rotate(-12deg) } }
@keyframes plr-shadow { 0% { transform:scale(1) } 50% { transform:scale(1.3) } 100% { transform:scale(1) } }
@keyframes plr-dust { 0% { transform:translateY(0) scale(1) } 100% { transform:translateY(-10px) scale(2) opacity:0 } }
@keyframes plr-crack { 0% { transform:rotate(30deg) scaleX(1) } 50% { transform:rotate(45deg) scaleX(1.5) } 100% { transform:rotate(30deg) scaleX(1) } }
@keyframes plr-glint { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }

.scn-garden-posthumus-heritage { background: linear-gradient(180deg, #f5e6ca 0%, #d9b89a 40%, #a67c5b 100%), radial-gradient(ellipse at 30% 70%, #ffe9c4 0%, transparent 60%); }
.scn-garden-posthumus-heritage .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fde3b0 0%, #fad6a0 60%, transparent 100%); animation: gp1-sky 8s ease-in-out infinite alternate; }
.scn-garden-posthumus-heritage .grass { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7da847 0%, #5b7e32 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; animation: gp1-grass 12s ease-in-out infinite alternate; }
.scn-garden-posthumus-heritage .tree { position:absolute; top:8%; left:20%; width:60px; height:40px; background: radial-gradient(ellipse, #6b8e23 0%, #3a5f0b 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(107,142,35,.3); }
.scn-garden-posthumus-heritage .monument { position:absolute; bottom:30%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c9b29a 0%, #8a755a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-garden-posthumus-heritage .cross-left { position:absolute; bottom:36%; left:44%; width:6px; height:18px; background: #5b4a3a; border-radius: 0 0 2px 2px; transform:rotate(-15deg); animation: gp1-cross 5s ease-in-out infinite; }
.scn-garden-posthumus-heritage .cross-right { position:absolute; bottom:36%; left:56%; width:6px; height:18px; background: #5b4a3a; border-radius: 0 0 2px 2px; transform:rotate(15deg); animation: gp1-cross 5s ease-in-out infinite reverse; }
.scn-garden-posthumus-heritage .light-dapple { position:absolute; top:10%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,230,180,.4) 0%, transparent 70%); filter: blur(8px); animation: gp1-dapple 10s ease-in-out infinite alternate; }
.scn-garden-posthumus-heritage .shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); }
@keyframes gp1-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gp1-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gp1-cross { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gp1-dapple { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(5px,-3px) scale(1.1) } 100% { transform: translate(-2px,2px) scale(.95) } }

.scn-garden-kings-ward { background: linear-gradient(180deg, #f7e9c4 0%, #d4b87a 50%, #b48c4e 100%), radial-gradient(ellipse at 70% 30%, #fff5d6 0%, transparent 50%); }
.scn-garden-kings-ward .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce8b0 0%, #ffd78a 60%, transparent 100%); animation: kw2-sky 10s ease-in-out infinite alternate; }
.scn-garden-kings-ward .hedge { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a9c3a 0%, #3e6a1e 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-garden-kings-ward .cradle { position:absolute; bottom:35%; left:50%; width:70px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c9a87a 0%, #a08050 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: kw2-cradle 4s ease-in-out infinite; }
.scn-garden-kings-ward .crown { position:absolute; bottom:48%; left:48%; width:20px; height:12px; background: linear-gradient(180deg, #d4b05a 0%, #b89030 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 0%, 80% 100%, 100% 0%); box-shadow: 0 0 10px 3px rgba(200,160,60,.5); animation: kw2-crown 6s ease-in-out infinite alternate; }
.scn-garden-kings-ward .blanket { position:absolute; bottom:35%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #f0d8a0 0%, #d4b070 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.1); }
.scn-garden-kings-ward .bloom { position:absolute; bottom:20%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #f5c842 0%, #d4a030 100%); border-radius: 50%; animation: kw2-bloom 7s ease-in-out infinite; }
.scn-garden-kings-ward .bee { position:absolute; top:15%; left:60%; width:8px; height:6px; background: linear-gradient(90deg, #f0c040 50%, #1a1a1a 50%); border-radius: 50%; animation: kw2-bee 12s linear infinite; }
@keyframes kw2-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes kw2-cradle { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes kw2-crown { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes kw2-bloom { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes kw2-bee { 0% { left:60%; top:15% } 50% { left:20%; top:25% } 100% { left:60%; top:15% } }

.scn-garden-rare-man { background: linear-gradient(180deg, #efe2b6 0%, #cbb28a 50%, #a08060 100%), radial-gradient(ellipse at 50% 80%, #ffe8be 0%, transparent 50%); }
.scn-garden-rare-man .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f7dfa0 0%, #f0c870 60%, transparent 100%); animation: rm3-sky 9s ease-in-out infinite alternate; }
.scn-garden-rare-man .bushes { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 70%, #5b8a3a 0%, #2a4e1a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-garden-rare-man .pedestal { position:absolute; bottom:40%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c9b28a 0%, #a08860 100%); border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-garden-rare-man .mirror { position:absolute; bottom:58%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #b8c8d0 0%, #e0e8f0 70%); border-radius: 5% 5% 10% 10%; box-shadow: inset 0 0 15px rgba(200,220,230,.8), 0 0 20px rgba(200,220,230,.3); animation: rm3-mirror 6s ease-in-out infinite alternate; }
.scn-garden-rare-man .frame { position:absolute; bottom:57%; left:49%; width:44px; height:54px; border: 3px solid #c9a860; border-radius: 8%; background: transparent; pointer-events:none; }
.scn-garden-rare-man .reflection-glow { position:absolute; bottom:58%; left:51%; width:30px; height:35px; background: radial-gradient(circle, rgba(255,255,200,.3) 0%, transparent 70%); filter: blur(5px); animation: rm3-glow 6s ease-in-out infinite alternate-reverse; }
.scn-garden-rare-man .sparkle { position:absolute; top:30%; left:45%; width:4px; height:10px; background: #ffe87c; border-radius: 50%; box-shadow: 0 0 8px 3px #ffdd6e; animation: rm3-sparkle 3s ease-in-out infinite; }
@keyframes rm3-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rm3-mirror { 0% { box-shadow: inset 0 0 15px rgba(200,220,230,.8), 0 0 20px rgba(200,220,230,.3) } 50% { box-shadow: inset 0 0 25px rgba(220,240,255,1), 0 0 35px rgba(220,240,255,.5) } 100% { box-shadow: inset 0 0 15px rgba(200,220,230,.8), 0 0 20px rgba(200,220,230,.3) } }
@keyframes rm3-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes rm3-sparkle { 0% { opacity:0; transform: translate(0,0) scale(0) } 50% { opacity:1; transform: translate(2px,-5px) scale(1.2) } 100% { opacity:0; transform: translate(1px,2px) scale(0.5) } }

.scn-garden-dispute-comment { background: linear-gradient(180deg, #ede0c4 0%, #c9b08a 50%, #a08060 100%), radial-gradient(ellipse at 30% 50%, #fce4b4 0%, transparent 60%); }
.scn-garden-dispute-comment .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8e2a8 0%, #f5d48a 60%, transparent 100%); animation: dc4-sky 11s ease-in-out infinite alternate; }
.scn-garden-dispute-comment .path { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #c9ae80 0%, #a88860 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-garden-dispute-comment .basket { position:absolute; bottom:35%; left:45%; width:40px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #b8905a 0%, #8a6a40 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: dc4-basket 5s ease-in-out infinite; }
.scn-garden-dispute-comment .bundle-left { position:absolute; bottom:40%; left:42%; width:14px; height:22px; background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%); border-radius: 40% 40% 30% 30%; transform:rotate(-10deg); animation: dc4-bundle 7s ease-in-out infinite; }
.scn-garden-dispute-comment .bundle-right { position:absolute; bottom:40%; left:50%; width:14px; height:22px; background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%); border-radius: 40% 40% 30% 30%; transform:rotate(10deg); animation: dc4-bundle 7s ease-in-out infinite alternate; }
.scn-garden-dispute-comment .rose { position:absolute; bottom:30%; left:30%; width:12px; height:10px; background: radial-gradient(circle, #b87878 0%, #8a5060 100%); border-radius: 50%; animation: dc4-rose 8s ease-in-out infinite; }
.scn-garden-dispute-comment .leaf { position:absolute; bottom:32%; left:32%; width:6px; height:10px; background: #5b8a3a; border-radius: 0 50% 50% 50%; transform:rotate(-30deg); }
.scn-garden-dispute-comment .shadow { position:absolute; bottom:20%; left:40%; right:30%; height:8%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 100%); }
@keyframes dc4-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes dc4-basket { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dc4-bundle { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dc4-rose { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(10deg) } 100% { transform: scale(1) rotate(0deg) } }

.scn-queen's-malice {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%);
  background-blend-mode: normal;
}
.scn-queen's-malice .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-queen's-malice .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-queen's-malice .window { position:absolute; top:15%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #d4c088 0%, #b09a60 50%, #6a5a3a 100%); border:6px solid #4a3a2a; border-radius:4%; box-shadow:0 0 30px 10px rgba(180,160,100,.5); }
.scn-queen's-malice .curtain{ position:absolute; top:12%; width:60px; height:150px; background: linear-gradient(180deg, #6a1a2a 0%, #4a0a1a 100%); border-radius:10% 10% 40% 40%; animation: qm-curtain 8s ease-in-out infinite alternate; }
.scn-queen's-malice .curtain-l { left:15%; transform-origin:left center; }
.scn-queen's-malice .curtain-r { right:15%; transform-origin:right center; }
.scn-queen's-malice .queen  { position:absolute; bottom:30%; left:50%; width:40px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; box-shadow:inset -4px 0 8px rgba(0,0,0,.5); animation: qm-queen 3s ease-in-out infinite; }
.scn-queen's-malice .vial   { position:absolute; bottom:35%; left:52%; width:10px; height:24px; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 12px 4px rgba(100,160,60,.6); animation: qm-vial 4s ease-in-out infinite; }
.scn-queen's-malice .table  { position:absolute; bottom:28%; left:45%; width:80px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
@keyframes qm-curtain { 0% { transform: scaleX(1) rotate(0deg) } 50% { transform: scaleX(1.05) rotate(-2deg) } 100% { transform: scaleX(1) rotate(0deg) } }
@keyframes qm-queen   { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes qm-vial    { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-1px) rotate(3deg) } 100% { transform: translate(0,0) rotate(-2deg) } }

.scn-queen's-final-confession {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #3a2a2a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 20%, #5a4a3a 0%, transparent 70%);
}
.scn-queen's-final-confession .bg-dark  { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #3a2a2a 0%, #1a1a2a 100%); animation: qfc-fade 12s ease-in-out infinite alternate; }
.scn-queen's-final-confession .bed      { position:absolute; bottom:18%; left:30%; width:140px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow:0 6px 12px rgba(0,0,0,.5); }
.scn-queen's-final-confession .figure-queen { position:absolute; bottom:20%; left:38%; width:36px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform:rotate(5deg); animation: qfc-queen 6s ease-in-out infinite; }
.scn-queen's-final-confession .candle   { position:absolute; bottom:22%; left:65%; width:8px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:20%; box-shadow:0 0 20px 6px #c8a060; }
.scn-queen's-final-confession .glow     { position:absolute; bottom:20%; left:60%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,160,96,.4) 0%, transparent 70%); border-radius:50%; animation: qfc-glow 3s ease-in-out infinite alternate; }
.scn-queen's-final-confession .attendant { position:absolute; bottom:18%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: qfc-att 8s ease-in-out infinite; }
.scn-queen's-final-confession .attendant-2 { position:absolute; bottom:18%; right:20%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: qfc-att 8s ease-in-out infinite reverse; }
@keyframes qfc-fade  { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes qfc-queen { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes qfc-glow  { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes qfc-att   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-lucius-brought-in {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a890 50%, #908070 100%),
    radial-gradient(ellipse at 50% 100%, #c0b0a0 0%, transparent 70%);
}
.scn-lucius-brought-in .floor   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09080 0%, #807060 100%); box-shadow:inset 0 10px 20px rgba(0,0,0,.2); }
.scn-lucius-brought-in .column  { position:absolute; top:0; width:20px; height:70%; background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%); border-radius:10% / 50%; box-shadow:4px 0 8px rgba(0,0,0,.1); }
.scn-lucius-brought-in .col-l   { left:10%; }
.scn-lucius-brought-in .col-r   { right:10%; }
.scn-lucius-brought-in .lucius  { position:absolute; bottom:25%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #605850 0%, #403830 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: lb-lucius 3s ease-in-out infinite; }
.scn-lucius-brought-in .iachimo { position:absolute; bottom:25%; left:48%; width:28px; height:78px; background: linear-gradient(180deg, #504840 0%, #302820 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: lb-iachimo 4s ease-in-out infinite; }
.scn-lucius-brought-in .guard   { position:absolute; bottom:25%; left:55%; width:32px; height:82px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: lb-guard 2.5s ease-in-out infinite; }
.scn-lucius-brought-in .chains  { position:absolute; bottom:26%; left:37%; width:40px; height:6px; background: #807060; border-radius:30%; box-shadow:0 2px 4px rgba(0,0,0,.3); animation: lb-chains 1.8s ease-in-out infinite; }
@keyframes lb-lucius  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lb-iachimo { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes lb-guard   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lb-chains  { 0% { transform: translateX(0) } 50% { transform: translateX(6px) } 100% { transform: translateX(0) } }

.scn-lucius-defiant {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #a89880 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
}
.scn-lucius-defiant .floor      { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); }
.scn-lucius-defiant .throne     { position:absolute; bottom:30%; left:25%; width:60px; height:90px; background: linear-gradient(180deg, #c8a870 0%, #a08850 100%); border-radius:10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow:6px 6px 12px rgba(0,0,0,.2); }
.scn-lucius-defiant .king       { position:absolute; bottom:30%; left:27%; width:36px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; animation: ld-king 8s ease-in-out infinite; }
.scn-lucius-defiant .lucius     { position:absolute; bottom:22%; left:45%; width:30px; height:75px; background: linear-gradient(180deg, #5a5048 0%, #3a3028 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ld-lucius 6s ease-in-out infinite; }
.scn-lucius-defiant .boy        { position:absolute; bottom:20%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #4a4038 0%, #2a2018 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ld-boy 5s ease-in-out infinite; }
.scn-lucius-defiant .drape      { position:absolute; top:0; width:50px; height:80%; background: linear-gradient(180deg, #8a6a5a 0%, #5a4a3a 100%); border-radius:0 0 30% 30%; animation: ld-drape 12s ease-in-out infinite alternate; }
.scn-lucius-defiant .drape-l    { left:5%; transform-origin:left center; }
.scn-lucius-defiant .drape-r    { right:5%; transform-origin:right center; animation-delay: -6s; }
.scn-lucius-defiant .light-beam { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.2) 0%, transparent 100%); transform:skewX(-10deg); animation: ld-beam 7s ease-in-out infinite alternate; }
@keyframes ld-king   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ld-lucius { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ld-boy    { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ld-drape  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ld-beam   { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.2 } }

/* guiderius-victory */
.scn-guiderius-victory {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 25%, #6a4a3a 55%, #b08050 80%, #e0b070 100%),
    radial-gradient(ellipse at 50% 80%, #e0b070 0%, transparent 60%);
}
.scn-guiderius-victory .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #6a4a3a 100%);
  animation: gv-sky 12s ease-in-out infinite alternate;
}
.scn-guiderius-victory .mountain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: gv-mountain 18s ease-in-out infinite alternate;
}
.scn-guiderius-victory .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-guiderius-victory .figure {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gv-figure 4s ease-in-out infinite;
}
.scn-guiderius-victory .sword {
  position: absolute; bottom: 46%; left: 54%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  transform-origin: bottom center;
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(200,200,200,.3);
  animation: gv-sword 4s ease-in-out infinite;
}
.scn-guiderius-victory .head {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 24px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: gv-head 6s ease-in-out infinite;
}
.scn-guiderius-victory .glow {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(224,176,112,.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: gv-glow 8s ease-in-out infinite alternate;
}
@keyframes gv-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes gv-mountain { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gv-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes gv-sword { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes gv-head { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes gv-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.7; transform: scale(1); } }

/* belarius-fear-retribution */
.scn-belarius-fear-retribution {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 30%, #4a3a2a 60%, #b08050 85%, #e0b070 100%),
    radial-gradient(ellipse at 50% 90%, #e0b070 0%, transparent 70%);
}
.scn-belarius-fear-retribution .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a2a 100%);
  animation: br-sky 15s ease-in-out infinite alternate;
}
.scn-belarius-fear-retribution .cave-walls {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
}
.scn-belarius-fear-retribution .cave-interior {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a0a 0%, #0a0a05 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: br-interior 10s ease-in-out infinite alternate;
}
.scn-belarius-fear-retribution .figure {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: br-figure 5s ease-in-out infinite;
}
.scn-belarius-fear-retribution .staff {
  position: absolute; bottom: 18%; left: 35%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: br-staff 5s ease-in-out infinite;
}
.scn-belarius-fear-retribution .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 20px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: br-shadow 8s ease-in-out infinite alternate;
}
@keyframes br-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes br-interior { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes br-figure { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes br-staff { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes br-shadow { 0% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.2); opacity:.4; } 100% { transform: scaleX(1); opacity:.6; } }

/* disposal-of-head */
.scn-disposal-of-head {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 30%, #5a4a3a 60%, #b08050 85%, #e0b070 100%),
    radial-gradient(ellipse at 50% 95%, #e0b070 0%, transparent 60%);
}
.scn-disposal-of-head .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #5a4a3a 100%);
  animation: dh-sky 12s ease-in-out infinite alternate;
}
.scn-disposal-of-head .bank {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-disposal-of-head .water {
  position: absolute; bottom: 0; right: 0; width: 60%; height: 70%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 60% 0 0 0;
  animation: dh-water 8s ease-in-out infinite alternate;
}
.scn-disposal-of-head .head {
  position: absolute; bottom: 28%; right: 25%; width: 22px; height: 22px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  box-shadow: 0 0 10px rgba(0,0,0,.4);
  animation: dh-head 6s ease-in-out infinite;
}
.scn-disposal-of-head .ripple-1 {
  position: absolute; bottom: 24%; right: 30%; width: 40px; height: 40px;
  border: 1px solid rgba(200,220,255,.3);
  border-radius: 50%;
  animation: dh-ripple1 4s ease-out infinite;
}
.scn-disposal-of-head .ripple-2 {
  position: absolute; bottom: 24%; right: 30%; width: 60px; height: 60px;
  border: 1px solid rgba(200,220,255,.2);
  border-radius: 50%;
  animation: dh-ripple2 4s ease-out infinite 2s;
}
.scn-disposal-of-head .figure-arm {
  position: absolute; bottom: 48%; left: 15%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  transform-origin: bottom center;
  border-radius: 3px;
  transform: rotate(30deg);
  animation: dh-arm 5s ease-in-out infinite;
}
@keyframes dh-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes dh-water { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes dh-head { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-35deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes dh-ripple1 { 0% { transform: scale(0); opacity:1; } 100% { transform: scale(3); opacity:0; } }
@keyframes dh-ripple2 { 0% { transform: scale(0); opacity:1; } 100% { transform: scale(3); opacity:0; } }
@keyframes dh-arm { 0% { transform: rotate(30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }

/* arviragus-envy */
.scn-arviragus-envy {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #8a6a3a 30%, #c0a060 60%, #e0c080 85%, #f0d090 100%),
    radial-gradient(ellipse at 50% 90%, #f0d090 0%, transparent 60%);
}
.scn-arviragus-envy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a6a3a 0%, #c0a060 100%);
  animation: ae-sky 10s ease-in-out infinite alternate;
}
.scn-arviragus-envy .cave-arch {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
}
.scn-arviragus-envy .floor {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-arviragus-envy .figure-left {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ae-figure-left 4s ease-in-out infinite;
}
.scn-arviragus-envy .figure-right {
  position: absolute; bottom: 18%; right: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ae-figure-right 4s ease-in-out infinite 1s;
}
.scn-arviragus-envy .head-trophy {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,.3);
  animation: ae-head 6s ease-in-out infinite;
}
.scn-arviragus-envy .sparkles {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,150,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: ae-sparkles 8s ease-in-out infinite alternate;
}
@keyframes ae-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ae-figure-left { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ae-figure-right { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ae-head { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ae-sparkles { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.5; transform: scale(1); } }

.scn-palace-queen-flowers {
  background: linear-gradient(180deg, #f9e8c8 0%, #d8c098 40%, #8a9a5a 70%, #5a6a3a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-palace-queen-flowers .sky-garden { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0ccf0 0%, #d8e8ff 60%, transparent 100%); animation: pqf-sky 12s ease-in-out infinite alternate; }
.scn-palace-queen-flowers .hills { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.2); animation: pqf-hills 18s ease-in-out infinite alternate; }
.scn-palace-queen-flowers .path { position:absolute; bottom:25%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #c8b08a 0%, #a09070 100%); border-radius: 50% / 30%; transform: scaleX(2); transform-origin: bottom center; opacity:0.6; animation: pqf-path 10s ease-in-out infinite alternate; }
.scn-palace-queen-flowers .flowers { position:absolute; bottom:28%; left:25%; width:30%; height:12%; background: radial-gradient(circle at 20% 50%, #f0c040 0%, transparent 30%), radial-gradient(circle at 60% 40%, #f08060 0%, transparent 25%), radial-gradient(circle at 80% 60%, #f0d080 0%, transparent 20%); filter: blur(1px); animation: pqf-flowers 9s ease-in-out infinite; }
.scn-palace-queen-flowers .basket { position:absolute; bottom:20%; left:50%; width:30px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pqf-basket 6s ease-in-out infinite; }
.scn-palace-queen-flowers .queen { position:absolute; bottom:16%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 30%, #8a6a4a 60%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pqf-queen 8s ease-in-out infinite; }
.scn-palace-queen-flowers .cloud-a { position:absolute; top:12%; left:15%; width:100px; height:20px; background: linear-gradient(90deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%); border-radius:50%; filter:blur(6px); animation: pqf-drift-a 40s linear infinite; }
.scn-palace-queen-flowers .cloud-b { position:absolute; top:8%; right:10%; width:70px; height:14px; background: linear-gradient(-90deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.05) 100%); border-radius:50%; filter:blur(5px); animation: pqf-drift-b 55s linear infinite; }
@keyframes pqf-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pqf-hills { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes pqf-path { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes pqf-flowers { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.05) rotate(2deg); } 100% { transform:scale(1) rotate(-1deg); } }
@keyframes pqf-basket { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes pqf-queen { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(8px) rotate(1deg); } 50% { transform:translateX(16px) rotate(-1deg); } 75% { transform:translateX(24px) rotate(0deg); } 100% { transform:translateX(30px) rotate(1deg); } }
@keyframes pqf-drift-a { 0% { transform:translateX(-50px); } 100% { transform:translateX(150vw); } }
@keyframes pqf-drift-b { 0% { transform:translateX(50px); } 100% { transform:translateX(-200vw); } }

.scn-palace-doctor-query {
  background: linear-gradient(180deg, #e8e0d8 0%, #c8c0b8 40%, #908080 70%, #505050 100%),
              radial-gradient(ellipse at 70% 30%, #fff8f0 0%, transparent 50%);
}
.scn-palace-doctor-query .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0c8c0 0%, #b0a8a0 100%); border-bottom: 2px solid #706860; }
.scn-palace-doctor-query .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #706860 0%, #504840 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-palace-doctor-query .shadows { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(6px); animation: pdq-shadow 6s ease-in-out infinite alternate; }
.scn-palace-doctor-query .table { position:absolute; bottom:25%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #8a7060 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-palace-doctor-query .queen { position:absolute; bottom:15%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #f0d0b0 0%, #d0b090 30%, #a08070 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pdq-queen 5s ease-in-out infinite; }
.scn-palace-doctor-query .doctor { position:absolute; bottom:15%; right:40%; width:36px; height:68px; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 30%, #706050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pdq-doctor 5s ease-in-out infinite; }
.scn-palace-doctor-query .vials { position:absolute; bottom:27%; left:42%; width:20px; height:28px; background: linear-gradient(180deg, #d0e0f0 0%, #80a0c0 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pdq-vials 4s ease-in-out infinite alternate; }
@keyframes pdq-shadow { 0% { opacity:0.2; } 100% { opacity:0.5; } }
@keyframes pdq-queen { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-4px) rotate(-2deg); } 60% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pdq-doctor { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(4px) rotate(2deg); } 60% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pdq-vials { 0% { transform:scale(1) rotate(0deg); opacity:0.8; } 50% { transform:scale(1.1) rotate(5deg); opacity:1; } 100% { transform:scale(1) rotate(-5deg); opacity:0.9; } }

.scn-palace-cornelius-doubt {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0a0a1a 80%, #000010 100%),
              radial-gradient(ellipse at 40% 60%, #4a4a6e 0%, transparent 60%);
}
.scn-palace-cornelius-doubt .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-palace-cornelius-doubt .shelf { position:absolute; top:30%; left:10%; width:35%; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-palace-cornelius-doubt .vial { position:absolute; top:25%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #c0d8f0 0%, #80a0c0 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 12px 2px rgba(80,120,160,0.5); animation: pcd-vial 4s ease-in-out infinite alternate; }
.scn-palace-cornelius-doubt .hand-left { position:absolute; bottom:20%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #d0b090 0%, #a08070 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom left; animation: pcd-hand-l 6s ease-in-out infinite; }
.scn-palace-cornelius-doubt .hand-right { position:absolute; bottom:20%; right:30%; width:22px; height:28px; background: linear-gradient(180deg, #d0b090 0%, #a08070 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom right; animation: pcd-hand-r 6s ease-in-out infinite; }
.scn-palace-cornelius-doubt .cloak { position:absolute; bottom:5%; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #1a1a2a 80%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); }
.scn-palace-cornelius-doubt .shadow { position:absolute; bottom:0; left:15%; width:70%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(8px); animation: pcd-shadow 5s ease-in-out infinite alternate; }
@keyframes pcd-vial { 0% { transform:rotate(-5deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-5deg); } }
@keyframes pcd-hand-l { 0% { transform:rotate(0deg); } 30% { transform:rotate(-10deg); } 60% { transform:rotate(5deg); } 100% { transform:rotate(0deg); } }
@keyframes pcd-hand-r { 0% { transform:rotate(0deg); } 30% { transform:rotate(10deg); } 60% { transform:rotate(-5deg); } 100% { transform:rotate(0deg); } }
@keyframes pcd-shadow { 0% { opacity:0.3; } 100% { opacity:0.7; } }

.scn-palace-cornelius-aside {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2a4e 30%, #1a1a2e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 80% 20%, #4a5880 0%, transparent 50%);
}
.scn-palace-cornelius-aside .window { position:absolute; top:8%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #c0d8f0 0%, #8090b0 100%); border: 4px solid #2a2a4e; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(200,220,255,0.3); }
.scn-palace-cornelius-aside .light-beam { position:absolute; top:10%; right:15%; width:20%; height:70%; background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, transparent 100%); transform: rotate(15deg); transform-origin: top right; animation: pca-beam 8s ease-in-out infinite alternate; }
.scn-palace-cornelius-aside .figure { position:absolute; bottom:10%; left:10%; width:50px; height:90px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pca-figure 10s ease-in-out infinite; }
.scn-palace-cornelius-aside .cloak-fold { position:absolute; bottom:15%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 0 50% 50% 0; transform: rotate(-10deg); animation: pca-cloak 7s ease-in-out infinite; }
.scn-palace-cornelius-aside .hand { position:absolute; bottom:28%; left:30%; width:18px; height:24px; background: linear-gradient(180deg, #d0b090 0%, #a08070 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom left; animation: pca-hand 5s ease-in-out infinite; }
.scn-palace-cornelius-aside .vial { position:absolute; bottom:32%; left:32%; width:12px; height:20px; background: linear-gradient(180deg, #c0d8f0 0%, #80a0c0 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 8px 2px rgba(80,120,160,0.5); animation: pca-vial 4s ease-in-out infinite alternate; }
.scn-palace-cornelius-aside .shadow-floor { position:absolute; bottom:0; left:5%; width:90%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(6px); animation: pca-shad 6s ease-in-out infinite alternate; }
@keyframes pca-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes pca-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 75% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pca-cloak { 0% { transform:rotate(-10deg); } 50% { transform:rotate(-15deg); } 100% { transform:rotate(-5deg); } }
@keyframes pca-hand { 0% { transform:translate(0,0); } 30% { transform:translate(6px,-2px); } 60% { transform:translate(2px,1px); } 100% { transform:translate(0,0); } }
@keyframes pca-vial { 0% { transform:rotate(-8deg); } 100% { transform:rotate(8deg); } }
@keyframes pca-shad { 0% { opacity:0.4; } 100% { opacity:0.8; } }

/* palace-satiate-desire - tense bright interior (gold/black, sharp shadows) */
.scn-palace-satiate-desire {
  background:
    radial-gradient(ellipse at 50% 20%, #e6c980 0%, transparent 60%),
    linear-gradient(180deg, #8b6b3d 0%, #4a3520 40%, #2a1a0e 100%);
}
.scn-palace-satiate-desire .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b8925a 0%, #6b4a2a 60%, #3c2515 100%);
}
.scn-palace-satiate-desire .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-top: 2px solid #a07830;
  box-shadow: inset 0 20px 20px rgba(0,0,0,0.4);
}
.scn-palace-satiate-desire .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 4%;
  background: linear-gradient(135deg, #7a5a2a 0%, #3a2515 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-palace-satiate-desire .goblet {
  position: absolute; bottom: 26%; left: 50%; width: 24px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b060 0%, #a07830 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 12px 4px #b89050;
  animation: sat-glow 3s ease-in-out infinite alternate;
}
.scn-palace-satiate-desire .overflow {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%) translateY(-20px);
  background: radial-gradient(circle, #f0d080 0%, #b89050 70%);
  border-radius: 50%; opacity: 0.8;
  filter: blur(2px);
  animation: sat-drip 2s ease-in-out infinite alternate;
}
.scn-palace-satiate-desire .figure-arm {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0704 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sat-reach 4s ease-in-out infinite;
}
.scn-palace-satiate-desire .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, #000 0%, transparent 70%);
  filter: blur(4px);
  animation: sat-shadow 4s ease-in-out infinite;
}
.scn-palace-satiate-desire .chandelier {
  position: absolute; top: 6%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d4b060 0%, transparent 60%);
  border-radius: 50%; filter: blur(6px);
  box-shadow: 0 0 40px 20px #b89050;
  animation: sat-flicker 2s ease-in-out infinite alternate;
}
@keyframes sat-glow    { 0% { box-shadow: 0 0 8px 2px #b89050; } 50% { box-shadow: 0 0 20px 8px #e0c080; } 100% { box-shadow: 0 0 10px 3px #b89050; } }
@keyframes sat-drip    { 0% { transform: translateX(-50%) translateY(-20px) scale(1); opacity: 0.6; } 100% { transform: translateX(-50%) translateY(10px) scale(0.8); opacity: 0.2; } }
@keyframes sat-reach   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sat-shadow  { 0% { width: 80px; } 50% { width: 100px; } 100% { width: 80px; } }
@keyframes sat-flicker { 0% { filter: blur(6px); box-shadow: 0 0 30px 15px #b89050; } 50% { filter: blur(8px); box-shadow: 0 0 50px 25px #e0c080; } 100% { filter: blur(6px); box-shadow: 0 0 30px 15px #b89050; } }

/* palace-posthumus-mirth - calm bright interior (cream, gold, soft blues) */
.scn-palace-posthumus-mirth {
  background:
    radial-gradient(ellipse at 50% 30%, #f5e8d0 0%, transparent 60%),
    linear-gradient(180deg, #c8b08a 0%, #6b5a45 50%, #3a2e22 100%);
}
.scn-palace-posthumus-mirth .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #e0cfb5 0%, #a08a70 60%, #5a4a38 100%);
}
.scn-palace-posthumus-mirth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6b5a45 0%, #3a2e22 100%);
  border-top: 1px solid #b8a080;
}
.scn-palace-posthumus-mirth .dancer {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0604 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pos-dance 3s ease-in-out infinite;
}
.scn-palace-posthumus-mirth .girland {
  position: absolute; top: 8%; left: 10%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #d4a040, #f0d080, #d4a040);
  border-radius: 50%; filter: blur(3px);
  animation: pos-sway 8s ease-in-out infinite;
}
.scn-palace-posthumus-mirth .girland-b {
  position: absolute; top: 12%; right: 10%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #c09030, #e8c070, #c09030);
  border-radius: 50%; filter: blur(2px);
  animation: pos-sway 10s ease-in-out infinite reverse;
}
.scn-palace-posthumus-mirth .window {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #a0c8e8 0%, #5090c0 100%);
  border: 3px solid #6b5a45;
  border-radius: 2px;
  box-shadow: inset 0 0 20px #80b0d0;
}
.scn-palace-posthumus-mirth .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: pos-beam 6s ease-in-out infinite alternate;
}
.scn-palace-posthumus-mirth .chalice {
  position: absolute; bottom: 22%; left: 30%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #d4b060 0%, #a07830 100%);
  border-radius: 4px;
  box-shadow: 0 0 6px #c09040;
  animation: pos-glint 4s ease-in-out infinite;
}
@keyframes pos-dance { 0% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(5deg) scaleY(0.95); } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 75% { transform: translateX(-50%) rotate(7deg) scaleY(0.95); } 100% { transform: translateX(-50%) rotate(-5deg) scaleY(1); } }
@keyframes pos-sway { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }
@keyframes pos-beam { 0% { opacity: 0.3; height: 120px; } 100% { opacity: 0.7; height: 140px; } }
@keyframes pos-glint { 0%,100% { box-shadow: 0 0 4px #b89050; } 50% { box-shadow: 0 0 12px 4px #e0c080; } }

/* palace-gibe-frenchman - funny bright interior (saturated primaries, bouncy) */
.scn-palace-gibe-frenchman {
  background:
    radial-gradient(ellipse at 50% 30%, #ffe070 0%, transparent 50%),
    linear-gradient(180deg, #f0c860 0%, #c8a030 30%, #806020 100%);
}
.scn-palace-gibe-frenchman .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e8c040 0%, #a08030 60%, #604820 100%);
}
.scn-palace-gibe-frenchman .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a08030 0%, #604820 100%);
  border-top: 3px solid #d0a040;
}
.scn-palace-gibe-frenchman .jester {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #e04050 0%, #a02030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gib-bend 2s ease-in-out infinite;
}
.scn-palace-gibe-frenchman .partner {
  position: absolute; bottom: 15%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2060b0 0%, #104080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gib-recoil 2.5s ease-in-out infinite;
}
.scn-palace-gibe-frenchman .prop {
  position: absolute; bottom: 20%; left: 48%; width: 10px; height: 20px;
  background: radial-gradient(circle, #f0e080 0%, #c8a030 100%);
  border-radius: 50%;
  transform: rotate(30deg);
  animation: gib-prop 3s ease-in-out infinite;
}
.scn-palace-gibe-frenchman .tears {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 10px;
  background: radial-gradient(circle, #80d0ff 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gib-tears 2s ease-in-out infinite;
}
.scn-palace-gibe-frenchman .shadow-group {
  position: absolute; bottom: 12%; left: 25%; width: 100px; height: 8px;
  background: radial-gradient(ellipse, #000 0%, transparent 70%);
  filter: blur(3px);
  animation: gib-shad 2s ease-in-out infinite;
}
@keyframes gib-bend { 0% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(-15deg) scaleY(0.9); } 60% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes gib-recoil { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes gib-prop { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(60deg) translateY(-6px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes gib-tears { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }
@keyframes gib-shad { 0% { width: 100px; } 50% { width: 120px; } 100% { width: 100px; } }

/* palace-pity-implied - tense bright interior (harsh light/dark, cool shadows) */
.scn-palace-pity-implied {
  background:
    radial-gradient(ellipse at 60% 30%, #e8d8c0 0%, transparent 50%),
    linear-gradient(180deg, #606080 0%, #303050 40%, #101020 100%);
}
.scn-palace-pity-implied .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #404060 0%, #202040 60%, #080818 100%);
}
.scn-palace-pity-implied .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #303050 0%, #101020 100%);
  border-top: 1px solid #505070;
}
.scn-palace-pity-implied .window {
  position: absolute; top: 12%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #a0c8e8 0%, #5090c0 100%);
  border: 3px solid #8080a0;
  border-radius: 2px;
  box-shadow: 0 0 30px #a0b0d0;
}
.scn-palace-pity-implied .light-shaft {
  position: absolute; top: 12%; right: 12%; width: 60px; height: 180px;
  background: linear-gradient(180deg, rgba(255,255,220,0.25) 0%, transparent 100%);
  filter: blur(6px);
  animation: pit-shaft 8s ease-in-out infinite alternate;
}
.scn-palace-pity-implied .figure-kneel {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #101018 0%, #050508 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pit-kneel 6s ease-in-out infinite;
}
.scn-palace-pity-implied .chain {
  position: absolute; bottom: 28%; left: 38%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #808080 0%, #505050 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px #909090;
  animation: pit-chain 4s ease-in-out infinite;
}
.scn-palace-pity-implied .shadow-stripe {
  position: absolute; bottom: 20%; left: 0; width: 40%; height: 30%;
  background: linear-gradient(90deg, #000 0%, transparent 100%);
  opacity: 0.5;
  animation: pit-stripe 5s ease-in-out infinite alternate;
}
@keyframes pit-shaft { 0% { opacity: 0.2; height: 180px; } 100% { opacity: 0.5; height: 200px; } }
@keyframes pit-kneel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pit-chain { 0% { transform: translateY(0); } 50% { transform: translateY(6px); } 100% { transform: translateY(0); } }
@keyframes pit-stripe { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

/* posthumus-offers-life */
.scn-posthumus-offers-life {
  background: linear-gradient(180deg, #1b1b2f 0%, #2a2a40 40%, #1e1e32 100%),
              radial-gradient(ellipse at 50% 70%, #3f3250 0%, transparent 60%);
}
.scn-posthumus-offers-life .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  opacity: 0.6;
}
.scn-posthumus-offers-life .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0f0f1a 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-posthumus-offers-life .figure-kneel {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3345 0%, #1f1c2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pol-figure 6s ease-in-out infinite alternate;
}
.scn-posthumus-offers-life .offering-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%) translateY(-10px);
  background: radial-gradient(circle at 50% 50%, rgba(200,150,80,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: pol-glow 4s ease-in-out infinite;
}
.scn-posthumus-offers-life .offering-core {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%) translateY(-10px);
  background: radial-gradient(circle at 50% 50%, #d6b07a 0%, #8a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b88850, 0 0 40px 12px rgba(184,136,80,0.3);
  animation: pol-core 2s ease-in-out infinite alternate;
}
.scn-posthumus-offers-life .chain-link {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 8px;
  background: #4a3f55; border-radius: 4px; transform: rotate(-20deg);
  animation: pol-chain 8s linear infinite;
}
.scn-posthumus-offers-life .chain-link-2 {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 8px;
  background: #4a3f55; border-radius: 4px; transform: rotate(15deg);
  animation: pol-chain-2 8s linear infinite;
}
@keyframes pol-figure {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-5px); }
  100% { transform: translateX(-50%) translateY(2px); }
}
@keyframes pol-glow {
  0% { opacity: 0.4; transform: translateX(-50%) translateY(-10px) scale(1); }
  50% { opacity: 0.8; transform: translateX(-50%) translateY(-15px) scale(1.2); }
  100% { opacity: 0.5; transform: translateX(-50%) translateY(-10px) scale(0.9); }
}
@keyframes pol-core {
  0% { box-shadow: 0 0 20px 8px #b88850, 0 0 40px 12px rgba(184,136,80,0.3); opacity: 0.8; }
  100% { box-shadow: 0 0 30px 12px #e0b070, 0 0 60px 20px rgba(224,176,112,0.4); opacity: 1; }
}
@keyframes pol-chain {
  0% { transform: rotate(-20deg) translateX(0); }
  100% { transform: rotate(-20deg) translateX(10px); }
}
@keyframes pol-chain-2 {
  0% { transform: rotate(15deg) translateX(0); }
  100% { transform: rotate(15deg) translateX(-10px); }
}

/* apparition-father */
.scn-apparition-father {
  background: linear-gradient(180deg, #0e0e1c 0%, #1c1c30 50%, #121222 100%),
              radial-gradient(ellipse at 50% 60%, #2a2540 0%, transparent 70%);
}
.scn-apparition-father .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0b14 0%, #1a1825 70%, #0e0d18 100%);
  opacity: 0.7;
}
.scn-apparition-father .circle-ring {
  position: absolute; top: 50%; left: 50%; width: 220px; height: 220px;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(150,130,180,0.25);
  border-radius: 50%;
  animation: apf-ring 20s linear infinite;
}
.scn-apparition-father .matron-figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3f5a 0%, #2c253e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apf-matron 8s ease-in-out infinite alternate;
}
.scn-apparition-father .brother-left {
  position: absolute; bottom: 25%; left: 25%; width: 35px; height: 70px;
  transform: rotate(-20deg);
  background: linear-gradient(180deg, #3a3348 0%, #1f1c30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apf-brother-l 5s ease-in-out infinite;
}
.scn-apparition-father .brother-right {
  position: absolute; bottom: 25%; right: 25%; width: 35px; height: 70px;
  transform: rotate(20deg);
  background: linear-gradient(180deg, #3a3348 0%, #1f1c30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apf-brother-r 5s ease-in-out infinite;
}
.scn-apparition-father .wound-overlay {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 8px;
  background: #5a3240; border-radius: 50%; filter: blur(2px);
  animation: apf-wound 3s ease-in-out infinite;
}
.scn-apparition-father .spirit-mist {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,220,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: apf-mist 12s ease-in-out infinite alternate;
}
@keyframes apf-ring {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes apf-matron {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(2px); }
}
@keyframes apf-brother-l {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-10px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes apf-brother-r {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-10px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes apf-wound {
  0% { opacity: 0; }
  50% { opacity: 0.6; }
  100% { opacity: 0; }
}
@keyframes apf-mist {
  0% { transform: translateX(0); opacity: 0.3; }
  100% { transform: translateX(30px); opacity: 0.7; }
}

/* apparition-mother */
.scn-apparition-mother {
  background: linear-gradient(180deg, #1a1024 0%, #2a1a38 40%, #1a1024 100%),
              radial-gradient(ellipse at 50% 80%, #3c224c 0%, transparent 70%);
}
.scn-apparition-mother .bg-womb {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 60%, #2a1a38 0%, #0e0a14 100%);
  opacity: 0.8;
}
.scn-apparition-mother .mother-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 55px; height: 95px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a4a 0%, #1e142e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apm-mother 7s ease-in-out infinite alternate;
}
.scn-apparition-mother .babe-form {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a38 0%, #1a0e26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apm-babe 4s ease-in-out infinite;
}
.scn-apparition-mother .umbilical-cord {
  position: absolute; bottom: 30%; left: 46%; width: 3px; height: 40px;
  background: #4c3858; transform: rotate(10deg);
  animation: apm-cord 3s ease-in-out infinite;
}
.scn-apparition-mother .light-veil {
  position: absolute; top: 10%; left: 20%; width: 160px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,240,0.08) 0%, transparent 70%);
  filter: blur(10px);
  animation: apm-veil 15s ease-in-out infinite alternate;
}
.scn-apparition-mother .tear-drop {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 10px;
  background: #7a6a8a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: apm-tear 6s ease-in-out infinite;
}
.scn-apparition-mother .tear-drop-2 {
  position: absolute; bottom: 28%; left: 52%; width: 5px; height: 8px;
  background: #7a6a8a; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.3;
  animation: apm-tear-2 6s ease-in-out infinite 2s;
}
.scn-apparition-mother .shadow-void {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #0a0610 0%, transparent 100%);
}
@keyframes apm-mother {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-6px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(2px) scale(0.98); }
}
@keyframes apm-babe {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(-5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes apm-cord {
  0% { transform: rotate(10deg) scaleY(1); opacity: 0.6; }
  50% { transform: rotate(5deg) scaleY(1.2); opacity: 0.9; }
  100% { transform: rotate(10deg) scaleY(1); opacity: 0.6; }
}
@keyframes apm-veil {
  0% { transform: translateX(0) translateY(0); opacity: 0.2; }
  100% { transform: translateX(30px) translateY(-10px); opacity: 0.5; }
}
@keyframes apm-tear {
  0% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(10px); opacity: 0.7; }
  100% { transform: translateY(20px); opacity: 0; }
}
@keyframes apm-tear-2 {
  0% { transform: translateY(0); opacity: 0.2; }
  50% { transform: translateY(8px); opacity: 0.5; }
  100% { transform: translateY(18px); opacity: 0; }
}

/* apparition-brothers-praise */
.scn-apparition-brothers-praise {
  background: linear-gradient(135deg, #3a2a1e 0%, #4a3a2e 50%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-apparition-brothers-praise .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a14 0%, #3a2a20 60%, #1e1410 100%);
  opacity: 0.7;
}
.scn-apparition-brothers-praise .table-plank {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10px;
  background: linear-gradient(0deg, #5a4a3a 0%, #6a5a4a 100%);
  border-radius: 2px;
  animation: apb-table 8s ease-in-out infinite alternate;
}
.scn-apparition-brothers-praise .cup-left {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-15deg);
  animation: apb-cup-l 3s ease-in-out infinite;
}
.scn-apparition-brothers-praise .cup-right {
  position: absolute; bottom: 22%; right: 35%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(15deg);
  animation: apb-cup-r 3s ease-in-out infinite 0.5s;
}
.scn-apparition-brothers-praise .brother-fig-left {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apb-bro-l 6s ease-in-out infinite alternate;
}
.scn-apparition-brothers-praise .brother-fig-right {
  position: absolute; bottom: 15%; right: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apb-bro-r 6s ease-in-out infinite alternate 0.3s;
}
.scn-apparition-brothers-praise .warm-haze {
  position: absolute; top: 30%; left: 10%; width: 200px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,0.12) 0%, transparent 70%);
  filter: blur(12px);
  animation: apb-haze 20s ease-in-out infinite alternate;
}
@keyframes apb-table {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px); }
}
@keyframes apb-cup-l {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes apb-cup-r {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes apb-bro-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes apb-bro-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes apb-haze {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  100% { transform: translateX(20px) scale(1.1); opacity: 0.6; }
}

.scn-rome-fear-honour {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e0c9a8 40%, #c8a882 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-rome-fear-honour .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4bc 0%, #d9c0a3 100%);
}
.scn-rome-fear-honour .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08464 0%, #7a6040 100%);
}
.scn-rome-fear-honour .window {
  position: absolute; top: 18%; left: 38%; width: 90px; height: 120px;
  background: radial-gradient(ellipse at center, #ffe8c0 0%, #d4a570 70%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.5);
}
.scn-rome-fear-honour .figure-a {
  position: absolute; bottom: 30%; left: 28%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure-a 2s ease-in-out infinite alternate;
}
.scn-rome-fear-honour .figure-b {
  position: absolute; bottom: 30%; right: 34%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure-b 2.5s ease-in-out infinite alternate;
}
.scn-rome-fear-honour .table {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6b4b 0%, #5a3a2a 100%);
  border-radius: 4px;
}
.scn-rome-fear-honour .beam {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rh-beam 3s ease-in-out infinite alternate;
}
@keyframes rh-figure-a {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes rh-figure-b {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-1px) scaleY(1.01); }
  100% { transform: translateX(1px) scaleY(0.99); }
}
@keyframes rh-beam {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(0.95); }
}

.scn-rome-philario-wager {
  background: 
    linear-gradient(180deg, #fdf3e0 0%, #eddbbe 50%, #d4bfa3 100%),
    radial-gradient(ellipse at 30% 0%, #fff8ed 0%, transparent 60%);
}
.scn-rome-philario-wager .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0dfc8 0%, #e0cbb0 100%);
}
.scn-rome-philario-wager .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
}
.scn-rome-philario-wager .window {
  position: absolute; top: 12%; left: 42%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at center, #fff0d0 0%, #d4b890 70%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,220,150,0.4);
  animation: rp-window 8s ease-in-out infinite alternate;
}
.scn-rome-philario-wager .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ecd8b8 0%, #c8a880 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-rome-philario-wager .figure-seated {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-seated 6s ease-in-out infinite alternate;
}
.scn-rome-philario-wager .figure-standing {
  position: absolute; bottom: 25%; right: 28%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-standing 9s ease-in-out infinite alternate;
}
@keyframes rp-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rp-seated {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes rp-standing {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(0.99); }
}

.scn-rome-iachimo-arrival {
  background: 
    linear-gradient(180deg, #f8e4c8 0%, #e0c8a0 40%, #c8a872 100%),
    radial-gradient(ellipse at 60% 0%, #ffe8d0 0%, transparent 70%);
}
.scn-rome-iachimo-arrival .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #eddcc5 0%, #dcc8ab 100%);
}
.scn-rome-iachimo-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #b09878 0%, #907050 100%);
}
.scn-rome-iachimo-arrival .door {
  position: absolute; bottom: 28%; right: 15%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.3);
}
.scn-rome-iachimo-arrival .figure-enter {
  position: absolute; bottom: 28%; right: 20%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-enter 3s ease-in-out infinite alternate;
}
.scn-rome-iachimo-arrival .figure-host {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-host 5s ease-in-out infinite alternate;
}
.scn-rome-iachimo-arrival .window-ship {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at bottom, #a0c8e8 0%, #d4e0f0 50%, #f0ecdd 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.3);
  overflow: hidden;
}
.scn-rome-iachimo-arrival .window-ship::after {
  content: ''; position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at top, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 0 50% 50% 0 / 0 100% 100% 0;
}
.scn-rome-iachimo-arrival .rug {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 40px;
  background: linear-gradient(90deg, #c07040 0%, #a05030 25%, #804020 50%, #a05030 75%, #c07040 100%);
  border-radius: 20px 20px 10px 10px;
  animation: ri-rug 12s ease-in-out infinite alternate;
}
@keyframes ri-enter {
  0% { transform: translateX(10px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  100% { transform: translateX(5px) rotate(0deg); }
}
@keyframes ri-host {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes ri-rug {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.9; transform: scaleX(0.98); }
}

.scn-rome-ring-challenge {
  background: 
    linear-gradient(180deg, #e8d8c8 0%, #d0bca0 50%, #b8a088 100%),
    radial-gradient(ellipse at 50% 0%, #fff0e0 0%, transparent 50%);
}
.scn-rome-ring-challenge .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #dcc8b0 0%, #c8b098 100%);
}
.scn-rome-ring-challenge .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 6px;
}
.scn-rome-ring-challenge .hand-ring {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #e8c89a 0%, #c8a070 60%, #8a6040 100%);
  border-radius: 30px 30px 40px 40px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: rr-hand 1.5s ease-in-out infinite alternate;
}
.scn-rome-ring-challenge .hand-ring::after {
  content: ''; position: absolute; top: 12%; left: 28%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c09840 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,150,64,0.6);
  animation: rr-ring 2.4s ease-in-out infinite alternate;
}
.scn-rome-ring-challenge .figure-left {
  position: absolute; bottom: 20%; left: 12%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-figure-left 3s ease-in-out infinite alternate;
}
.scn-rome-ring-challenge .figure-right {
  position: absolute; bottom: 20%; right: 12%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-figure-right 3.5s ease-in-out infinite alternate;
}
.scn-rome-ring-challenge .candle {
  position: absolute; bottom: 27%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-rome-ring-challenge .candle::before {
  content: ''; position: absolute; top: -8px; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ffa020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffa020;
  animation: rr-candle 1.6s ease-in-out infinite alternate;
}
@keyframes rr-hand {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes rr-ring {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(0.95); }
}
@keyframes rr-figure-left {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(-2px) rotate(2deg); }
}
@keyframes rr-figure-right {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes rr-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.3); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.8); opacity: 0.85; }
}

.scn-lost-soldier-remembered {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 50%, #b8a88a 100%),
    radial-gradient(ellipse at 30% 60%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-lost-soldier-remembered .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dac0 0%, #d4c4a0 100%); }
.scn-lost-soldier-remembered .window { position:absolute; top:8%; left:35%; width:30%; height:55%; background: linear-gradient(135deg, #b0d0f0 0%, #88b8e0 100%); border-radius: 4% 4% 20% 20% / 8% 8% 30% 30%; border: 6px solid #8a7a5a; box-shadow: inset 0 0 20px rgba(255,255,200,0.2); animation: lsr-window 6s ease-in-out infinite alternate; }
.scn-lost-soldier-remembered .soldier { position:absolute; bottom:28%; left:42%; width:12%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lsr-soldier 4s ease-in-out infinite; }
.scn-lost-soldier-remembered .sword { position:absolute; bottom:38%; left:48%; width:2%; height:30%; background: linear-gradient(180deg, #b8a88a 0%, #8a7a5a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom left; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: lsr-sword 2s ease-in-out infinite alternate; }
.scn-lost-soldier-remembered .shadow { position:absolute; bottom:28%; left:38%; width:20%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: lsr-shadow 4s ease-in-out infinite; }
.scn-lost-soldier-remembered .light-beam { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(255,240,180,0.15) 0%, transparent 80%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: lsr-beam 8s ease-in-out infinite alternate; }
.scn-lost-soldier-remembered .dust { position:absolute; top:20%; left:0; width:100%; height:80%; background: radial-gradient(circle at 10% 20%, rgba(255,255,200,0.08) 0%, transparent 50%); animation: lsr-dust 12s linear infinite; }
@keyframes lsr-window { 0% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.03); } 100% { opacity:0.95; transform:scaleY(0.98); } }
@keyframes lsr-soldier { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lsr-sword { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes lsr-shadow { 0% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.05); } 100% { opacity:0.7; transform:scaleX(0.95); } }
@keyframes lsr-beam { 0% { opacity:0.4; transform:translateX(0); } 50% { opacity:0.7; transform:translateX(10px); } 100% { opacity:0.5; transform:translateX(-10px); } }
@keyframes lsr-dust { 0% { transform:translateY(0); } 50% { transform:translateY(-20px); } 100% { transform:translateY(0); } }

.scn-iachimo-repents {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #c0b090 50%, #a89878 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-iachimo-repents .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-iachimo-repents .pillar-left { position:absolute; bottom:35%; left:10%; width:8%; height:65%; background: linear-gradient(180deg, #d0c0a0 0%, #b8a080 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,0.1); animation: ir-pillar 8s ease-in-out infinite alternate; }
.scn-iachimo-repents .pillar-right { position:absolute; bottom:35%; right:10%; width:8%; height:65%; background: linear-gradient(180deg, #d0c0a0 0%, #b8a080 100%); border-radius: 10% 10% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,0.1); animation: ir-pillar 8s ease-in-out infinite alternate-reverse; }
.scn-iachimo-repents .kneeling-figure { position:absolute; bottom:28%; left:44%; width:12%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ir-kneel 3s ease-in-out infinite; }
.scn-iachimo-repents .halo { position:absolute; top:14%; left:44%; width:12%; height:12%; background: radial-gradient(circle, rgba(255,240,180,0.4) 0%, transparent 70%); border-radius: 50%; animation: ir-halo 5s ease-in-out infinite alternate; }
.scn-iachimo-repents .bracelet { position:absolute; bottom:40%; left:42%; width:4%; height:4%; background: radial-gradient(circle, #c8a050 0%, #a08030 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,160,80,0.6); animation: ir-sparkle 2s ease-in-out infinite; }
.scn-iachimo-repents .ring { position:absolute; bottom:35%; left:50%; width:3%; height:3%; background: radial-gradient(circle, #d4b060 0%, #b09040 100%); border-radius: 50%; box-shadow: 0 0 6px 1px rgba(212,176,96,0.5); animation: ir-sparkle 2.3s ease-in-out infinite; }
@keyframes ir-pillar { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes ir-kneel { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes ir-halo { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes ir-sparkle { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.6; transform:scale(0.9); } }

.scn-general-pardon {
  background:
    linear-gradient(180deg, #f0e6c8 0%, #d8c8a0 50%, #c0b080 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-general-pardon .dais { position:absolute; bottom:0; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-general-pardon .king { position:absolute; bottom:20%; left:44%; width:12%; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gp-king 4s ease-in-out infinite; }
.scn-general-pardon .cloak { position:absolute; bottom:20%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #6a3a3a 0%, #4a2a2a 100%); border-radius: 60% 60% 30% 30% / 80% 80% 40% 40%; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); animation: gp-cloak 6s ease-in-out infinite alternate; }
.scn-general-pardon .crown { position:absolute; bottom:68%; left:46%; width:8%; height:10%; background: linear-gradient(180deg, #d4b080 0%, #b89060 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 10px 2px rgba(216,184,128,0.5); animation: gp-crown 3s ease-in-out infinite alternate; }
.scn-general-pardon .light-rays { position:absolute; top:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 80%); clip-path: polygon(30% 0, 70% 0, 50% 100%, 50% 100%); animation: gp-rays 7s ease-in-out infinite alternate; }
.scn-general-pardon .carpet { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(90deg, #8a3040 0%, #6a2030 50%, #8a3040 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; animation: gp-carpet 5s ease-in-out infinite alternate; }
.scn-general-pardon .grain { position:absolute; top:10%; left:0; width:100%; height:90%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.02) 0px, rgba(0,0,0,0.02) 2px, transparent 2px, transparent 8px); pointer-events: none; animation: gp-grain 2s steps(2) infinite; }
@keyframes gp-king { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gp-cloak { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(-2deg); } }
@keyframes gp-crown { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gp-rays { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.05); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes gp-carpet { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes gp-grain { 0% { opacity:0.5; } 100% { opacity:0.8; } }

.scn-oracle-label-read {
  background:
    linear-gradient(180deg, #f0e6c8 0%, #d8c8a0 50%, #c0b080 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-oracle-label-read .table { position:absolute; bottom:0; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-oracle-label-read .scroll { position:absolute; bottom:28%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: olr-scroll 4s ease-in-out infinite alternate; }
.scn-oracle-label-read .reader { position:absolute; bottom:10%; left:38%; width:10%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: olr-reader 3s ease-in-out infinite; }
.scn-oracle-label-read .candle { position:absolute; bottom:28%; left:60%; width:3%; height:15%; background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: olr-candle 5s ease-in-out infinite alternate; }
.scn-oracle-label-read .flame { position:absolute; bottom:42%; left:60%; width:3%; height:5%; background: radial-gradient(circle, #ffd080 0%, #ffa040 70%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 12px 4px rgba(255,160,64,0.5); animation: olr-flame 1.6s ease-in-out infinite alternate; }
.scn-oracle-label-read .book { position:absolute; bottom:18%; left:30%; width:8%; height:12%; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: olr-book 6s ease-in-out infinite alternate-reverse; }
.scn-oracle-label-read .inkwell { position:absolute; bottom:20%; left:52%; width:4%; height:6%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 2px 4px #5a4a4a; animation: olr-inkwell 7s ease-in-out infinite; }
@keyframes olr-scroll { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes olr-reader { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes olr-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes olr-flame { 0% { transform: scaleY(1) translateX(0); } 30% { transform: scaleY(1.1) translateX(2px); } 60% { transform: scaleY(0.95) translateX(-1px); } 100% { transform: scaleY(1.05) translateX(0); } }
@keyframes olr-book { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes olr-inkwell { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }

/* Scene 1: rome-wager-accepted */
.scn-rome-wager-accepted {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 40%, #c09870 100%),
              radial-gradient(circle at 70% 20%, #fff5e0 0%, transparent 50%);
}
.scn-rome-wager-accepted .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 50%, #0a0500 100%);
  animation: rwa-backdrop 6s ease-in-out infinite alternate;
}
.scn-rome-wager-accepted .table {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3218 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-rome-wager-accepted .figure-left {
  position: absolute; bottom: 26%; left: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwa-figure-left 4s ease-in-out infinite;
}
.scn-rome-wager-accepted .figure-right {
  position: absolute; bottom: 26%; right: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwa-figure-right 4s ease-in-out infinite;
}
.scn-rome-wager-accepted .ring {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #ffd700, 0 0 40px 12px rgba(255,215,0,0.3);
  transform: translateX(-50%);
  animation: rwa-ring 3s ease-in-out infinite;
}
.scn-rome-wager-accepted .coins {
  position: absolute; bottom: 10%; left: 40%; width: 30%; height: 8%;
  background: radial-gradient(ellipse at 30% 50%, #d4a843 0%, #b8860b 40%, #8b6914 100%);
  border-radius: 30%; box-shadow: inset 0 4px 10px #6b4a2e;
  animation: rwa-coins 5s ease-in-out infinite alternate;
}
.scn-rome-wager-accepted .lantern {
  position: absolute; top: 12%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  transform: translateX(-50%);
  animation: rwa-lantern 2s ease-in-out infinite alternate;
}
.scn-rome-wager-accepted .shadow-overlay {
  position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 60%);
  pointer-events: none;
}

@keyframes rwa-backdrop { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rwa-figure-left { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rwa-figure-right { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rwa-ring { 0%,100% { box-shadow: 0 0 18px 4px #ffd700, 0 0 35px 8px rgba(255,215,0,0.2); } 50% { box-shadow: 0 0 30px 10px #ffec80, 0 0 60px 20px rgba(255,236,128,0.4); } }
@keyframes rwa-coins { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.95); } }
@keyframes rwa-lantern { 0% { opacity: 0.8; transform: translateX(-50%) translateY(0); } 100% { opacity: 1; transform: translateX(-50%) translateY(-3px); } }

/* Scene 2: rome-ring-wager */
.scn-rome-ring-wager {
  background: linear-gradient(180deg, #d9c4a3 0%, #bea684 40%, #a58a6a 100%),
              radial-gradient(circle at 30% 40%, #f5e6c8 0%, transparent 50%);
}
.scn-rome-ring-wager .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #8b7355 0%, #6b563a 100%);
  animation: rrw-wall 8s ease-in-out infinite alternate;
}
.scn-rome-ring-wager .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  transform: perspective(500px) rotateY(5deg);
}
.scn-rome-ring-wager .hand-left {
  position: absolute; bottom: 25%; left: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #b8a88a 0%, #8c7668 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-10deg);
  animation: rrw-hand-left 3s ease-in-out infinite;
}
.scn-rome-ring-wager .hand-right {
  position: absolute; bottom: 25%; right: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #b8a88a 0%, #8c7668 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(10deg);
  animation: rrw-hand-right 3s ease-in-out infinite;
}
.scn-rome-ring-wager .ring-glow {
  position: absolute; bottom: 38%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 40%, #8b6914 100%);
  border-radius: 50%; box-shadow: 0 0 25px 8px #ffd700, 0 0 50px 16px rgba(255,215,0,0.3);
  transform: translateX(-50%);
  animation: rrw-ring-glow 2s ease-in-out infinite alternate;
}
.scn-rome-ring-wager .drapery {
  position: absolute; top: 0; right: 5%; width: 20%; height: 100%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 0 40%; filter: blur(2px);
  transform: perspective(600px) rotateY(-10deg);
  animation: rrw-drapery 10s ease-in-out infinite;
}
.scn-rome-ring-wager .table-edge {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3218 100%);
  border-radius: 30% 30% 0 0; box-shadow: 0 -8px 15px rgba(0,0,0,0.4);
}

@keyframes rrw-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rrw-hand-left { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-5px); } }
@keyframes rrw-hand-right { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-4px); } }
@keyframes rrw-ring-glow { 0% { box-shadow: 0 0 20px 4px #ffd700, 0 0 35px 8px rgba(255,215,0,0.2); } 100% { box-shadow: 0 0 30px 10px #ffec80, 0 0 60px 20px rgba(255,236,128,0.4); } }
@keyframes rrw-drapery { 0%,100% { transform: perspective(600px) rotateY(-10deg) scaleY(1); } 50% { transform: perspective(600px) rotateY(-8deg) scaleY(1.02); } }

/* Scene 3: rome-covenant-drawn */
.scn-rome-covenant-drawn {
  background: linear-gradient(180deg, #c9b28a 0%, #a88c68 40%, #8a7050 100%),
              radial-gradient(ellipse at 60% 20%, #f0dcc0 0%, transparent 60%);
}
.scn-rome-covenant-drawn .bg-panel {
  position: absolute; inset: 0; background: linear-gradient(180deg, #7a6348 0%, #4a3828 100%);
  filter: blur(4px);
  animation: rcd-panel 12s ease-in-out infinite alternate;
}
.scn-rome-covenant-drawn .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 -10px 25px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(3deg);
}
.scn-rome-covenant-drawn .document {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #f5e6c8 0%, #dcc4a0 100%);
  border-radius: 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: rcd-document 5s ease-in-out infinite;
}
.scn-rome-covenant-drawn .quill {
  position: absolute; bottom: 25%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0a080 100%);
  border-radius: 50% 50% 0 0; transform: translateX(-50%) rotate(15deg);
  animation: rcd-quill 3s ease-in-out infinite;
}
.scn-rome-covenant-drawn .inkwell {
  position: absolute; bottom: 15%; left: 40%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-rome-covenant-drawn .seal {
  position: absolute; bottom: 16%; right: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rcd-seal 4s ease-in-out infinite alternate;
}
.scn-rome-covenant-drawn .candle {
  position: absolute; top: 20%; right: 25%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #f0dcc0 0%, #d4a843 50%, #8b6914 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 10px rgba(255,200,100,0.3);
  animation: rcd-candle 2s ease-in-out infinite alternate;
}

@keyframes rcd-panel { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes rcd-document { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes rcd-quill { 0%,100% { transform: translateX(-50%) rotate(15deg) translateY(0); } 50% { transform: translateX(-50%) rotate(12deg) translateY(-4px); } }
@keyframes rcd-seal { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.15); opacity: 1; } }
@keyframes rcd-candle { 0% { opacity: 0.8; filter: blur(0); } 50% { opacity: 1; filter: blur(1px); } 100% { opacity: 0.9; filter: blur(0); } }

/* Scene 4: rome-sword-answer */
.scn-rome-sword-answer {
  background: linear-gradient(180deg, #c8b090 0%, #a08868 40%, #806850 100%),
              radial-gradient(circle at 40% 30%, #e0c8a0 0%, transparent 50%);
}
.scn-rome-sword-answer .room-depth {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6b5038 0%, #3a2818 100%);
  animation: rsa-depth 10s ease-in-out infinite alternate;
}
.scn-rome-sword-answer .figure-silhouette {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsa-figure 5s ease-in-out infinite;
}
.scn-rome-sword-answer .sword-blade {
  position: absolute; bottom: 25%; left: 35%; width: 2%; height: 50%;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #c0c0c0 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 0 15px 3px rgba(200,200,200,0.3);
  transform: translateX(-50%) rotate(10deg);
  animation: rsa-blade 3s ease-in-out infinite alternate;
}
.scn-rome-sword-answer .sword-hand {
  position: absolute; bottom: 55%; left: 35%; width: 8%; height: 8%;
  background: radial-gradient(circle, #b8a88a 0%, #8c7668 100%);
  border-radius: 50%; transform: translateX(-50%);
  animation: rsa-hand 3s ease-in-out infinite;
}
.scn-rome-sword-answer .belt-buckle {
  position: absolute; bottom: 40%; left: 38%; width: 10px; height: 6px;
  background: radial-gradient(circle, #c0c0c0 0%, #808080 100%);
  border-radius: 20%;
  animation: rsa-buckle 4s ease-in-out infinite;
}
.scn-rome-sword-answer .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4a3218 100%);
  transform: perspective(400px) rotateX(5deg);
}
.scn-rome-sword-answer .light-shaft {
  position: absolute; top: 0; left: 30%; width: 8%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(255,240,200,0.05) 100%);
  filter: blur(6px); pointer-events: none;
  animation: rsa-shaft 8s ease-in-out infinite alternate;
}

@keyframes rsa-depth { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rsa-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rsa-blade { 0% { transform: translateX(-50%) rotate(10deg) scaleX(1); } 100% { transform: translateX(-50%) rotate(12deg) scaleX(1.05); } }
@keyframes rsa-hand { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } }
@keyframes rsa-buckle { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.9; transform: scale(0.9); } }
@keyframes rsa-shaft { 0% { opacity: 0.3; filter: blur(8px); } 50% { opacity: 0.6; filter: blur(4px); } 100% { opacity: 0.4; filter: blur(6px); } }

.scn-ante-chamber-cloten-music {
  background:
    linear-gradient(180deg, #f9d5a0 0%, #f4b87a 30%, #c97a5e 70%, #4a2e1a 100%),
    radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 60%);
}
.scn-ante-chamber-cloten-music .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffeedd 0%, #fddba8 40%, transparent 100%);
  animation: acm-sky 8s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-music .chamber-wall {
  position:absolute; top:15%; bottom:0; left:5%; right:5%;
  background: linear-gradient(180deg, #b2856a 0%, #8c5e40 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-ante-chamber-cloten-music .door {
  position:absolute; bottom:10%; left:50%; width:80px; height:140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4a32 0%, #3a2418 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: acm-door 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-music .cloten-figure {
  position:absolute; bottom:12%; left:30%; width:28px; height:50px;
  background: linear-gradient(180deg, #d4a373 0%, #a67c52 50%, #6b4a32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acm-strut 2s ease-in-out infinite;
}
.scn-ante-chamber-cloten-music .lord-left {
  position:absolute; bottom:12%; left:18%; width:20px; height:40px;
  background: linear-gradient(180deg, #b88a6a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acm-bob 2.5s ease-in-out infinite 0.3s;
}
.scn-ante-chamber-cloten-music .lord-right {
  position:absolute; bottom:12%; right:22%; width:20px; height:40px;
  background: linear-gradient(180deg, #b88a6a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acm-bob 2.5s ease-in-out infinite 0.8s;
}
.scn-ante-chamber-cloten-music .lute {
  position:absolute; bottom:18%; left:40%; width:16px; height:24px;
  background: radial-gradient(circle at 50% 30%, #c08a50 0%, #8a6030 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: acm-lute 1.5s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-music .window-glow {
  position:absolute; top:18%; right:20%; width:30px; height:40px;
  background: radial-gradient(circle, #fff6d0 0%, #f0c080 60%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(240,192,128,0.5), 0 0 80px 30px rgba(240,192,128,0.2);
  animation: acm-glow 3s ease-in-out infinite alternate;
}
@keyframes acm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes acm-door { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) } }
@keyframes acm-strut { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(4px) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(0) rotate(0deg) scaleY(1) } 75% { transform: translateX(-4px) rotate(-3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes acm-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes acm-lute { 0% { transform: rotate(-10deg) scale(1) } 100% { transform: rotate(5deg) scale(1.1) } }
@keyframes acm-glow { 0% { opacity:0.6; box-shadow: 0 0 30px 10px rgba(240,192,128,0.4); } 50% { opacity:1; box-shadow: 0 0 60px 25px rgba(240,192,128,0.6); } 100% { opacity:0.8; box-shadow: 0 0 40px 15px rgba(240,192,128,0.5); } }

.scn-ante-chamber-song-lark {
  background:
    linear-gradient(180deg, #fad5a5 0%, #f0b87a 25%, #c97a5e 65%, #4a2e1a 100%),
    radial-gradient(ellipse at 70% 20%, #fff0d0 0%, transparent 50%);
}
.scn-ante-chamber-song-lark .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffeedd 0%, #fddba8 40%, transparent 100%); animation: asl-sky 8s ease-in-out infinite alternate; }
.scn-ante-chamber-song-lark .chamber-wall { position:absolute; top:15%; bottom:0; left:5%; right:5%; background: linear-gradient(180deg, #b2856a 0%, #8c5e40 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-ante-chamber-song-lark .singer-figure {
  position:absolute; bottom:12%; left:35%; width:28px; height:48px;
  background: linear-gradient(180deg, #d4a373 0%, #a67c52 50%, #6b4a32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asl-sing 3s ease-in-out infinite;
}
.scn-ante-chamber-song-lark .lark-bird {
  position:absolute; top:25%; left:20%; width:16px; height:12px;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 40% 40%;
  animation: asl-bird 2s ease-in-out infinite;
}
.scn-ante-chamber-song-lark .note-1 { position:absolute; top:30%; left:50%; width:6px; height:6px; background: #8a5a2a; border-radius: 50%; box-shadow: 0 8px 0 #8a5a2a, 0 16px 0 #8a5a2a; animation: asl-note 4s ease-in-out infinite; }
.scn-ante-chamber-song-lark .note-2 { position:absolute; top:25%; left:55%; width:6px; height:6px; background: #8a5a2a; border-radius: 50%; box-shadow: 0 8px 0 #8a5a2a; animation: asl-note 4.5s ease-in-out infinite 0.5s; }
.scn-ante-chamber-song-lark .note-3 { position:absolute; top:20%; left:45%; width:6px; height:6px; background: #8a5a2a; border-radius: 50%; box-shadow: 0 8px 0 #8a5a2a; animation: asl-note 3.5s ease-in-out infinite 1s; }
@keyframes asl-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes asl-sing { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-1px) scaleY(1.02) } 50% { transform: translateY(-2px) scaleY(1.05) } 75% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes asl-bird { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes asl-note { 0% { transform: translateY(0) scale(1) opacity:0.8; } 50% { transform: translateY(-15px) scale(1.2) opacity:1; } 100% { transform: translateY(-30px) scale(0.8) opacity:0; } }

.scn-ante-chamber-music-mocked {
  background:
    linear-gradient(180deg, #f9d5a0 0%, #e8b07a 30%, #b86a4a 70%, #3a2212 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-ante-chamber-music-mocked .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffeedd 0%, #fddba8 40%, transparent 100%); animation: amm-sky 8s ease-in-out infinite alternate; }
.scn-ante-chamber-music-mocked .chamber-wall { position:absolute; top:15%; bottom:0; left:5%; right:5%; background: linear-gradient(180deg, #b2856a 0%, #8c5e40 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-ante-chamber-music-mocked .king-figure {
  position:absolute; bottom:12%; left:25%; width:28px; height:48px;
  background: linear-gradient(180deg, #c89a6a 0%, #9a7a4a 50%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amm-enter 6s ease-in-out infinite;
}
.scn-ante-chamber-music-mocked .musician-figure {
  position:absolute; bottom:12%; right:35%; width:24px; height:44px;
  background: linear-gradient(180deg, #c08050 0%, #906030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amm-mock 2s ease-in-out infinite;
}
.scn-ante-chamber-music-mocked .viol-instrument {
  position:absolute; bottom:20%; right:40%; width:12px; height:30px;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  animation: amm-viol 2s ease-in-out infinite alternate;
}
.scn-ante-chamber-music-mocked .bow {
  position:absolute; bottom:22%; right:38%; width:20px; height:2px;
  background: #4a2a1a;
  transform: rotate(-30deg);
  animation: amm-bow 2s ease-in-out infinite alternate;
}
.scn-ante-chamber-music-mocked .mocked-ear {
  position:absolute; top:35%; left:45%; width:10px; height:14px;
  background: linear-gradient(180deg, #d4a373 0%, #a07040 100%);
  border-radius: 50% 50% 40% 40%;
  animation: amm-ear 3s ease-in-out infinite;
}
@keyframes amm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes amm-enter { 0%,100% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } }
@keyframes amm-mock { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes amm-viol { 0% { transform: rotate(15deg) scale(1) } 100% { transform: rotate(-5deg) scale(1.05) } }
@keyframes amm-bow { 0% { transform: rotate(-30deg) } 100% { transform: rotate(10deg) } }
@keyframes amm-ear { 0%,100% { transform: scale(1) } 50% { transform: scale(1.2) } }

.scn-ante-chamber-king-queen {
  background:
    linear-gradient(180deg, #fce2b5 0%, #f0c890 25%, #d09060 60%, #4a2e1a 100%),
    radial-gradient(ellipse at 20% 40%, #fff0d0 0%, transparent 50%);
}
.scn-ante-chamber-king-queen .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffeedd 0%, #fddba8 40%, transparent 100%); animation: akq-sky 10s ease-in-out infinite alternate; }
.scn-ante-chamber-king-queen .chamber-wall { position:absolute; top:15%; bottom:0; left:5%; right:5%; background: linear-gradient(180deg, #b2856a 0%, #8c5e40 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-ante-chamber-king-queen .door {
  position:absolute; bottom:10%; left:50%; width:70px; height:130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4a32 0%, #3a2418 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: akq-door 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-queen .king-figure {
  position:absolute; bottom:12%; left:25%; width:28px; height:50px;
  background: linear-gradient(180deg, #c8a070 0%, #9a7a50 50%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: akq-breathe 4s ease-in-out infinite;
}
.scn-ante-chamber-king-queen .queen-figure {
  position:absolute; bottom:12%; right:25%; width:24px; height:46px;
  background: linear-gradient(180deg, #d4a080 0%, #a07050 50%, #705030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: akq-breathe 4.5s ease-in-out infinite 0.5s;
}
.scn-ante-chamber-king-queen .crown-glow {
  position:absolute; top:55%; left:30%; width:20px; height:8px;
  background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, transparent 100%);
  box-shadow: 0 0 20px 10px rgba(240,208,128,0.3);
  animation: akq-crown 3s ease-in-out infinite alternate;
}
.scn-ante-chamber-king-queen .scepter {
  position:absolute; bottom:20%; left:35%; width:4px; height:20px;
  background: linear-gradient(180deg, #d09060 0%, #a06030 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(10deg);
  animation: akq-scepter 5s ease-in-out infinite alternate;
}
@keyframes akq-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes akq-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } }
@keyframes akq-breathe { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.01) } }
@keyframes akq-crown { 0% { opacity:0.6; box-shadow: 0 0 15px 5px rgba(240,208,128,0.2); } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(240,208,128,0.4); } 100% { opacity:0.8; box-shadow: 0 0 20px 8px rgba(240,208,128,0.3); } }
@keyframes akq-scepter { 0% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }

/* oracle-label-interpreted */
.scn-oracle-label-interpreted {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 60%, #b8a888 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,230,180,0.6) 0%, transparent 50%);
}
.scn-oracle-label-interpreted .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #e0d0b8 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.08);
}
.scn-oracle-label-interpreted .window {
  position: absolute; top: 10%; right: 8%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at center, #fff8dc 0%, #e8d8b0 40%, transparent 70%);
  border-radius: 50% / 30% 30% 40% 40%;
  box-shadow: 0 0 60px 20px rgba(255,230,180,0.5);
  animation: oi-window 6s ease-in-out infinite alternate;
}
.scn-oracle-label-interpreted .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-oracle-label-interpreted .scroll {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d4b8 100%);
  border-radius: 5% / 20% 20% 30% 30%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: oi-scroll-pulse 4s ease-in-out infinite;
}
.scn-oracle-label-interpreted .glow {
  position: absolute; bottom: 30%; left: 36%; width: 28%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,200,80,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: oi-glow 5s ease-in-out infinite alternate;
}
.scn-oracle-label-interpreted .lamp {
  position: absolute; bottom: 30%; left: 12%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #d4aa60 0%, #b08840 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.6);
  animation: oi-lamp 3s ease-in-out infinite;
}
.scn-oracle-label-interpreted .book {
  position: absolute; bottom: 12%; height: 8%;
  width: 8%; background: #8a6040; border-radius: 2px;
  box-shadow: inset 0 0 0 2px #6a4020;
}
.scn-oracle-label-interpreted .book.left { left: 24%; animation: oi-book-tilt 7s ease-in-out infinite; }
.scn-oracle-label-interpreted .book.right { right: 24%; animation: oi-book-tilt 7s ease-in-out infinite reverse; }

@keyframes oi-window { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.02); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes oi-scroll-pulse { 0%,100% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } }
@keyframes oi-glow { 0% { opacity:0.4; transform: scale(1); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes oi-lamp { 0%,100% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(-3px); opacity:1; } }
@keyframes oi-book-tilt { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }

/* peace-declared */
.scn-peace-declared {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #c8b8a8 60%, #a89888 100%),
    radial-gradient(ellipse at 50% 20%, rgba(240,230,210,0.4) 0%, transparent 50%);
}
.scn-peace-declared .bg {
  position: absolute; inset: 0;
  background: linear-gradient(45deg, #d4c4b4 0%, #e0d4c4 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.06);
}
.scn-peace-declared .column-left { left: 12%; }
.scn-peace-declared .column-right { right: 12%; }
.scn-peace-declared .column-left, .scn-peace-declared .column-right {
  position: absolute; top: 10%; bottom: 20%; width: 6%;
  background: linear-gradient(180deg, #b8a088 0%, #a08870 100%);
  border-radius: 10% / 5% 5% 10% 10%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.1), inset 4px 0 8px rgba(255,255,255,0.3);
}
.scn-peace-declared .column-left { animation: pd-columns 12s ease-in-out infinite; }
.scn-peace-declared .column-right { animation: pd-columns 12s ease-in-out infinite reverse; }
.scn-peace-declared .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}
.scn-peace-declared .figure-left, .scn-peace-declared .figure-right {
  position: absolute; bottom: 15%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-peace-declared .figure-left { left: 22%; transform-origin: bottom center; animation: pd-bow-left 8s ease-in-out infinite; }
.scn-peace-declared .figure-right { right: 22%; transform-origin: bottom center; animation: pd-bow-right 8s ease-in-out infinite; }
.scn-peace-declared .seal {
  position: absolute; bottom: 17%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, #c87050 0%, #a05030 60%, #803020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,112,80,0.4);
  animation: pd-seal-glow 4s ease-in-out infinite alternate;
}

@keyframes pd-columns { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes pd-bow-left { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-4px); } 50% { transform: rotate(-10deg) translateX(-2px); } 75% { transform: rotate(-5deg) translateX(0); } }
@keyframes pd-bow-right { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(4px); } 50% { transform: rotate(10deg) translateX(2px); } 75% { transform: rotate(5deg) translateX(0); } }
@keyframes pd-seal-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.15); } }

/* final-celebration */
.scn-final-celebration {
  background:
    linear-gradient(180deg, #ffdca0 0%, #f0c080 40%, #d8a060 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,240,180,0.7) 0%, transparent 50%);
}
.scn-final-celebration .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f8d080 60%, transparent 100%);
  animation: fc-sky 15s ease-in-out infinite alternate;
}
.scn-final-celebration .temple {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #e8c090 0%, #c8a070 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}
.scn-final-celebration .altar {
  position: absolute; bottom: 8%; left: 42%; right: 42%; height: 22%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 30% 30% 0 0;
}
.scn-final-celebration .smoke {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fc-smoke 8s ease-out infinite;
}
.scn-final-celebration .flag-left, .scn-final-celebration .flag-right {
  position: absolute; bottom: 60%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #b03030 0%, #802020 100%);
  border-radius: 2px;
}
.scn-final-celebration .flag-left { left: 25%; animation: fc-flag-left 3s ease-in-out infinite; }
.scn-final-celebration .flag-right { right: 25%; background: #2060a0; animation: fc-flag-right 3.2s ease-in-out infinite; }
.scn-final-celebration .sunrays {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at center, rgba(255,220,100,0.3) 0%, transparent 70%);
  animation: fc-sunrays 10s ease-in-out infinite alternate;
}

@keyframes fc-sky { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes fc-smoke { 0% { opacity:0.7; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-80px) scale(2); } }
@keyframes fc-flag-left { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes fc-flag-right { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } }
@keyframes fc-sunrays { 0% { opacity:0.3; transform: scale(1); } 100% { opacity:0.6; transform: scale(1.1); } }

/* exeunt */
.scn-exeunt {
  background:
    linear-gradient(180deg, #d4c8b8 0%, #c0b4a0 50%, #a89c88 100%),
    radial-gradient(ellipse at 50% 30%, rgba(220,210,190,0.5) 0%, transparent 60%);
}
.scn-exeunt .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8bcac 0%, #d8ccbc 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.05);
}
.scn-exeunt .doorway {
  position: absolute; bottom: 5%; left: 35%; right: 35%; height: 65%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-exeunt .spotlight {
  position: absolute; top: 0; left: 25%; right: 25%; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 50% 100%);
  animation: ex-spotlight 10s ease-in-out infinite alternate;
}
.scn-exeunt .figure {
  position: absolute; bottom: 5%; left: 44%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ex-walk-away 8s ease-in-out infinite;
}
.scn-exeunt .curtain-left, .scn-exeunt .curtain-right {
  position: absolute; top: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #8a6040 0%, #5a4020 100%);
  border-radius: 10% / 5% 5% 10% 10%;
}
.scn-exeunt .curtain-left { left: 0; animation: ex-curtain-left 6s ease-in-out infinite; }
.scn-exeunt .curtain-right { right: 0; animation: ex-curtain-right 6s ease-in-out infinite; }

@keyframes ex-spotlight { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; } 100% { opacity:0.4; transform: scaleY(1.1); } }
@keyframes ex-walk-away { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-4px) scaleY(1.02); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(4px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ex-curtain-left { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } }
@keyframes ex-curtain-right { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

.scn-imogen-discovers-corpse {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 40%, #2c2244 100%),
              radial-gradient(ellipse at 50% 10%, #3a3a6e 0%, transparent 70%);
}
.scn-imogen-discovers-corpse .moon {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #d0d0f0 0%, #a0a0c0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,160,200,0.3);
  animation: icd-moon 15s ease-in-out infinite alternate;
}
.scn-imogen-discovers-corpse .sky-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%);
  animation: icd-skyglow 20s ease-in-out infinite alternate;
}
.scn-imogen-discovers-corpse .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 100%);
  border-radius: 30% 20% 0 0 / 20% 10% 0 0;
}
.scn-imogen-discovers-corpse .body {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 70px;
  height: 90px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: icd-body 6s ease-in-out infinite;
}
.scn-imogen-discovers-corpse .flowers {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 30px;
  height: 20px;
  background: radial-gradient(circle at 30% 40%, #c8b0a0 0%, #a08070 50%, transparent 70%);
  border-radius: 40% 50% 30% 60% / 50% 40% 60% 40%;
  opacity: 0.6;
  animation: icd-flowers 8s ease-in-out infinite alternate;
}
.scn-imogen-discovers-corpse .blood {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 40px;
  height: 8px;
  background: radial-gradient(ellipse, #6a3030 0%, #4a2020 60%, transparent 100%);
  border-radius: 50%;
  animation: icd-blood 4s ease-in-out infinite alternate;
}
.scn-imogen-discovers-corpse .shadow {
  position: absolute;
  bottom: 16%;
  left: 20%;
  width: 100px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: icd-shadow 10s ease-in-out infinite alternate;
}
@keyframes icd-moon { 0% { opacity:0.7; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-5px) scale(1.02); } 100% { opacity:0.8; transform: translateY(0) scale(0.98); } }
@keyframes icd-skyglow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes icd-body { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes icd-flowers { 0% { transform: scale(1) rotate(0deg); opacity:0.5; } 50% { transform: scale(1.1) rotate(5deg); opacity:0.7; } 100% { transform: scale(0.95) rotate(-3deg); opacity:0.4; } }
@keyframes icd-blood { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.3; transform: scaleX(0.9); } }
@keyframes icd-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.7; } 100% { transform: scaleX(0.95); opacity:0.4; } }

.scn-imogen-mistakes-cloten {
  background: linear-gradient(180deg, #0b0b1e 0%, #1a1a3e 40%, #2c2244 100%),
              radial-gradient(ellipse at 60% 15%, #3a3a6e 0%, transparent 70%);
}
.scn-imogen-mistakes-cloten .moon {
  position: absolute;
  top: 6%;
  left: 65%;
  width: 55px;
  height: 55px;
  background: radial-gradient(circle, #c0c0e0 0%, #9090b0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(144,144,176,0.3);
  animation: imc-moon 18s ease-in-out infinite alternate;
}
.scn-imogen-mistakes-cloten .sky-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.01) 100%);
  animation: imc-skyglow 22s ease-in-out infinite alternate;
}
.scn-imogen-mistakes-cloten .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(0deg, #12122a 0%, #1e1e3a 100%);
  border-radius: 40% 30% 0 0 / 15% 10% 0 0;
}
.scn-imogen-mistakes-cloten .figure-kneeling {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a44 0%, #0e0e1e 100%);
  border-radius: 60% 40% 30% 50% / 70% 60% 40% 50%;
  transform: rotate(5deg);
  animation: imc-kneel 5s ease-in-out infinite;
}
.scn-imogen-mistakes-cloten .headless-torso {
  position: absolute;
  bottom: 16%;
  left: 45%;
  width: 60px;
  height: 70px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: imc-torso 7s ease-in-out infinite;
}
.scn-imogen-mistakes-cloten .garment {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%;
  transform: rotate(-5deg);
  animation: imc-garment 9s ease-in-out infinite alternate;
}
.scn-imogen-mistakes-cloten .shadow {
  position: absolute;
  bottom: 14%;
  left: 30%;
  width: 120px;
  height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: imc-shadow 12s ease-in-out infinite alternate;
}
.scn-imogen-mistakes-cloten .cave-wall {
  position: absolute;
  right: 5%;
  bottom: 30%;
  width: 80px;
  height: 200px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1e 100%);
  border-radius: 40% 0 0 60% / 20% 0 0 80%;
  transform: skewX(-10deg);
  animation: imc-cave 20s ease-in-out infinite alternate;
}
@keyframes imc-moon { 0% { opacity:0.6; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-8px) scale(1.03); } 100% { opacity:0.7; transform: translateY(0) scale(0.97); } }
@keyframes imc-skyglow { 0% { opacity:0.25; } 50% { opacity:0.5; } 100% { opacity:0.15; } }
@keyframes imc-kneel { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes imc-torso { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(13deg) scale(1.02); } 100% { transform: rotate(15deg) scale(0.98); } }
@keyframes imc-garment { 0% { opacity:0.4; transform: rotate(-5deg) translateY(0); } 50% { opacity:0.7; transform: rotate(-8deg) translateY(-2px); } 100% { opacity:0.5; transform: rotate(-5deg) translateY(0); } }
@keyframes imc-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.15); opacity:0.8; } 100% { transform: scaleX(0.95); opacity:0.3; } }
@keyframes imc-cave { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(-5px); } 100% { transform: skewX(-10deg) translateX(0); } }

.scn-imogen-curses-pisanio {
  background: linear-gradient(180deg, #0a0a1c 0%, #1a1a3e 45%, #2c2244 100%),
              radial-gradient(ellipse at 40% 12%, #3a3a6e 0%, transparent 70%);
}
.scn-imogen-curses-pisanio .moon {
  position: absolute;
  top: 5%;
  left: 75%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #b0b0d0 0%, #8080a0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 12px rgba(128,128,160,0.25);
  animation: icp-moon 16s ease-in-out infinite alternate;
}
.scn-imogen-curses-pisanio .sky-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.005) 100%);
  animation: icp-skyglow 19s ease-in-out infinite alternate;
}
.scn-imogen-curses-pisanio .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 48%;
  background: linear-gradient(0deg, #16162e 0%, #22223e 100%);
  border-radius: 50% 30% 0 0 / 20% 15% 0 0;
}
.scn-imogen-curses-pisanio .imogen-arms {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 60px;
  height: 100px;
  background: linear-gradient(180deg, #2a2a44 0%, #0e0e1e 100%);
  border-radius: 50% 30% 20% 40% / 80% 50% 40% 60%;
  transform: rotate(-20deg) scaleX(-1);
  animation: icp-arms 4s ease-in-out infinite;
}
.scn-imogen-curses-pisanio .letter {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10%;
  transform: rotate(30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: icp-letter 6s ease-in-out infinite alternate;
}
.scn-imogen-curses-pisanio .shadow {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 110px;
  height: 18px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.65) 0%, transparent 100%);
  animation: icp-shadow 11s ease-in-out infinite alternate;
}
.scn-imogen-curses-pisanio .rock {
  position: absolute;
  left: 10%;
  bottom: 20%;
  width: 70px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #12122a 100%);
  border-radius: 30% 50% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-5deg);
  animation: icp-rock 20s ease-in-out infinite alternate;
}
@keyframes icp-moon { 0% { opacity:0.5; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-6px) scale(1.02); } 100% { opacity:0.6; transform: translateY(0) scale(0.98); } }
@keyframes icp-skyglow { 0% { opacity:0.2; } 50% { opacity:0.45; } 100% { opacity:0.1; } }
@keyframes icp-arms { 0% { transform: rotate(-20deg) scaleX(-1) translateY(0); } 50% { transform: rotate(-15deg) scaleX(-1) translateY(-4px); } 100% { transform: rotate(-20deg) scaleX(-1) translateY(0); } }
@keyframes icp-letter { 0% { transform: rotate(30deg) scale(1); opacity:0.6; } 50% { transform: rotate(25deg) scale(1.05); opacity:0.8; } 100% { transform: rotate(30deg) scale(0.95); opacity:0.5; } }
@keyframes icp-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.3; } }
@keyframes icp-rock { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-imogen-despair {
  background: linear-gradient(180deg, #08081a 0%, #1a1a3e 50%, #2c2244 100%),
              radial-gradient(ellipse at 30% 20%, #3a3a6e 0%, transparent 70%);
}
.scn-imogen-despair .moon {
  position: absolute;
  top: 4%;
  left: 80%;
  width: 48px;
  height: 48px;
  background: radial-gradient(circle, #a0a0c0 0%, #707090 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(112,112,144,0.2);
  animation: idp-moon 17s ease-in-out infinite alternate;
}
.scn-imogen-despair .sky-glow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.015) 0%, rgba(255,255,255,0.005) 100%);
  animation: idp-skyglow 21s ease-in-out infinite alternate;
}
.scn-imogen-despair .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 52%;
  background: linear-gradient(0deg, #101028 0%, #1c1c36 100%);
  border-radius: 60% 40% 0 0 / 25% 15% 0 0;
}
.scn-imogen-despair .imogen-collapsed {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a44 0%, #0e0e1e 100%);
  border-radius: 60% 40% 40% 40% / 70% 50% 50% 40%;
  transform: rotate(15deg) scale(0.9);
  animation: idp-collapse 8s ease-in-out infinite;
}
.scn-imogen-despair .hair {
  position: absolute;
  bottom: 26%;
  left: 25%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(20deg);
  animation: idp-hair 5s ease-in-out infinite alternate;
}
.scn-imogen-despair .shadow {
  position: absolute;
  bottom: 16%;
  left: 25%;
  width: 130px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: idp-shadow 13s ease-in-out infinite alternate;
}
.scn-imogen-despair .body-legs {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a44 0%, #0e0e1e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-5deg);
  animation: idp-legs 6s ease-in-out infinite;
}
@keyframes idp-moon { 0% { opacity:0.4; transform: translateY(0) scale(1); } 50% { opacity:0.9; transform: translateY(-7px) scale(1.02); } 100% { opacity:0.5; transform: translateY(0) scale(0.97); } }
@keyframes idp-skyglow { 0% { opacity:0.15; } 50% { opacity:0.4; } 100% { opacity:0.1; } }
@keyframes idp-collapse { 0% { transform: rotate(15deg) scale(0.9) translateY(0); } 50% { transform: rotate(12deg) scale(0.95) translateY(-3px); } 100% { transform: rotate(15deg) scale(0.9) translateY(0); } }
@keyframes idp-hair { 0% { transform: rotate(20deg) translateY(0); opacity:0.6; } 50% { transform: rotate(15deg) translateY(-2px); opacity:0.8; } 100% { transform: rotate(20deg) translateY(0); opacity:0.5; } }
@keyframes idp-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.25); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.2; } }
@keyframes idp-legs { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* pisanio-questioned: tense, bright interior */
.scn-pisanio-questioned {
  background: linear-gradient(180deg, #f5e6d3 0%, #e8d4b8 40%, #d0b89a 70%, #b8a088 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,240,200,0.6) 0%, transparent 60%);
}
.scn-pisanio-questioned .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #f5e6d3 0%, #e8d4b8 50%, #d0b89a 100%); }
.scn-pisanio-questioned .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89a80 0%, #9a7d66 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); }
.scn-pisanio-questioned .chair { position:absolute; bottom:25%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #6b4c3a 0%, #4a3325 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform-origin: bottom center; animation: pq-chair 6s ease-in-out infinite; }
.scn-pisanio-questioned .figure { position:absolute; bottom:26%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2018 0%, #140e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pq-figure 3s ease-in-out infinite; }
.scn-pisanio-questioned .light { position:absolute; top:10%; left:70%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(255,240,180,0.4) 0%, transparent 70%); animation: pq-light 2s ease-in-out infinite alternate; }
.scn-pisanio-questioned .shadow { position:absolute; bottom:30%; left:25%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 60%); transform-origin: bottom left; animation: pq-shadow 4s ease-in-out infinite; }
@keyframes pq-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pq-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(1px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pq-light { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes pq-shadow { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.2) rotate(3deg); } 100% { transform: scale(0.9) rotate(-2deg); } }

/* lord-defends-pisanio: calm, bright interior */
.scn-lord-defends-pisanio {
  background: linear-gradient(180deg, #fdf4e3 0%, #f0e0cc 40%, #dcc6aa 70%, #c8ad8f 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255,245,220,0.5) 0%, transparent 50%);
}
.scn-lord-defends-pisanio .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #fdf4e3 0%, #f0e0cc 50%, #dcc6aa 100%); }
.scn-lord-defends-pisanio .window { position:absolute; top:15%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #c8dfee 0%, #a3c4d9 100%); border: 4px solid #8b7355; box-shadow: inset 0 0 20px rgba(255,255,255,0.5); border-radius: 4%; animation: ldp-window 12s ease-in-out infinite alternate; }
.scn-lord-defends-pisanio .shelf { position:absolute; top:22%; left:55%; width:120px; height:8px; background: #7a6348; box-shadow: 0 4px 6px rgba(0,0,0,0.2); }
.scn-lord-defends-pisanio .book1 { position:absolute; top:18%; left:58%; width:12px; height:30px; background: linear-gradient(180deg, #5e3a22 0%, #3d2616 100%); border-radius: 2px; transform: rotate(-5deg); animation: ldp-book 8s ease-in-out infinite; }
.scn-lord-defends-pisanio .figure1 { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #2c1e14 0%, #140c06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldp-fig1 10s ease-in-out infinite; }
.scn-lord-defends-pisanio .figure2 { position:absolute; bottom:20%; left:45%; width:22px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldp-fig2 12s ease-in-out infinite; }
.scn-lord-defends-pisanio .lamp { position:absolute; top:10%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #e8cf9a 0%, #c8a870 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(255,220,150,0.5); animation: ldp-lamp 6s ease-in-out infinite alternate; }
@keyframes ldp-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ldp-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ldp-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ldp-fig2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ldp-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,220,150,0.4); } 50% { box-shadow: 0 0 25px 8px rgba(255,220,150,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(255,220,150,0.5); } }

/* war-preparations: tense, bright interior */
.scn-war-preparations {
  background: linear-gradient(180deg, #4a3b2f 0%, #5c4a3c 30%, #6d5a48 60%, #4a3b2f 100%),
    radial-gradient(ellipse at 50% 70%, rgba(255,180,80,0.3) 0%, transparent 70%);
}
.scn-war-preparations .bg { position:absolute; inset:0; background: linear-gradient(90deg, #4a3b2f 0%, #5c4a3c 50%, #6d5a48 100%); }
.scn-war-preparations .table { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #8b704a 0%, #6d5534 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-war-preparations .map { position:absolute; bottom:25%; left:20%; width:60%; height:30%; background: linear-gradient(135deg, #c8b07a 0%, #a88b5a 50%, #c8b07a 100%); border-radius: 2%; transform: rotate(-2deg); animation: wp-map 5s ease-in-out infinite; }
.scn-war-preparations .figure1 { position:absolute; bottom:28%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #1a120c 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-fig1 3s ease-in-out infinite; }
.scn-war-preparations .figure2 { position:absolute; bottom:28%; left:55%; width:24px; height:58px; background: linear-gradient(180deg, #2a1c10 0%, #120a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wp-fig2 3.5s ease-in-out infinite; }
.scn-war-preparations .sword { position:absolute; bottom:35%; left:38%; width:4px; height:40px; background: #b0a090; border-radius: 0 0 2px 2px; transform: rotate(20deg); transform-origin: bottom center; animation: wp-sword 2s ease-in-out infinite; }
.scn-war-preparations .torch { position:absolute; top:12%; left:50%; width:10px; height:18px; background: linear-gradient(180deg, #ffcc66 0%, #cc8833 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,180,50,0.6); animation: wp-torch 2s ease-in-out infinite alternate; }
@keyframes wp-map { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes wp-fig1 { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes wp-fig2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes wp-sword { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(18deg); } }
@keyframes wp-torch { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* pisanio-perplexed: tense, dim interior */
.scn-pisanio-perplexed {
  background: linear-gradient(180deg, #1a1423 0%, #2c2235 40%, #1a1423 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,150,80,0.15) 0%, transparent 60%);
}
.scn-pisanio-perplexed .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1423 0%, #2c2235 50%, #1a1423 100%); }
.scn-pisanio-perplexed .desk { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-pisanio-perplexed .candle { position:absolute; bottom:35%; left:65%; width:6px; height:20px; background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); animation: pp-candle 3s ease-in-out infinite alternate; }
.scn-pisanio-perplexed .chair { position:absolute; bottom:18%; left:50%; width:35px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 8% 8% 4% 4%; transform: translateX(-50%); animation: pp-chair 8s ease-in-out infinite; }
.scn-pisanio-perplexed .figure { position:absolute; bottom:20%; left:48%; width:20px; height:45px; background: linear-gradient(180deg, #120a06 0%, #0a0402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: pp-figure 4s ease-in-out infinite; }
.scn-pisanio-perplexed .letter { position:absolute; bottom:30%; left:55%; width:14px; height:10px; background: #d4c4a0; border-radius: 1px; transform: rotate(15deg); opacity:0.6; animation: pp-letter 5s ease-in-out infinite; }
@keyframes pp-candle { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes pp-chair { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes pp-figure { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(2deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } }
@keyframes pp-letter { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }

/* cloten-guiderius-fight */
.scn-cloten-guiderius-fight {
  background: linear-gradient(180deg, #4a5a6a 0%, #7a7a5a 40%, #b08050 70%, #d0a060 100%),
              radial-gradient(ellipse at 30% 20%, #e0c080 0%, transparent 60%);
}
.scn-cloten-guiderius-fight .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #6a7a5a 50%, transparent 100%);
  animation: clfg-sky 10s ease-in-out infinite alternate;
}
.scn-cloten-guiderius-fight .sun {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(224,160,64,0.3);
  animation: clfg-sun 12s ease-in-out infinite;
}
.scn-cloten-guiderius-fight .hill-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 0 0 / 50% 60% 0 0;
  animation: clfg-hill 20s ease-in-out infinite alternate;
}
.scn-cloten-guiderius-fight .hill-front {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: clfg-hill 25s ease-in-out infinite alternate-reverse;
}
.scn-cloten-guiderius-fight .fig-left {
  position: absolute; bottom: 18%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clfg-fight 3s ease-in-out infinite;
}
.scn-cloten-guiderius-fight .fig-right {
  position: absolute; bottom: 18%; right: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clfg-fight 3s ease-in-out infinite 0.5s;
}
.scn-cloten-guiderius-fight .sword-left {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: clfg-sword 2s ease-in-out infinite;
}
.scn-cloten-guiderius-fight .sword-right {
  position: absolute; bottom: 35%; right: 30%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: clfg-sword 2s ease-in-out infinite 0.5s;
}
.scn-cloten-guiderius-fight .dust {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 15px;
  background: radial-gradient(ellipse at center, rgba(180,160,120,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: clfg-dust 4s ease-in-out infinite;
}
@keyframes clfg-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes clfg-sun { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(-5px) scale(1.05); opacity: 1 } 100% { transform: translateY(0) scale(1); opacity: 0.8 } }
@keyframes clfg-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes clfg-fight { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes clfg-sword { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes clfg-dust { 0% { opacity: 0; transform: scale(0.5) } 50% { opacity: 0.6; transform: scale(1) } 100% { opacity: 0; transform: scale(0.5) } }

/* single-combat-threats */
.scn-single-combat-threats {
  background: linear-gradient(180deg, #4a5a6a 0%, #7a7a5a 40%, #b08050 70%, #d0a060 100%),
              radial-gradient(ellipse at 60% 30%, #e0c080 0%, transparent 60%);
}
.scn-single-combat-threats .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #6a7a5a 50%, transparent 100%);
  animation: scth-sky 12s ease-in-out infinite alternate;
}
.scn-single-combat-threats .sun {
  position: absolute; top: 20%; right: 25%; width: 45px; height: 45px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px rgba(224,160,64,0.3);
  animation: scth-sun 10s ease-in-out infinite;
}
.scn-single-combat-threats .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 0 0 0 0 / 0 0 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-single-combat-threats .fig-threat {
  position: absolute; bottom: 18%; left: 50%; width: 45px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scth-threat 3s ease-in-out infinite;
}
.scn-single-combat-threats .sword-threat {
  position: absolute; bottom: 40%; left: 58%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #a0a0b0 0%, #707080 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: scth-sword 2s ease-in-out infinite;
}
.scn-single-combat-threats .cape {
  position: absolute; bottom: 18%; left: 42%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 0 20% 30% 10% / 0 40% 30% 10%;
  transform: rotate(15deg);
  transform-origin: top center;
  animation: scth-cape 4s ease-in-out infinite;
}
.scn-single-combat-threats .shadow-threat {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, transparent 100%);
  opacity: 0.4;
  animation: scth-shadow 3s ease-in-out infinite;
}
@keyframes scth-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes scth-sun { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes scth-threat { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } }
@keyframes scth-sword { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-5px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes scth-cape { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes scth-shadow { 0% { transform: scaleX(1); opacity: 0.4 } 50% { transform: scaleX(1.1); opacity: 0.6 } 100% { transform: scaleX(1); opacity: 0.4 } }

/* cloten-queens-son */
.scn-cloten-queens-son {
  background: linear-gradient(180deg, #4a5a6a 0%, #7a7a5a 40%, #b08050 70%, #d0a060 100%),
              radial-gradient(ellipse at 50% 15%, #e0c080 0%, transparent 70%);
}
.scn-cloten-queens-son .sky-dawn {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #6a7a5a 50%, transparent 100%);
  animation: clqs-sky 14s ease-in-out infinite alternate;
}
.scn-cloten-queens-son .sun {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(224,160,64,0.3);
  animation: clqs-sun 8s ease-in-out infinite;
}
.scn-cloten-queens-son .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.4);
}
.scn-cloten-queens-son .fig-proud {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: clqs-proud 4s ease-in-out infinite;
}
.scn-cloten-queens-son .crown {
  position: absolute; bottom: 78%; left: 50%; width: 30px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a040 0%, #a08020 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: clqs-crown 5s ease-in-out infinite;
}
.scn-cloten-queens-son .cloak {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a2a3a 0%, #3a1a2a 100%);
  border-radius: 0 30% 30% 10% / 0 50% 30% 10%;
  transform: rotate(-10deg);
  transform-origin: top center;
  animation: clqs-cloak 6s ease-in-out infinite;
}
.scn-cloten-queens-son .staff {
  position: absolute; bottom: 20%; left: 58%; width: 5px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: clqs-staff 3s ease-in-out infinite;
}
.scn-cloten-queens-son .shadow-proud {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 25px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, transparent 100%);
  opacity: 0.4;
  animation: clqs-shadow 4s ease-in-out infinite;
}
@keyframes clqs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes clqs-sun { 0% { transform: translateX(-50%) scale(1); opacity: 0.8 } 50% { transform: translateX(-50%) translateY(-3px) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.8 } }
@keyframes clqs-proud { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg) } }
@keyframes clqs-crown { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes clqs-cloak { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes clqs-staff { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes clqs-shadow { 0% { transform: scaleX(1); opacity: 0.4 } 50% { transform: scaleX(1.1); opacity: 0.6 } 100% { transform: scaleX(1); opacity: 0.4 } }

/* belarius-anxiety */
.scn-belarius-anxiety {
  background: linear-gradient(180deg, #4a5a6a 0%, #7a7a5a 40%, #b08050 70%, #d0a060 100%),
              radial-gradient(ellipse at 40% 25%, #e0c080 0%, transparent 60%);
}
.scn-belarius-anxiety .sky-dawn {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #6a7a5a 50%, transparent 100%);
  animation: blax-sky 16s ease-in-out infinite alternate;
}
.scn-belarius-anxiety .sun {
  position: absolute; top: 18%; left: 30%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(224,160,64,0.3);
  animation: blax-sun 11s ease-in-out infinite;
}
.scn-belarius-anxiety .hill-back {
  position: absolute; bottom: 30%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: blax-hill 22s ease-in-out infinite alternate;
}
.scn-belarius-anxiety .hill-mid {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: blax-hill 26s ease-in-out infinite alternate-reverse;
}
.scn-belarius-anxiety .fig-belarius {
  position: absolute; bottom: 17%; left: 30%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blax-fig 3.5s ease-in-out infinite;
}
.scn-belarius-anxiety .fig-arviragus {
  position: absolute; bottom: 17%; right: 30%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blax-fig 3.5s ease-in-out infinite 0.7s;
}
.scn-belarius-anxiety .tree {
  position: absolute; bottom: 22%; left: 8%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform: scaleY(1.2);
  animation: blax-tree 8s ease-in-out infinite;
}
.scn-belarius-anxiety .shadow-anxiety {
  position: absolute; bottom: 8%; left: 20%; width: 120px; height: 25px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.5) 0%, transparent 100%);
  opacity: 0.3;
  animation: blax-shadow 4s ease-in-out infinite;
}
@keyframes blax-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes blax-sun { 0% { transform: translateY(0) scale(1); opacity: 0.8 } 50% { transform: translateY(-4px) scale(1.04); opacity: 1 } 100% { transform: translateY(0) scale(1); opacity: 0.8 } }
@keyframes blax-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes blax-fig { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes blax-tree { 0% { transform: scaleY(1.2) rotate(0deg) } 50% { transform: scaleY(1.2) rotate(3deg) } 100% { transform: scaleY(1.2) rotate(0deg) } }
@keyframes blax-shadow { 0% { transform: scaleX(1); opacity: 0.3 } 50% { transform: scaleX(1.15); opacity: 0.5 } 100% { transform: scaleX(1); opacity: 0.3 } }

/* Scene: posthumus-surrenders */
.scn-posthumus-surrenders {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%),
              radial-gradient(ellipse at 60% 30%, #6a5a8e 0%, transparent 60%);
}
.scn-posthumus-surrenders .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, transparent 100%);
  animation: ps-sky 14s ease-in-out infinite alternate;
}
.scn-posthumus-surrenders .sun {
  position: absolute; top: 12%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,.3);
  animation: ps-sun 12s ease-in-out infinite alternate;
}
.scn-posthumus-surrenders .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ps-hills 18s ease-in-out infinite alternate;
}
.scn-posthumus-surrenders .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
}
.scn-posthumus-surrenders .figure {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 6s ease-in-out infinite;
}
.scn-posthumus-surrenders .surrendered-hand {
  position: absolute; bottom: 40%; left: 30%; width: 10px; height: 14px;
  background: #0a0a1a;
  border-radius: 50% 50% 30% 30%;
  transform-origin: 100% 100%;
  animation: ps-hand 4s ease-in-out infinite alternate;
}
.scn-posthumus-surrenders .shadow {
  position: absolute; bottom: 19%; left: 38%; width: 30px; height: 8px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  transform: rotate(-5deg);
  animation: ps-shadow 6s ease-in-out infinite;
}
@keyframes ps-sky    { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ps-sun    { 0% { transform: scale(0.95); opacity: 0.8 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(0.98); opacity: 0.9 } }
@keyframes ps-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes ps-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ps-hand   { 0% { transform: translate(0, 0) rotate(-20deg) } 50% { transform: translate(5px, -5px) rotate(-30deg) } 100% { transform: translate(0, 0) rotate(-20deg) } }
@keyframes ps-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.1) } 100% { opacity: 0.5; transform: scaleX(1) } }

/* Scene: posthumus-captured */
.scn-posthumus-captured {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
              radial-gradient(ellipse at 50% 0%, #6a5a8e 0%, transparent 70%);
}
.scn-posthumus-captured .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, transparent 100%);
  animation: pc-sky 15s ease-in-out infinite alternate;
}
.scn-posthumus-captured .sun {
  position: absolute; top: 15%; left: 40%; width: 35px; height: 35px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: pc-sun 10s ease-in-out infinite alternate;
}
.scn-posthumus-captured .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: pc-road 20s ease-in-out infinite alternate;
}
.scn-posthumus-captured .soldier-left {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-soldier 4s ease-in-out infinite;
}
.scn-posthumus-captured .soldier-right {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-soldier 4s ease-in-out infinite alternate-reverse;
}
.scn-posthumus-captured .captive {
  position: absolute; bottom: 20%; left: 44%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-captive 3s ease-in-out infinite;
}
.scn-posthumus-captured .spear {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: pc-spear 6s ease-in-out infinite;
}
.scn-posthumus-captured .shadow {
  position: absolute; bottom: 19%; left: 38%; width: 40px; height: 10px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  animation: pc-shadow 4s ease-in-out infinite;
}
@keyframes pc-sky    { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pc-sun    { 0% { transform: scale(0.9) translateX(-5px); opacity: 0.8 } 50% { transform: scale(1.1) translateX(5px); opacity: 1 } 100% { transform: scale(0.95) translateX(0); opacity: 0.9 } }
@keyframes pc-road   { 0% { transform: skewX(0deg) } 50% { transform: skewX(3deg) } 100% { transform: skewX(-2deg) } }
@keyframes pc-soldier { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pc-captive { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pc-spear   { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes pc-shadow  { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.2) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* Scene: prison-arrival */
.scn-prison-arrival {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a5e 0%, transparent 80%);
}
.scn-prison-arrival .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-prison-arrival .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
}
.scn-prison-arrival .bar-left {
  position: absolute; top: 10%; left: 20%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 3px;
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
  animation: pa-bars 6s ease-in-out infinite;
}
.scn-prison-arrival .bar-right {
  position: absolute; top: 10%; left: 30%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 3px;
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
  animation: pa-bars 6s ease-in-out infinite reverse;
}
.scn-prison-arrival .window {
  position: absolute; top: 8%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0c068 0%, #806020 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 5px #806020, 0 0 40px 10px rgba(128,96,32,.3);
  animation: pa-window 8s ease-in-out infinite alternate;
}
.scn-prison-arrival .figure {
  position: absolute; bottom: 20%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 5s ease-in-out infinite;
}
.scn-prison-arrival .shadow {
  position: absolute; bottom: 19%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  animation: pa-shadow 5s ease-in-out infinite;
}
@keyframes pa-bars    { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pa-window  { 0% { opacity: 0.6; box-shadow: 0 0 10px 2px #806020 } 50% { opacity: 1; box-shadow: 0 0 30px 8px #f0c068 } 100% { opacity: 0.7; box-shadow: 0 0 15px 4px #806020 } }
@keyframes pa-figure  { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pa-shadow  { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* Scene: posthumus-prays */
.scn-posthumus-prays {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-posthumus-prays .cell-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #151525 0%, #202035 50%, #151525 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.9);
}
.scn-posthumus-prays .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #202035 0%, #0a0a1a 100%);
}
.scn-posthumus-prays .light-beam {
  position: absolute; top: 0; left: 40%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(240,192,104,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  opacity: 0.5;
  animation: pp-beam 12s ease-in-out infinite alternate;
}
.scn-posthumus-prays .figure-kneeling {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-kneel 8s ease-in-out infinite;
}
.scn-posthumus-prays .chain {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pp-chain 6s ease-in-out infinite;
}
.scn-posthumus-prays .chain-shadow {
  position: absolute; bottom: 34%; left: 40%; width: 20px; height: 4px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: pp-chain-shadow 6s ease-in-out infinite;
}
.scn-posthumus-prays .praying-hands {
  position: absolute; bottom: 45%; left: 48%; width: 8px; height: 10px;
  background: #0a0a1a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pp-hands 4s ease-in-out infinite;
}
@keyframes pp-beam   { 0% { opacity: 0.3; transform: scaleY(0.95) } 50% { opacity: 0.7; transform: scaleY(1.05) } 100% { opacity: 0.4; transform: scaleY(0.98) } }
@keyframes pp-kneel  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pp-chain  { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes pp-chain-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } 100% { opacity: 0.5; transform: scaleX(1) } }
@keyframes pp-hands  { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* Scene 1: imogen-blessing (calm bright interior) */
.scn-imogen-blessing {
  background: linear-gradient(180deg, #f5e6cc 0%, #d9c4a8 50%, #bfa58a 100%),
              radial-gradient(ellipse at 70% 30%, #ffebb5 0%, transparent 60%);
}
.scn-imogen-blessing .back-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d6b8 0%, #c9b89a 100%); }
.scn-imogen-blessing .window-arch { position:absolute; top:10%; left:50%; width:180px; height:240px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #d4c4ac 0%, #f0e0c0 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.1); }
.scn-imogen-blessing .sunbeam { position:absolute; top:20%; left:45%; width:120px; height:80px; background: linear-gradient(135deg, rgba(255,235,180,0.6) 0%, transparent 70%); transform: rotate(-15deg); animation: ib-sun 12s ease-in-out infinite alternate; }
.scn-imogen-blessing .kneeler { position:absolute; bottom:28%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #b89a7a 0%, #8a6e52 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ib-kneel 6s ease-in-out infinite alternate; }
.scn-imogen-blessing .blesser { position:absolute; bottom:30%; left:55%; width:28px; height:70px; background: linear-gradient(180deg, #c4a88c 0%, #a08068 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ib-bless 8s ease-in-out infinite; }
.scn-imogen-blessing .holy-water { position:absolute; bottom:40%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #b0d0e0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(160,200,220,0.4); animation: ib-drop 3s ease-in-out infinite; }
.scn-imogen-blessing .halo-glow { position:absolute; top:12%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffe8a0 0%, #ffd080 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ib-halo 10s ease-in-out infinite alternate; }
@keyframes ib-sun { 0% { opacity:0.6; transform: rotate(-15deg) scale(1); } 50% { opacity:0.9; transform: rotate(-10deg) scale(1.1); } 100% { opacity:0.7; transform: rotate(-20deg) scale(0.95); } }
@keyframes ib-kneel { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ib-bless { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes ib-drop { 0% { transform: translateY(0) scale(1); opacity:0.7; } 50% { transform: translateY(-8px) scale(1.3); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.7; } }
@keyframes ib-halo { 0% { transform: translateX(-50%) scale(1) rotate(0); opacity:0.5; } 50% { transform: translateX(-50%) scale(1.2) rotate(5deg); opacity:0.8; } 100% { transform: translateX(-50%) scale(0.9) rotate(-5deg); opacity:0.6; } }

/* Scene 2: pisanio-recounts-cloten (tense dim interior) */
.scn-pisanio-recounts-cloten {
  background: linear-gradient(180deg, #1a1a2e 0%, #2d2a3a 40%, #1f1c2c 100%),
              radial-gradient(ellipse at 30% 40%, #3a3548 0%, transparent 70%);
}
.scn-pisanio-recounts-cloten .dark-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #242036 0%, #161422 100%); }
.scn-pisanio-recounts-cloten .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #0a0a14 100%); }
.scn-pisanio-recounts-cloten .table { position:absolute; bottom:18%; left:20%; width:140px; height:8px; background: #3a3340; border-radius:4px; box-shadow: 0 2px 10px rgba(0,0,0,0.5); }
.scn-pisanio-recounts-cloten .cloten-figure { position:absolute; bottom:20%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #2a2638 0%, #1a1628 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prc-figure 5s ease-in-out infinite; }
.scn-pisanio-recounts-cloten .sword { position:absolute; bottom:40%; left:35%; width:4px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); transform: rotate(25deg); transform-origin: bottom; box-shadow: 0 0 6px rgba(100,80,60,0.3); animation: prc-sword 4s ease-in-out infinite; }
.scn-pisanio-recounts-cloten .foam { position:absolute; bottom:55%; left:42%; width:30px; height:12px; background: radial-gradient(ellipse at 50% 100%, rgba(200,190,180,0.5) 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: prc-foam 3s ease-in-out infinite alternate; }
.scn-pisanio-recounts-cloten .light-source { position:absolute; top:10%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #a09080 0%, #605040 50%, transparent 80%); border-radius:50%; animation: prc-light 8s ease-in-out infinite alternate; }
@keyframes prc-figure { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes prc-sword { 0% { transform: rotate(25deg) scaleY(1); } 25% { transform: rotate(30deg) scaleY(1.05); } 75% { transform: rotate(20deg) scaleY(0.95); } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes prc-foam { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.4); opacity:0.7; } 100% { transform: scale(0.8); opacity:0.3; } }
@keyframes prc-light { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.2); opacity:0.9; } 100% { transform: scale(0.8); opacity:0.5; } }

/* Scene 3: guiderius-confesses-killing (tense dim interior) */
.scn-guiderius-confesses-killing {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2438 50%, #14101e 100%),
              radial-gradient(ellipse at 50% 40%, #3a3248 0%, transparent 60%);
}
.scn-guiderius-confesses-killing .cell-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #2a2438 0%, #1a1628 100%); }
.scn-guiderius-confesses-killing .shackle { position:absolute; top:30%; left:20%; width:20px; height:30px; background: #4a4048; border-radius: 50% 50% 10% 10%; box-shadow: 0 0 8px rgba(0,0,0,0.3); animation: gck-shackle 10s ease-in-out infinite alternate; }
.scn-guiderius-confesses-killing .guiderius-figure { position:absolute; bottom:20%; left:45%; width:32px; height:75px; background: linear-gradient(180deg, #2a2638 0%, #1a1628 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gck-figure 6s ease-in-out infinite; }
.scn-guiderius-confesses-killing .dead-body { position:absolute; bottom:12%; left:30%; width:50px; height:35px; background: linear-gradient(180deg, #3a3040 0%, #1e1828 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); animation: gck-body 8s ease-in-out infinite alternate; }
.scn-guiderius-confesses-killing .blood-stain { position:absolute; bottom:15%; left:32%; width:40px; height:20px; background: radial-gradient(ellipse, #5e2a1a 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: gck-blood 12s ease-in-out infinite; }
.scn-guiderius-confesses-killing .candle-glow { position:absolute; top:5%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #c08050 0%, #805030 40%, transparent 80%); border-radius:50%; animation: gck-candle 7s ease-in-out infinite alternate; }
.scn-guiderius-confesses-killing .shadow-bars { position:absolute; top:0; bottom:0; left:10%; width:8px; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%); animation: gck-bars 20s linear infinite; }
@keyframes gck-shackle { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes gck-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gck-body { 0% { transform: rotate(-10deg) scale(1); opacity:0.8; } 50% { transform: rotate(-8deg) scale(1.03); opacity:1; } 100% { transform: rotate(-12deg) scale(0.97); opacity:0.85; } }
@keyframes gck-blood { 0% { transform: scale(1); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(0.9); opacity:0.3; } }
@keyframes gck-candle { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.15); opacity:0.9; } 100% { transform: scale(0.85); opacity:0.5; } }
@keyframes gck-bars { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }

/* Scene 4: guiderius-judged (tense dim interior) */
.scn-guiderius-judged {
  background: linear-gradient(180deg, #1c182a 0%, #2e2840 50%, #141020 100%),
              radial-gradient(ellipse at 60% 50%, #342e44 0%, transparent 70%);
}
.scn-guiderius-judged .throne-room { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #2e2840 0%, #1c182a 100%); }
.scn-guiderius-judged .judge-figure { position:absolute; bottom:25%; left:65%; width:40px; height:80px; background: linear-gradient(180deg, #3a3448 0%, #22202e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gj-judge 8s ease-in-out infinite alternate; }
.scn-guiderius-judged .guiderius-standing { position:absolute; bottom:20%; left:30%; width:30px; height:75px; background: linear-gradient(180deg, #2a2638 0%, #1a1628 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gj-guiderius 6s ease-in-out infinite; }
.scn-guiderius-judged .scepter { position:absolute; top:35%; left:68%; width:4px; height:50px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); transform: rotate(-10deg); transform-origin: top; box-shadow: 0 0 4px rgba(100,80,60,0.5); animation: gj-scepter 9s ease-in-out infinite alternate; }
.scn-guiderius-judged .crown { position:absolute; top:18%; left:63%; width:30px; height:15px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gj-crown 10s ease-in-out infinite; }
.scn-guiderius-judged .verdict-scroll { position:absolute; bottom:40%; left:50%; width:40px; height:20px; background: linear-gradient(180deg, #c0a878 0%, #a08858 100%); border-radius: 4px; transform: translateX(-50%) rotate(0); animation: gj-scroll 12s ease-in-out infinite alternate; }
.scn-guiderius-judged .shadow-steps { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(0deg, rgba(0,0,0,0.2) 0px, rgba(0,0,0,0.2) 4px, transparent 4px, transparent 8px); animation: gj-steps 20s linear infinite; }
@keyframes gj-judge { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gj-guiderius { 0% { transform: translateY(0) rotate(2deg); } 20% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gj-scepter { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-6deg) scaleY(1.05); } 100% { transform: rotate(-14deg) scaleY(0.95); } }
@keyframes gj-crown { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.03); } 100% { transform: translateY(0) scale(0.97); } }
@keyframes gj-scroll { 0% { transform: translateX(-50%) rotate(-2deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(2deg) scaleX(1.02); } 100% { transform: translateX(-50%) rotate(-2deg) scaleX(0.98); } }
@keyframes gj-steps { 0% { background-position: 0 0; } 100% { background-position: 0 40px; } }

.scn-garden-ring-gift {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 70%, #d2b48c 100%),
    radial-gradient(ellipse at 70% 80%, #f0e68c 0%, transparent 50%);
  overflow: hidden;
}
.scn-garden-ring-gift .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fffacd 0%, #87ceeb 80%);
  animation: grg-sky 12s ease-in-out infinite alternate;
}
.scn-garden-ring-gift .hedge-left {
  position: absolute;
  left: 0; bottom: 20%; width: 25%; height: 55%;
  background: linear-gradient(90deg, #556b2f 0%, #6b8e23 100%);
  border-radius: 0 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-garden-ring-gift .hedge-right {
  position: absolute;
  right: 0; bottom: 15%; width: 30%; height: 60%;
  background: linear-gradient(270deg, #556b2f 0%, #6b8e23 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
}
.scn-garden-ring-gift .path {
  position: absolute;
  bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 30% 30% 0 0;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.scn-garden-ring-gift .hand {
  position: absolute;
  bottom: 15%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom right;
  animation: grg-hand 5s ease-in-out infinite alternate;
}
.scn-garden-ring-gift .ring {
  position: absolute;
  bottom: 38%; left: 56%; width: 14px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #fff8dc 0%, #ffd700 60%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,215,0,0.6), 0 0 24px 12px rgba(255,215,0,0.3);
  animation: grg-ring 5s ease-in-out infinite alternate;
}
.scn-garden-ring-gift .sparkle {
  position: absolute;
  bottom: 40%; left: 56%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff 0%, transparent 70%);
  animation: grg-sparkle 2s ease-in-out infinite;
}
.scn-garden-ring-gift .flower-bush {
  position: absolute;
  bottom: 15%; left: 10%; width: 80px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ffb6c1 0%, #ff69b4 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: grg-bush 8s ease-in-out infinite;
}

@keyframes grg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes grg-hand {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes grg-ring {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 6px rgba(255,215,0,0.6), 0 0 24px 12px rgba(255,215,0,0.3); }
  50% { transform: scale(1.15) rotate(15deg); box-shadow: 0 0 20px 10px rgba(255,215,0,0.8), 0 0 40px 20px rgba(255,215,0,0.5); }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 12px 6px rgba(255,215,0,0.6), 0 0 24px 12px rgba(255,215,0,0.3); }
}
@keyframes grg-sparkle {
  0% { opacity: 0; transform: scale(0.5) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.5) rotate(180deg); }
  100% { opacity: 0; transform: scale(0.5) rotate(360deg); }
}
@keyframes grg-bush {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-2px); }
}

/* ---------- garden-manacle-love ---------- */
.scn-garden-manacle-love {
  background:
    linear-gradient(180deg, #2c3e50 0%, #34495e 40%, #1abc9c 70%, #16a085 100%),
    radial-gradient(ellipse at 50% 20%, #f1c40f 0%, transparent 50%);
  overflow: hidden;
}
.scn-garden-manacle-love .sky-dusk {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e67e22 0%, #f39c12 40%, #2c3e50 100%);
  animation: gml-sky 15s ease-in-out infinite alternate;
}
.scn-garden-manacle-love .grotto {
  position: absolute;
  bottom: 0; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, #16213e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 30px 30px rgba(0,0,0,0.5);
}
.scn-garden-manacle-love .embrace-a {
  position: absolute;
  bottom: 15%; left: 42%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gml-embrace-a 4s ease-in-out infinite alternate;
}
.scn-garden-manacle-love .embrace-b {
  position: absolute;
  bottom: 15%; left: 52%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gml-embrace-b 4s ease-in-out infinite alternate;
}
.scn-garden-manacle-love .chain {
  position: absolute;
  bottom: 40%; left: 45%; width: 50px; height: 10px;
  background: linear-gradient(90deg, #b8860b 0%, #daa520 50%, #b8860b 100%);
  border-radius: 10%;
  box-shadow: 0 0 10px 2px rgba(218,165,32,0.4);
  animation: gml-chain 6s ease-in-out infinite;
}
.scn-garden-manacle-love .leaves-fall {
  position: absolute;
  top: -10%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #27ae60 0%, #1e8449 100%);
  border-radius: 50% 50% 10% 10%;
  animation: gml-leaves 12s linear infinite;
}
.scn-garden-manacle-love .ground-vine {
  position: absolute;
  bottom: 5%; left: 0; width: 100%; height: 10%;
  background: repeating-linear-gradient(90deg, #1abc9c 0px, #16a085 10px, #1abc9c 20px);
  border-radius: 0;
  animation: gml-vine 8s ease-in-out infinite alternate;
}

@keyframes gml-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes gml-embrace-a {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes gml-embrace-b {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gml-chain {
  0%,100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(0.9); }
}
@keyframes gml-leaves {
  0% { transform: translateY(-10vh) rotate(0deg); opacity: 1; }
  100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
@keyframes gml-vine {
  0% { background-position: 0 0; }
  100% { background-position: -40px 0; }
}

/* ---------- garden-king-rage ---------- */
.scn-garden-king-rage {
  background:
    linear-gradient(180deg, #d35400 0%, #e67e22 30%, #f39c12 60%, #f1c40f 100%),
    radial-gradient(ellipse at 30% 70%, #c0392b 0%, transparent 40%);
  overflow: hidden;
}
.scn-garden-king-rage .sky-harsh {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e74c3c 0%, #f1c40f 100%);
  animation: gkr-sky 10s ease-in-out infinite alternate;
}
.scn-garden-king-rage .pillar-left {
  position: absolute;
  left: 10%; bottom: 0; width: 8%; height: 90%;
  background: linear-gradient(180deg, #bdc3c7 0%, #95a5a6 50%, #7f8c8d 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
}
.scn-garden-king-rage .pillar-right {
  position: absolute;
  right: 10%; bottom: 0; width: 8%; height: 90%;
  background: linear-gradient(180deg, #bdc3c7 0%, #95a5a6 50%, #7f8c8d 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.5);
}
.scn-garden-king-rage .throne {
  position: absolute;
  bottom: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8e44ad 0%, #6c3483 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: gkr-throne 3s ease-in-out infinite alternate;
}
.scn-garden-king-rage .king {
  position: absolute;
  bottom: 25%; left: 42%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f23 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gkr-king 2s ease-in-out infinite alternate;
}
.scn-garden-king-rage .courtier {
  position: absolute;
  bottom: 20%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #ecf0f1 0%, #bdc3c7 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gkr-courtier 3s ease-in-out infinite;
}
.scn-garden-king-rage .shadow-stripe {
  position: absolute;
  bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: gkr-shadow 4s ease-in-out infinite;
}
.scn-garden-king-rage .crack-floor {
  position: absolute;
  bottom: 0; left: 20%; width: 60%; height: 8%;
  background: repeating-linear-gradient(45deg, #2c3e50 0px, #1a252f 5px, transparent 5px, transparent 10px);
  animation: gkr-crack 6s linear infinite;
}

@keyframes gkr-sky {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes gkr-throne {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(2deg); }
  100% { transform: skewX(0deg); }
}
@keyframes gkr-king {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gkr-courtier {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(0.95); }
}
@keyframes gkr-shadow {
  0%,100% { opacity: 0.4; }
  50% { opacity: 0.7; }
}
@keyframes gkr-crack {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* ---------- garden-daughter-defiance ---------- */
.scn-garden-daughter-defiance {
  background:
    linear-gradient(180deg, #f39c12 0%, #e67e22 30%, #d35400 60%, #e74c3c 100%),
    radial-gradient(ellipse at 70% 30%, #f1c40f 0%, transparent 40%);
  overflow: hidden;
}
.scn-garden-daughter-defiance .sky-tense {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e74c3c 0%, #f1c40f 100%);
  animation: gdd-sky 8s ease-in-out infinite alternate;
}
.scn-garden-daughter-defiance .terrace {
  position: absolute;
  bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #7f8c8d 0%, #95a5a6 50%, #bdc3c7 100%);
  border-radius: 30% 30% 0 0;
}
.scn-garden-daughter-defiance .father {
  position: absolute;
  bottom: 20%; left: 30%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gdd-father 3s ease-in-out infinite alternate;
}
.scn-garden-daughter-defiance .daughter {
  position: absolute;
  bottom: 15%; left: 55%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gdd-daughter 4s ease-in-out infinite;
}
.scn-garden-daughter-defiance .rose-bush {
  position: absolute;
  bottom: 10%; left: 10%; width: 15%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #a0461a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gdd-bush 7s ease-in-out infinite alternate;
}
.scn-garden-daughter-defiance .fallen-rose {
  position: absolute;
  bottom: 5%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: gdd-rose 5s ease-in-out infinite;
}
.scn-garden-daughter-defiance .sunburst {
  position: absolute;
  top: 5%; right: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8dc 0%, #f1c40f 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: gdd-sunburst 6s ease-in-out infinite alternate;
}

@keyframes gdd-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes gdd-father {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gdd-daughter {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(-3deg); }
}
@keyframes gdd-bush {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes gdd-rose {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(180deg) translateX(5px); }
  100% { transform: rotate(360deg) translateX(0); }
}
@keyframes gdd-sunburst {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.8); }
}

.scn-rome-wager-lost { background: linear-gradient(180deg, #2a1d1d 0%, #3d2a2a 40%, #1a1010 100%), radial-gradient(ellipse at 70% 60%, #4a3a3a 0%, transparent 70%); }
.scn-rome-wager-lost .ring-giant { position:absolute; bottom:30%; left:35%; width:120px; height:120px; border-radius:50%; border:12px solid #d4a44a; background: radial-gradient(circle, #d4a44a 0%, transparent 60%); box-shadow: 0 0 40px rgba(212,164,74,.3), inset 0 0 20px rgba(0,0,0,.5); animation: rwl-ring 4s ease-in-out infinite alternate; }
.scn-rome-wager-lost .hand-grip { position:absolute; bottom:20%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: rwl-hand 3s ease-in-out infinite; }
.scn-rome-wager-lost .table-edge { position:absolute; bottom:18%; left:0; right:0; height:6px; background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-rome-wager-lost .shadow-wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: rwl-shadow 6s ease-in-out infinite alternate; }
.scn-rome-wager-lost .glint-spark { position:absolute; bottom:35%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #fff5d4 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px #ffebb0; animation: rwl-glint 2s ease-in-out infinite alternate; }
.scn-rome-wager-lost .window-arch { position:absolute; top:5%; left:20%; width:60%; height:30%; border-radius: 50% 50% 0 0 / 100% 100% 0 0; border: 4px solid rgba(180,140,80,.3); box-shadow: inset 0 0 40px rgba(180,140,80,.1); background: linear-gradient(180deg, rgba(255,220,160,.15) 0%, transparent 100%); animation: rwl-window 12s ease-in-out infinite alternate; }
.scn-rome-wager-lost .letter-scroll { position:absolute; bottom:22%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #e8d8c0 0%, #c0a880 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(-10deg); animation: rwl-scroll 5s ease-in-out infinite; }
@keyframes rwl-ring { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px rgba(212,164,74,.3); } 50% { transform: scale(1.02) rotate(5deg); box-shadow: 0 0 60px rgba(212,164,74,.5); } 100% { transform: scale(0.98) rotate(-3deg); box-shadow: 0 0 35px rgba(212,164,74,.25); } }
@keyframes rwl-hand { 0%,100% { transform: translateX(0) rotate(15deg); } 50% { transform: translateX(-5px) rotate(12deg); } }
@keyframes rwl-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes rwl-glint { 0% { opacity:0.5; transform: scale(1); } 100% { opacity:1; transform: scale(1.5); } }
@keyframes rwl-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes rwl-scroll { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(-8deg); } }

.scn-rome-wager-doubt { background: linear-gradient(180deg, #1e2028 0%, #2a2c38 50%, #12141c 100%), radial-gradient(ellipse at 50% 80%, #3a3c48 0%, transparent 70%); }
.scn-rome-wager-doubt .trunk-lid { position:absolute; bottom:35%; left:25%; width:160px; height:25px; background: linear-gradient(180deg, #4a3a20 0%, #2a1e0e 100%); border-radius:10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); animation: rwd-lid 4s ease-in-out infinite alternate; }
.scn-rome-wager-doubt .trunk-body { position:absolute; bottom:10%; left:25%; width:160px; height:100px; background: linear-gradient(180deg, #3a2a15 0%, #1a0e05 100%); border-radius:0 0 8px 8px; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-rome-wager-doubt .figure-left { position:absolute; bottom:12%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: rwd-fig-l 5s ease-in-out infinite; }
.scn-rome-wager-doubt .figure-right { position:absolute; bottom:12%; right:10%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: rwd-fig-r 5s ease-in-out infinite reverse; }
.scn-rome-wager-doubt .ring-held { position:absolute; bottom:38%; left:45%; width:16px; height:16px; background: radial-gradient(circle, #c8a44a 0%, #8a6a2a 100%); border-radius:50%; box-shadow: 0 0 20px rgba(200,164,74,.5); animation: rwd-ring 3s ease-in-out infinite alternate; }
.scn-rome-wager-doubt .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:12%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 30px, #1a1a1a 30px, #1a1a1a 60px); opacity:0.4; animation: rwd-floor 8s linear infinite; }
.scn-rome-wager-doubt .shadows-tall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 80%); }
@keyframes rwd-lid { 0% { transform: translateY(0) rotateX(0); } 50% { transform: translateY(-5px) rotateX(5deg); } 100% { transform: translateY(0); } }
@keyframes rwd-fig-l { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.02); } }
@keyframes rwd-fig-r { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.02); } }
@keyframes rwd-ring { 0% { opacity:0.6; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.2) rotate(15deg); } 100% { opacity:0.8; transform: scale(0.9) rotate(-10deg); } }
@keyframes rwd-floor { 0% { background-position: 0px 0; } 100% { background-position: 60px 0; } }

.scn-rome-posthumus-rage { background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 40%, #0a0505 100%), radial-gradient(ellipse at 50% 30%, #4a1a1a 0%, transparent 70%); }
.scn-rome-posthumus-rage .figure-raging { position:absolute; bottom:10%; left:40%; width:60px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rpr-figure 2s ease-in-out infinite alternate; }
.scn-rome-posthumus-rage .arm-left { position:absolute; bottom:55%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(-40deg); transform-origin: bottom center; animation: rpr-arm-l 1.5s ease-in-out infinite alternate; }
.scn-rome-posthumus-rage .arm-right { position:absolute; bottom:55%; right:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(40deg); transform-origin: bottom center; animation: rpr-arm-r 1.5s ease-in-out infinite alternate-reverse; }
.scn-rome-posthumus-rage .torch-flare { position:absolute; top:10%; left:20%; width:30px; height:40px; background: radial-gradient(circle, #ff7a30 0%, #c84010 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,122,48,.4), 0 0 80px 30px rgba(200,64,16,.3); animation: rpr-torch 2s ease-in-out infinite alternate; }
.scn-rome-posthumus-rage .torch-flare-2 { position:absolute; top:15%; right:20%; width:25px; height:35px; background: radial-gradient(circle, #ff7a30 0%, #c84010 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,122,48,.3); animation: rpr-torch2 2.4s ease-in-out infinite alternate-reverse; }
.scn-rome-posthumus-rage .shattered-table { position:absolute; bottom:5%; left:30%; width:140px; height:20px; background: linear-gradient(90deg, #3a1a0a 0%, #2a0e05 50%, #3a1a0a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.7); transform: rotate(-5deg); animation: rpr-table 3s ease-in-out infinite; }
.scn-rome-posthumus-rage .stone-ground { position:absolute; bottom:0; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 20px, #1a1a1a 20px, #1a1a1a 40px); opacity:0.3; }
@keyframes rpr-figure { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-5px); } 100% { transform: scaleY(0.95) translateY(2px); } }
@keyframes rpr-arm-l { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-60deg); } 100% { transform: rotate(-30deg); } }
@keyframes rpr-arm-r { 0% { transform: rotate(40deg); } 50% { transform: rotate(60deg); } 100% { transform: rotate(30deg); } }
@keyframes rpr-torch { 0% { opacity:0.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.2) translateY(-3px); } 100% { opacity:0.8; transform: scale(0.9) translateY(0); } }
@keyframes rpr-torch2 { 0% { opacity:0.6; transform: scale(1) translateY(0); } 50% { opacity:0.9; transform: scale(1.1) translateY(-2px); } 100% { opacity:0.7; transform: scale(0.95) translateY(0); } }
@keyframes rpr-table { 0%,100% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(2px) rotate(-3deg); } }

.scn-rome-posthumus-misogyny { background: linear-gradient(180deg, #0a0a12 0%, #14141e 50%, #05050a 100%), radial-gradient(ellipse at 50% 20%, #1a1a2e 0%, transparent 70%); }
.scn-rome-posthumus-misogyny .figure-crouch { position:absolute; bottom:10%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rpm-figure 6s ease-in-out infinite alternate; }
.scn-rome-posthumus-misogyny .chair-back { position:absolute; bottom:20%; left:42%; width:60px; height:80px; border: 4px solid #2a1a0a; border-radius: 10px 10px 0 0; background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%); transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.8); }
.scn-rome-posthumus-misogyny .candle-glow { position:absolute; top:30%; left:35%; width:60px; height:80px; background: radial-gradient(ellipse, #ffcc66 0%, #c08030 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(192,128,48,.4), 0 0 120px 50px rgba(192,128,48,.2); animation: rpm-candle 7s ease-in-out infinite alternate; }
.scn-rome-posthumus-misogyny .candle-wax { position:absolute; top:38%; left:36%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 4px 4px 2px 2px; animation: rpm-wax 5s ease-in-out infinite; }
.scn-rome-posthumus-misogyny .shadow-arch { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); }
.scn-rome-posthumus-misogyny .floor-dark { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); box-shadow: inset 0 4px 6px rgba(255,255,255,.02); }
.scn-rome-posthumus-misogyny .wall-panel { position:absolute; top:0; left:10%; width:80%; height:60%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,.02) 20px, rgba(255,255,255,.02) 22px); opacity:0.5; }
@keyframes rpm-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes rpm-candle { 0% { opacity:0.6; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.05) translateY(-2px); } 100% { opacity:0.7; transform: scale(0.95) translateY(0); } }
@keyframes rpm-wax { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.1); } }

/* Scene 1: ante-chamber-fool-mad-folk */
.scn-ante-chamber-fool-mad-folk {
  background: 
    linear-gradient(180deg, #4a5a6e 0%, #7a8a9e 30%, #b0c0d0 60%, #d0e0f0 100%),
    radial-gradient(ellipse at 80% 30%, #d0e0f0 0%, transparent 60%);
}
.scn-ante-chamber-fool-mad-folk .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a5e 0%, #5a6a7e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-ante-chamber-fool-mad-folk .window {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 100px;
  height: 140px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0b0c0 100%);
  border: 6px solid #3a4a5e;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(255, 200, 150, 0.5), 0 0 30px rgba(200, 180, 160, 0.3);
  animation: acf-window 8s ease-in-out infinite alternate;
}
.scn-ante-chamber-fool-mad-folk .figure-left {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acf-figureL 5s ease-in-out infinite;
}
.scn-ante-chamber-fool-mad-folk .figure-right {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 32px;
  height: 82px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acf-figureR 5s ease-in-out infinite alternate;
}
.scn-ante-chamber-fool-mad-folk .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-ante-chamber-fool-mad-folk .shadow {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 80%;
  height: 10px;
  background: rgba(0,0,0,0.25);
  filter: blur(4px);
  border-radius: 50%;
  animation: acf-shadow 5s ease-in-out infinite;
}
.scn-ante-chamber-fool-mad-folk .dust {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 8px;
  height: 8px;
  background: rgba(255, 220, 180, 0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: acf-dust 12s linear infinite, acf-dust2 7s ease-in-out infinite alternate;
}
@keyframes acf-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255, 200, 150, 0.4), 0 0 20px rgba(200, 180, 160, 0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255, 220, 180, 0.6), 0 0 40px rgba(200, 180, 160, 0.4); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255, 200, 150, 0.5), 0 0 30px rgba(200, 180, 160, 0.3); }
}
@keyframes acf-figureL {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(1deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes acf-figureR {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes acf-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes acf-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-30px) scale(0.8); opacity: 0.2; }
  100% { transform: translateY(-60px) scale(0.5); opacity: 0; }
}
@keyframes acf-dust2 {
  0% { left: 10%; }
  50% { left: 50%; }
  100% { left: 90%; }
}

/* Scene 2: ante-chamber-cloten-rage */
.scn-ante-chamber-cloten-rage {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 60%);
}
.scn-ante-chamber-cloten-rage .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #2e2e42 100%);
  border-radius: 0 0 15% 15%;
}
.scn-ante-chamber-cloten-rage .doorway {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 120px;
  height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border: 4px solid #3a3a4e;
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: acc-doorway 10s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-rage .cloten {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 40px;
  height: 100px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acc-cloten 4s ease-in-out infinite;
}
.scn-ante-chamber-cloten-rage .arm {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 60px;
  height: 12px;
  background: linear-gradient(90deg, #0a0a1e 0%, #1a1a2e 50%, #0a0a1e 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: acc-arm 3s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-rage .candles {
  position: absolute;
  top: 30%;
  left: 15%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 15px 5px rgba(180, 120, 60, 0.3);
  animation: acc-candle 3s ease-in-out infinite alternate;
}
.scn-ante-chamber-cloten-rage .shadow {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 70%;
  height: 12px;
  background: rgba(0,0,0,0.4);
  filter: blur(6px);
  border-radius: 50%;
  animation: acc-shadow 4s ease-in-out infinite;
}
@keyframes acc-doorway {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
  100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(0,0,0,0.6); }
}
@keyframes acc-cloten {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
  75% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes acc-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes acc-candle {
  0% { opacity: 0.5; transform: scaleY(0.9); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}
@keyframes acc-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.3); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}

/* Scene 3: ante-chamber-imogen-defends */
.scn-ante-chamber-imogen-defends {
  background: 
    linear-gradient(180deg, #6a7a8e 0%, #8a9aae 30%, #a0b0c0 60%, #b0c0d0 100%),
    radial-gradient(ellipse at 30% 20%, #d0e0f0 0%, transparent 70%);
}
.scn-ante-chamber-imogen-defends .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a6a7e 0%, #7a8a9e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-ante-chamber-imogen-defends .window {
  position: absolute;
  top: 12%;
  right: 15%;
  width: 90px;
  height: 130px;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c0d0 100%);
  border: 5px solid #5a6a7e;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px rgba(255, 220, 180, 0.4), 0 0 30px rgba(200, 180, 160, 0.2);
  animation: aci-window 7s ease-in-out infinite alternate;
}
.scn-ante-chamber-imogen-defends .imogen {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 35px;
  height: 90px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aci-figure 6s ease-in-out infinite;
}
.scn-ante-chamber-imogen-defends .hand {
  position: absolute;
  bottom: 40%;
  left: 38%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: aci-hand 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-imogen-defends .cloak {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: aci-cloak 5s ease-in-out infinite;
}
.scn-ante-chamber-imogen-defends .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes aci-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(255, 220, 180, 0.3), 0 0 20px rgba(200, 180, 160, 0.15); }
  50% { opacity: 1; box-shadow: inset 0 0 25px rgba(255, 240, 200, 0.5), 0 0 35px rgba(200, 180, 160, 0.3); }
  100% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255, 220, 180, 0.4), 0 0 30px rgba(200, 180, 160, 0.2); }
}
@keyframes aci-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(1deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes aci-hand {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(30deg) scale(1.1); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes aci-cloak {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}

/* Scene 4: ante-chamber-jewel-lost */
.scn-ante-chamber-jewel-lost {
  background: 
    linear-gradient(180deg, #3a4a5e 0%, #5a6a7e 30%, #7a8a9e 60%, #6a7a8e 100%),
    radial-gradient(ellipse at 60% 40%, #a0b0c0 0%, transparent 60%);
}
.scn-ante-chamber-jewel-lost .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a3a4e 0%, #4a5a6e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-ante-chamber-jewel-lost .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 15% 15% 0 0;
}
.scn-ante-chamber-jewel-lost .arm {
  position: absolute;
  bottom: 35%;
  left: 40%;
  width: 70px;
  height: 14px;
  background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2e 50%, #2a2a3e 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: acj-arm 4s ease-in-out infinite alternate;
}
.scn-ante-chamber-jewel-lost .jewel {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #e0c080 0%, #b08040 50%, #806020 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(200, 160, 80, 0.6), 0 0 30px 10px rgba(200, 160, 80, 0.3);
  animation: acj-jewel 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-jewel-lost .shadow {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 40%;
  height: 8px;
  background: rgba(0,0,0,0.2);
  filter: blur(3px);
  border-radius: 50%;
  animation: acj-shadow 4s ease-in-out infinite;
}
.scn-ante-chamber-jewel-lost .glint {
  position: absolute;
  top: 25%;
  left: 48%;
  width: 4px;
  height: 4px;
  background: rgba(255, 255, 200, 0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: acj-glint 2s ease-in-out infinite alternate;
}
@keyframes acj-arm {
  0% { transform: rotate(-20deg) scaleX(1); }
  50% { transform: rotate(10deg) scaleX(1.1); }
  100% { transform: rotate(-20deg) scaleX(1); }
}
@keyframes acj-jewel {
  0% { opacity: 0.6; transform: scale(0.9); box-shadow: 0 0 10px 3px rgba(200, 160, 80, 0.4); }
  50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 20px 8px rgba(200, 160, 80, 0.7); }
  100% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 15px 5px rgba(200, 160, 80, 0.6); }
}
@keyframes acj-shadow {
  0% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(1.3); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.2; }
}
@keyframes acj-glint {
  0% { opacity: 0; transform: translate(0,0); }
  50% { opacity: 0.8; transform: translate(3px, -2px); }
  100% { opacity: 0; transform: translate(0,0); }
}

/* bedchamber-iachimo-emerges */
.scn-bedchamber-iachimo-emerges {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2040 40%, #3a2a4a 100%), 
              radial-gradient(ellipse at 80% 60%, rgba(200,160,100,0.15) 0%, transparent 60%);
}
.scn-bedchamber-iachimo-emerges .trunk {
  position:absolute; bottom:10%; left:10%; width:60px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:6% 6% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-bedchamber-iachimo-emerges .lid {
  position:absolute; bottom:40%; left:10%; width:60px; height:8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:4px; transform-origin: left bottom;
  animation: iem-lid 8s ease-in-out infinite;
}
.scn-bedchamber-iachimo-emerges .bed {
  position:absolute; bottom:5%; right:15%; width:90px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:8% 8% 4% 4%;
}
.scn-bedchamber-iachimo-emerges .figure-sleeping {
  position:absolute; bottom:15%; right:30%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #c8b8a8 0%, #8a7a6a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iem-breathe 4s ease-in-out infinite;
}
.scn-bedchamber-iachimo-emerges .candle {
  position:absolute; bottom:45%; left:55%; width:6px; height:30px;
  background: linear-gradient(180deg, #f0daa0 0%, #8a6a3a 100%);
  border-radius:2px 2px 1px 1px;
}
.scn-bedchamber-iachimo-emerges .glow {
  position:absolute; bottom:45%; left:55%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(240,200,120,0.4) 0%, transparent 60%);
  border-radius:50%; transform:translate(-50%, -50%);
  animation: iem-flicker 2s ease-in-out infinite alternate;
}
.scn-bedchamber-iachimo-emerges .window {
  position:absolute; top:10%; right:10%; width:40px; height:50px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border:2px solid #5a4a3a; border-radius:4px;
}
.scn-bedchamber-iachimo-emerges .iacchimo-emerging {
  position:absolute; bottom:40%; left:8%; width:20px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iem-rise 10s ease-in-out infinite;
}
@keyframes iem-lid {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-30deg); }
}
@keyframes iem-breathe {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes iem-flicker {
  0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(240,200,120,0.3); }
  50% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,220,140,0.5); }
  100% { opacity:0.8; box-shadow: 0 0 30px 8px rgba(240,200,120,0.4); }
}
@keyframes iem-rise {
  0% { transform: translateY(0); opacity:0; }
  20% { opacity:1; }
  50% { transform: translateY(-10px); }
  80% { opacity:1; }
  100% { transform: translateY(0); opacity:0; }
}

/* bedchamber-noting-room */
.scn-bedchamber-noting-room {
  background: linear-gradient(180deg, #1e1e3e 0%, #2a224a 50%, #3a2a5a 100%), 
              radial-gradient(ellipse at 70% 50%, rgba(180,150,90,0.1) 0%, transparent 50%);
}
.scn-bedchamber-noting-room .trunk-open {
  position:absolute; bottom:10%; left:10%; width:60px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:6% 6% 4% 4%; overflow:hidden;
}
.scn-bedchamber-noting-room .bed {
  position:absolute; bottom:5%; right:15%; width:90px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:8% 8% 4% 4%;
}
.scn-bedchamber-noting-room .figure-sleeping {
  position:absolute; bottom:15%; right:30%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #c8b8a8 0%, #8a7a6a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: not-breathe 4s ease-in-out infinite;
}
.scn-bedchamber-noting-room .candle {
  position:absolute; bottom:50%; left:55%; width:6px; height:30px;
  background: linear-gradient(180deg, #f0daa0 0%, #8a6a3a 100%);
  border-radius:2px 2px 1px 1px;
}
.scn-bedchamber-noting-room .glow {
  position:absolute; bottom:50%; left:55%; width:70px; height:70px;
  background: radial-gradient(circle, rgba(240,200,120,0.35) 0%, transparent 60%);
  border-radius:50%; transform:translate(-50%, -50%);
  animation: not-flicker 2.5s ease-in-out infinite alternate;
}
.scn-bedchamber-noting-room .window {
  position:absolute; top:10%; right:10%; width:40px; height:50px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border:2px solid #5a4a3a; border-radius:4px;
}
.scn-bedchamber-noting-room .arras {
  position:absolute; top:5%; left:5%; width:70px; height:80%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:4px; filter: blur(3px);
}
.scn-bedchamber-noting-room .iacchimo-noting {
  position:absolute; bottom:40%; left:8%; width:20px; height:30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: not-look 8s ease-in-out infinite;
}
@keyframes not-breathe {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.015); }
}
@keyframes not-flicker {
  0% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(240,200,120,0.3); }
  50% { opacity:1; box-shadow: 0 0 35px 10px rgba(255,220,140,0.5); }
  100% { opacity:0.8; box-shadow: 0 0 25px 6px rgba(240,200,120,0.4); }
}
@keyframes not-look {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(5px); }
  50% { transform: rotate(-5deg) translateX(2px); }
  75% { transform: rotate(15deg) translateX(6px); }
  100% { transform: rotate(0deg) translateX(0); }
}

/* bedchamber-bracelet-stolen */
.scn-bedchamber-bracelet-stolen {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a224a 40%, #3a2a5a 100%), 
              radial-gradient(ellipse at 50% 70%, rgba(180,140,80,0.2) 0%, transparent 60%);
}
.scn-bedchamber-bracelet-stolen .bed-closeup {
  position:absolute; bottom:5%; left:10%; width:80px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:8% 8% 4% 4%;
}
.scn-bedchamber-bracelet-stolen .arm {
  position:absolute; bottom:30%; left:30%; width:50px; height:20px;
  background: linear-gradient(180deg, #d8c8b8 0%, #a89888 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: brc-arm 6s ease-in-out infinite alternate;
}
.scn-bedchamber-bracelet-stolen .hand-reaching {
  position:absolute; bottom:40%; left:20%; width:18px; height:22px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%);
  border-radius:30% 30% 20% 20%;
  animation: brc-hand 8s ease-in-out infinite;
}
.scn-bedchamber-bracelet-stolen .bracelet {
  position:absolute; bottom:35%; left:35%; width:8px; height:10px;
  background: #a0461a; border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(160,70,26,0.6);
  animation: brc-glow 4s ease-in-out infinite alternate;
}
.scn-bedchamber-bracelet-stolen .candle {
  position:absolute; bottom:60%; right:20%; width:6px; height:30px;
  background: linear-gradient(180deg, #f0daa0 0%, #8a6a3a 100%);
  border-radius:2px 2px 1px 1px;
}
.scn-bedchamber-bracelet-stolen .glow {
  position:absolute; bottom:60%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(240,200,120,0.3) 0%, transparent 60%);
  border-radius:50%; transform:translate(-50%, -50%);
  animation: brc-flicker 2s ease-in-out infinite alternate;
}
.scn-bedchamber-bracelet-stolen .shadow {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: brc-shadow 10s ease-in-out infinite;
}
@keyframes brc-arm {
  0% { transform: translateY(0); }
  100% { transform: translateY(-5px); }
}
@keyframes brc-hand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(10deg); }
  100% { transform: translateX(20px) rotate(20deg); }
}
@keyframes brc-glow {
  0% { opacity:0.6; box-shadow: 0 0 4px 2px rgba(160,70,26,0.4); }
  100% { opacity:1; box-shadow: 0 0 10px 4px rgba(160,70,26,0.8); }
}
@keyframes brc-flicker {
  0% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(240,200,120,0.3); }
  50% { opacity:1; box-shadow: 0 0 30px 8px rgba(255,220,140,0.5); }
  100% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(240,200,120,0.4); }
}
@keyframes brc-shadow {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.3; }
}

/* bedchamber-villain-returns */
.scn-bedchamber-villain-returns {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a224a 45%, #3a2a5a 100%), 
              radial-gradient(ellipse at 30% 70%, rgba(200,160,100,0.1) 0%, transparent 60%);
}
.scn-bedchamber-villain-returns .trunk {
  position:absolute; bottom:10%; left:10%; width:60px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:6% 6% 4% 4%;
}
.scn-bedchamber-villain-returns .lid-closed {
  position:absolute; bottom:38%; left:10%; width:60px; height:8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:4px; animation: vil-lid 10s ease-in-out infinite;
}
.scn-bedchamber-villain-returns .bed {
  position:absolute; bottom:5%; right:15%; width:90px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius:8% 8% 4% 4%;
}
.scn-bedchamber-villain-returns .candle {
  position:absolute; bottom:45%; left:55%; width:6px; height:30px;
  background: linear-gradient(180deg, #f0daa0 0%, #8a6a3a 100%);
  border-radius:2px 2px 1px 1px;
}
.scn-bedchamber-villain-returns .glow {
  position:absolute; bottom:45%; left:55%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(240,200,120,0.3) 0%, transparent 60%);
  border-radius:50%; transform:translate(-50%, -50%);
  animation: vil-flicker 3s ease-in-out infinite alternate;
}
.scn-bedchamber-villain-returns .clock-face {
  position:absolute; top:15%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #e8d8c0 0%, #b8a888 100%);
  border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-bedchamber-villain-returns .iacchimo-returning {
  position:absolute; bottom:38%; left:8%; width:20px; height:20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vil-return 12s ease-in-out infinite;
}
.scn-bedchamber-villain-returns .shadow-figure {
  position:absolute; bottom:0; left:0; width:100%; height:40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: vil-shadow 8s ease-in-out infinite;
}
@keyframes vil-lid {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes vil-flicker {
  0% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(240,200,120,0.4); }
  50% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,220,140,0.6); }
  100% { opacity:0.7; box-shadow: 0 0 30px 8px rgba(240,200,120,0.3); }
}
@keyframes vil-return {
  0% { transform: translateY(0) scaleY(1); opacity:1; }
  20% { opacity:0.8; }
  40% { transform: translateY(-10px) scaleY(0.9); }
  60% { opacity:0.5; }
  80% { transform: translateY(-20px) scaleY(0.8); opacity:0.2; }
  100% { transform: translateY(0) scaleY(1); opacity:0; }
}
@keyframes vil-shadow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}

/* Scene: apparition-plea (dark, dim-interior) */
.scn-apparition-plea {
  background:
    linear-gradient(180deg, #1a1028 0%, #281e3a 40%, #0f0a18 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 60%);
}
.scn-apparition-plea .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1e38 0%, #1a1028 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: ap1-wall 20s ease-in-out infinite;
}
.scn-apparition-plea .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #20162a 0%, #0f0a18 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-apparition-plea .glow-aura {
  position: absolute; bottom: 50%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #6a4a3a 0%, #4a2a2a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  opacity: .6;
  animation: ap1-glow 6s ease-in-out infinite alternate;
}
.scn-apparition-plea .ghost-left {
  position: absolute; bottom: 40%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  transform-origin: bottom center;
  animation: ap1-ghost 8s ease-in-out infinite alternate;
}
.scn-apparition-plea .ghost-right {
  position: absolute; bottom: 40%; right: 30%; width: 28px; height: 58px;
  background: linear-gradient(180deg, rgba(200,180,160,.25) 0%, rgba(200,180,160,.03) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  transform-origin: bottom center;
  animation: ap1-ghost 10s ease-in-out infinite alternate-reverse;
}
.scn-apparition-plea .shadow-pool {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: ap1-shadow 12s ease-in-out infinite;
}
.scn-apparition-plea .particle-mote {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: #a08070; border-radius: 50%;
  box-shadow: 0 0 6px #a08070;
  animation: ap1-mote 15s linear infinite;
}
.scn-apparition-plea .particle-mote.mote-b {
  left: 60%; top: 30%; animation-delay: -5s;
  animation-direction: reverse;
}
@keyframes ap1-wall { 0%,100% { opacity: .85 } 50% { opacity: 1 } }
@keyframes ap1-glow { 0% { opacity: .5; transform: translate(-50%, 50%) scale(1) } 100% { opacity: .8; transform: translate(-50%, 50%) scale(1.2) } }
@keyframes ap1-ghost { 0% { transform: translateY(0) rotate(-2deg) scaleY(1) } 50% { transform: translateY(-8px) rotate(2deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(-2deg) scaleY(1) } }
@keyframes ap1-shadow { 0%,100% { opacity: .7 } 50% { opacity: .5 } }
@keyframes ap1-mote { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0 } 20% { opacity: 1 } 80% { opacity: 1 } 100% { transform: translateY(-60px) translateX(20px) scale(1.5); opacity: 0 } }

/* Scene: apparition-urgent (tense, dim-interior) */
.scn-apparition-urgent {
  background:
    linear-gradient(180deg, #1a1828 0%, #0e0c18 50%, #08060e 100%),
    radial-gradient(ellipse at 50% 40%, #22203a 0%, transparent 60%);
}
.scn-apparition-urgent .bg-vault {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2840 0%, #1a1828 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
  animation: ap2-vault 15s ease-in-out infinite;
}
.scn-apparition-urgent .marble-pillar {
  position: absolute; bottom: 0; width: 20px; height: 70%;
  background: linear-gradient(180deg, #4a4858 0%, #2a2838 100%);
  border-radius: 4px;
  box-shadow: inset 2px 0 4px rgba(0,0,0,.5);
}
.scn-apparition-urgent .marble-pillar.left { left: 20%; }
.scn-apparition-urgent .marble-pillar.right { right: 20%; }
.scn-apparition-urgent .lightning-flash {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.8) 0%, transparent 50%);
  opacity: 0;
  animation: ap2-flash 4s ease-in-out infinite;
}
.scn-apparition-urgent .figure-suppliant {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1828 0%, #0e0c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap2-suppliant 3s ease-in-out infinite alternate;
}
.scn-apparition-urgent .descending-light {
  position: absolute; top: 0; left: 50%; width: 30px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,180,220,.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: ap2-descend 2s ease-in-out infinite;
}
.scn-apparition-urgent .dust-rise {
  position: absolute; bottom: 10%; left: 30%; width: 6px; height: 6px;
  background: #8a7a8a; border-radius: 50%;
  filter: blur(2px);
  animation: ap2-dust 12s linear infinite;
}
.scn-apparition-urgent .dust-rise.dust-rise-b {
  left: 70%; bottom: 15%;
  animation-delay: -4s;
  width: 8px; height: 8px;
}
@keyframes ap2-vault { 0%,100% { opacity: .9 } 50% { opacity: .7 } }
@keyframes ap2-flash { 0%,90%,100% { opacity: 0 } 10% { opacity: .6 } 20% { opacity: 0 } 30% { opacity: .8 } 40% { opacity: 0 } }
@keyframes ap2-suppliant { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg) } 100% { transform: translateX(-50%) translateY(-10px) rotate(3deg) } }
@keyframes ap2-descend { 0% { transform: translateX(-50%) scaleY(0); opacity: 0 } 50% { transform: translateX(-50%) scaleY(1); opacity: .8 } 100% { transform: translateX(-50%) scaleY(0); opacity: 0 } }
@keyframes ap2-dust { 0% { transform: translateY(0) translateX(0); opacity: .8 } 50% { transform: translateY(-80px) translateX(15px); opacity: .3 } 100% { transform: translateY(-160px) translateX(-10px); opacity: 0 } }

/* Scene: jupiter-speaks (calm, dark) */
.scn-jupiter-speaks {
  background:
    linear-gradient(180deg, #0a0e2a 0%, #141638 30%, #0a0e1a 100%),
    radial-gradient(ellipse at 50% 20%, #282a5a 0%, transparent 60%);
}
.scn-jupiter-speaks .bg-celestial {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, #1a1e4a 0%, transparent 70%);
  animation: jup3-bg 25s ease-in-out infinite;
}
.scn-jupiter-speaks .star-field {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, #fff 100%, transparent),
    radial-gradient(1px 1px at 60% 60%, #fff 100%, transparent),
    radial-gradient(1.5px 1.5px at 80% 20%, #fff 100%, transparent),
    radial-gradient(0.8px 0.8px at 40% 80%, #fff 100%, transparent);
  background-size: 200px 200px;
  opacity: .7;
  animation: jup3-stars 60s linear infinite;
}
.scn-jupiter-speaks .nebula-sweep {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 100px;
  background: radial-gradient(ellipse, rgba(100,80,180,.15) 0%, transparent 70%);
  filter: blur(30px);
  animation: jup3-nebula 35s ease-in-out infinite alternate;
}
.scn-jupiter-speaks .throne-haze {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,240,.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: jup3-throne 10s ease-in-out infinite;
}
.scn-jupiter-speaks .jove-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 36px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0e1a 0%, #141638 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(100,80,180,.3);
  animation: jup3-jove 8s ease-in-out infinite alternate;
}
.scn-jupiter-speaks .imogen-crown {
  position: absolute; bottom: 65%; left: 46%; width: 16px; height: 8px;
  background: #6a5a8a;
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: jup3-crown 6s ease-in-out infinite;
}
.scn-jupiter-speaks .orbiting-mote {
  position: absolute; top: 40%; left: 30%; width: 3px; height: 3px;
  background: #b8b0d8; border-radius: 50%;
  box-shadow: 0 0 6px #b8b0d8;
  animation: jup3-mote 18s linear infinite;
}
.scn-jupiter-speaks .orbiting-mote.mote-b {
  left: 70%; top: 50%; animation-delay: -9s;
  animation-direction: reverse;
}
@keyframes jup3-bg { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes jup3-stars { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes jup3-nebula { 0% { transform: translateX(0) scale(1); opacity: .3 } 50% { transform: translateX(20px) scale(1.1); opacity: .5 } 100% { transform: translateX(0) scale(1); opacity: .3 } }
@keyframes jup3-throne { 0%,100% { opacity: .6; transform: translateX(-50%) scaleY(1) } 50% { opacity: .9; transform: translateX(-50%) scaleY(1.05) } }
@keyframes jup3-jove { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(-4px) rotate(1deg) } }
@keyframes jup3-crown { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes jup3-mote { 0% { transform: rotate(0deg) translateX(30px) rotate(0deg); opacity: .6 } 50% { opacity: 1 } 100% { transform: rotate(360deg) translateX(30px) rotate(-360deg); opacity: .6 } }

/* Scene: jupiter-prophetic-tablet (calm, dark) */
.scn-jupiter-prophetic-tablet {
  background:
    linear-gradient(180deg, #0a1220 0%, #10182a 40%, #060c14 100%),
    radial-gradient(ellipse at 50% 0%, #1a2840 0%, transparent 60%);
}
.scn-jupiter-prophetic-tablet .bg-crystal {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(100,140,180,.08) 0%, transparent 50%);
  animation: jup4-bg 20s ease-in-out infinite;
}
.scn-jupiter-prophetic-tablet .palace-arch {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #2a3850 0%, #1a2230 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-jupiter-prophetic-tablet .pillar-left {
  position: absolute; bottom: 0; left: calc(50% - 60px); width: 12px; height: 80%;
  background: linear-gradient(180deg, #3a4860 0%, #1a2230 100%);
  border-radius: 2px;
}
.scn-jupiter-prophetic-tablet .pillar-right {
  position: absolute; bottom: 0; right: calc(50% - 60px); width: 12px; height: 80%;
  background: linear-gradient(180deg, #3a4860 0%, #1a2230 100%);
  border-radius: 2px;
}
.scn-jupiter-prophetic-tablet .eagle-glide {
  position: absolute; top: 15%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  clip-path: polygon(0% 50%, 30% 0%, 100% 50%, 30% 100%);
  filter: blur(1px);
  animation: jup4-eagle 14s ease-in-out infinite alternate;
}
.scn-jupiter-prophetic-tablet .tablet-glow {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,200,230,.15) 0%, transparent 60%);
  border-radius: 10%;
  filter: blur(6px);
  animation: jup4-tablet 8s ease-in-out infinite;
}
.scn-jupiter-prophetic-tablet .scroll-curve {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 20px;
  border: 2px solid rgba(180,200,230,.2);
  border-radius: 0 0 50% 50%;
  border-top: none;
  animation: jup4-scroll 6s ease-in-out infinite;
}
.scn-jupiter-prophetic-tablet .cloud-veil {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 30px;
  background: linear-gradient(180deg, rgba(180,200,230,.08) 0%, transparent 100%);
  filter: blur(10px);
  border-radius: 50%;
  animation: jup4-veil 40s linear infinite;
}
.scn-jupiter-prophetic-tablet .cloud-veil.veil-b {
  top: 8%; left: 60%; width: 60px; height: 20px;
  animation-delay: -15s;
  animation-direction: reverse;
}
@keyframes jup4-bg { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes jup4-eagle { 0% { transform: translateX(0) translateY(0) rotate(-5deg); opacity: .6 } 50% { transform: translateX(30px) translateY(-10px) rotate(5deg); opacity: 1 } 100% { transform: translateX(0) translateY(0) rotate(-5deg); opacity: .6 } }
@keyframes jup4-tablet { 0%,100% { opacity: .5; transform: translateX(-50%) scale(1) } 50% { opacity: .8; transform: translateX(-50%) scale(1.05) } }
@keyframes jup4-scroll { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes jup4-veil { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-palace-imogen-outrage { background: linear-gradient(180deg, #f5e6d3 0%, #c4a88a 40%, #3a2a1a 100%), radial-gradient(ellipse at 30% 30%, transparent 60%, rgba(0,0,0,.6) 100%); }
.scn-palace-imogen-outrage .bg { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6d3 0%, #c4a88a 40%, #3a2a1a 100%); animation: po-bg 8s ease-in-out infinite alternate; }
.scn-palace-imogen-outrage .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-palace-imogen-outrage .column-left { position:absolute; bottom:20%; left:8%; width:12px; height:80%; background: linear-gradient(180deg, #b8a080 0%, #8a6e4e 100%); border-radius:4px; box-shadow: 4px 0 10px rgba(0,0,0,.3); animation: po-column 3s ease-in-out infinite alternate; }
.scn-palace-imogen-outrage .column-right { position:absolute; bottom:20%; right:8%; width:12px; height:80%; background: linear-gradient(180deg, #b8a080 0%, #8a6e4e 100%); border-radius:4px; box-shadow: -4px 0 10px rgba(0,0,0,.3); animation: po-column 3s ease-in-out infinite alternate-reverse; }
.scn-palace-imogen-outrage .figure-imogen { position:absolute; bottom:25%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: po-figure 4s ease-in-out infinite; }
.scn-palace-imogen-outrage .shadow { position:absolute; bottom:24%; left:40%; width:20%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); animation: po-shadow 4s ease-in-out infinite; }
.scn-palace-imogen-outrage .light-shaft { position:absolute; top:0; left:20%; width:60%; height:80%; background: linear-gradient(180deg, rgba(255,230,200,.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); animation: po-light 6s ease-in-out infinite alternate; }
@keyframes po-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes po-column { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes po-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes po-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes po-light { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.2 } }

.scn-palace-iachimo-praise { background: linear-gradient(180deg, #fff5e6 0%, #f0d9b5 50%, #d4b88c 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 70%); }
.scn-palace-iachimo-praise .bg { position:absolute; inset:0; background: linear-gradient(180deg, #fff5e6 0%, #f0d9b5 50%, #d4b88c 100%); animation: pi-bg 12s ease-in-out infinite alternate; }
.scn-palace-iachimo-praise .arch { position:absolute; top:0; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #d4b88c 0%, #c4a67a 100%); border-radius: 200px 200px 0 0 / 100px 100px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.1); animation: pi-arch 8s ease-in-out infinite alternate; }
.scn-palace-iachimo-praise .pedestal { position:absolute; bottom:20%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #c4a67a 0%, #b09060 100%); border-radius:10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-palace-iachimo-praise .figure-bowing { position:absolute; bottom:25%; left:50%; width:20px; height:45px; transform:translateX(-50%) rotate(-10deg); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 70% 30% 40%; transform-origin: bottom center; animation: pi-bow 5s ease-in-out infinite; }
.scn-palace-iachimo-praise .glow { position:absolute; top:15%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,230,150,.4) 0%, transparent 100%); animation: pi-glow 4s ease-in-out infinite alternate; }
.scn-palace-iachimo-praise .curtain { position:absolute; top:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, rgba(180,120,80,.3) 0%, transparent 100%); clip-path: polygon(5% 0, 95% 0, 80% 100%, 20% 100%); animation: pi-curtain 10s ease-in-out infinite alternate; }
@keyframes pi-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pi-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pi-bow { 0% { transform: translateX(-50%) rotate(-10deg) } 30% { transform: translateX(-50%) rotate(-15deg) } 60% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(-10deg) } }
@keyframes pi-glow { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.3; transform: translateY(0) } }
@keyframes pi-curtain { 0% { opacity:.2 } 50% { opacity:.3 } 100% { opacity:.2 } }

.scn-palace-amends-accepted { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a080 100%), radial-gradient(ellipse at 50% 20%, #f5f0e0 0%, transparent 80%); }
.scn-palace-amends-accepted .bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a080 100%); animation: pa-bg 15s ease-in-out infinite alternate; }
.scn-palace-amends-accepted .dais { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(0deg, #b8a080 0%, #c4a88a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 8px 15px rgba(0,0,0,.2); }
.scn-palace-amends-accepted .throne { position:absolute; bottom:22%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6e4e 0%, #6a5030 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-palace-amends-accepted .figure-left { position:absolute; bottom:20%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #1a0d05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pa-figure-l 6s ease-in-out infinite; }
.scn-palace-amends-accepted .figure-right { position:absolute; bottom:20%; right:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #1a0d05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pa-figure-r 6s ease-in-out infinite 3s; }
.scn-palace-amends-accepted .window { position:absolute; top:15%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #a0c0d0 0%, #7090a0 100%); border-radius: 5px; box-shadow: 0 0 20px 5px rgba(255,255,200,.3); animation: pa-window 9s ease-in-out infinite alternate; }
.scn-palace-amends-accepted .sunbeam { position:absolute; top:10%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, rgba(255,255,200,.25) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 50% 100%, 40% 100%); animation: pa-sunbeam 12s ease-in-out infinite alternate; }
@keyframes pa-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pa-figure-l { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pa-figure-r { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pa-window { 0% { opacity:.7; box-shadow: 0 0 15px 3px rgba(255,255,200,.2) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(255,255,200,.4) } 100% { opacity:.8; box-shadow: 0 0 20px 5px rgba(255,255,200,.3) } }
@keyframes pa-sunbeam { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.15 } }

.scn-palace-trunk-request { background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 50%, #b09878 100%), radial-gradient(ellipse at 50% 60%, #f5e8d0 0%, transparent 70%); }
.scn-palace-trunk-request .bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 50%, #b09878 100%); animation: pt-bg 10s ease-in-out infinite alternate; }
.scn-palace-trunk-request .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #b09878 0%, #c8b090 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.3); }
.scn-palace-trunk-request .trunk { position:absolute; bottom:15%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pt-trunk 4s ease-in-out infinite; }
.scn-palace-trunk-request .figure { position:absolute; bottom:20%; left:35%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a10 0%, #150a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pt-figure 5s ease-in-out infinite; }
.scn-palace-trunk-request .candle { position:absolute; bottom:25%; right:30%; width:4px; height:12px; background: linear-gradient(180deg, #ffe8c0 0%, #c8a060 100%); border-radius:20% 20% 0 0; box-shadow: 0 0 12px 6px rgba(255,200,100,.4); animation: pt-candle 3s ease-in-out infinite alternate; }
.scn-palace-trunk-request .shadow-trunk { position:absolute; bottom:14%; left:45%; width:60px; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: pt-shadow 4s ease-in-out infinite; }
.scn-palace-trunk-request .lintel { position:absolute; top:0; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #b09878 0%, #c8b090 100%); border-radius: 0 0 5px 5px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: pt-lintel 7s ease-in-out infinite alternate; }
@keyframes pt-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pt-trunk { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pt-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pt-candle { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes pt-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes pt-lintel { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* Scenes for 4 IDs */
.scn-rome-wager-conditions {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 40%, #3a1a0a 100%), radial-gradient(ellipse at 60% 50%, #8a4a2a 0%, transparent 60%);
}
.scn-rome-wager-conditions .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-rome-wager-conditions .ring {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4af37 0%, #a08020 60%, #604010 100%);
  border-radius: 50%; box-shadow: 0 0 12px 3px rgba(212,175,55,0.5);
  animation: rwc-ring 4s ease-in-out infinite alternate;
}
.scn-rome-wager-conditions .hand-left {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a080 0%, #a07850 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwc-hand 6s ease-in-out infinite;
}
.scn-rome-wager-conditions .hand-right {
  position: absolute; bottom: 28%; right: 30%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #c8a080 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwc-hand 6s ease-in-out infinite reverse;
}
.scn-rome-wager-conditions .wine-glass {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 36px;
  background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, rgba(180,140,100,0.3) 60%, rgba(100,60,30,0.2) 100%);
  border-radius: 0 0 20% 20% / 30% 30%;
  border: 1px solid rgba(180,140,100,0.5);
  animation: rwc-glass 5s ease-in-out infinite alternate;
}
.scn-rome-wager-conditions .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: rwc-shadow 8s ease-in-out infinite alternate;
}
.scn-rome-wager-conditions .light-spot {
  position: absolute; top: 30%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,200,150,0.5) 0%, rgba(255,200,150,0.1) 50%, transparent 100%);
  border-radius: 50%;
  animation: rwc-light 7s ease-in-out infinite alternate;
}
@keyframes rwc-ring {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-2px) rotate(10deg); opacity: 1; box-shadow: 0 0 18px 5px rgba(212,175,55,0.7); }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
}
@keyframes rwc-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rwc-glass {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(3deg) scale(1); }
}
@keyframes rwc-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes rwc-light {
  0% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.1); opacity: 0.7; }
  100% { transform: scale(0.95); opacity: 0.5; }
}

.scn-rome-imogen-bedchamber {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #1e1e30 100%), radial-gradient(ellipse at 80% 40%, #2a3a5a 0%, transparent 70%);
}
.scn-rome-imogen-bedchamber .bed-frame {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: rib-bed 10s ease-in-out infinite alternate;
}
.scn-rome-imogen-bedchamber .tapestry {
  position: absolute; bottom: 20%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #4a3a5a 0%, #3a2a4a 30%, #2a1a3a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(100,80,120,0.3);
  animation: rib-tapestry 12s ease-in-out infinite;
}
.scn-rome-imogen-bedchamber .figure-silhouette {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: rib-figure 8s ease-in-out infinite alternate;
}
.scn-rome-imogen-bedchamber .window {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, #4a6a8a 0%, #2a4a6a 60%, #1a2a3a 100%);
  border: 2px solid #2a1a0a; border-radius: 6%; 
  animation: rib-window 15s ease-in-out infinite alternate;
}
.scn-rome-imogen-bedchamber .moonlight {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(150,180,220,0.4) 0%, rgba(150,180,220,0.05) 60%, transparent 100%);
  border-radius: 50%;
  animation: rib-moon 20s ease-in-out infinite alternate;
}
.scn-rome-imogen-bedchamber .pillow {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 30% 30% 40% 40% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rib-pillow 6s ease-in-out infinite alternate;
}
@keyframes rib-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes rib-tapestry {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes rib-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rib-window {
  0% { opacity: 0.7; box-shadow: 0 0 0 0 rgba(74,106,138,0.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 5px rgba(74,106,138,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 5px 2px rgba(74,106,138,0.2); }
}
@keyframes rib-moon {
  0% { transform: scale(0.9); opacity: 0.4; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.5; }
}
@keyframes rib-pillow {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}

.scn-rome-bedchamber-description {
  background: linear-gradient(180deg, #2a2a30 0%, #3a3a44 40%, #1a1a22 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-rome-bedchamber-description .chimney {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: rbd-chimney 14s ease-in-out infinite alternate;
}
.scn-rome-bedchamber-description .statue {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.4);
  animation: rbd-statue 9s ease-in-out infinite alternate;
}
.scn-rome-bedchamber-description .wall-left {
  position: absolute; bottom: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #1a1a22 0%, #2a2a34 100%);
  animation: rbd-wall-left 20s ease-in-out infinite alternate;
}
.scn-rome-bedchamber-description .wall-right {
  position: absolute; bottom: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #1a1a22 0%, #2a2a34 100%);
  animation: rbd-wall-right 20s ease-in-out infinite alternate;
}
.scn-rome-bedchamber-description .hearth {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 15%;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(200,100,30,0.3);
  animation: rbd-hearth 6s ease-in-out infinite alternate;
}
.scn-rome-bedchamber-description .ambient-glow {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse, rgba(200,180,150,0.2) 0%, rgba(200,180,150,0.05) 60%, transparent 100%);
  border-radius: 50%;
  animation: rbd-glow 11s ease-in-out infinite alternate;
}
@keyframes rbd-chimney {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes rbd-statue {
  0% { transform: rotate(-1deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0) scale(1); }
}
@keyframes rbd-wall-left {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes rbd-wall-right {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes rbd-hearth {
  0% { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); }
  50% { background: linear-gradient(180deg, #3a1a0a 0%, #5a2a0a 100%); }
  100% { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); }
}
@keyframes rbd-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-item-bracelet-proof {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a20 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-item-bracelet-proof .hand-left {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #c8a080 0%, #a07850 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ibp-hand 5s ease-in-out infinite alternate;
}
.scn-item-bracelet-proof .hand-right {
  position: absolute; bottom: 25%; right: 25%; width: 38px; height: 58px;
  background: linear-gradient(180deg, #d0a888 0%, #a88058 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ibp-hand 5s ease-in-out infinite alternate-reverse;
}
.scn-item-bracelet-proof .bracelet {
  position: absolute; bottom: 40%; left: 44%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #d4af37 0%, #a08020 30%, #604010 70%, #d4af37 100%);
  border-radius: 30%; box-shadow: 0 0 20px 4px rgba(212,175,55,0.6), 0 0 40px 8px rgba(212,175,55,0.3);
  animation: ibp-bracelet 3s ease-in-out infinite alternate;
}
.scn-item-bracelet-proof .diamond-ring {
  position: absolute; bottom: 45%; right: 40%; width: 18px; height: 18px;
  background: radial-gradient(circle, #c0d8f0 0%, #80a0c0 50%, #406080 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px rgba(192,216,240,0.5);
  animation: ibp-ring 4s ease-in-out infinite alternate;
}
.scn-item-bracelet-proof .shadow-back {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: ibp-shadow 6s ease-in-out infinite alternate;
}
.scn-item-bracelet-proof .glow-spot {
  position: absolute; top: 30%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(212,175,55,0.3) 0%, rgba(212,175,55,0.05) 60%, transparent 100%);
  border-radius: 50%;
  animation: ibp-glow 7s ease-in-out infinite alternate;
}
@keyframes ibp-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ibp-bracelet {
  0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 4px rgba(212,175,55,0.6); }
  50% { transform: scale(1.05) rotate(10deg); box-shadow: 0 0 30px 6px rgba(212,175,55,0.8); }
  100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 4px rgba(212,175,55,0.6); }
}
@keyframes ibp-ring {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-3px) scale(1.1); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}
@keyframes ibp-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ibp-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.15); }
  100% { opacity: 0.4; transform: scale(1); }
}

/* Scene: palace-accusation-hint */
.scn-palace-accusation-hint {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a0 40%, #b8a47e 100%),
    radial-gradient(ellipse at 50% 30%, #fff 0%, transparent 60%);
}
.scn-palace-accusation-hint .wall { position:absolute;inset:0;background:linear-gradient(180deg, #f2e4ce 0%, #e0d0b0 100%);box-shadow:inset 0 0 40px rgba(0,0,0,0.15); }
.scn-palace-accusation-hint .column-left { position:absolute;top:10%;left:8%;width:6%;height:80%;background:linear-gradient(90deg, #d4b896 0%, #f0e0c8 40%, #d4b896 100%);border-radius:4% 4% 0 0;box-shadow:0 0 20px rgba(0,0,0,0.2);animation:pa1-column 8s ease-in-out infinite alternate; }
.scn-palace-accusation-hint .column-right { position:absolute;top:10%;right:8%;width:6%;height:80%;background:linear-gradient(90deg, #d4b896 0%, #f0e0c8 40%, #d4b896 100%);border-radius:4% 4% 0 0;box-shadow:0 0 20px rgba(0,0,0,0.2);animation:pa1-column 8s ease-in-out infinite alternate-reverse; }
.scn-palace-accusation-hint .crown-glow { position:absolute;top:25%;left:50%;width:40px;height:30px;transform:translateX(-50%);background:radial-gradient(circle, #ffd700 0%, #b8860b 70%);border-radius:50% 50% 0 0;box-shadow:0 0 40px 10px rgba(255,215,0,0.5),0 0 80px 20px rgba(255,215,0,0.2);animation:pa1-crown 3s ease-in-out infinite alternate; }
.scn-palace-accusation-hint .hand-accuse { position:absolute;bottom:30%;left:45%;width:25px;height:40px;background:linear-gradient(180deg, #dbb894 0%, #c19a6b 100%);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;transform:rotate(-20deg);transform-origin:bottom left;animation:pa1-hand 2s ease-in-out infinite; }
.scn-palace-accusation-hint .figure-accuser { position:absolute;bottom:20%;left:35%;width:30px;height:70px;background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:pa1-figure 4s ease-in-out infinite; }
.scn-palace-accusation-hint .shadow-sharp { position:absolute;bottom:0;left:25%;width:50%;height:10px;background:linear-gradient(90deg, transparent, rgba(0,0,0,0.3), transparent);filter:blur(2px);animation:pa1-shadow 5s ease-in-out infinite alternate; }
.scn-palace-accusation-hint .floor-tile { position:absolute;bottom:0;left:0;right:0;height:20%;background:repeating-linear-gradient(90deg, #b8a47e 0px, #b8a47e 20px, #a08c64 20px, #a08c64 40px);box-shadow:inset 0 10px 20px rgba(0,0,0,0.3); }
@keyframes pa1-column { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.01) translateY(-2px) } 100% { transform:scaleY(0.99) translateY(1px) } }
@keyframes pa1-crown { 0% { opacity:0.7; box-shadow:0 0 30px 5px rgba(255,215,0,0.3) } 50% { opacity:1; box-shadow:0 0 50px 15px rgba(255,215,0,0.6) } 100% { opacity:0.8; box-shadow:0 0 35px 8px rgba(255,215,0,0.4) } }
@keyframes pa1-hand { 0% { transform:rotate(-20deg) translateY(0) } 50% { transform:rotate(-15deg) translateY(-3px) } 100% { transform:rotate(-20deg) translateY(0) } }
@keyframes pa1-figure { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-2px) rotate(1deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pa1-shadow { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.6; transform:scaleX(1.2) } 100% { opacity:0.3; transform:scaleX(0.8) } }

/* Scene: palace-slave-speech */
.scn-palace-slave-speech {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 70%);
}
.scn-palace-slave-speech .bg-smoky { position:absolute;inset:0;background:linear-gradient(180deg, rgba(74,58,42,0.6) 0%, rgba(58,42,26,0.8) 100%);filter:blur(8px);animation:pa2-smoke 12s ease-in-out infinite alternate; }
.scn-palace-slave-speech .tallow-lamp { position:absolute;bottom:25%;left:35%;width:20px;height:30px;background:linear-gradient(180deg, #604020 0%, #402000 100%);border-radius:10% 10% 50% 50%;box-shadow:0 0 20px 5px rgba(255,180,60,0.3);animation:pa2-lamp 4s ease-in-out infinite; }
.scn-palace-slave-speech .lamp-glow { position:absolute;bottom:20%;left:33%;width:40px;height:50px;background:radial-gradient(circle, rgba(255,200,80,0.5) 0%, rgba(255,150,40,0.2) 60%, transparent 100%);filter:blur(10px);animation:pa2-glow 3s ease-in-out infinite alternate; }
.scn-palace-slave-speech .hand-hard { position:absolute;bottom:30%;left:50%;width:28px;height:38px;background:linear-gradient(180deg, #8a7040 0%, #6a5020 100%);border-radius:30% 30% 20% 20% / 50% 50% 30% 30%;transform:rotate(15deg);animation:pa2-hand 2.5s ease-in-out infinite; }
.scn-palace-slave-speech .face-profile { position:absolute;bottom:35%;left:55%;width:35px;height:50px;background:linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);border-radius:50% 40% 40% 50% / 60% 50% 50% 60%;transform:scaleX(-1);animation:pa2-face 6s ease-in-out infinite; }
.scn-palace-slave-speech .eye-dim { position:absolute;bottom:48%;left:62%;width:8px;height:4px;background:#1a1a0a;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,0.5);animation:pa2-eye 4s ease-in-out infinite; }
.scn-palace-slave-speech .chain { position:absolute;bottom:20%;left:40%;width:30px;height:8px;background:repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, #7a6a5a 4px, #7a6a5a 6px);border-radius:2px;animation:pa2-chain 3s ease-in-out infinite alternate; }
@keyframes pa2-smoke { 0% { opacity:0.4; transform:scale(1) } 50% { opacity:0.7; transform:scale(1.05) } 100% { opacity:0.5; transform:scale(0.95) } }
@keyframes pa2-lamp { 0% { transform:scaleY(1) rotate(0deg) } 50% { transform:scaleY(1.05) rotate(2deg) } 100% { transform:scaleY(0.95) rotate(-2deg) } }
@keyframes pa2-glow { 0% { opacity:0.5; transform:scale(1) } 50% { opacity:0.8; transform:scale(1.2) } 100% { opacity:0.6; transform:scale(0.9) } }
@keyframes pa2-hand { 0% { transform:rotate(15deg) translateY(0) } 50% { transform:rotate(12deg) translateY(-2px) } 100% { transform:rotate(15deg) translateY(0) } }
@keyframes pa2-face { 0% { transform:scaleX(-1) translateY(0) } 50% { transform:scaleX(-1) translateY(-3px) } 100% { transform:scaleX(-1) translateY(0) } }
@keyframes pa2-eye { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.6) } 100% { transform:scaleY(1) } }
@keyframes pa2-chain { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(0) } }

/* Scene: palace-sickness-pity */
.scn-palace-sickness-pity {
  background: 
    linear-gradient(180deg, #f0e6d8 0%, #d8c8b0 40%, #b8a090 100%),
    radial-gradient(ellipse at 50% 10%, #fff 0%, transparent 60%);
}
.scn-palace-sickness-pity .chamber-wall { position:absolute;inset:0;background:linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); }
.scn-palace-sickness-pity .bed-frame { position:absolute;bottom:15%;left:20%;right:20%;height:45%;background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);border-radius:10% 10% 20% 20%;box-shadow:0 10px 30px rgba(0,0,0,0.4);animation:pa3-bed 10s ease-in-out infinite alternate; }
.scn-palace-sickness-pity .queen-figure { position:absolute;bottom:20%;left:35%;width:30px;height:60px;background:linear-gradient(180deg, #a08870 0%, #806040 100%);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;transform:rotate(-5deg);transform-origin:bottom center;animation:pa3-queen 5s ease-in-out infinite; }
.scn-palace-sickness-pity .attendant { position:absolute;bottom:25%;right:35%;width:25px;height:55px;background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);border-radius:50% 40% 40% 50% / 60% 50% 50% 60%;animation:pa3-attendant 7s ease-in-out infinite; }
.scn-palace-sickness-pity .pillow { position:absolute;bottom:35%;left:38%;width:40px;height:20px;background:radial-gradient(ellipse at 50% 50%, #f0e0d0 0%, #d0c0a0 100%);border-radius:50%;filter:blur(2px);animation:pa3-pillow 4s ease-in-out infinite alternate; }
.scn-palace-sickness-pity .veil-drop { position:absolute;top:15%;left:40%;width:20px;height:40px;background:linear-gradient(180deg, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0) 100%);filter:blur(4px);animation:pa3-veil 8s ease-in-out infinite; }
.scn-palace-sickness-pity .candle-wax { position:absolute;bottom:20%;left:60%;width:6px;height:24px;background:linear-gradient(180deg, #d0c0a0 0%, #b09880 100%);border-radius:20% 20% 0 0;animation:pa3-wax 6s ease-in-out infinite; }
.scn-palace-sickness-pity .shadow-pool { position:absolute;bottom:0;left:10%;right:10%;height:15%;background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); }
@keyframes pa3-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(2px) } }
@keyframes pa3-queen { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes pa3-attendant { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(0) } }
@keyframes pa3-pillow { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(0.95) } }
@keyframes pa3-veil { 0% { opacity:0.3; transform:translateY(0) } 50% { opacity:0.6; transform:translateY(10px) } 100% { opacity:0.4; transform:translateY(-5px) } }
@keyframes pa3-wax { 0% { transform:scaleY(1) } 50% { transform:scaleY(0.8) } 100% { transform:scaleY(1) } }

/* Scene: palace-revenge-question */
.scn-palace-revenge-question {
  background: 
    linear-gradient(180deg, #d4b896 0%, #c0a080 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 40%, #e8d0b0 0%, transparent 70%);
}
.scn-palace-revenge-question .alcove { position:absolute;inset:10% 15% 20% 15%;background:linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);border-radius:5% 5% 10% 10%;box-shadow:inset 0 0 40px rgba(0,0,0,0.2); }
.scn-palace-revenge-question .altar { position:absolute;bottom:15%;left:40%;right:40%;height:20%;background:linear-gradient(180deg, #8a7040 0%, #6a5020 100%);border-radius:10% 10% 20% 20%;box-shadow:0 0 20px rgba(0,0,0,0.5); }
.scn-palace-revenge-question .oath-hand { position:absolute;bottom:25%;left:44%;width:20px;height:35px;background:linear-gradient(180deg, #dbb894 0%, #c19a6b 100%);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;transform:rotate(10deg);transform-origin:bottom left;animation:pa4-oath 3s ease-in-out infinite; }
.scn-palace-revenge-question .accept-hand { position:absolute;bottom:25%;right:44%;width:20px;height:35px;background:linear-gradient(180deg, #c9a888 0%, #a88868 100%);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;transform:rotate(-10deg) scaleX(-1);transform-origin:bottom right;animation:pa4-accept 3s ease-in-out infinite; }
.scn-palace-revenge-question .blood-drop { position:absolute;bottom:22%;left:50%;width:4px;height:6px;background:radial-gradient(circle, #8a2020 0%, #5c1010 100%);border-radius:50%;transform:translateX(-50%);animation:pa4-blood 6s ease-in-out infinite; }
.scn-palace-revenge-question .seal-ring { position:absolute;bottom:26%;left:46%;width:8px;height:8px;background:#b8860b;border-radius:50%;box-shadow:0 0 6px 2px rgba(184,134,11,0.5);animation:pa4-seal 4s ease-in-out infinite alternate; }
.scn-palace-revenge-question .curtain.drape-left { position:absolute;top:0;left:0;width:15%;height:100%;background:linear-gradient(180deg, #6a3a2a 0%, #4a2010 100%);border-radius:0 20% 20% 0;box-shadow:5px 0 20px rgba(0,0,0,0.3);animation:pa4-drape 12s ease-in-out infinite; }
.scn-palace-revenge-question .curtain.drape-right { position:absolute;top:0;right:0;width:15%;height:100%;background:linear-gradient(180deg, #6a3a2a 0%, #4a2010 100%);border-radius:20% 0 0 20%;box-shadow:-5px 0 20px rgba(0,0,0,0.3);animation:pa4-drape 12s ease-in-out infinite reverse; }
@keyframes pa4-oath { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-3px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes pa4-accept { 0% { transform:rotate(-10deg) scaleX(-1) translateY(0) } 50% { transform:rotate(-8deg) scaleX(-1) translateY(-3px) } 100% { transform:rotate(-10deg) scaleX(-1) translateY(0) } }
@keyframes pa4-blood { 0% { opacity:0.2; transform:translateX(-50%) scale(0.5) } 50% { opacity:0.8; transform:translateX(-50%) scale(1.2) } 100% { opacity:0.3; transform:translateX(-50%) scale(0.6) } }
@keyframes pa4-seal { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(0.95) } }
@keyframes pa4-drape { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(3px) } }

/* Scene: lucius-arrives (tense dawn) */
.scn-lucius-arrives {
  background: linear-gradient(180deg, #7a8fa0 0%, #b0c4d0 30%, #d4c8a0 70%, #a0885a 100%), radial-gradient(ellipse at 40% 0%, #d4c8a0 0%, transparent 60%);
}
.scn-lucius-arrives .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a8a 0%, #9aaea0 40%, transparent 100%); animation: li-sky 14s ease-in-out infinite alternate; }
.scn-lucius-arrives .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #486a72 0%, #2a4a4a 100%); animation: li-sea 8s ease-in-out infinite; }
.scn-lucius-arrives .ship { position:absolute; bottom:35%; left:20%; width:160px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 0 60% 20% 0 / 0 80% 40% 0; transform: skewX(-10deg); animation: li-ship 12s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-lucius-arrives .sail-fore { position:absolute; bottom:38%; left:18%; width:40px; height:90px; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: li-sail 6s ease-in-out infinite alternate; }
.scn-lucius-arrives .sail-aft { position:absolute; bottom:38%; left:26%; width:32px; height:70px; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: li-sail 7s ease-in-out infinite alternate; animation-delay: -1s; }
.scn-lucius-arrives .wave-1 { position:absolute; bottom:10%; left:0; right:0; height:20px; background: radial-gradient(ellipse at 30% 50%, rgba(70,130,150,.3) 0%, transparent 70%); filter: blur(2px); animation: li-wave 4s ease-in-out infinite; }
.scn-lucius-arrives .wave-2 { position:absolute; bottom:16%; left:0; right:0; height:18px; background: radial-gradient(ellipse at 70% 50%, rgba(50,110,130,.25) 0%, transparent 70%); filter: blur(3px); animation: li-wave 5s ease-in-out infinite; animation-delay: -1.5s; }
.scn-lucius-arrives .captain { position:absolute; bottom:30%; left:12%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%; transform: rotate(-5deg); animation: li-figure 4s ease-in-out infinite; }
.scn-lucius-arrives .soothsayer { position:absolute; bottom:30%; left:8%; width:18px; height:48px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius: 45% 45% 50% 50% / 30% 30% 70% 70%; transform: rotate(3deg); animation: li-figure 5s ease-in-out infinite; animation-delay: -2s; }

@keyframes li-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes li-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes li-ship { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-12deg) translateX(3px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes li-sail { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes li-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.1) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes li-figure { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

/* Scene: soothsayer-dream (calm dawn) */
.scn-soothsayer-dream {
  background: linear-gradient(180deg, #8a9eb0 0%, #b0c4d0 40%, #d8d0b8 70%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #d0d0c0 0%, transparent 70%);
}
.scn-soothsayer-dream .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8ea0 0%, #a0b4c0 40%, transparent 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-soothsayer-dream .moon { position:absolute; top:8%; left:22%; width:50px; height:50px; background: radial-gradient(circle, #f0e0b0 0%, #e0c890 80%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(224,200,144,.4); animation: sd-moon 6s ease-in-out infinite; }
.scn-soothsayer-dream .cloud-a { position:absolute; top:12%; right:10%; width:100px; height:20px; background: linear-gradient(90deg, rgba(180,190,200,.6) 0%, rgba(200,210,220,.3) 100%); filter: blur(5px); animation: sd-cloud-a 30s linear infinite; }
.scn-soothsayer-dream .cloud-b { position:absolute; top:18%; left:5%; width:80px; height:18px; background: linear-gradient(90deg, rgba(180,190,200,.5) 0%, rgba(200,210,220,.2) 100%); filter: blur(4px); animation: sd-cloud-b 40s linear infinite reverse; }
.scn-soothsayer-dream .sleeper { position:absolute; bottom:20%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform: rotate(-5deg); animation: sd-sleeper 8s ease-in-out infinite; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-soothsayer-dream .dream-orb { position:absolute; bottom:35%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #f0e0a0 0%, #e0c080 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px rgba(224,192,128,.5); animation: sd-orb 4s ease-in-out infinite; }
.scn-soothsayer-dream .breeze { position:absolute; top:30%; left:0; width:100%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(200,200,180,.3) 50%, transparent 100%); filter: blur(1px); animation: sd-breeze 10s linear infinite; }

@keyframes sd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sd-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(3px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes sd-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes sd-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes sd-sleeper { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sd-orb { 0% { transform: translate(0,0) scale(1); opacity:.8 } 50% { transform: translate(5px,-5px) scale(1.2); opacity:1 } 100% { transform: translate(0,0) scale(1); opacity:.8 } }
@keyframes sd-breeze { 0% { transform: scaleX(0.8); opacity:0 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(0.8); opacity:0 } }

/* Scene: lucius-discovers-body (tense dawn) */
.scn-lucius-discovers-body {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 30%, #2a3a4a 60%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-lucius-discovers-body .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, transparent 100%); animation: lb-sky 12s ease-in-out infinite alternate; }
.scn-lucius-discovers-body .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-lucius-discovers-body .body { position:absolute; bottom:15%; left:30%; width:70px; height:120px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 30% 40% 40% / 30% 30% 50% 50%; transform: rotate(-10deg); box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: lb-body 5s ease-in-out infinite; }
.scn-lucius-discovers-body .headless { position:absolute; bottom:15%; left:30%; width:70px; height:100px; background: #3a2a2a; border-radius: 30% 30% 40% 40% / 30% 30% 50% 50%; clip-path: inset(0 0 0 0); /* no head */ }
.scn-lucius-discovers-body .page { position:absolute; bottom:12%; left:32%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%; transform: rotate(15deg); animation: lb-page 3s ease-in-out infinite; }
.scn-lucius-discovers-body .lucius { position:absolute; bottom:20%; left:20%; width:25px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%; transform: rotate(-20deg); animation: lb-lucius 4s ease-in-out infinite; }
.scn-lucius-discovers-body .pool { position:absolute; bottom:8%; left:28%; width:80px; height:20px; background: radial-gradient(ellipse, #4a2a1a 0%, #2a1a0a 60%, transparent 100%); border-radius:50%; filter: blur(3px); animation: lb-pool 6s ease-in-out infinite; }
.scn-lucius-discovers-body .sword { position:absolute; bottom:25%; left:18%; width:8px; height:70px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); transform: rotate(30deg); border-radius: 2px; animation: lb-sword 3s ease-in-out infinite alternate; box-shadow: 0 2px 4px rgba(0,0,0,.4); }

@keyframes lb-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes lb-body { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes lb-page { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes lb-lucius { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(2px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes lb-pool { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes lb-sword { 0% { transform: rotate(30deg) } 50% { transform: rotate(28deg) } 100% { transform: rotate(30deg) } }

/* Scene: imogen-claims-master (dark dawn) */
.scn-imogen-claims-master {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 80%, #050a15 100%), radial-gradient(ellipse at 50% 0%, #2a3a4a 0%, transparent 70%);
}
.scn-imogen-claims-master .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, transparent 100%); animation: ic-sky 18s ease-in-out infinite alternate; }
.scn-imogen-claims-master .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a1520 0%, #050a10 100%); }
.scn-imogen-claims-master .imogen { position:absolute; bottom:20%; left:40%; width:24px; height:90px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%; transform: rotate(-15deg); animation: ic-imogen 8s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-imogen-claims-master .master-body { position:absolute; bottom:12%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 30% 30% 50% 50%; transform: rotate(-5deg); animation: ic-master 12s ease-in-out infinite; }
.scn-imogen-claims-master .tear { position:absolute; bottom:45%; left:42%; width:4px; height:6px; background: rgba(180,200,220,.3); border-radius:50%; filter: blur(1px); animation: ic-tear 4s ease-in-out infinite; }
.scn-imogen-claims-master .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: ic-shadow 10s ease-in-out infinite alternate; }
.scn-imogen-claims-master .wind { position:absolute; top:30%; left:0; width:100%; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(150,170,190,.15) 50%, transparent 100%); filter: blur(2px); animation: ic-wind 15s linear infinite; }

@keyframes ic-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ic-imogen { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ic-master { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-7deg) scale(1.01) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes ic-tear { 0% { transform: translateY(0); opacity:.3 } 50% { transform: translateY(10px); opacity:.6 } 100% { transform: translateY(20px); opacity:0 } }
@keyframes ic-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ic-wind { 0% { transform: scaleX(0.5); opacity:0 } 50% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0.5); opacity:0 } }

/* grief-medicine - dim interior, calm */
.scn-grief-medicine {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #3a2a22 40%, #2e221c 100%),
    radial-gradient(ellipse at 40% 60%, #4a3630 0%, transparent 70%);
}
.scn-grief-medicine .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a22 40%, #2e221c 100%);
  animation: gm-bg 12s ease-in-out infinite alternate;
}
.scn-grief-medicine .window {
  position: absolute; top: 8%; left: 60%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #d4c4a8 0%, #8a7a62 60%, #3a2a22 100%);
  border-radius: 4px 4px 20px 20px;
  box-shadow: inset 0 0 20px rgba(180,160,130,0.3);
  animation: gm-window 15s ease-in-out infinite alternate;
}
.scn-grief-medicine .bottle {
  position: absolute; bottom: 30%; left: 20%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a5036 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: gm-bottle 6s ease-in-out infinite;
}
.scn-grief-medicine .figure {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gm-figure 4s ease-in-out infinite alternate;
}
.scn-grief-medicine .chair {
  position: absolute; bottom: 8%; left: 38%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3628 0%, #2e2016 100%);
  border-radius: 6px 6px 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gm-chair 8s ease-in-out infinite alternate;
}
.scn-grief-medicine .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-grief-medicine .motes-a {
  top: 20%; left: 50%;
  animation: gm-drift-a 25s linear infinite;
}
.scn-grief-medicine .motes-b {
  top: 40%; left: 30%;
  animation: gm-drift-b 30s linear infinite;
}
@keyframes gm-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes gm-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(180,160,130,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(200,180,150,0.4); }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(180,160,130,0.25); }
}
@keyframes gm-bottle {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gm-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes gm-chair {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes gm-drift-a {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  33% { transform: translate(10px, -5px) scale(1.2); opacity: 0.5; }
  66% { transform: translate(-5px, 3px) scale(0.9); opacity: 0.4; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.3; }
}
@keyframes gm-drift-b {
  0% { transform: translate(0, 0); }
  50% { transform: translate(-8px, 4px); opacity: 0.5; }
  100% { transform: translate(0, 0); opacity: 0.3; }
}

/* funeral-song - dim interior, candlelit */
.scn-funeral-song {
  background:
    linear-gradient(180deg, #1e1818 0%, #2a2020 40%, #1e1818 100%),
    radial-gradient(ellipse at 50% 70%, #3a2820 0%, transparent 80%);
}
.scn-funeral-song .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1818 0%, #2a2020 100%);
  animation: fs-bg 10s ease-in-out infinite alternate;
}
.scn-funeral-song .bier {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2e 0%, #2e221c 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: fs-bier 6s ease-in-out infinite alternate;
}
.scn-funeral-song .figure {
  position: absolute; bottom: 10%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-funeral-song .kneeling {
  animation: fs-kneel 5s ease-in-out infinite alternate;
}
.scn-funeral-song .figure-left {
  left: 30%;
  animation-delay: 0s;
}
.scn-funeral-song .figure-right {
  left: 56%;
  animation-delay: 0.5s;
}
.scn-funeral-song .candle {
  position: absolute; bottom: 36%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d8a0 0%, #c8a060 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px #c8a060;
  animation: fs-candle 2s ease-in-out infinite alternate;
}
.scn-funeral-song .candle-glow {
  position: absolute; bottom: 34%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  animation: fs-glow 3s ease-in-out infinite alternate;
}
.scn-funeral-song .petal {
  position: absolute; width: 10px; height: 6px;
  background: #9a6a4a;
  border-radius: 50% 0 50% 0;
  opacity: 0.7;
}
.scn-funeral-song .petal-a {
  top: 10%; left: 20%;
  animation: fs-petal-a 12s ease-in-out infinite;
}
.scn-funeral-song .petal-b {
  top: 30%; left: 70%;
  animation: fs-petal-b 15s ease-in-out infinite reverse;
}
@keyframes fs-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes fs-bier {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes fs-kneel {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fs-candle {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1) scaleY(0.95); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes fs-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.15); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes fs-petal-a {
  0% { transform: translate(0, 0) rotate(0); opacity: 0.7; }
  33% { transform: translate(20px, 30px) rotate(90deg); opacity: 0.5; }
  66% { transform: translate(40px, 10px) rotate(180deg); opacity: 0.6; }
  100% { transform: translate(60px, 40px) rotate(270deg); opacity: 0; }
}
@keyframes fs-petal-b {
  0% { transform: translate(0, 0) rotate(0); opacity: 0.6; }
  33% { transform: translate(-15px, 25px) rotate(-90deg); opacity: 0.4; }
  66% { transform: translate(-30px, 5px) rotate(-180deg); opacity: 0.5; }
  100% { transform: translate(-45px, 20px) rotate(-270deg); opacity: 0; }
}

/* funeral-conclusion - dim interior, earth tones */
.scn-funeral-conclusion {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2a221e 40%, #1e1a16 100%),
    radial-gradient(ellipse at 50% 70%, #3a2e24 0%, transparent 80%);
}
.scn-funeral-conclusion .earth-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1a16 0%, #2a221e 100%);
  animation: fc-bg 14s ease-in-out infinite alternate;
}
.scn-funeral-conclusion .mound {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2e221c 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: fc-mound 8s ease-in-out infinite alternate;
}
.scn-funeral-conclusion .figure-standing {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-figure 6s ease-in-out infinite alternate;
}
.scn-funeral-conclusion .flower-strewn {
  position: absolute; width: 10px; height: 8px;
  background: #9a7a5a;
  border-radius: 50% 0 50% 0;
}
.scn-funeral-conclusion .flower-a {
  bottom: 22%; left: 40%; opacity: 0.6;
  animation: fc-flower-a 10s ease-in-out infinite;
}
.scn-funeral-conclusion .flower-b {
  bottom: 24%; left: 55%; opacity: 0.5;
  animation: fc-flower-b 12s ease-in-out infinite reverse;
}
.scn-funeral-conclusion .flower-c {
  bottom: 20%; left: 48%; opacity: 0.7;
  animation: fc-flower-c 8s ease-in-out infinite alternate;
}
.scn-funeral-conclusion .lantern {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #c8a868 0%, #a07840 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 0 20px rgba(200,168,104,0.6);
  animation: fc-lantern 4s ease-in-out infinite alternate;
}
.scn-funeral-conclusion .lantern-glow {
  position: absolute; bottom: 28%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,168,104,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: fc-glow 5s ease-in-out infinite alternate;
}
@keyframes fc-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fc-mound {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes fc-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fc-flower-a {
  0% { transform: translate(0, 0) rotate(0); opacity: 0.6; }
  33% { transform: translate(5px, -10px) rotate(30deg); opacity: 0.4; }
  66% { transform: translate(-3px, -5px) rotate(-20deg); opacity: 0.5; }
  100% { transform: translate(0, 0) rotate(0); opacity: 0.6; }
}
@keyframes fc-flower-b {
  0% { transform: translate(0, 0) rotate(0); opacity: 0.5; }
  50% { transform: translate(-4px, -8px) rotate(-15deg); opacity: 0.4; }
  100% { transform: translate(0, 0) rotate(0); opacity: 0.5; }
}
@keyframes fc-flower-c {
  0% { transform: rotate(0) scale(1); opacity: 0.7; }
  50% { transform: rotate(10deg) scale(0.95); opacity: 0.6; }
  100% { transform: rotate(-5deg) scale(1); opacity: 0.7; }
}
@keyframes fc-lantern {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes fc-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* burial-rites - moonlit */
.scn-burial-rites {
  background:
    linear-gradient(180deg, #0c1420 0%, #1a2430 50%, #0f1820 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a4a 0%, transparent 70%);
}
.scn-burial-rites .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1018 0%, #182230 100%);
  animation: br-sky 20s ease-in-out infinite alternate;
}
.scn-burial-rites .moon {
  position: absolute; top: 12%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8e0c8 0%, #c8c0a0 60%, #a09880 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(200,192,160,0.5);
  animation: br-moon 30s ease-in-out infinite alternate;
}
.scn-burial-rites .moon-glow {
  position: absolute; top: 8%; left: 66%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,192,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: br-glow 30s ease-in-out infinite alternate;
}
.scn-burial-rites .grave-mound {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #2a2e2a 0%, #1a1e1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: br-mound 12s ease-in-out infinite alternate;
}
.scn-burial-rites .figure-sitting {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0e14 0%, #060a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-figure 8s ease-in-out infinite alternate;
}
.scn-burial-rites .small-flower {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 8px;
  background: #b8a080;
  border-radius: 50% 0 50% 0;
  animation: br-flower 10s ease-in-out infinite;
}
.scn-burial-rites .cloud {
  position: absolute; height: 14px;
  background: linear-gradient(180deg, rgba(160,180,200,0.3) 0%, rgba(100,120,140,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-burial-rites .cloud-a {
  top: 8%; left: 10%; width: 80px;
  animation: br-cloud-a 40s linear infinite;
}
.scn-burial-rites .cloud-b {
  top: 20%; right: 5%; width: 60px;
  animation: br-cloud-b 50s linear infinite reverse;
}
@keyframes br-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes br-moon {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-3px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.85; }
}
@keyframes br-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.45; transform: scale(0.98); }
}
@keyframes br-mound {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes br-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes br-flower {
  0% { transform: rotate(0) scale(1); opacity: 0.7; }
  33% { transform: rotate(15deg) scale(0.95); opacity: 0.6; }
  66% { transform: rotate(-10deg) scale(1.05); opacity: 0.5; }
  100% { transform: rotate(0) scale(1); opacity: 0.7; }
}
@keyframes br-cloud-a {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes br-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* palace-imogen-letter */
.scn-palace-imogen-letter {
  background: linear-gradient(180deg, #cba57a 0%, #a0764a 40%, #6b4f2e 100%),
              radial-gradient(ellipse at 50% 0%, #eccea0 0%, transparent 60%);
}
.scn-palace-imogen-letter .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4b88a 0%, #b58d5a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.15);
}
.scn-palace-imogen-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3420 100%);
}
.scn-palace-imogen-letter .window {
  position: absolute; top: 12%; left: 30%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #ffe5c0 0%, #d4b080 70%, #806040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 60px 20px rgba(255,220,160,0.3);
  animation: pl-window 6s ease-in-out infinite alternate;
}
.scn-palace-imogen-letter .curtain-left,
.scn-palace-imogen-letter .curtain-right {
  position: absolute; top: 10%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #b05030 0%, #7a2a1a 100%);
  border-radius: 30% 10% 50% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: pl-curtain 8s ease-in-out infinite alternate;
}
.scn-palace-imogen-letter .curtain-left {
  left: 8%; transform-origin: left center;
}
.scn-palace-imogen-letter .curtain-right {
  right: 8%; transform-origin: right center;
  animation-delay: -2s;
}
.scn-palace-imogen-letter .table {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 8%;
  transform: perspective(400px) rotateX(10deg);
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-palace-imogen-letter .candle {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0d090 0%, #c08040 60%, #8a6030 100%);
  border-radius: 20%;
  box-shadow: 0 -10px 40px 10px #ffd080;
  animation: pl-candle 3s ease-in-out infinite alternate;
}
.scn-palace-imogen-letter .figure {
  position: absolute; bottom: 20%; left: 44%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pl-figure 5s ease-in-out infinite;
}
.scn-palace-imogen-letter .letter {
  position: absolute; bottom: 26%; left: 49%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #f5e0c0 0%, #d4b890 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pl-letter 4s ease-in-out infinite alternate;
}
@keyframes pl-window {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes pl-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.05) translateX(5px); }
  100% { transform: scaleX(0.95) translateX(-3px); }
}
@keyframes pl-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.9; box-shadow: 0 -10px 30px 6px #ffd080; }
  50% { transform: translateY(-2px) scaleY(1.03); opacity: 1; box-shadow: 0 -14px 50px 12px #ffd080; }
  100% { transform: translateY(1px) scaleY(0.97); opacity: 0.85; box-shadow: 0 -8px 25px 4px #e0b060; }
}
@keyframes pl-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(0.5deg); }
}
@keyframes pl-letter {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px) translateY(-1px); }
  100% { transform: rotate(-7deg) translateX(-2px) translateY(1px); }
}

/* wales-cave-morning */
.scn-wales-cave-morning {
  background: linear-gradient(180deg, #b8c8d0 0%, #809098 30%, #607078 70%, #404850 100%),
              radial-gradient(ellipse at 50% 80%, #d0e0e8 0%, transparent 60%);
}
.scn-wales-cave-morning .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #f0d8b0 0%, #e0b890 30%, #b09878 60%, #809098 100%);
  animation: wc-sky 12s ease-in-out infinite alternate;
}
.scn-wales-cave-morning .cave-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 10%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  opacity: 0.6;
}
.scn-wales-cave-morning .cave-mouth {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 20%;
  background: linear-gradient(180deg, #c0b0a0 0%, #807060 50%, #403830 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 40px 80px rgba(0,0,0,0.4);
  animation: wc-mouth 18s ease-in-out infinite alternate;
}
.scn-wales-cave-morning .rock-left,
.scn-wales-cave-morning .rock-right {
  position: absolute; bottom: 20%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 20% 20% / 50% 40% 30% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
}
.scn-wales-cave-morning .rock-left {
  left: 0;
  animation: wc-rock 20s ease-in-out infinite alternate;
}
.scn-wales-cave-morning .rock-right {
  right: 0;
  animation: wc-rock 22s ease-in-out infinite alternate-reverse;
}
.scn-wales-cave-morning .figure-left,
.scn-wales-cave-morning .figure-right {
  position: absolute; bottom: 18%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-wales-cave-morning .figure-left {
  left: 35%; transform-origin: bottom center;
  animation: wc-figure-l 6s ease-in-out infinite;
}
.scn-wales-cave-morning .figure-right {
  right: 35%; transform-origin: bottom center;
  animation: wc-figure-r 7s ease-in-out infinite;
}
.scn-wales-cave-morning .mist {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,230,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: wc-mist 30s linear infinite alternate;
}
@keyframes wc-sky {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-5px); }
  100% { opacity: 0.8; transform: translateY(3px); }
}
@keyframes wc-mouth {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes wc-rock {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(3px) rotate(-1deg); }
}
@keyframes wc-figure-l {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
  75% { transform: translateY(-4px) rotate(0.5deg); }
}
@keyframes wc-figure-r {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-1deg); }
  60% { transform: translateY(-4px) rotate(1deg); }
  80% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes wc-mist {
  0% { opacity: 0.3; transform: translateX(-10px) scale(1); }
  50% { opacity: 0.6; transform: translateX(10px) scale(1.2); }
  100% { opacity: 0.4; transform: translateX(-5px) scale(0.9); }
}

/* milford-pisanio-imogen */
.scn-milford-pisanio-imogen {
  background: linear-gradient(180deg, #f0e6c0 0%, #c8b880 40%, #a09060 100%),
              radial-gradient(ellipse at 70% 30%, #ffe8a0 0%, transparent 60%);
}
.scn-milford-pisanio-imogen .sky-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 100%);
  animation: mp-sky 10s ease-in-out infinite alternate;
}
.scn-milford-pisanio-imogen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
}
.scn-milford-pisanio-imogen .tree-left,
.scn-milford-pisanio-imogen .tree-right {
  position: absolute; top: 10%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 20% 20% / 30% 50% 30% 20%;
  box-shadow: 10px 0 20px rgba(0,0,0,0.3);
}
.scn-milford-pisanio-imogen .tree-left {
  left: 8%;
  animation: mp-tree 15s ease-in-out infinite alternate;
}
.scn-milford-pisanio-imogen .tree-right {
  right: 8%;
  animation: mp-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-milford-pisanio-imogen .figure-pisanio {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-pisanio 4s ease-in-out infinite;
}
.scn-milford-pisanio-imogen .figure-imogen {
  position: absolute; bottom: 20%; left: 52%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #8a6050 0%, #5a3a30 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mp-imogen 5s ease-in-out infinite;
}
.scn-milford-pisanio-imogen .letter {
  position: absolute; bottom: 28%; left: 44%; width: 8%; height: 5%;
  background: linear-gradient(135deg, #f5e0c0 0%, #d4b890 100%);
  border-radius: 3%;
  transform: rotate(10deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: mp-letter 3s ease-in-out infinite alternate;
}
.scn-milford-pisanio-imogen .shadow-pisanio,
.scn-milford-pisanio-imogen .shadow-imogen {
  position: absolute; bottom: 18%; width: 14%; height: 6%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-milford-pisanio-imogen .shadow-pisanio {
  left: 29%;
  animation: mp-shadow 4s ease-in-out infinite;
}
.scn-milford-pisanio-imogen .shadow-imogen {
  left: 51%;
  animation: mp-shadow 5s ease-in-out infinite;
}
@keyframes mp-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mp-tree {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(3px) rotate(-1deg); }
}
@keyframes mp-pisanio {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(1deg); }
  40% { transform: translateY(-1px) rotate(-0.5deg); }
  60% { transform: translateY(-4px) rotate(0.5deg); }
  80% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mp-imogen {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-5px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(0.5deg); }
}
@keyframes mp-letter {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(2px) translateY(-2px); }
  100% { transform: rotate(8deg) translateX(-1px) translateY(1px); }
}
@keyframes mp-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.3; }
  100% { transform: scaleX(0.8); opacity: 0.6; }
}

/* milford-imogen-reaction */
.scn-milford-imogen-reaction {
  background: linear-gradient(180deg, #ffe8c0 0%, #d4b080 30%, #a08050 70%, #605030 100%),
              radial-gradient(ellipse at 30% 40%, #ffd490 0%, transparent 60%);
}
.scn-milford-imogen-reaction .sky-blaze {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #f0d0a0 50%, #d4b080 100%);
  animation: mr-sky 8s ease-in-out infinite alternate;
}
.scn-milford-imogen-reaction .ground-blade {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.5);
}
.scn-milford-imogen-reaction .figure-alone {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-figure 6s ease-in-out infinite;
}
.scn-milford-imogen-reaction .letter-torn {
  position: absolute; bottom: 24%; left: 40%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #f5d0a0 0%, #d4b080 100%);
  border-radius: 2%;
  transform: rotate(-15deg) skewX(10deg);
  box-shadow: 0 3px 10px rgba(0,0,0,0.4);
  animation: mr-letter 4s ease-in-out infinite alternate;
}
.scn-milford-imogen-reaction .shadow-deep {
  position: absolute; bottom: 16%; left: 43%; width: 18%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: mr-shadow 6s ease-in-out infinite alternate;
}
.scn-milford-imogen-reaction .dust {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.1) 0%, transparent 70%);
  filter: blur(30px);
  animation: mr-dust 15s linear infinite alternate;
}
.scn-milford-imogen-reaction .heat-shimmer {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: repeating-linear-gradient(0deg, transparent, rgba(255,255,255,0.03) 2px, transparent 4px);
  animation: mr-heat 2s ease-in-out infinite;
}
@keyframes mr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mr-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(1deg); }
  40% { transform: translateY(-6px) rotate(-2deg); }
  60% { transform: translateY(-3px) rotate(0deg); }
  80% { transform: translateY(-4px) rotate(1.5deg); }
}
@keyframes mr-letter {
  0% { transform: rotate(-15deg) skewX(10deg) translateX(0); }
  50% { transform: rotate(-10deg) skewX(5deg) translateX(3px) translateY(-4px); }
  100% { transform: rotate(-18deg) skewX(12deg) translateX(-2px) translateY(2px); }
}
@keyframes mr-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.4; }
}
@keyframes mr-dust {
  0% { opacity: 0.1; transform: scale(1) translateY(0); }
  50% { opacity: 0.4; transform: scale(1.2) translateY(-10px); }
  100% { opacity: 0.2; transform: scale(0.9) translateY(5px); }
}
@keyframes mr-heat {
  0% { opacity: 0; }
  50% { opacity: 0.3; }
  100% { opacity: 0; }
}

/* ===== i achimo-confession ===== */
.scn-iachimo-confession {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 40%, #1c1620 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%);
}
.scn-iachimo-confession .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(60,40,30,.3) 0%, transparent 60%);
  animation: conf-bg 12s ease-in-out infinite alternate;
}
.scn-iachimo-confession .figure {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a1423 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: conf-figure 4s ease-in-out infinite;
}
.scn-iachimo-confession .ring {
  position: absolute; bottom: 38%; left: 48%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c8553d 0%, #7a2a1a 70%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(200,85,61,.5), 0 0 36px 12px rgba(200,85,61,.2);
  animation: conf-ring 2s ease-in-out infinite alternate;
}
.scn-iachimo-confession .brazier {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: conf-brazier 3s ease-in-out infinite;
}
.scn-iachimo-confession .shadow {
  position: absolute; bottom: 10%; left: 45%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 40%;
  transform: skewX(-10deg);
  animation: conf-shadow 4s ease-in-out infinite alternate;
}
.scn-iachimo-confession .curtain {
  position: absolute; top: 0; left: 70%; width: 60px; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 0 0 20% 20%;
  animation: conf-curtain 8s ease-in-out infinite alternate;
}
@keyframes conf-bg {
  0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 }
}
@keyframes conf-figure {
  0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) }
}
@keyframes conf-ring {
  0% { box-shadow: 0 0 14px 4px rgba(200,85,61,.4), 0 0 28px 8px rgba(200,85,61,.1); }
  50% { box-shadow: 0 0 24px 8px rgba(200,85,61,.6), 0 0 50px 16px rgba(200,85,61,.3); }
  100% { box-shadow: 0 0 16px 5px rgba(200,85,61,.45), 0 0 32px 10px rgba(200,85,61,.15); }
}
@keyframes conf-brazier {
  0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.95) }
}
@keyframes conf-shadow {
  0% { opacity: .5; transform: skewX(-10deg) scaleY(1) } 50% { opacity: .8; transform: skewX(-8deg) scaleY(1.1) } 100% { opacity: .6; transform: skewX(-12deg) scaleY(.95) }
}
@keyframes conf-curtain {
  0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) }
}

/* ===== i achimo-ring-wager ===== */
.scn-iachimo-ring-wager {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 50%, #1c1620 100%),
              radial-gradient(ellipse at 50% 0, #2a1e2e 0%, transparent 60%);
}
.scn-iachimo-ring-wager .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(40,25,20,.4) 0%, transparent 70%);
  animation: ring-bg 10s ease-in-out infinite alternate;
}
.scn-iachimo-ring-wager .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #2a1e2e 0%, #1c1420 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ring-table 15s ease-in-out infinite alternate;
}
.scn-iachimo-ring-wager .ring {
  position: absolute; bottom: 35%; left: 48%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #7a2a1a 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,.5), 0 0 40px 12px rgba(200,85,61,.2);
  animation: ring-glow 2.5s ease-in-out infinite alternate;
}
.scn-iachimo-ring-wager .hand {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1c1420 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: ring-hand 3s ease-in-out infinite;
}
.scn-iachimo-ring-wager .candle {
  position: absolute; bottom: 45%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 14px 4px rgba(200,160,96,.4);
  animation: ring-candle 2s ease-in-out infinite alternate;
}
.scn-iachimo-ring-wager .shadow-left {
  position: absolute; bottom: 10%; left: 10%; width: 50px; height: 110px;
  background: rgba(0,0,0,.4);
  border-radius: 40%;
  transform: skewX(15deg);
  animation: ring-shadow 5s ease-in-out infinite alternate;
}
.scn-iachimo-ring-wager .shadow-right {
  position: absolute; bottom: 10%; right: 10%; width: 50px; height: 110px;
  background: rgba(0,0,0,.4);
  border-radius: 40%;
  transform: skewX(-15deg);
  animation: ring-shadow 5s ease-in-out infinite alternate-reverse;
}
@keyframes ring-bg {
  0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .5 }
}
@keyframes ring-table {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes ring-glow {
  0% { box-shadow: 0 0 16px 4px rgba(200,85,61,.4), 0 0 32px 8px rgba(200,85,61,.15); }
  50% { box-shadow: 0 0 28px 8px rgba(200,85,61,.6), 0 0 56px 16px rgba(200,85,61,.3); }
  100% { box-shadow: 0 0 18px 5px rgba(200,85,61,.45), 0 0 36px 10px rgba(200,85,61,.2); }
}
@keyframes ring-hand {
  0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) }
}
@keyframes ring-candle {
  0% { opacity: .8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: .85; transform: scaleY(.98) }
}
@keyframes ring-shadow {
  0% { opacity: .4; transform: skewX(15deg) scaleY(1) } 50% { opacity: .7; transform: skewX(12deg) scaleY(1.05) } 100% { opacity: .5; transform: skewX(18deg) scaleY(.95) }
}

/* ===== i achimo-confession-detail ===== */
.scn-iachimo-confession-detail {
  background: linear-gradient(180deg, #120a1a 0%, #1a1423 50%, #0e0812 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 60%);
}
.scn-iachimo-confession-detail .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(40,20,20,.3) 0%, transparent 70%);
  animation: det-bg 14s ease-in-out infinite alternate;
}
.scn-iachimo-confession-detail .figure {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1423 0%, #0e0812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: det-figure 6s ease-in-out infinite;
}
.scn-iachimo-confession-detail .gem {
  position: absolute; bottom: 45%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c8a060 0%, #7a4a20 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,.6), 0 0 60px 20px rgba(200,160,96,.3);
  animation: det-gem 3s ease-in-out infinite alternate;
}
.scn-iachimo-confession-detail .hand {
  position: absolute; bottom: 35%; left: 45%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1423 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom right;
  animation: det-hand 4s ease-in-out infinite;
}
.scn-iachimo-confession-detail .candle {
  position: absolute; bottom: 42%; left: 60%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #5e3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px 3px rgba(200,160,96,.4);
  animation: det-candle 2s ease-in-out infinite alternate;
}
.scn-iachimo-confession-detail .shadow {
  position: absolute; bottom: 8%; left: 25%; width: 80px; height: 140px;
  background: rgba(0,0,0,.5);
  border-radius: 40%;
  transform: skewX(-5deg);
  animation: det-shadow 7s ease-in-out infinite alternate;
}
@keyframes det-bg {
  0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .4 }
}
@keyframes det-figure {
  0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) }
}
@keyframes det-gem {
  0% { box-shadow: 0 0 20px 6px rgba(200,160,96,.4), 0 0 40px 12px rgba(200,160,96,.15); }
  50% { box-shadow: 0 0 40px 12px rgba(200,160,96,.6), 0 0 80px 24px rgba(200,160,96,.3); }
  100% { box-shadow: 0 0 25px 8px rgba(200,160,96,.5), 0 0 50px 16px rgba(200,160,96,.2); }
}
@keyframes det-hand {
  0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) }
}
@keyframes det-candle {
  0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.04) } 100% { opacity: .8; transform: scaleY(.96) }
}
@keyframes det-shadow {
  0% { opacity: .4; transform: skewX(-5deg) scaleY(1) } 50% { opacity: .7; transform: skewX(-3deg) scaleY(1.08) } 100% { opacity: .5; transform: skewX(-7deg) scaleY(.95) }
}

/* ===== posthumus-outburst ===== */
.scn-posthumus-outburst {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1220 50%, #0e0812 100%),
              radial-gradient(ellipse at 40% 30%, #2a1a2a 0%, transparent 70%);
}
.scn-posthumus-outburst .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(40,20,20,.4) 0%, transparent 70%);
  animation: out-bg 8s ease-in-out infinite alternate;
}
.scn-posthumus-outburst .figure {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1423 0%, #0e0812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: out-figure 2s ease-in-out infinite;
}
.scn-posthumus-outburst .knife {
  position: absolute; bottom: 40%; left: 32%; width: 25px; height: 6px;
  background: linear-gradient(90deg, #6a6a7a 0%, #3a3a4a 100%);
  border-radius: 30% 10% 10% 30%;
  transform-origin: left center;
  box-shadow: 0 0 8px 2px rgba(200,180,160,.3);
  animation: out-knife 1.5s ease-in-out infinite alternate;
}
.scn-posthumus-outburst .rope {
  position: absolute; bottom: 30%; left: 42%; width: 4px; height: 50px;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #3a2a1a 4px, #3a2a1a 8px);
  border-radius: 2px;
  transform-origin: top center;
  animation: out-rope 3s ease-in-out infinite;
}
.scn-posthumus-outburst .brazier {
  position: absolute; bottom: 8%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: out-brazier 2.5s ease-in-out infinite alternate;
}
.scn-posthumus-outburst .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 130px;
  background: rgba(0,0,0,.6);
  border-radius: 40%;
  transform: skewX(-10deg);
  animation: out-shadow 4s ease-in-out infinite alternate;
}
.scn-posthumus-outburst .spark {
  position: absolute; bottom: 50%; left: 20%; width: 4px; height: 4px;
  background: #c8a060;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,96,.6);
  animation: out-spark 1.6s ease-in-out infinite alternate;
}
@keyframes out-bg {
  0% { opacity: .5 } 50% { opacity: .85 } 100% { opacity: .3 }
}
@keyframes out-figure {
  0% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-5px) rotate(5deg) scale(1.02) } 100% { transform: translateY(0) rotate(-2deg) scale(.98) }
}
@keyframes out-knife {
  0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) }
}
@keyframes out-rope {
  0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(.98) }
}
@keyframes out-brazier {
  0% { opacity: .6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: .7; transform: scaleY(.95) }
}
@keyframes out-shadow {
  0% { opacity: .4; transform: skewX(-10deg) scaleY(1) } 50% { opacity: .8; transform: skewX(-15deg) scaleY(1.12) } 100% { opacity: .5; transform: skewX(-5deg) scaleY(.95) }
}
@keyframes out-spark {
  0% { opacity: 0; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-10px) } 100% { opacity: 0; transform: translateY(-20px) }
}

.scn-garden-lustre-claim {
  background:
    linear-gradient(180deg, #b2c8d4 0%, #f5e6c8 40%, #d4b896 70%, #8a6e4a 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8b0 0%, transparent 50%);
}
.scn-garden-lustre-claim .sun-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f9eab0 0%, #c8d8e8 50%, #b0c8d8 100%);
  animation: glc-sky 8s ease-in-out infinite alternate;
}
.scn-garden-lustre-claim .throne-back {
  position: absolute; bottom: 25%; left: 30%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 8px 0 20px rgba(0,0,0,.4);
  animation: glc-throne 6s ease-in-out infinite;
}
.scn-garden-lustre-claim .throne-seat {
  position: absolute; bottom: 25%; left: 35%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: glc-throne 6s ease-in-out infinite;
}
.scn-garden-lustre-claim .figure-king {
  position: absolute; bottom: 28%; left: 42%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: glc-figure 4s ease-in-out infinite;
}
.scn-garden-lustre-claim .shadow-long {
  position: absolute; bottom: 22%; left: 40%; width: 30%; height: 6%;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: glc-shadow 4s ease-in-out infinite alternate;
}
.scn-garden-lustre-claim .petal {
  position: absolute; width: 2%; height: 3%;
  background: radial-gradient(circle at 30% 30%, #c8553d, #8a3020);
  border-radius: 50% 0 50% 0;
  animation: glc-petal 12s linear infinite;
}
.scn-garden-lustre-claim .swirl-a {
  top: 20%; left: 10%;
  animation-duration: 14s;
  animation-delay: -3s;
}
.scn-garden-lustre-claim .swirl-b {
  top: 35%; right: 15%;
  animation-duration: 18s;
  animation-delay: -7s;
}
.scn-garden-lustre-claim .glint-bright {
  position: absolute; top: 10%; left: 55%;
  width: 3%; height: 3%;
  background: radial-gradient(circle, #fff5e0, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,245,224,.5);
  animation: glc-glint 3s ease-in-out infinite alternate;
}
@keyframes glc-sky {
  0% { opacity: .85; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 10% 5%; }
  100% { opacity: .9; background-position: -5% 2%; }
}
@keyframes glc-throne {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes glc-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes glc-shadow {
  0% { transform: scaleX(.8); opacity: .2; }
  100% { transform: scaleX(1.2); opacity: .4; }
}
@keyframes glc-petal {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity: .8; }
  25% { transform: translate(30px, -20px) rotate(90deg) scale(1.1); opacity: .6; }
  50% { transform: translate(60px, -40px) rotate(180deg) scale(1.2); opacity: .4; }
  75% { transform: translate(90px, -20px) rotate(270deg) scale(1.1); opacity: .6; }
  100% { transform: translate(120px, 0) rotate(360deg) scale(1); opacity: .8; }
}
@keyframes glc-glint {
  0% { opacity: .3; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.4); }
}

.scn-garden-queen-whisper {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #8a7a5a 60%, #5a4a2a 100%),
    radial-gradient(ellipse at 50% 20%, #c8a870 0%, transparent 60%);
}
.scn-garden-queen-whisper .cage-bars {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 70%;
  border: 8px solid #4a3a2a;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 14px, #4a3a2a 14px, #4a3a2a 16px);
  animation: gqw-bars 4s ease-in-out infinite;
}
.scn-garden-queen-whisper .cage-shadow {
  position: absolute; bottom: 12%; left: 22%; width: 56%; height: 66%;
  background: linear-gradient(135deg, rgba(0,0,0,.4), transparent);
  animation: gqw-shadow 6s ease-in-out infinite alternate;
}
.scn-garden-queen-whisper .figure-captive {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gqw-captive 5s ease-in-out infinite;
}
.scn-garden-queen-whisper .hand-grasp {
  position: absolute; bottom: 45%; left: 50%; width: 8%; height: 8%;
  background: radial-gradient(circle at 40% 40%, #5a4a2a, #2a1a0a);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: gqw-hand 3s ease-in-out infinite alternate;
}
.scn-garden-queen-whisper .dust-mote {
  position: absolute; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(200,168,112,.6), transparent);
  border-radius: 50%;
  animation: gqw-mote 15s linear infinite;
}
.scn-garden-queen-whisper .mot-a {
  top: 20%; left: 15%; animation-duration: 16s; animation-delay: -2s;
}
.scn-garden-queen-whisper .mot-b {
  bottom: 40%; right: 20%; animation-duration: 20s; animation-delay: -6s; width: 1.5%; height: 1.5%;
}
.scn-garden-queen-whisper .mot-c {
  top: 60%; left: 70%; animation-duration: 18s; animation-delay: -10s; width: 2.5%; height: 2.5%;
}
.scn-garden-queen-whisper .spotlight {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,235,200,.3), transparent 60%);
  border-radius: 50%;
  animation: gqw-spotlight 14s ease-in-out infinite alternate;
}
@keyframes gqw-bars {
  0%, 100% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
}
@keyframes gqw-shadow {
  0% { opacity: .3; transform: scaleX(1); }
  100% { opacity: .7; transform: scaleX(1.1); }
}
@keyframes gqw-captive {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(3px) translateY(-2px); }
  50% { transform: translateX(0) translateY(0); }
  75% { transform: translateX(-3px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes gqw-hand {
  0% { transform: rotate(-25deg) translateX(0); }
  100% { transform: rotate(-15deg) translateX(5px); }
}
@keyframes gqw-mote {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: .8; }
  25% { transform: translateY(-40px) translateX(20px) scale(1.2); opacity: .4; }
  50% { transform: translateY(-80px) translateX(0) scale(.8); opacity: .6; }
  75% { transform: translateY(-120px) translateX(-20px) scale(1.1); opacity: .3; }
  100% { transform: translateY(-160px) translateX(0) scale(1); opacity: .8; }
}
@keyframes gqw-spotlight {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .4; transform: scale(1.1); }
  100% { opacity: .2; transform: scale(.95); }
}

.scn-garden-pisanio-news {
  background:
    linear-gradient(180deg, #c8b08a 0%, #d4c0a0 40%, #b09878 70%, #907858 100%),
    radial-gradient(ellipse at 50% 40%, #ffe8c8 0%, transparent 50%);
}
.scn-garden-pisanio-news .ground-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #6a5a3a 0%, #8a7a5a 100%);
  border-radius: 60% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: gpn-ground 8s ease-in-out infinite alternate;
}
.scn-garden-pisanio-news .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: gpn-fight 2s ease-in-out infinite;
}
.scn-garden-pisanio-news .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: gpn-fight 2s ease-in-out infinite reverse;
  animation-delay: -1s;
}
.scn-garden-pisanio-news .sword-glint {
  position: absolute; bottom: 50%; left: 35%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #fff5e0 0%, #c8b08a 40%, #8a7a5a 100%);
  border-radius: 10%;
  box-shadow: 0 0 10px 4px rgba(255,245,224,.4), 0 0 20px 8px rgba(255,245,224,.2);
  transform: rotate(15deg);
  animation: gpn-sword 2s ease-in-out infinite alternate;
}
.scn-garden-pisanio-news .dust-puff {
  position: absolute; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(200,176,138,.5), transparent);
  border-radius: 50%;
  animation: gpn-dust 6s ease-out infinite;
}
.scn-garden-pisanio-news .puf-a { bottom: 30%; left: 30%; animation-delay: 0s; }
.scn-garden-pisanio-news .puf-b { bottom: 28%; right: 35%; animation-delay: -3s; }
.scn-garden-pisanio-news .shadow-split {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(90deg, rgba(0,0,0,.2), transparent 30%, transparent 70%, rgba(0,0,0,.2));
  border-radius: 50%;
  filter: blur(4px);
  animation: gpn-split 4s ease-in-out infinite alternate;
}
.scn-garden-pisanio-news .sky-blast {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.15), transparent 60%);
  animation: gpn-blast 10s ease-in-out infinite alternate;
}
@keyframes gpn-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes gpn-fight {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gpn-sword {
  0% { transform: rotate(10deg) translateX(0); opacity: .6; }
  100% { transform: rotate(20deg) translateX(10px); opacity: 1; }
}
@keyframes gpn-dust {
  0% { transform: scale(1); opacity: .6; }
  50% { transform: scale(2.5); opacity: .2; }
  100% { transform: scale(4); opacity: 0; }
}
@keyframes gpn-split {
  0% { opacity: .2; transform: scaleX(1); }
  100% { opacity: .5; transform: scaleX(1.2); }
}
@keyframes gpn-blast {
  0% { opacity: .1; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.3); }
  100% { opacity: .1; transform: scaleY(1); }
}

.scn-garden-servant-faith {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #7a6a4a 30%, #9a8a6a 60%, #6a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #c8a870 0%, transparent 60%);
}
.scn-garden-servant-faith .hand-sewing {
  position: absolute; bottom: 20%; left: 25%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(0,0,0,.4);
  animation: gsf-hand 5s ease-in-out infinite;
}
.scn-garden-servant-faith .needle-point {
  position: absolute; bottom: 55%; left: 45%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #a08060 0%, #c8a870 50%, #a08060 100%);
  border-radius: 20% 20% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 0 8px 2px rgba(200,168,112,.4);
  animation: gsf-needle 2s ease-in-out infinite alternate;
}
.scn-garden-servant-faith .thread-curve {
  position: absolute; bottom: 45%; left: 38%; width: 15%; height: 10%;
  border: 2px solid #c8a870;
  border-color: #c8a870 transparent transparent transparent;
  border-radius: 50%;
  transform: rotate(10deg);
  animation: gsf-thread 3s ease-in-out infinite;
}
.scn-garden-servant-faith .fabric-fold {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a4a2a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: gsf-fabric 6s ease-in-out infinite alternate;
}
.scn-garden-servant-faith .basket-rim {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a, #4a3a1a);
  border-radius: 10% 10% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: gsf-basket 8s ease-in-out infinite;
}
.scn-garden-servant-faith .shadow-cloth {
  position: absolute; bottom: 15%; left: 28%; width: 44%; height: 20%;
  background: rgba(0,0,0,.3);
  border-radius: 30%;
  filter: blur(6px);
  animation: gsf-shade 4s ease-in-out infinite alternate;
}
.scn-garden-servant-faith .glint-metal {
  position: absolute; bottom: 55%; left: 46%; width: 2%; height: 2%;
  background: radial-gradient(circle, #fff5e0 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,245,224,.5);
  animation: gsf-glint 1.5s ease-in-out infinite alternate;
}
.scn-garden-servant-faith .dust-thread {
  position: absolute; bottom: 48%; left: 35%; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(200,168,112,.6), transparent);
  border-radius: 50%;
  animation: gsf-dust 10s linear infinite;
}
.scn-garden-servant-faith .mot-d {
  top: 10%; left: 60%;
  animation-duration: 12s;
  animation-delay: -4s;
  width: 1.5%;
  height: 1.5%;
}
@keyframes gsf-hand {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gsf-needle {
  0% { transform: rotate(-15deg) translateY(0); }
  100% { transform: rotate(-5deg) translateY(5px); }
}
@keyframes gsf-thread {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(15deg) scaleX(1.1); }
  100% { transform: rotate(5deg) scaleX(1); }
}
@keyframes gsf-fabric {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.05) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes gsf-basket {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes gsf-shade {
  0% { opacity: .3; transform: scaleY(1); }
  100% { opacity: .6; transform: scaleY(1.2); }
}
@keyframes gsf-glint {
  0% { opacity: .4; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.5); }
}
@keyframes gsf-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .6; }
  25% { transform: translate(20px, -30px) scale(1.2); opacity: .4; }
  50% { transform: translate(40px, -60px) scale(.8); opacity: .3; }
  75% { transform: translate(60px, -90px) scale(1.1); opacity: .5; }
  100% { transform: translate(80px, -120px) scale(1); opacity: .6; }
}

/* Scene: palace-cloten-pisanio */
.scn-palace-cloten-pisanio {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #4a3528 40%, #6b5040 70%, #8a6a5a 100%),
    radial-gradient(circle at 70% 30%, #e0c080 0%, transparent 50%);
}
.scn-palace-cloten-pisanio .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4030 40%, #7a6050 100%);
  border-bottom: 4px solid #2a1f1a;
  animation: cp-wall 20s ease-in-out infinite alternate;
}
.scn-palace-cloten-pisanio .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1f1a 100%);
  transform: perspective(200px) rotateX(5deg);
}
.scn-palace-cloten-pisanio .throne {
  position: absolute; bottom: 22%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: cp-throne 12s ease-in-out infinite;
}
.scn-palace-cloten-pisanio .table {
  position: absolute; bottom: 25%; left: 55%; width: 60px; height: 20px;
  background: linear-gradient(135deg, #6b5040 0%, #4a3528 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-palace-cloten-pisanio .letter {
  position: absolute; bottom: 38%; left: 57%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(240,224,192,0.5);
  animation: cp-letter 4s ease-in-out infinite alternate;
}
.scn-palace-cloten-pisanio .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: cp-shadow 8s ease-in-out infinite alternate;
}
.scn-palace-cloten-pisanio .figure-cloten {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-figure-a 6s ease-in-out infinite;
}
.scn-palace-cloten-pisanio .figure-pisanio {
  position: absolute; bottom: 26%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cp-figure-b 5s ease-in-out infinite 1s;
}
@keyframes cp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cp-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cp-letter { 0% { opacity: 0.7; transform: rotate(-3deg) } 50% { opacity: 1; transform: rotate(2deg) } 100% { opacity: 0.8; transform: rotate(-1deg) } }
@keyframes cp-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes cp-figure-a { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes cp-figure-b { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: wales-cave-imogen-disguised */
.scn-wales-cave-imogen-disguised {
  background:
    linear-gradient(180deg, #87ceeb 0%, #4a90d9 40%, #2a5a8a 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-wales-cave-imogen-disguised .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #87ceeb 50%, #5a9ad6 100%);
  animation: wi-sky 30s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-disguised .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,215,0,0.5);
  animation: wi-sun 8s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-disguised .mountain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #4a5a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  clip-path: polygon(0% 100%, 10% 30%, 30% 10%, 50% 20%, 70% 5%, 90% 25%, 100% 100%);
  animation: wi-mountain 25s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-disguised .path {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: scaleY(0.4);
  animation: wi-path 15s ease-in-out infinite;
}
.scn-wales-cave-imogen-disguised .rock {
  position: absolute; bottom: 25%; left: 10%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wi-rock 20s ease-in-out infinite;
}
.scn-wales-cave-imogen-disguised .figure-imogen {
  position: absolute; bottom: 24%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wi-figure 6s ease-in-out infinite;
}
@keyframes wi-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wi-sun { 0% { transform: scale(1); opacity: 0.9 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(1); opacity: 0.85 } }
@keyframes wi-mountain { 0% { transform: translateY(0px) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0px) } }
@keyframes wi-path { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes wi-rock { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wi-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(0deg) } 75% { transform: translateX(4px) rotate(-3deg) } }

/* Scene: wales-cave-hunters-return */
.scn-wales-cave-hunters-return {
  background:
    linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 60%);
}
.scn-wales-cave-hunters-return .cave-arch {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: wh-cave 30s ease-in-out infinite alternate;
}
.scn-wales-cave-hunters-return .sunbeam {
  position: absolute; top: 0; left: 35%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 40% 100%);
  animation: wh-beam 10s ease-in-out infinite alternate;
}
.scn-wales-cave-hunters-return .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
}
.scn-wales-cave-hunters-return .fire-pit {
  position: absolute; bottom: 12%; left: 45%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #e08040 0%, #c06030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(224,128,64,0.6);
  animation: wh-fire 3s ease-in-out infinite alternate;
}
.scn-wales-cave-hunters-return .figure-belarius {
  position: absolute; bottom: 16%; left: 28%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wh-fig-a 7s ease-in-out infinite;
}
.scn-wales-cave-hunters-return .figure-guiderius {
  position: absolute; bottom: 16%; left: 38%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wh-fig-b 8s ease-in-out infinite 1s;
}
.scn-wales-cave-hunters-return .figure-arvirage {
  position: absolute; bottom: 16%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wh-fig-c 9s ease-in-out infinite 2s;
}
@keyframes wh-cave { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes wh-beam { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes wh-fire { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(1); opacity: 0.8 } }
@keyframes wh-fig-a { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } }
@keyframes wh-fig-b { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes wh-fig-c { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } }

/* Scene: wales-cave-imogen-discovered */
.scn-wales-cave-imogen-discovered {
  background:
    linear-gradient(180deg, #1a1008 0%, #2a1a0a 30%, #4a3a2a 70%, #5a4a3a 100%),
    radial-gradient(circle at 40% 50%, #c08040 0%, transparent 60%);
}
.scn-wales-cave-imogen-discovered .cave-wall-bg {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: wd-wall 25s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-discovered .cave-wall-right {
  position: absolute; inset: 0 0 0 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: wd-wall 25s ease-in-out infinite alternate-reverse;
}
.scn-wales-cave-imogen-discovered .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-wales-cave-imogen-discovered .fire {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, #e08040 0%, #c06030 40%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(224,128,64,0.5);
  animation: wd-fire 2s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-discovered .figure-imogen {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-fig-a 6s ease-in-out infinite;
}
.scn-wales-cave-imogen-discovered .figure-belarius {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-fig-b 7s ease-in-out infinite 1s;
}
.scn-wales-cave-imogen-discovered .figure-guiderius {
  position: absolute; bottom: 18%; left: 62%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-fig-c 8s ease-in-out infinite 2s;
}
.scn-wales-cave-imogen-discovered .figure-arvirage {
  position: absolute; bottom: 18%; left: 70%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-fig-d 9s ease-in-out infinite 3s;
}
@keyframes wd-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wd-fire { 0% { transform: scale(1) rotate(-5deg); opacity: 0.8 } 50% { transform: scale(1.15) rotate(0deg); opacity: 1 } 100% { transform: scale(1) rotate(5deg); opacity: 0.8 } }
@keyframes wd-fig-a { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } }
@keyframes wd-fig-b { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes wd-fig-c { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes wd-fig-d { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(2deg) } }

/* palace-father-interrupts */
.scn-palace-father-interrupts {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 60%);
}
.scn-palace-father-interrupts .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1e 50%, #2a1a1a 100%); animation: pf-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-palace-father-interrupts .wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a1a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}
.scn-palace-father-interrupts .window {
  position: absolute; top: 12%; left: 35%; width: 120px; height: 160px; background: linear-gradient(180deg, #ffd080 0%, #ffa040 60%, #4a2a1a 100%); border: 8px solid #3a2a1e; border-radius: 12px; box-shadow: inset 0 0 60px #ffd080, 0 0 80px rgba(255,208,128,0.3); animation: pf-window-glow 4s ease-in-out infinite alternate;
}
.scn-palace-father-interrupts .torch {
  position: absolute; bottom: 42%; left: 20%; width: 12px; height: 20px; background: linear-gradient(180deg, #ffa040 0%, #ff6000 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 12px #ff8040, 0 0 80px 24px rgba(255,128,64,0.4); animation: pf-torch 2s ease-in-out infinite alternate;
}
.scn-palace-father-interrupts .figure-father {
  position: absolute; bottom: 28%; right: 25%; width: 60px; height: 140px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-father-enter 5s ease-in-out infinite;
}
.scn-palace-father-interrupts .figure-couple {
  position: absolute; bottom: 28%; left: 30%; width: 90px; height: 130px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pf-couple-start 6s ease-in-out infinite;
}
.scn-palace-father-interrupts .shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%); animation: pf-shadow 8s ease-in-out infinite alternate;
}
@keyframes pf-bg-pulse { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pf-window-glow { 0% { box-shadow: inset 0 0 40px #ffd080, 0 0 60px rgba(255,208,128,0.2); } 50% { box-shadow: inset 0 0 80px #ffe0a0, 0 0 100px rgba(255,224,160,0.4); } 100% { box-shadow: inset 0 0 50px #ffd080, 0 0 70px rgba(255,208,128,0.3); } }
@keyframes pf-torch { 0% { transform: scaleY(1) rotate(-3deg); opacity:0.9; } 50% { transform: scaleY(1.1) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.8; } }
@keyframes pf-father-enter { 0% { transform: translateX(30px) scale(0.9) rotate(5deg); opacity:0; } 25% { transform: translateX(0) scale(1) rotate(0); opacity:1; } 75% { transform: translateX(0) scale(1) rotate(0); opacity:1; } 100% { transform: translateX(-10px) scale(0.95) rotate(-2deg); opacity:0.8; } }
@keyframes pf-couple-start { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.05) rotate(0); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes pf-shadow { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }

/* rome-philario-house */
.scn-rome-philario-house {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08870 100%), radial-gradient(ellipse at 50% 100%, #d4c4a8 0%, transparent 70%);
}
.scn-rome-philario-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #b8a080 0%, #887060 100%); border-top: 4px solid #a08870; animation: rp-floor 20s ease-in-out infinite alternate;
}
.scn-rome-philario-house .pillar-left {
  position: absolute; bottom: 0; left: 10%; width: 30px; height: 70%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #a08870 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.2); border-radius: 20% 20% 0 0; animation: rp-pillar 30s ease-in-out infinite alternate;
}
.scn-rome-philario-house .pillar-right {
  position: absolute; bottom: 0; right: 10%; width: 30px; height: 70%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #a08870 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.2); border-radius: 20% 20% 0 0; animation: rp-pillar 30s ease-in-out infinite alternate-reverse;
}
.scn-rome-philario-house .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #a08870 0%, #887060 100%); border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: rp-table 15s ease-in-out infinite alternate;
}
.scn-rome-philario-house .figure-philario {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 120px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1a1a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: rp-figure-talk 6s ease-in-out infinite;
}
.scn-rome-philario-house .figure-iachimo {
  position: absolute; bottom: 20%; right: 35%; width: 40px; height: 120px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a1a 100%); border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%; transform-origin: bottom center; animation: rp-figure-listen 8s ease-in-out infinite;
}
.scn-rome-philario-house .lamp {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle at 50% 60%, #ffe0a0 0%, #c8a060 60%, #887040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(255,224,160,0.5), 0 0 120px 40px rgba(255,224,160,0.2); animation: rp-lamp 4s ease-in-out infinite alternate;
}
.scn-rome-philario-house .cloud {
  position: absolute; top: 8%; right: 5%; width: 120px; height: 20px; background: linear-gradient(90deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.3) 100%); filter: blur(8px); border-radius: 50%; animation: rp-cloud 60s linear infinite;
}
@keyframes rp-floor { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes rp-pillar { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes rp-table { 0% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(-0.3deg); } }
@keyframes rp-figure-talk { 0% { transform: scale(1) rotate(-5deg); } 25% { transform: scale(1.05) rotate(5deg); } 50% { transform: scale(1) rotate(-2deg); } 75% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes rp-figure-listen { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(8deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes rp-lamp { 0% { box-shadow: 0 0 40px 12px rgba(255,224,160,0.4); opacity:0.85; } 50% { box-shadow: 0 0 80px 24px rgba(255,224,160,0.6); opacity:1; } 100% { box-shadow: 0 0 50px 15px rgba(255,224,160,0.45); opacity:0.9; } }
@keyframes rp-cloud { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-20px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(0.9); } }

/* rome-posthumus-repute */
.scn-rome-posthumus-repute {
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 50%, #a09080 100%), radial-gradient(ellipse at 50% 0%, #f0e0d0 0%, transparent 60%);
}
.scn-rome-posthumus-repute .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c0b0a0 0%, #d4c4b4 50%, #b8a898 100%); animation: rr-bg 20s ease-in-out infinite alternate;
}
.scn-rome-posthumus-repute .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-rome-posthumus-repute .window-arch {
  position: absolute; top: 8%; left: 50%; width: 140px; height: 180px; transform: translateX(-50%); background: linear-gradient(180deg, #fff8e0 0%, #e8dcc8 60%, #c8b8a0 100%); clip-path: polygon(20% 0%, 80% 0%, 90% 30%, 100% 100%, 0% 100%, 10% 30%); box-shadow: inset 0 0 40px rgba(255,255,240,0.5), 0 0 60px rgba(255,255,240,0.2); animation: rr-arch 10s ease-in-out infinite alternate;
}
.scn-rome-posthumus-repute .figure-posthumus {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 140px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 45% 40% 55% / 60% 55% 50% 65%; transform-origin: bottom center; animation: rr-post-spin 8s ease-in-out infinite;
}
.scn-rome-posthumus-repute .figure-listener {
  position: absolute; bottom: 20%; right: 30%; width: 45px; height: 130px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1a1a 100%); border-radius: 40% 50% 55% 45% / 50% 60% 55% 45%; transform-origin: bottom center; animation: rr-listen 6s ease-in-out infinite alternate;
}
.scn-rome-posthumus-repute .candle {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #ffe0a0 0%, #c8a060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.4); animation: rr-candle 3s ease-in-out infinite alternate;
}
.scn-rome-posthumus-repute .glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px; transform: translate(-50%, 0); background: radial-gradient(circle, rgba(255,208,128,0.3) 0%, transparent 70%); animation: rr-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes rr-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes rr-arch { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes rr-post-spin { 0% { transform: scale(1) rotate(-4deg); } 25% { transform: scale(1.03) rotate(2deg); } 50% { transform: scale(0.98) rotate(-1deg); } 75% { transform: scale(1.02) rotate(3deg); } 100% { transform: scale(1) rotate(-4deg); } }
@keyframes rr-listen { 0% { transform: scale(1) rotate(0) translateY(0); } 50% { transform: scale(1.02) rotate(-2deg) translateY(-2px); } 100% { transform: scale(0.98) rotate(1deg) translateY(0); } }
@keyframes rr-candle { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); opacity:1; } 100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); opacity:0.85; } }
@keyframes rr-glow-pulse { 0% { opacity:0.6; transform: translate(-50%,0) scale(0.9); } 50% { opacity:0.9; transform: translate(-50%,-2px) scale(1.1); } 100% { opacity:0.7; transform: translate(-50%,0) scale(0.95); } }

/* rome-widow-comment */
.scn-rome-widow-comment {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1e 40%, #4a3a2e 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 50%);
}
.scn-rome-widow-comment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a1a 100%); border-top: 3px solid #5a4a3e; animation: rw-floor 10s ease-in-out infinite alternate;
}
.scn-rome-widow-comment .table {
  position: absolute; bottom: 18%; left: 50%; width: 150px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%); border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.5); animation: rw-table 4s ease-in-out infinite alternate;
}
.scn-rome-widow-comment .figure-widow {
  position: absolute; bottom: 15%; left: 28%; width: 55px; height: 150px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: rw-widow-gesture 3s ease-in-out infinite;
}
.scn-rome-widow-comment .figure-other {
  position: absolute; bottom: 15%; right: 25%; width: 50px; height: 140px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1a1a 100%); border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%; transform-origin: bottom center; animation: rw-other-react 3.5s ease-in-out infinite;
}
.scn-rome-widow-comment .candle-flicker {
  position: absolute; bottom: 25%; left: 50%; width: 14px; height: 36px; transform: translateX(-50%); background: linear-gradient(180deg, #ffa040 0%, #c86020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 12px #ff8040, 0 0 80px 24px rgba(255,128,64,0.3); animation: rw-candle-flick 1.6s ease-in-out infinite alternate;
}
.scn-rome-widow-comment .chair {
  position: absolute; bottom: 12%; left: 60%; width: 40px; height: 70px; background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%); border-radius: 8px 8px 4px 4px; transform: rotate(-8deg); animation: rw-chair-shake 2s ease-in-out infinite alternate;
}
.scn-rome-widow-comment .shadow-tense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 80px; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation: rw-shadow 5s ease-in-out infinite alternate;
}
@keyframes rw-floor { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes rw-table { 0% { transform: translateX(-50%) rotate(-1deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-0.5deg) scale(0.98); } }
@keyframes rw-widow-gesture { 0% { transform: translateY(0) rotate(-10deg); } 25% { transform: translateY(-4px) rotate(5deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes rw-other-react { 0% { transform: scale(1) rotate(0); } 40% { transform: scale(1.05) rotate(-5deg); } 60% { transform: scale(0.95) rotate(3deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes rw-candle-flick { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.15) rotate(3deg); opacity:1; } 100% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity:0.8; } }
@keyframes rw-chair-shake { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes rw-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-cymbeline-tent {
  background: linear-gradient(180deg, #d4c9a3 0%, #b8a77a 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 20%, #f0e6c8 0%, transparent 70%);
}
.scn-cymbeline-tent .tent-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c4b28a 0%, #a0906a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: cym-tent 12s ease-in-out infinite alternate;
}
.scn-cymbeline-tent .tent-pole {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
}
.scn-cymbeline-tent .soldier-figure {
  position: absolute; bottom: 28%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cym-soldier 8s ease-in-out infinite;
}
.scn-cymbeline-tent .armor-shine {
  position: absolute; bottom: 48%; left: 33%; width: 8px; height: 14px;
  background: radial-gradient(circle, #f0e0a0 0%, #b09860 60%, transparent 100%);
  border-radius: 50%;
  animation: cym-gleam 3s ease-in-out infinite alternate;
}
.scn-cymbeline-tent .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-cymbeline-tent .lantern {
  position: absolute; bottom: 45%; left: 65%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd890 0%, #c08040 70%);
  border-radius: 20%;
  box-shadow: 0 0 24px 8px rgba(192,128,64,0.6), 0 0 48px 16px rgba(192,128,64,0.3);
  animation: cym-lantern 4s ease-in-out infinite alternate;
}
.scn-cymbeline-tent .shadow {
  position: absolute; bottom: 28%; left: 25%; right: 45%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: cym-shadow 6s ease-in-out infinite alternate;
}
@keyframes cym-tent { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes cym-soldier { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cym-gleam { 0% { opacity:0.2; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes cym-lantern { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:0.9; } 50% { box-shadow: 0 0 32px 12px #ffd890; opacity:1; } 100% { box-shadow: 0 0 24px 8px #b07030; opacity:0.8; } }
@keyframes cym-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.3; } }

.scn-reward-for-heroes {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 50%, #a08868 100%),
              radial-gradient(ellipse at 30% 70%, #f0e4c8 0%, transparent 60%);
}
.scn-reward-for-heroes .bg-hall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b4a488 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: rew-hall 15s ease-in-out infinite alternate;
}
.scn-reward-for-heroes .kneeling-figure {
  position: absolute; bottom: 20%; left: 38%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rew-kneel 6s ease-in-out infinite;
}
.scn-reward-for-heroes .crown {
  position: absolute; bottom: 48%; left: 50%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(192,160,96,0.5);
  transform: translateX(-50%);
  animation: rew-crown 4s ease-in-out infinite alternate;
}
.scn-reward-for-heroes .banner {
  position: absolute; top: 12%; right: 10%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #b88870 0%, #906858 100%);
  border-radius: 0 0 10% 10%;
  transform: skewX(-5deg);
  animation: rew-banner 20s ease-in-out infinite alternate;
}
.scn-reward-for-heroes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-reward-for-heroes .light-ray {
  position: absolute; top: 0; left: 45%; right: 35%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: rew-ray 8s ease-in-out infinite alternate;
}
.scn-reward-for-heroes .medallion {
  position: absolute; bottom: 55%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d0b060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(208,176,96,0.6);
  animation: rew-medal 5s ease-in-out infinite;
}
@keyframes rew-hall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rew-kneel { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rew-crown { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rew-banner { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-3px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes rew-ray { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }
@keyframes rew-medal { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }

.scn-knighting {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b088 40%, #a08860 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}
.scn-knighting .bg-chamber {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4c09a 0%, #b4a078 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: kni-chamber 14s ease-in-out infinite alternate;
}
.scn-knighting .king-figure {
  position: absolute; bottom: 30%; right: 35%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kni-king 6s ease-in-out infinite;
}
.scn-knighting .knight-figure {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kni-knight 8s ease-in-out infinite;
}
.scn-knighting .sword {
  position: absolute; bottom: 55%; right: 42%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0b090 0%, #908070 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px rgba(192,176,144,0.5);
  animation: kni-sword 5s ease-in-out infinite alternate;
}
.scn-knighting .cloak {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #805040 0%, #503020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: kni-cloak 10s ease-in-out infinite;
}
.scn-knighting .halo {
  position: absolute; top: 10%; left: 45%; right: 45%; height: 40px;
  background: radial-gradient(ellipse, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: kni-halo 6s ease-in-out infinite alternate;
}
.scn-knighting .step {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 6px;
  background: linear-gradient(180deg, #a09070 0%, #807040 100%);
  border-radius: 10%;
}
.scn-knighting .candle {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b070 100%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(208,176,112,0.4);
  animation: kni-candle 3s ease-in-out infinite alternate;
}
@keyframes kni-chamber { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } 100% { opacity:0.85; transform: scaleY(0.97); } }
@keyframes kni-king { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes kni-knight { 0% { transform: translateX(0) skewY(0); } 25% { transform: translateX(2px) skewY(1deg); } 50% { transform: translateX(0) skewY(0); } 75% { transform: translateX(-2px) skewY(-1deg); } 100% { transform: translateX(0) skewY(0); } }
@keyframes kni-sword { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-10deg) scaleY(1.05); } 100% { transform: rotate(-15deg) scaleY(0.95); } }
@keyframes kni-cloak { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.04); opacity:0.9; } 100% { transform: scaleY(0.96); opacity:0.75; } }
@keyframes kni-halo { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }
@keyframes kni-candle { 0% { transform: scaleY(1); box-shadow: 0 0 8px 2px #d0b070; } 50% { transform: scaleY(1.1); box-shadow: 0 0 16px 6px #f0d8a0; } 100% { transform: scaleY(0.95); box-shadow: 0 0 10px 3px #c0a060; } }

.scn-queens-death-confession {
  background: linear-gradient(180deg, #b8b0a0 0%, #9a9280 40%, #7a7260 100%),
              radial-gradient(ellipse at 50% 60%, #c8c0b0 0%, transparent 70%);
}
.scn-queens-death-confession .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #a8a090 0%, #888070 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  animation: que-bg 20s ease-in-out infinite alternate;
}
.scn-queens-death-confession .bed {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #706858 0%, #504838 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-queens-death-confession .queen-figure {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a4238 0%, #2a2218 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: que-queen 8s ease-in-out infinite;
}
.scn-queens-death-confession .attendant-left {
  position: absolute; bottom: 20%; left: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a6258 0%, #4a4238 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: scaleX(-1);
  animation: que-att-left 10s ease-in-out infinite;
}
.scn-queens-death-confession .attendant-right {
  position: absolute; bottom: 20%; right: 15%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a6258 0%, #4a4238 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: que-att-right 10s ease-in-out infinite alternate;
}
.scn-queens-death-confession .candle {
  position: absolute; bottom: 50%; left: 46%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%);
  border-radius: 10%;
  box-shadow: 0 0 10px 4px rgba(200,176,144,0.5);
  animation: que-candle 4s ease-in-out infinite alternate;
}
.scn-queens-death-confession .tear {
  position: absolute; bottom: 30%; left: 32%; width: 4px; height: 4px;
  background: radial-gradient(circle, #b8b0a8 0%, #908880 100%);
  border-radius: 50%;
  animation: que-tear 6s ease-in-out infinite;
}
@keyframes que-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes que-queen { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-12deg) translateY(-2px); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes que-att-left { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(3px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes que-att-right { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes que-candle { 0% { transform: scaleY(1); box-shadow: 0 0 8px 2px #c8b090; } 50% { transform: scaleY(1.08); box-shadow: 0 0 16px 6px #e8d8b0; } 100% { transform: scaleY(0.95); box-shadow: 0 0 10px 3px #b09880; } }
@keyframes que-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 25% { transform: translateY(4px) scaleY(1.2); opacity:0.9; } 50% { transform: translateY(0) scaleY(1); opacity:0.5; } 75% { transform: translateY(-2px) scaleY(0.8); opacity:0.8; } 100% { transform: translateY(0) scaleY(1); opacity:0.6; } }

.scn-imogen-reveals-head {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 40%, #1a0e12 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-imogen-reveals-head .wall { 
  position: absolute; inset: 0 0 45% 0; 
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); 
  animation: irh-wall 12s ease-in-out infinite alternate; 
}
.scn-imogen-reveals-head .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; 
  background: linear-gradient(180deg, #2a1a18 0%, #0e0a0a 100%); 
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; 
}
.scn-imogen-reveals-head .table { 
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 8%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); 
  border-radius: 4px; 
  box-shadow: 0 6px 12px rgba(0,0,0,.6); 
  animation: irh-table 6s ease-in-out infinite; 
}
.scn-imogen-reveals-head .head { 
  position: absolute; bottom: 44%; left: 45%; width: 10%; height: 12%; 
  background: radial-gradient(circle at 50% 40%, #5a3a2a 0%, #2a1a12 80%); 
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; 
  box-shadow: 0 0 20px 10px rgba(90,58,42,.3); 
  animation: irh-head 8s ease-in-out infinite alternate; 
}
.scn-imogen-reveals-head .figure-imogen { 
  position: absolute; bottom: 20%; left: 28%; width: 12%; height: 40%; 
  background: linear-gradient(180deg, #3a2a3e 0%, #1a101a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: irh-figure 5s ease-in-out infinite; 
}
.scn-imogen-reveals-head .torch { 
  position: absolute; bottom: 52%; left: 58%; width: 4%; height: 10%; 
  background: radial-gradient(circle at 50% 0%, #ffb040 0%, #803020 70%); 
  box-shadow: 0 0 30px 15px rgba(255,176,64,.4), 0 0 60px 30px rgba(128,48,32,.2); 
  border-radius: 10% 10% 20% 20%; 
  animation: irh-torch 2s ease-in-out infinite alternate; 
}
.scn-imogen-reveals-head .shadow-imogen { 
  position: absolute; bottom: 18%; left: 26%; width: 16%; height: 6%; 
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); 
  animation: irh-shad 5s ease-in-out infinite; 
}
.scn-imogen-reveals-head .shadow-head { 
  position: absolute; bottom: 40%; left: 44%; width: 14%; height: 8%; 
  background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(6px); 
  animation: irh-shad-head 8s ease-in-out infinite alternate; 
}
@keyframes irh-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes irh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes irh-head { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes irh-figure { 0%,100% { transform: rotate(0) } 25% { transform: rotate(-3deg) translateX(-2px) } 75% { transform: rotate(3deg) translateX(2px) } }
@keyframes irh-torch { 0% { opacity: .6; box-shadow: 0 0 20px 10px rgba(255,176,64,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,176,64,.6); } 100% { opacity: .7; box-shadow: 0 0 25px 12px rgba(255,176,64,.35); } }
@keyframes irh-shad { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes irh-shad-head { 0% { transform: translateX(-3px) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }

/* one block per scene id. Append to style.css. */
.scn-belarius-intervenes {
  background: linear-gradient(180deg, #0b0c1e 0%, #1a1c3b 50%, #2c2e4a 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.35) 0%, transparent 70%);
}
.scn-belarius-intervenes .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, rgba(20,20,50,0.8) 0%, rgba(10,10,30,0.4) 100%);
  animation: bi-sky-breath 12s ease-in-out infinite alternate;
}
.scn-belarius-intervenes .cloud-a {
  position:absolute; top:12%; left:18%; width:80px; height:18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius:50%; filter: blur(7px);
  animation: bi-cloud-drift 38s linear infinite;
}
.scn-belarius-intervenes .cloud-b {
  position:absolute; top:22%; right:10%; width:65px; height:14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius:50%; filter: blur(5px);
  animation: bi-cloud-drift 52s linear infinite reverse;
}
.scn-belarius-intervenes .trees {
  position:absolute; bottom:25%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1c201e 0%, #0a0b0a 100%);
  border-radius: 40% 60% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 18px rgba(0,0,0,.4);
  animation: bi-trees-sway 18s ease-in-out infinite;
}
.scn-belarius-intervenes .ground {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #141814 0%, #0a0b0a 100%);
  animation: bi-ground-pulse 15s ease-in-out infinite alternate;
}
.scn-belarius-intervenes .figure-villain {
  position:absolute; bottom:22%; left:40%; width:6%; height:12%;
  background: linear-gradient(180deg, #3c1e2b 0%, #1a0c12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bi-villain-recoil 6s ease-in-out infinite;
}
.scn-belarius-intervenes .figure-victim {
  position:absolute; bottom:18%; left:55%; width:5%; height:10%;
  background: linear-gradient(180deg, #c6b9a8 0%, #8b7b6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bi-victim-cower 5s ease-in-out infinite;
}
.scn-belarius-intervenes .figure-belarius {
  position:absolute; bottom:24%; left:30%; width:7%; height:14%;
  background: linear-gradient(180deg, #3a4a5e 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bi-belarius-lunge 8s ease-in-out infinite;
}
.scn-belarius-intervenes .blade-light {
  position:absolute; bottom:31%; left:34%; width:2%; height:6%;
  background: radial-gradient(circle, #d0e0f0 0%, transparent 80%);
  border-radius: 40% 10% 10% 40%; transform: rotate(25deg);
  animation: bi-blade-motion 8s ease-in-out infinite, bi-blade-flicker 3s ease-in-out infinite;
}
@keyframes bi-sky-breath    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bi-cloud-drift    { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes bi-trees-sway     { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes bi-ground-pulse   { 0% { opacity:.9; background-position:0% 0% } 100% { opacity:1; background-position:0% 2% } }
@keyframes bi-villain-recoil {
  0%   { transform: translate(-2px, 0) rotate(4deg) scaleY(1.05); }
  25%  { transform: translate(12px, -3px) rotate(-6deg) scaleY(0.95); }
  50%  { transform: translate(5px, 0) rotate(-2deg) scaleY(1); }
  75%  { transform: translate(-1px, 0) rotate(2deg) scaleY(1.02); }
  100% { transform: translate(-2px, 0) rotate(4deg) scaleY(1.05); }
}
@keyframes bi-victim-cower  {
  0%   { transform: translateY(0) scale(1); }
  25%  { transform: translateY(-2px) scale(0.93); }
  50%  { transform: translateY(0) scale(1); }
  75%  { transform: translateY(-2px) scale(0.93); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes bi-belarius-lunge {
  0%   { transform: translate(-45px, 0) rotate(-12deg); opacity:0; }
  28%  { transform: translate(8px, -6px) rotate(2deg); opacity:1; }
  45%  { transform: translate(18px, -2px) rotate(6deg); }
  100% { transform: translate(-45px, 0) rotate(-12deg); opacity:0; }
}
@keyframes bi-blade-motion {
  0%   { transform: translate(-40px, 0) rotate(25deg); opacity:0; }
  28%  { transform: translate(12px, -8px) rotate(15deg); opacity:1; }
  45%  { transform: translate(22px, -3px) rotate(5deg); opacity:0.8; }
  100% { transform: translate(-40px, 0) rotate(25deg); opacity:0; }
}
@keyframes bi-blade-flicker {
  0%   { box-shadow: 0 0 8px 2px rgba(200,220,255,.6), 0 0 16px 4px rgba(200,220,255,.3); opacity:.8; }
  50%  { box-shadow: 0 0 14px 5px rgba(230,240,255,.9), 0 0 28px 10px rgba(230,240,255,.5); opacity:1; }
  100% { box-shadow: 0 0 8px 2px rgba(200,220,255,.6), 0 0 16px 4px rgba(200,220,255,.3); opacity:.8; }
}

.scn-belarius-reveals-sons { background: linear-gradient(180deg, #0a0a2a 0%, #151535 40%, #2a1f3a 70%, #3a2a4a 100%), radial-gradient(ellipse at 50% 70%, rgba(200,160,80,0.25) 0%, transparent 70%); }
.scn-belarius-reveals-sons .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a1a3e 0%, rgba(30,30,60,0) 100%); animation: brs-sky 14s ease-in-out infinite alternate; }
.scn-belarius-reveals-sons .mountains { position:absolute; bottom:30%; left:-5%; right:-5%; height:45%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); border-radius: 60% 80% 0 0 / 50% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: brs-mountains 20s ease-in-out infinite; }
.scn-belarius-reveals-sons .cave-mouth { position:absolute; bottom:10%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, #0a0a0a 90%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; box-shadow: inset 0 0 40px #000; }
.scn-belarius-reveals-sons .glow { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(255,180,60,0.7) 0%, rgba(255,120,30,0.2) 50%, transparent 80%); border-radius:50%; filter: blur(8px); animation: brs-glow 6s ease-in-out infinite alternate; }
.scn-belarius-reveals-sons .figure-belarius { position:absolute; bottom:10%; left:50%; width:10px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brs-belarius 8s ease-in-out infinite; }
.scn-belarius-reveals-sons .figure-son1 { position:absolute; bottom:9%; left:44%; width:8px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brs-sway 5s ease-in-out infinite 0.2s; }
.scn-belarius-reveals-sons .figure-son2 { position:absolute; bottom:9%; left:54%; width:8px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brs-sway 5s ease-in-out infinite 0.6s; }
.scn-belarius-reveals-sons .mist { position:absolute; bottom:20%; height:40px; background: linear-gradient(180deg, rgba(200,200,255,0.1) 0%, rgba(200,200,255,0.3) 100%); border-radius:50%; filter: blur(10px); }
.scn-belarius-reveals-sons .mist-a { left:10%; width:80px; animation: brs-mist-a 30s linear infinite; }
.scn-belarius-reveals-sons .mist-b { left:70%; width:60px; animation: brs-mist-b 25s linear infinite reverse; }
@keyframes brs-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes brs-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes brs-glow { 0% { opacity:0.5; transform: translateX(-50%) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.6; transform: translateX(-50%) scale(1); } }
@keyframes brs-belarius { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes brs-sway { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes brs-mist-a { 0% { transform: translateX(0); opacity:0.2; } 50% { transform: translateX(30px); opacity:0.5; } 100% { transform: translateX(60px); opacity:0.2; } }
@keyframes brs-mist-b { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(-40px); opacity:0.6; } 100% { transform: translateX(-80px); opacity:0.2; } }

.scn-belarius-explains { background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 70%, #0a0a18 100%), radial-gradient(ellipse at 50% 90%, #4a3a4a 0%, transparent 70%); }
.scn-belarius-explains .bg-deep { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #20142a 0%, #0a0816 100%); animation: be-bg-vignette 15s ease-in-out infinite alternate; }
.scn-belarius-explains .arch-frame { position: absolute; left: 25%; right: 25%; top: 15%; bottom: 35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4); animation: be-arch-breathe 20s ease-in-out infinite alternate; }
.scn-belarius-explains .figure { position: absolute; bottom: 22%; left: 50%; width: 18px; height: 42px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: be-figure-sway 6s ease-in-out infinite alternate; }
.scn-belarius-explains .table { position: absolute; bottom: 30%; left: 42%; width: 36px; height: 14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-belarius-explains .candle { position: absolute; bottom: 32%; left: 43%; width: 6px; height: 12px; background: linear-gradient(180deg, #f0c060 0%, #e0a020 40%, #804020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 -2px 4px rgba(240,192,96,0.6); animation: be-flicker 3s ease-in-out infinite alternate; }
.scn-belarius-explains .candle-glow { position: absolute; top: 55%; left: 38%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(212,160,64,0.8) 0%, rgba(212,160,64,0.3) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: be-glow-pulse 5s ease-in-out infinite alternate; }
.scn-belarius-explains .dust-mote { position: absolute; width: 4px; height: 4px; background: rgba(220,200,180,0.6); border-radius: 50%; filter: blur(2px); }
.scn-belarius-explains .dust-a { top: 20%; left: 10%; animation: be-dust-a 30s linear infinite; }
.scn-belarius-explains .dust-b { top: 40%; left: 60%; animation: be-dust-b 38s linear infinite; animation-delay: 10s; }
@keyframes be-bg-vignette { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes be-arch-breathe { 0% { transform: scale(1); } 50% { transform: scale(0.97) translateY(-2px); } 100% { transform: scale(1.03) translateY(2px); } }
@keyframes be-figure-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes be-flicker { 0% { opacity: 0.7; transform: scaleY(0.8); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.85; transform: scaleY(0.9); } }
@keyframes be-glow-pulse { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes be-dust-a { 0% { transform: translate(0, 0); } 25% { transform: translate(30px, -15px); } 50% { transform: translate(60px, -5px); } 75% { transform: translate(30px, 10px); } 100% { transform: translate(0, 0); } }
@keyframes be-dust-b { 0% { transform: translate(0, 0); } 25% { transform: translate(-20px, 10px); } 50% { transform: translate(-50px, 5px); } 75% { transform: translate(-30px, -8px); } 100% { transform: translate(0, 0); } }

.scn-rome-diamond-comparison {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b89a 40%, #b8967a 100%), radial-gradient(ellipse at 60% 20%, rgba(255,220,160,0.5) 0%, transparent 60%);
}
.scn-rome-diamond-comparison .bg-wall {
  position: absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #ebd4b8 0%, #c9a98c 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3);
  animation: rdc-wall 20s ease-in-out infinite alternate;
}
.scn-rome-diamond-comparison .bg-table {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #a67c5b 0%, #7a5a3e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.5);
  animation: rdc-table 15s ease-in-out infinite;
}
.scn-rome-diamond-comparison .hand-left {
  position: absolute; bottom:15%; left:30%; width:80px; height:100px;
  background: linear-gradient(180deg, #d9b28e 0%, #b58a6a 100%);
  border-radius: 30% 40% 20% 30% / 50% 60% 40% 50%;
  transform: rotate(-15deg);
  animation: rdc-hand 6s ease-in-out infinite;
}
.scn-rome-diamond-comparison .ring {
  position: absolute; bottom:30%; left:38%; width:20px; height:14px;
  background: radial-gradient(circle, #ffe066 0%, #d4a030 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #d4a030;
  animation: rdc-ring 3s ease-in-out infinite;
}
.scn-rome-diamond-comparison .ring-glow {
  position: absolute; bottom:30%; left:38%; width:20px; height:14px;
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(212,160,48,0.5), 0 0 60px 20px rgba(212,160,48,0.2);
  animation: rdc-ringglow 3s ease-in-out infinite alternate;
}
.scn-rome-diamond-comparison .frame {
  position: absolute; top:15%; right:20%; width:60px; height:80px;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3f2a 100%);
  border-radius: 6% 6% 8% 8%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4), inset 0 0 0 4px #c4946a;
  animation: rdc-frame 25s ease-in-out infinite alternate;
}
.scn-rome-diamond-comparison .lady-silhouette {
  position: absolute; top:18%; right:22%; width:44px; height:64px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: rdc-lady 8s ease-in-out infinite;
}
.scn-rome-diamond-comparison .candle {
  position: absolute; bottom:25%; left:10%; width:8px; height:30px;
  background: linear-gradient(180deg, #f5e0c0 0%, #c8a070 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rdc-candle 12s ease-in-out infinite;
}
.scn-rome-diamond-comparison .candle-light {
  position: absolute; bottom:45%; left:9%; width:14px; height:14px;
  background: radial-gradient(circle, #ffd680 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rdc-light 2s ease-in-out infinite alternate;
}
@keyframes rdc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rdc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rdc-hand { 0%,100% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(4px) } }
@keyframes rdc-ring { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.08) rotate(10deg) } }
@keyframes rdc-ringglow { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes rdc-frame { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.3) } 50% { box-shadow: 0 8px 20px rgba(0,0,0,0.5) } 100% { box-shadow: 0 4px 10px rgba(0,0,0,0.35) } }
@keyframes rdc-lady { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(-4deg) } }
@keyframes rdc-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes rdc-light { 0% { opacity:0.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.2) } }

/* rome-wager-proposed */
.scn-rome-wager-proposed {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 40%, #9c7858 100%), radial-gradient(ellipse at 30% 50%, rgba(255,200,140,0.4) 0%, transparent 70%);
}
.scn-rome-wager-proposed .bg-curtain {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b08a6a 0%, #806040 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -12px 30px rgba(0,0,0,0.4);
  animation: rwp-curtain 30s ease-in-out infinite alternate;
}
.scn-rome-wager-proposed .bg-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2818 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.6);
  animation: rwp-floor 20s ease-in-out infinite;
}
.scn-rome-wager-proposed .figure-left {
  position: absolute; bottom:22%; left:20%; width:60px; height:120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: rwp-figleft 5s ease-in-out infinite;
}
.scn-rome-wager-proposed .figure-right {
  position: absolute; bottom:22%; right:18%; width:60px; height:120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: rwp-figright 6s ease-in-out infinite;
}
.scn-rome-wager-proposed .ring-offer {
  position: absolute; bottom:35%; left:35%; width:18px; height:12px;
  background: radial-gradient(circle, #ffe066 0%, #c89030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #c89030;
  animation: rwp-ring 3s ease-in-out infinite alternate;
}
.scn-rome-wager-proposed .ring-glow-offer {
  position: absolute; bottom:35%; left:35%; width:18px; height:12px;
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,144,48,0.5), 0 0 80px 25px rgba(200,144,48,0.2);
  animation: rwp-glow 4s ease-in-out infinite alternate;
}
.scn-rome-wager-proposed .table-slab {
  position: absolute; bottom:10%; left:25%; width:50%; height:12%;
  background: linear-gradient(180deg, #6a5038 0%, #3e2818 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rwp-table 12s ease-in-out infinite;
}
@keyframes rwp-curtain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes rwp-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rwp-figleft { 0%,100% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(2deg) translateX(5px) } }
@keyframes rwp-figright { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(-5px) } }
@keyframes rwp-ring { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.15) rotate(15deg) } }
@keyframes rwp-glow { 0% { opacity:0.6; box-shadow: 0 0 30px 6px rgba(200,144,48,0.4) } 100% { opacity:1; box-shadow: 0 0 50px 15px rgba(200,144,48,0.7) } }
@keyframes rwp-table { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } }

/* rome-defiance-wager */
.scn-rome-defiance-wager {
  background: linear-gradient(180deg, #e8c8a0 0%, #c09068 40%, #906848 100%), radial-gradient(ellipse at 50% 30%, rgba(255,200,120,0.3) 0%, transparent 60%);
}
.scn-rome-defiance-wager .bg-panel {
  position: absolute; inset:0 0 20% 0;
  background: repeating-linear-gradient(90deg, #a07858 0px, #a07858 4px, #886040 4px, #886040 8px);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.4);
  animation: rdw-panel 40s linear infinite;
}
.scn-rome-defiance-wager .bg-floor-dark {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: rdw-floor 18s ease-in-out infinite;
}
.scn-rome-defiance-wager .figure-defiant {
  position: absolute; bottom:15%; left:40%; width:70px; height:140px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scaleX(-1);
  animation: rdw-fig 4s ease-in-out infinite alternate;
}
.scn-rome-defiance-wager .arm-extended {
  position: absolute; bottom:40%; left:20%; width:60px; height:14px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 50% 50% 10%;
  transform: rotate(20deg);
  transform-origin: right center;
  animation: rdw-arm 3s ease-in-out infinite;
}
.scn-rome-defiance-wager .ring-defiant {
  position: absolute; bottom:36%; left:14%; width:14px; height:10px;
  background: radial-gradient(circle, #ffe066 0%, #c89030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #c89030;
  animation: rdw-ring 4s ease-in-out infinite alternate;
}
.scn-rome-defiance-wager .ring-glow-defiant {
  position: absolute; bottom:36%; left:14%; width:14px; height:10px;
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,144,48,0.5), 0 0 60px 20px rgba(200,144,48,0.2);
  animation: rdw-glow 3s ease-in-out infinite alternate;
}
.scn-rome-defiance-wager .shadow-defiant {
  position: absolute; bottom:2%; left:30%; width:120px; height:40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rdw-shadow 5s ease-in-out infinite;
}
@keyframes rdw-panel { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes rdw-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rdw-fig { 0% { transform: rotate(-5deg) scaleX(-1) translateX(0) } 100% { transform: rotate(-3deg) scaleX(-1) translateX(8px) } }
@keyframes rdw-arm { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } }
@keyframes rdw-ring { 0% { transform: scale(1) rotate(0) } 100% { transform: scale(1.12) rotate(20deg) } }
@keyframes rdw-glow { 0% { opacity:0.5 } 100% { opacity:1 } }
@keyframes rdw-shadow { 0%,100% { transform: scaleX(1) opacity(0.5) } 50% { transform: scaleX(1.2) opacity(0.7) } }

/* rome-moiety-wager */
.scn-rome-moiety-wager {
  background: linear-gradient(180deg, #e2d0b8 0%, #c0a888 40%, #9c7c60 100%), radial-gradient(ellipse at 70% 40%, rgba(255,220,160,0.3) 0%, transparent 50%);
}
.scn-rome-moiety-wager .bg-window {
  position: absolute; top:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 -12px 30px rgba(0,0,0,0.3);
  animation: rmw-window 25s ease-in-out infinite alternate;
}
.scn-rome-moiety-wager .bg-wall-side {
  position: absolute; top:0; right:0; width:30%; height:40%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  box-shadow: -8px 0 20px rgba(0,0,0,0.3);
  animation: rmw-wallside 30s ease-in-out infinite;
}
.scn-rome-moiety-wager .table-top {
  position: absolute; bottom:15%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3420 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 2px 6px rgba(255,255,255,0.1);
  animation: rmw-table 14s ease-in-out infinite;
}
.scn-rome-moiety-wager .ring-moiety {
  position: absolute; bottom:25%; left:45%; width:16px; height:11px;
  background: radial-gradient(circle, #ffe066 0%, #c89030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #c89030;
  animation: rmw-ring 3s ease-in-out infinite alternate;
}
.scn-rome-moiety-wager .coin {
  position: absolute; bottom:22%; width:12px; height:12px;
  background: radial-gradient(circle, #f5e0b0 0%, #d4a840 80%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4), inset 0 0 2px #fff3d0;
}
.scn-rome-moiety-wager .coin-1 { left:30%; animation: rmw-coin1 7s ease-in-out infinite; }
.scn-rome-moiety-wager .coin-2 { left:33%; top:1px; animation: rmw-coin2 8s ease-in-out infinite 0.5s; }
.scn-rome-moiety-wager .coin-3 { left:36%; top:-1px; animation: rmw-coin3 6s ease-in-out infinite 1s; }
.scn-rome-moiety-wager .hand-rest {
  position: absolute; bottom:16%; left:55%; width:50px; height:70px;
  background: linear-gradient(180deg, #d9b28e 0%, #b58a6a 100%);
  border-radius: 30% 40% 20% 30% / 50% 60% 40% 50%;
  transform: rotate(5deg);
  animation: rmw-hand 8s ease-in-out infinite;
}
@keyframes rmw-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes rmw-wallside { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes rmw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes rmw-ring { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.1) rotate(15deg) } }
@keyframes rmw-coin1 { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(10deg) } }
@keyframes rmw-coin2 { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-8deg) } }
@keyframes rmw-coin3 { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(12deg) } }
@keyframes rmw-hand { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(4px) } }

.scn-brothers-will-join-army {
  background:
    linear-gradient(180deg, #1c2842 0%, #2a3a4e 45%, #1a1a2e 100%),
    radial-gradient(ellipse at 65% 35%, #4a4a6e 0%, transparent 65%);
}
.scn-brothers-will-join-army .sky {
  position:absolute;
  inset:0 0 60% 0;
  background:linear-gradient(180deg, #2a3a4e 0%, #101828 100%);
  animation: bwja-sky 15s ease-in-out infinite alternate;
}
.scn-brothers-will-join-army .cloud {
  position:absolute;
  filter:blur(5px);
  background:radial-gradient(circle at 30% 50%, rgba(255,255,255,.4) 0%, transparent 70%),
             radial-gradient(circle at 70% 50%, rgba(255,255,255,.35) 40%, transparent 100%);
}
.scn-brothers-will-join-army .cloud-a {
  top:14%;
  left:12%;
  width:90px;
  height:22px;
  animation: bwja-cloud-a 48s linear infinite;
}
.scn-brothers-will-join-army .cloud-b {
  top:20%;
  right:10%;
  width:70px;
  height:18px;
  animation: bwja-cloud-b 60s linear infinite reverse;
}
.scn-brothers-will-join-army .platform {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  height:25%;
  background:linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-top:2px solid #3a3a4e;
  box-shadow:inset 0 2px 8px rgba(0,0,0,.5);
  animation: bwja-platform-glow 8s ease-in-out infinite;
}
.scn-brothers-will-join-army .train {
  position:absolute;
  bottom:5%;
  left:6%;
  width:120px;
  height:72px;
  background:linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%);
  border-radius:4px 4px 10px 2px;
  box-shadow:inset 0 0 12px rgba(0,0,0,.55), 0 4px 14px rgba(0,0,0,.6);
  animation: bwja-train 6s ease-in-out infinite alternate;
}
.scn-brothers-will-join-army .smoke {
  position:absolute;
  bottom:18%;
  left:2%;
  width:45px;
  height:45px;
  background:radial-gradient(ellipse at 50% 100%, rgba(190,200,220,.55) 0%, rgba(140,150,170,.25) 50%, transparent 100%);
  filter:blur(9px);
  animation: bwja-smoke 4s ease-in-out infinite alternate;
}
.scn-brothers-will-join-army .figure {
  position:absolute;
  width:9px;
  height:18px;
  background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: bwja-walk 4.5s ease-in-out infinite alternate;
}
.scn-brothers-will-join-army .figure-left {
  bottom:22%;
  left:75%;
  animation-delay:0s;
}
.scn-brothers-will-join-army .figure-right {
  bottom:23%;
  left:82%;
  animation-delay:0.6s;
}
.scn-brothers-will-join-army .lantern {
  position:absolute;
  bottom:24%;
  left:32%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ffb840;
  box-shadow:0 0 10px 3px rgba(255,184,64,.7), 0 0 22px 7px rgba(255,184,64,.35);
  animation: bwja-lantern 4s ease-in-out infinite alternate;
}

@keyframes bwja-sky {
  0%   { opacity:.65; }
  50%  { opacity:1; }
  100% { opacity:.8; }
}
@keyframes bwja-cloud-a {
  0%   { transform:translateX(-20px); }
  100% { transform:translateX(130vw); }
}
@keyframes bwja-cloud-b {
  0%   { transform:translateX(0); }
  100% { transform:translateX(-110vw); }
}
@keyframes bwja-platform-glow {
  0%   { box-shadow:inset 0 2px 6px rgba(0,0,0,.4); }
  50%  { box-shadow:inset 0 2px 14px rgba(255,200,80,.18), 0 0 12px rgba(255,200,80,.1); }
  100% { box-shadow:inset 0 2px 6px rgba(0,0,0,.4); }
}
@keyframes bwja-train {
  0%   { transform:translateX(0) rotate(0deg); }
  50%  { transform:translateX(3px) rotate(.6deg); }
  100% { transform:translateX(-2px) rotate(-.4deg); }
}
@keyframes bwja-smoke {
  0%   { transform:translateY(0) scale(1); opacity:.75; }
  50%  { transform:translateY(-28px) scale(1.25); opacity:.4; }
  100% { transform:translateY(0) scale(1); opacity:.75; }
}
@keyframes bwja-walk {
  0%   { transform:translateX(0) translateY(0) rotate(0); }
  25%  { transform:translateX(-4px) translateY(-1px) rotate(2deg); }
  50%  { transform:translateX(-8px) translateY(0) rotate(0); }
  75%  { transform:translateX(-12px) translateY(-1px) rotate(-2deg); }
  100% { transform:translateX(0) translateY(0) rotate(0); }
}
@keyframes bwja-lantern {
  0%   { box-shadow:0 0 8px 2px rgba(255,184,64,.55); opacity:.85; }
  50%  { box-shadow:0 0 20px 7px rgba(255,184,64,.9), 0 0 34px 12px rgba(255,184,64,.28); opacity:1; }
  100% { box-shadow:0 0 10px 3px rgba(255,184,64,.65); opacity:.9; }
}

.scn-belarius-remembers { background: linear-gradient(180deg, #0b1320 0%, #1c2a3a 50%, #2d4459 100%), radial-gradient(ellipse at 50% 80%, #2d4459 0%, transparent 70%); }
.scn-belarius-remembers .sky { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #0d1f2d 0%, #1b2d40 100%); animation: br-sky 12s ease-in-out infinite alternate; }
.scn-belarius-remembers .hills { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2e3b 0%, #0f1a22 100%); border-radius: 50% 60% 0 0 / 80% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: br-hills 18s ease-in-out infinite alternate; }
.scn-belarius-remembers .mist { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(180,200,220,0.2) 0%, transparent 100%); filter: blur(8px); animation: br-mist 12s ease-in-out infinite alternate; }
.scn-belarius-remembers .figure { position:absolute; bottom:23%; left:50%; transform:translateX(-50%); width:16px; height:44px; background: linear-gradient(180deg, #2a3a4a 0%, #0f1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.8); animation: br-figure-sway 4s ease-in-out infinite; }
.scn-belarius-remembers .memory-orb { position:absolute; top:35%; left:50%; transform:translate(-50%, -50%); width:30px; height:30px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #ffd480 0%, #b07a40 60%, #553018 100%); box-shadow: 0 0 30px 14px rgba(255,200,100,0.6), 0 0 60px 28px rgba(255,180,80,0.3); animation: br-orb-glow 3s ease-in-out infinite alternate; }
.scn-belarius-remembers .cloud-a { position:absolute; top:12%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(200,210,230,0.4) 0%, rgba(200,210,230,0.1) 100%); border-radius:50%; filter: blur(6px); animation: br-cloud-drift 24s linear infinite; }
.scn-belarius-remembers .cloud-b { position:absolute; top:20%; right:5%; width:60px; height:16px; background: linear-gradient(180deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.05) 100%); border-radius:50%; filter: blur(5px); animation: br-cloud-drift 30s linear infinite reverse; animation-delay: -15s; }
.scn-belarius-remembers .stars { position:absolute; top:2%; left:2%; right:2%; height:30%; background: transparent; box-shadow: 20px 10px 0 0 rgba(255,255,255,0.7), 120px 5px 0 0 rgba(255,255,255,0.5), 200px 20px 0 0 rgba(255,255,255,0.6), 300px 8px 0 0 rgba(255,255,255,0.4), 50px 60px 0 0 rgba(255,255,255,0.6), 180px 50px 0 0 rgba(255,255,255,0.5), 250px 70px 0 0 rgba(255,255,255,0.4), 350px 40px 0 0 rgba(255,255,255,0.3); animation: br-stars 4s ease-in-out infinite alternate; }
@keyframes br-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes br-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes br-figure-sway { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes br-orb-glow { 0% { box-shadow: 0 0 20px 8px rgba(255,200,100,0.5), 0 0 40px 16px rgba(255,180,80,0.2); opacity:0.8; } 50% { box-shadow: 0 0 36px 16px rgba(255,220,120,0.7), 0 0 72px 32px rgba(255,200,100,0.4); opacity:1; } 100% { box-shadow: 0 0 28px 10px rgba(255,200,100,0.6), 0 0 56px 20px rgba(255,180,80,0.3); opacity:0.9; } }
@keyframes br-mist { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.5; transform: translateY(-8px); } 100% { opacity:0.3; transform: translateY(0); } }
@keyframes br-cloud-drift { 0% { transform: translateX(-20%); } 100% { transform: translateX(120vw); } }
@keyframes br-stars { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-brothers-resolve { background: linear-gradient(180deg, #1a1a2e 0%, #3a2a4e 25%, #a05040 70%, #e0b070 100%), radial-gradient(ellipse at 50% 80%, #f0c860 0%, transparent 60%); }

.scn-brothers-resolve .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: br-sky 12s ease-in-out infinite alternate; }

.scn-brothers-resolve .sun { position:absolute; top:55%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); background: radial-gradient(circle, #f0d060 0%, #d08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(240,180,96,.6), 0 0 80px 24px rgba(220,140,60,.3); animation: br-sun-pulse 4s ease-in-out infinite alternate; }

.scn-brothers-resolve .cloud-a { position:absolute; top:12%; left:10%; width:100px; height:22px; background: rgba(255,255,255,.3); border-radius:50%; filter:blur(8px); animation: br-cloud-a 38s linear infinite; }

.scn-brothers-resolve .cloud-b { position:absolute; top:22%; right:5%; width:80px; height:16px; background: rgba(255,255,255,.25); border-radius:50%; filter:blur(6px); animation: br-cloud-b 30s linear infinite; animation-delay: -15s; }

.scn-brothers-resolve .hills { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a10 100%); border-radius: 60% 70% 0 0 / 40% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: br-hills-sway 16s ease-in-out infinite alternate; }

.scn-brothers-resolve .figure { position:absolute; bottom:18%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-brothers-resolve .figure-left { left:40%; animation: br-figure-sway 6s ease-in-out infinite alternate; }
.scn-brothers-resolve .figure-right { left:52%; height:32px; width:16px; animation: br-figure-sway 6s ease-in-out infinite alternate; animation-delay: -3s; }

@keyframes br-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes br-sun-pulse { 0% { box-shadow: 0 0 40px 12px rgba(240,180,96,.6), 0 0 80px 24px rgba(220,140,60,.3); transform:translate(-50%,-50%) scale(1); } 50% { box-shadow: 0 0 56px 18px rgba(250,200,100,.8), 0 0 100px 36px rgba(240,160,70,.45); transform:translate(-50%,-50%) scale(1.06); } 100% { box-shadow: 0 0 44px 14px rgba(240,180,96,.65), 0 0 84px 28px rgba(220,140,60,.35); transform:translate(-50%,-50%) scale(1); } }
@keyframes br-cloud-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }
@keyframes br-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes br-hills-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes br-figure-sway { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1.2deg); } 100% { transform: translateX(0) rotate(-0.8deg); } }

.scn-arviragus-ashamed { background: linear-gradient(180deg, #fde8a4 0%, #9bc7e8 45%, #5b7e4a 100%), radial-gradient(ellipse at 50% 15%, #fffdd0 0%, transparent 50%); }
.scn-arviragus-ashamed .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,0.2) 0%, transparent 50%, rgba(100,140,80,0.15) 100%); animation: aa-sky 16s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .sun { position:absolute; top:15%; left:50%; width:80px; height:80px; transform:translate(-50%, -50%); background: radial-gradient(circle, #fff8c0 0%, #ffe07a 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,220,100,0.6), 0 0 120px 40px rgba(255,200,80,0.3); animation: aa-sun 6s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .rays { position:absolute; top:10%; left:50%; width:3px; height:70%; transform:translateX(-50%); background: linear-gradient(to bottom, rgba(255,255,220,0.7) 0%, transparent 100%); opacity:0.4; animation: aa-rays 12s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .hills-back { position:absolute; bottom:35%; left:-5%; width:110%; height:25%; background: linear-gradient(180deg, #6b8e5a 0%, #4a6a3a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.2); animation: aa-hills 18s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .hills-mid { position:absolute; bottom:25%; left:0; right:0; height:18%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; box-shadow: inset 0 4px 14px rgba(0,0,0,0.3); animation: aa-hills-mid 14s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); animation: aa-ground 12s ease-in-out infinite alternate; }
.scn-arviragus-ashamed .figure { position:absolute; bottom:20%; left:48%; width:12px; height:40px; background: radial-gradient(circle at 50% 10%, #2a1e36 0%, #2a1e36 6px, transparent 6px), linear-gradient(180deg, #1e1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: aa-figure 4s ease-in-out infinite; }
.scn-arviragus-ashamed .cloud-a { position:absolute; top:25%; left:20%; width:100px; height:24px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter:blur(8px); animation: aa-cloud-a 24s linear infinite; }
.scn-arviragus-ashamed .cloud-b { position:absolute; top:30%; right:15%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter:blur(6px); animation: aa-cloud-b 28s linear infinite reverse; }
@keyframes aa-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes aa-sun { 0% { transform: translate(-50%, -50%) scale(1); opacity:1; } 100% { transform: translate(-50%, -50%) scale(1.02); opacity:0.9; } }
@keyframes aa-rays { 0% { opacity:0.3; width:3px; } 50% { opacity:0.6; width:5px; } 100% { opacity:0.4; width:3px; } }
@keyframes aa-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes aa-hills-mid { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes aa-ground { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes aa-figure { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes aa-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }
@keyframes aa-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-palace-imogen-solitude {
  background: linear-gradient(135deg, #2a2a1a 0%, #3a3a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 30% 20%, #8a7a4a 0%, transparent 60%);
}
.scn-palace-imogen-solitude .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  animation: pim-bg 12s ease-in-out infinite alternate;
}
.scn-palace-imogen-solitude .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-palace-imogen-solitude .window {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at 50% 50%, #f0e0b0 0%, #d0c090 70%, transparent 100%);
  border: 6px solid #5a4a3a; border-radius: 4px;
  box-shadow: 0 0 40px 8px #d0c090, 0 0 80px 20px rgba(208,192,144,0.3);
  animation: pim-glow 4s ease-in-out infinite alternate;
}
.scn-palace-imogen-solitude .curtain-a,
.scn-palace-imogen-solitude .curtain-b {
  position: absolute; top: 10%; width: 30px; height: 130px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; animation: pim-curtain 6s ease-in-out infinite;
}
.scn-palace-imogen-solitude .curtain-a { left: 36%; }
.scn-palace-imogen-solitude .curtain-b { right: 36%; animation-delay: -3s; }
.scn-palace-imogen-solitude .figure {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pim-figure 8s ease-in-out infinite;
}
.scn-palace-imogen-solitude .shadow {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 10px;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: pim-shadow 8s ease-in-out infinite;
}
@keyframes pim-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pim-glow { 0% { box-shadow: 0 0 30px 6px #d0c090; opacity:0.9 } 50% { box-shadow: 0 0 50px 12px #f0e0b0, 0 0 80px 20px rgba(240,224,176,0.3); opacity:1 } 100% { box-shadow: 0 0 35px 8px #d0c090; opacity:0.85 } }
@keyframes pim-curtain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes pim-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-50%) translateY(1px) rotate(-2deg) } }
@keyframes pim-shadow { 0%,100% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-50%) scale(0.9) } 75% { transform: translateX(-50%) scale(1.1) } }

/* palace-roman-arrives */
.scn-palace-roman-arrives {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 60% 20%, #c0b080 0%, transparent 70%);
}
.scn-palace-roman-arrives .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a09070 0%, #6a5a3a 100%);
  animation: par-bg 18s ease-in-out infinite alternate;
}
.scn-palace-roman-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a2a 100%);
  border-radius: 20% 0 0 0;
}
.scn-palace-roman-arrives .door {
  position: absolute; bottom: 20%; left: 70%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 4px 4px / 30% 30% 4px 4px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: par-door 9s ease-in-out infinite;
}
.scn-palace-roman-arrives .messenger {
  position: absolute; bottom: 22%; left: 60%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: par-walk 12s ease-in-out infinite;
}
.scn-palace-roman-arrives .imogen {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: par-receive 7s ease-in-out infinite;
}
.scn-palace-roman-arrives .letter-glow {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e0b0 0%, #c0a060 70%);
  border-radius: 2px; box-shadow: 0 0 20px 6px #c0a060;
  animation: par-letter 3s ease-in-out infinite alternate;
}
.scn-palace-roman-arrives .light-beam {
  position: absolute; top: 10%; right: 25%; width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(240,224,176,0.3) 0%, transparent 100%);
  transform: rotate(15deg); filter: blur(8px);
  animation: par-beam 10s ease-in-out infinite alternate;
}
@keyframes par-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes par-door { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes par-walk { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 50% { transform: translateX(10px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(20px) translateY(0) rotate(-2deg) } }
@keyframes par-receive { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } }
@keyframes par-letter { 0% { transform: translateX(-50%) scale(1); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:0.9 } }
@keyframes par-beam { 0% { opacity:0.3; transform: rotate(15deg) } 100% { opacity:0.6; transform: rotate(20deg) } }

/* palace-letter-read */
.scn-palace-letter-read {
  background: linear-gradient(180deg, #aa8060 0%, #8a6040 40%, #5a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #d0a060 0%, transparent 60%);
}
.scn-palace-letter-read .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #9a7050 0%, #6a4a2a 100%);
  animation: plr-bg 15s ease-in-out infinite alternate;
}
.scn-palace-letter-read .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.4);
}
.scn-palace-letter-read .letter {
  position: absolute; bottom: 34%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d0c090 70%);
  border-radius: 2px; box-shadow: 0 0 30px 8px #d0c090, 0 0 60px 20px rgba(208,192,144,0.4);
  animation: plr-letter 4s ease-in-out infinite alternate;
}
.scn-palace-letter-read .hand {
  position: absolute; bottom: 32%; left: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center; animation: plr-hand 5s ease-in-out infinite;
}
.scn-palace-letter-read .torso {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: plr-torso 6s ease-in-out infinite;
}
.scn-palace-letter-read .candle {
  position: absolute; bottom: 34%; left: 65%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0a060 0%, #8a6a3a 100%);
  border-radius: 2px 2px 4px 4px;
  animation: plr-candle 2s ease-in-out infinite alternate;
}
.scn-palace-letter-read .ambient-glow {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,224,176,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: plr-ambient 8s ease-in-out infinite alternate;
}
@keyframes plr-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes plr-letter { 0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 20px 4px #d0c090 } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); box-shadow: 0 0 40px 10px #f0e0c0 } 100% { transform: translateX(-50%) scale(1) rotate(-1deg); box-shadow: 0 0 25px 6px #d0c090 } }
@keyframes plr-hand { 0%,100% { transform: translate(0,0) rotate(0) } 50% { transform: translate(6px,-2px) rotate(8deg) } }
@keyframes plr-torso { 0%,100% { transform: translate(0,0) rotate(0) } 50% { transform: translate(2px,-1px) rotate(2deg) } }
@keyframes plr-candle { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.8; transform: scaleY(0.95) } }
@keyframes plr-ambient { 0% { opacity:0.3 } 100% { opacity:0.6 } }

/* palace-iachimo-wonder */
.scn-palace-iachimo-wonder {
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 40% 30%, #c0a060 0%, transparent 60%);
}
.scn-palace-iachimo-wonder .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  animation: piw-bg 10s ease-in-out infinite alternate;
}
.scn-palace-iachimo-wonder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1a1a 0%, #3a3a3a 100%);
  border-radius: 20% 0 0 0;
}
.scn-palace-iachimo-wonder .figure-iachimo {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: piw-iachimo 3s ease-in-out infinite;
}
.scn-palace-iachimo-wonder .figure-imogen {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: piw-imogen 4s ease-in-out infinite;
}
.scn-palace-iachimo-wonder .shadow-pair {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px); animation: piw-shadows 3s ease-in-out infinite alternate;
}
.scn-palace-iachimo-wonder .light-beam-tense {
  position: absolute; top: 5%; left: 48%; width: 8px; height: 200px;
  background: linear-gradient(180deg, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0.1) 100%);
  transform: rotate(5deg); filter: blur(6px);
  animation: piw-beam 2s ease-in-out infinite alternate;
}
.scn-palace-iachimo-wonder .column {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 120px;
  background: linear-gradient(90deg, #4a4a4a 0%, #6a6a6a 50%, #4a4a4a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 4px 0 10px rgba(0,0,0,0.5);
}
@keyframes piw-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes piw-iachimo { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(3deg) } 75% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes piw-imogen { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-3deg) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes piw-shadows { 0% { transform: scaleX(1); opacity:0.8 } 100% { transform: scaleX(1.2); opacity:1 } }
@keyframes piw-beam { 0% { transform: rotate(5deg); opacity:0.4 } 100% { transform: rotate(10deg); opacity:0.8 } }

.scn-palace-trunk-accepted {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b8966e 100%),
    radial-gradient(ellipse at 70% 50%, #fff3d6 0%, transparent 60%);
}
.scn-palace-trunk-accepted .pt-backwall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d3c0a8 0%, #b8a288 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: pt-wall 12s ease-in-out infinite alternate;
}
.scn-palace-trunk-accepted .pt-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-palace-trunk-accepted .pt-trunk {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 90px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 2px 6px #8a6a4a;
  animation: pt-trunk 9s ease-in-out infinite;
}
.scn-palace-trunk-accepted .pt-lid-open {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 12px;
  background: #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: pt-lid 7s ease-in-out infinite alternate;
}
.scn-palace-trunk-accepted .pt-attendant {
  position: absolute; bottom: 18%; right: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-attendant 5s ease-in-out infinite;
}
.scn-palace-trunk-accepted .pt-candle {
  position: absolute; bottom: 28%; left: 30%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #f5e0a0 0%, #d4b060 100%);
  border-radius: 4px;
  animation: pt-candleflicker 2s ease-in-out infinite;
}
.scn-palace-trunk-accepted .pt-glow {
  position: absolute; bottom: 38%; left: 30%;
  width: 120px; height: 120px;
  background: radial-gradient(circle, #ffd680 0%, rgba(255,214,128,0.2) 50%, transparent 70%);
  animation: pt-glowpulse 3s ease-in-out infinite alternate;
}
.scn-palace-trunk-accepted .pt-window {
  position: absolute; top: 15%; right: 15%;
  width: 60px; height: 80px;
  background: radial-gradient(circle at 40% 50%, #c8e0ff 0%, #a0c0e8 60%);
  border: 6px solid #6a4a2a;
  border-radius: 10px;
  box-shadow: 0 0 20px 4px rgba(200,224,255,0.3);
}
.scn-palace-trunk-accepted .pt-curtain {
  position: absolute; top: 10%; left: 12%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #b83030 0%, #8a2020 100%);
  border-radius: 0 8px 8px 0;
  filter: blur(1px);
  animation: pt-curtainsway 8s ease-in-out infinite alternate;
}
@keyframes pt-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes pt-trunk { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes pt-lid { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-8deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pt-attendant { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pt-candleflicker { 0% { opacity: 0.9; transform: scaleY(1); } 30% { opacity: 1; transform: scaleY(1.05); } 60% { opacity: 0.85; transform: scaleY(0.95); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes pt-glowpulse { 0% { opacity: 0.6; transform: scale(0.95); } 100% { opacity: 0.9; transform: scale(1.1); } }
@keyframes pt-curtainsway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-palace-letter-sent {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #c0a07a 100%),
    radial-gradient(ellipse at 30% 60%, #ffe8c0 0%, transparent 60%);
}
.scn-palace-letter-sent .pl-desktop {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4), inset 0 2px 4px #a08060;
  animation: pl-desk 10s ease-in-out infinite alternate;
}
.scn-palace-letter-sent .pl-candle {
  position: absolute; bottom: 32%; left: 20%;
  width: 10px; height: 40px;
  background: linear-gradient(180deg, #f5d080 0%, #c8a040 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px #ffd060;
  animation: pl-candleflicker 2.5s ease-in-out infinite;
}
.scn-palace-letter-sent .pl-flame {
  position: absolute; bottom: 55%; left: 20%; margin-left: -4px;
  width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #ff8040 50%, transparent 70%);
  border-radius: 50%;
  animation: pl-flameflicker 1.5s ease-in-out infinite;
}
.scn-palace-letter-sent .pl-quill {
  position: absolute; bottom: 28%; left: 40%;
  width: 6px; height: 60px;
  background: linear-gradient(180deg, #e8d8c0 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: pl-quillwrite 3s ease-in-out infinite;
}
.scn-palace-letter-sent .pl-paper {
  position: absolute; bottom: 18%; left: 35%;
  width: 80px; height: 60px;
  background: #fff8e8;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: pl-papershimmer 5s ease-in-out infinite;
}
.scn-palace-letter-sent .pl-figure {
  position: absolute; bottom: 10%; left: 55%;
  width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 50%;
  transform-origin: bottom center;
  animation: pl-figurewrite 4s ease-in-out infinite;
}
.scn-palace-letter-sent .pl-curtain {
  position: absolute; top: 5%; right: 5%; left: 65%; height: 60%;
  background: linear-gradient(180deg, #c85050 0%, #a03030 100%);
  border-radius: 0 0 30px 30px;
  filter: blur(2px);
  animation: pl-curtainsway 9s ease-in-out infinite alternate;
}
@keyframes pl-desk { 0% { filter: brightness(0.95); } 100% { filter: brightness(1.05); } }
@keyframes pl-candleflicker { 0% { opacity: 0.9; transform: scaleY(1); } 30% { opacity: 1; transform: scaleY(1.06); } 70% { opacity: 0.85; transform: scaleY(0.96); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes pl-flameflicker { 0% { transform: scale(1) translateY(0); } 25% { transform: scale(1.1) translateY(-2px); } 50% { transform: scale(0.95) translateY(1px); } 75% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes pl-quillwrite { 0% { transform: rotate(-10deg) translateY(0); } 20% { transform: rotate(-5deg) translateY(-4px); } 40% { transform: rotate(5deg) translateY(0); } 60% { transform: rotate(0deg) translateY(-3px); } 80% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes pl-papershimmer { 0% { filter: brightness(0.97); } 50% { filter: brightness(1.03); } 100% { filter: brightness(0.97); } }
@keyframes pl-figurewrite { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(1deg); } 40% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(1px) rotate(0deg); } 80% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pl-curtainsway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-palace-gate-cloten-bowls {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e8d0 70%, #d4b060 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4b0 0%, transparent 50%);
}
.scn-palace-gate-cloten-bowls .pgc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab8d4 0%, #b0d8f0 100%);
  animation: pgc-skyglow 15s ease-in-out infinite alternate;
}
.scn-palace-gate-cloten-bowls .pgc-arch {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 200px;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #8a7a5a 60.1%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: pgc-archglow 12s ease-in-out infinite alternate;
}
.scn-palace-gate-cloten-bowls .pgc-cloten {
  position: absolute; bottom: 18%; left: 40%;
  width: 60px; height: 130px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgc-clotenbounce 2s ease-in-out infinite;
}
.scn-palace-gate-cloten-bowls .pgc-lord1 {
  position: absolute; bottom: 18%; right: 30%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgc-lordbow 2s ease-in-out infinite alternate;
}
.scn-palace-gate-cloten-bowls .pgc-lord2 {
  position: absolute; bottom: 18%; right: 10%;
  width: 36px; height: 90px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgc-lordbow2 2.5s ease-in-out infinite alternate;
}
.scn-palace-gate-cloten-bowls .pgc-ball {
  position: absolute; bottom: 10%; left: 48%;
  width: 20px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #e8d8c0 0%, #b89878 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pgc-ballroll 3s ease-in-out infinite;
}
.scn-palace-gate-cloten-bowls .pgc-sunburst {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffe4b0 0%, #ffc860 30%, transparent 60%);
  filter: blur(4px);
  animation: pgc-sunpulse 4s ease-in-out infinite alternate;
}
@keyframes pgc-skyglow { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes pgc-archglow { 0% { box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15); } }
@keyframes pgc-clotenbounce { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pgc-lordbow { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-8px) rotate(-5deg); } }
@keyframes pgc-lordbow2 { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-6px) rotate(5deg); } }
@keyframes pgc-ballroll { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(20px) rotate(180deg); } 60% { transform: translateX(-10px) rotate(360deg); } 100% { transform: translateX(0) rotate(540deg); } }
@keyframes pgc-sunpulse { 0% { opacity: 0.5; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

.scn-palace-gate-curse-oaths {
  background: linear-gradient(180deg, #7ab8d4 0%, #a0c8e0 30%, #e8dcc0 70%, #c8a860 100%),
    radial-gradient(ellipse at 30% 20%, #ffe4b0 0%, transparent 40%);
}
.scn-palace-gate-curse-oaths .pgc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #90c8e0 100%);
  animation: pgc2-sky 14s ease-in-out infinite alternate;
}
.scn-palace-gate-curse-oaths .pgc-arch {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 200px;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #7a6a4a 60.1%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -30px 60px rgba(0,0,0,0.4);
  animation: pgc2-arch 8s ease-in-out infinite alternate;
}
.scn-palace-gate-curse-oaths .pgc-cloten-angry {
  position: absolute; bottom: 18%; left: 38%;
  width: 65px; height: 140px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgc2-clotenrage 2.4s ease-in-out infinite;
}
.scn-palace-gate-curse-oaths .pgc-lord-cower {
  position: absolute; bottom: 18%; right: 35%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgc2-lordcower 2s ease-in-out infinite alternate;
}
.scn-palace-gate-curse-oaths .pgc-dog {
  position: absolute; bottom: 18%; right: 15%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: pgc2-dogcower 2.3s ease-in-out infinite alternate;
}
.scn-palace-gate-curse-oaths .pgc-shadow {
  position: absolute; bottom: 20%; left: 38%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: pgc2-shadow 2.4s ease-in-out infinite;
}
@keyframes pgc2-sky { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes pgc2-arch { 0% { box-shadow: inset 0 -30px 60px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 -15px 30px rgba(0,0,0,0.2); } }
@keyframes pgc2-clotenrage { 0% { transform: translateY(0) rotate(-2deg); } 20% { transform: translateY(-8px) rotate(6deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-6px) rotate(4deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pgc2-lordcower { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-4px) rotate(-5deg) scale(0.95); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes pgc2-dogcower { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-3px) rotate(3deg) scale(0.9); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes pgc2-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* palace-chamber-imogen */
.scn-palace-chamber-imogen {
  background: 
    linear-gradient(180deg, #f5e6c0 0%, #d4b882 50%, #b89a5e 100%),
    radial-gradient(ellipse at 80% 40%, #fff8e0 0%, transparent 60%);
}
.scn-palace-chamber-imogen .window-frame {
  position: absolute; inset: 5% 5% 30% 60%; 
  background: linear-gradient(135deg, #7a6b50 0%, #4a3e2a 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pc1-frame 12s ease-in-out infinite alternate;
}
.scn-palace-chamber-imogen .window-pane {
  position: absolute; inset: 8% 8% 33% 63%;
  background: linear-gradient(180deg, #88b8d8 0%, #e0f0ff 40%, #b0d8f0 100%);
  border-radius: 4px; 
  animation: pc1-pane 8s ease-in-out infinite alternate;
}
.scn-palace-chamber-imogen .curtain-left {
  position: absolute; inset: 4% auto 28% 58%; width: 12%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 60%, #705030 100%);
  border-radius: 0 50% 50% 0 / 0 60% 60% 0;
  animation: pc1-curtain 10s ease-in-out infinite alternate;
}
.scn-palace-chamber-imogen .figure-imogen {
  position: absolute; bottom: 25%; left: 20%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: pc1-figure 6s ease-in-out infinite;
}
.scn-palace-chamber-imogen .desk {
  position: absolute; bottom: 18%; left: 10%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4028 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: pc1-desk 14s ease-in-out infinite alternate;
}
.scn-palace-chamber-imogen .letter {
  position: absolute; bottom: 22%; left: 20%; width: 8%; height: 6%;
  background: #f0dcc0;
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pc1-letter 5s ease-in-out infinite;
}
.scn-palace-chamber-imogen .shadow-shaft {
  position: absolute; inset: 0 0 40% 0; 
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 50%);
  animation: pc1-shadow 20s linear infinite alternate;
}
@keyframes pc1-frame { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.98); } }
@keyframes pc1-pane { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pc1-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc1-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(2deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pc1-desk { 0% { transform: translateY(0); } 100% { transform: translateY(1px); } }
@keyframes pc1-letter { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes pc1-shadow { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

/* palace-linen-happier */
.scn-palace-linen-happier {
  background:
    linear-gradient(135deg, #f0e0c0 0%, #d4b882 50%, #b89a5e 100%),
    radial-gradient(ellipse at 30% 70%, #fff4d8 0%, transparent 50%);
}
.scn-palace-linen-happier .linen-cloth {
  position: absolute; bottom: 40%; left: 40%; width: 18%; height: 24%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 10% 60% 10% 60% / 30% 40% 40% 30%;
  transform-origin: 50% 80%;
  animation: pl2-cloth 3s ease-in-out infinite;
}
.scn-palace-linen-happier .hand-waving {
  position: absolute; bottom: 42%; left: 36%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #d4b082 0%, #a08050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pl2-hand 3s ease-in-out infinite;
}
.scn-palace-linen-happier .curtain-bg {
  position: absolute; inset: 5% 70% 20% 5%;
  background: linear-gradient(180deg, #b89870 0%, #806040 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  animation: pl2-curtain 14s ease-in-out infinite alternate;
}
.scn-palace-linen-happier .window-light {
  position: absolute; inset: 10% 10% 40% 60%;
  background: linear-gradient(180deg, #c0dff0 0%, #e8f4fa 100%);
  border-radius: 6px;
  animation: pl2-light 10s ease-in-out infinite alternate;
}
.scn-palace-linen-happier .breeze-line-1 {
  position: absolute; bottom: 55%; left: 45%; width: 12%; height: 2%;
  background: rgba(200,180,140,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: pl2-breeze1 4s ease-in-out infinite;
}
.scn-palace-linen-happier .breeze-line-2 {
  position: absolute; bottom: 48%; left: 48%; width: 10%; height: 2%;
  background: rgba(200,180,140,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: pl2-breeze2 5s ease-in-out infinite 1s;
}
@keyframes pl2-cloth { 0% { transform: rotate(-10deg) scale(1); } 25% { transform: rotate(5deg) scale(1.05); } 50% { transform: rotate(-5deg) scale(0.95); } 75% { transform: rotate(8deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes pl2-hand { 0% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(10deg) translate(4px,-2px); } 100% { transform: rotate(-15deg) translate(0,0); } }
@keyframes pl2-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(3px); } }
@keyframes pl2-light { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes pl2-breeze1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes pl2-breeze2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-6px) scaleX(0.9); } 100% { transform: translateX(0) scaleX(1); } }

/* palace-eyes-strain */
.scn-palace-eyes-strain {
  background:
    linear-gradient(180deg, #f5e6c0 0%, #d4b882 50%, #b89a5e 100%),
    radial-gradient(ellipse at 20% 30%, #fff0d0 0%, transparent 60%);
}
.scn-palace-eyes-strain .profile-head {
  position: absolute; bottom: 30%; left: 10%; width: 14%; height: 30%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 60% 50% 40% 50% / 70% 60% 30% 40%;
  transform: rotate(5deg);
  animation: pe3-head 8s ease-in-out infinite alternate;
}
.scn-palace-eyes-strain .hand-shading {
  position: absolute; bottom: 44%; left: 18%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 40% / 60% 50% 40% 40%;
  animation: pe3-hand 8s ease-in-out infinite alternate;
}
.scn-palace-eyes-strain .window-arch {
  position: absolute; inset: 2% 2% 20% 50%;
  background: linear-gradient(135deg, #7a6b50 0%, #4a3e2a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pe3-arch 16s ease-in-out infinite alternate;
}
.scn-palace-eyes-strain .distant-dot {
  position: absolute; top: 15%; left: 65%; width: 2%; height: 2%;
  background: #2a1a0a;
  border-radius: 50%;
  animation: pe3-dot 12s ease-in-out infinite;
}
.scn-palace-eyes-strain .sight-line-1 {
  position: absolute; bottom: 48%; left: 22%; width: 0; height: 0;
  border-left: 2px dashed rgba(80,60,40,0.3); 
  transform: rotate(-30deg); transform-origin: left bottom;
  animation: pe3-line1 8s ease-in-out infinite alternate;
}
.scn-palace-eyes-strain .sight-line-2 {
  position: absolute; bottom: 48%; left: 22%; width: 0; height: 0; 
  border-left: 2px dashed rgba(80,60,40,0.2);
  transform: rotate(-35deg); transform-origin: left bottom;
  animation: pe3-line2 8s ease-in-out infinite alternate 0.5s;
}
.scn-palace-eyes-strain .shadow-stripe {
  position: absolute; inset: 0 70% 0 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  animation: pe3-stripe 20s linear infinite alternate;
}
@keyframes pe3-head { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pe3-hand { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes pe3-arch { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.02); } }
@keyframes pe3-dot { 0% { opacity: 0.4; } 50% { opacity: 1; } 100% { opacity: 0.4; } }
@keyframes pe3-line1 { 0% { opacity: 0.3; } 100% { opacity: 0.8; } }
@keyframes pe3-line2 { 0% { opacity: 0.2; } 100% { opacity: 0.6; } }
@keyframes pe3-stripe { 0% { opacity: 0; } 100% { opacity: 1; } }

/* palace-hearing-promise */
.scn-palace-hearing-promise {
  background:
    linear-gradient(180deg, #f8ecd0 0%, #e0c8a0 50%, #c0a880 100%),
    radial-gradient(ellipse at 60% 40%, #fff5e0 0%, transparent 50%);
}
.scn-palace-hearing-promise .figure-seated {
  position: absolute; bottom: 20%; left: 15%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: ph4-seated 12s ease-in-out infinite alternate;
}
.scn-palace-hearing-promise .figure-standing {
  position: absolute; bottom: 15%; right: 20%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom;
  animation: ph4-standing 10s ease-in-out infinite alternate;
}
.scn-palace-hearing-promise .letter-scroll {
  position: absolute; bottom: 40%; left: 30%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #f8ecc0 0%, #dcc8a0 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ph4-letter 6s ease-in-out infinite;
}
.scn-palace-hearing-promise .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #c0a880 0px, #c0a880 8px, #b09870 8px, #b09870 16px);
  border-radius: 0 0 4px 4px;
  animation: ph4-floor 30s linear infinite;
}
.scn-palace-hearing-promise .pillar {
  position: absolute; bottom: 0; left: 40%; width: 6%; height: 80%;
  background: linear-gradient(180deg, #a08860 0%, #806840 50%, #605030 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset -2px 0 8px rgba(0,0,0,0.2);
  animation: ph4-pillar 20s ease-in-out infinite alternate;
}
.scn-palace-hearing-promise .archway {
  position: absolute; inset: 2% 30% 60% 30%;
  background: linear-gradient(180deg, #b09870 0%, #806840 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ph4-arch 18s ease-in-out infinite alternate;
}
@keyframes ph4-seated { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ph4-standing { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ph4-letter { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes ph4-floor { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }
@keyframes ph4-pillar { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.01); } }
@keyframes ph4-arch { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.98); } }

.scn-apparitions-vanish { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a1a3a 70%, #1a0a2a 100%), radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 70%); }
.scn-apparitions-vanish .bg-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 60%, transparent 100%); animation: apv-sky 15s ease-in-out infinite alternate; }
.scn-apparitions-vanish .floor-marble { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 30%, #3a3a4a 50%, #1a1a2a 70%, #2a2a3a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: apv-floor 20s ease-in-out infinite; }
.scn-apparitions-vanish .root-glow { position:absolute; bottom:40%; left:48%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, #b07040 0%, #7a5020 50%, transparent 70%); border-radius: 50% 50% 70% 70% / 20% 20% 40% 40%; transform: rotate(-10deg); box-shadow: 0 0 80px 30px rgba(160,100,40,.4), 0 0 160px 50px rgba(100,60,20,.2); animation: apv-root 8s ease-in-out infinite alternate; }
.scn-apparitions-vanish .ghost { position:absolute; bottom:30%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,.15) 0%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(3px); opacity:0; }
.scn-apparitions-vanish .ghost-a { left:20%; animation: apv-ghost 12s ease-in-out infinite; animation-delay:0s; }
.scn-apparitions-vanish .ghost-b { left:45%; animation: apv-ghost 12s ease-in-out infinite; animation-delay:4s; }
.scn-apparitions-vanish .ghost-c { right:20%; animation: apv-ghost 12s ease-in-out infinite; animation-delay:8s; }
.scn-apparitions-vanish .mist { position:absolute; bottom:20%; left:-10%; right:-10%; height:30%; background: linear-gradient(180deg, rgba(30,30,60,.3) 0%, transparent 100%); filter: blur(40px); animation: apv-mist 20s ease-in-out infinite; }
@keyframes apv-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes apv-floor { 0% { transform: translateY(0) scaleX(1) } 33% { transform: translateY(2px) scaleX(1.02) } 66% { transform: translateY(-1px) scaleX(.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes apv-root { 0% { transform: rotate(-10deg) scale(1); opacity:.8 } 50% { transform: rotate(-8deg) scale(1.05); opacity:1 } 100% { transform: rotate(-12deg) scale(.95); opacity:.7 } }
@keyframes apv-ghost { 0% { opacity:0; transform: translateY(10px) scale(.8) } 20% { opacity:.4; transform: translateY(0) scale(1.1) } 50% { opacity:.6; transform: translateY(-5px) scale(1) } 80% { opacity:.3; transform: translateY(5px) scale(.9) } 100% { opacity:0; transform: translateY(15px) scale(.7) } }
@keyframes apv-mist { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.2) } 100% { transform: translateX(-20px) scaleY(.9) } }

.scn-posthumus-reads-tablet { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a24 70%, #2a1e1a 100%), radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%); }
.scn-posthumus-reads-tablet .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-bottom: 2px solid #3a2a24; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: pst-wall 20s ease-in-out infinite alternate; }
.scn-posthumus-reads-tablet .desk { position:absolute; bottom:18%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 6% 6% 4% 4% / 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: pst-desk 10s ease-in-out infinite; }
.scn-posthumus-reads-tablet .book { position:absolute; bottom:22%; left:38%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 50%, #c8a87a 0%, #8a6a4a 60%, #5a3a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,168,122,.3); animation: pst-book 6s ease-in-out infinite alternate; }
.scn-posthumus-reads-tablet .book::after { content:''; position:absolute; left:10%; top:20%; width:80%; height:60%; background: linear-gradient(180deg, #d4b896 0%, #b89876 100%); border-radius:10%; }
.scn-posthumus-reads-tablet .candle { position:absolute; bottom:30%; right:28%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a078 30%, #806050 100%); border-radius: 40% 40% 10% 10% / 20% 20% 40% 40%; box-shadow: 0 0 10px 2px rgba(255,220,180,.4); animation: pst-candle 8s ease-in-out infinite; }
.scn-posthumus-reads-tablet .flame { position:absolute; bottom:60%; right:28.5%; width:6px; height:14px; background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #ffa050 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,160,80,.3); animation: pst-flame 3s ease-in-out infinite alternate; }
.scn-posthumus-reads-tablet .figure-read { position:absolute; bottom:15%; left:36%; width:30px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 70%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: pst-figure 4s ease-in-out infinite; }
.scn-posthumus-reads-tablet .shadow-shelf { position:absolute; bottom:50%; left:10%; right:10%; height:4%; background: linear-gradient(180deg, transparent 0%, #1a1210 40%, transparent 100%); filter: blur(4px); }
@keyframes pst-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pst-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pst-book { 0% { transform: rotate(0deg) scale(1); opacity:.8 } 100% { transform: rotate(3deg) scale(1.05); opacity:1 } }
@keyframes pst-candle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pst-flame { 0% { transform: scaleY(.9) rotate(-2deg); opacity:.7 } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1 } 100% { transform: scaleY(1) rotate(0); opacity:.8 } }
@keyframes pst-figure { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-6deg) translateY(0) } }

.scn-prophecy-interpretation { background: linear-gradient(180deg, #0e0e12 0%, #1a181e 40%, #2a2428 70%, #1e1a1c 100%), radial-gradient(ellipse at 50% 60%, #2a2a30 0%, transparent 70%); }
.scn-prophecy-interpretation .study-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1a181e 0%, #2a2428 50%, #1a181e 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,.5); animation: prp-bg 20s ease-in-out infinite; }
.scn-prophecy-interpretation .branch-cedar { position:absolute; top:10%; left:-5%; width:50%; height:40%; background: radial-gradient(ellipse at 30% 100%, #3a2a1a 0%, #2a1e12 70%, transparent 100%); border-radius: 60% 0 80% 0; transform: rotate(20deg); box-shadow: 0 20px 30px rgba(0,0,0,.7); animation: prp-branch 12s ease-in-out infinite alternate; }
.scn-prophecy-interpretation .table-wood { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3422 0%, #2a1e12 100%); border-radius: 4% 4% 8% 8% / 30% 30% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.6); }
.scn-prophecy-interpretation .scroll-glow { position:absolute; bottom:28%; left:35%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 50%, #d4c9a0 0%, #a0905a 60%, #706040 100%); border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 0 20px 10px rgba(180,160,90,.3), 0 0 50px 20px rgba(180,160,90,.1); animation: prp-scroll 8s ease-in-out infinite alternate; }
.scn-prophecy-interpretation .hand-pointing { position:absolute; bottom:25%; left:30%; width:12px; height:20px; background: linear-gradient(180deg, #c86040 0%, #a84030 100%); border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%; transform: rotate(30deg); animation: prp-hand 5s ease-in-out infinite; }
.scn-prophecy-interpretation .lantern-light { position:absolute; bottom:35%; right:25%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 40%, #ffd080 0%, #c89050 70%, transparent 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 20px rgba(255,200,100,.3); animation: prp-lantern 6s ease-in-out infinite alternate; }
.scn-prophecy-interpretation .dust-mote { position:absolute; top:25%; left:40%; width:4px; height:4px; background: #e0d8c0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,180,140,.4); animation: prp-dust 15s linear infinite; }
@keyframes prp-bg { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes prp-branch { 0% { transform: rotate(20deg) scale(1) } 100% { transform: rotate(18deg) scale(1.03) } }
@keyframes prp-scroll { 0% { transform: scaleY(1) rotate(0); opacity:.9 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(1) rotate(0); opacity:.8 } }
@keyframes prp-hand { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-2px) } 100% { transform: rotate(28deg) translateY(0) } }
@keyframes prp-lantern { 0% { transform: scale(1); opacity:.8 } 100% { transform: scale(1.2); opacity:1 } }
@keyframes prp-dust { 0% { transform: translate(0, 0) scale(1); opacity:0 } 10% { opacity:.6 } 90% { opacity:.4 } 100% { transform: translate(20px, -40px) scale(.5); opacity:0 } }

.scn-gaoler-mockery { background: linear-gradient(180deg, #1a1816 0%, #2a2520 40%, #3a3028 70%, #2a2018 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%); }
.scn-gaoler-mockery .cell-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%); border-bottom: 3px solid #4a3a2a; box-shadow: inset 0 15px 40px rgba(0,0,0,.6); animation: gmr-wall 18s ease-in-out infinite; }
.scn-gaoler-mockery .floor-straw { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(45deg, #5a4a2a 0px, #5a4a2a 4px, #6a5a3a 4px, #6a5a3a 8px); border-radius: 40% 40% 0 0 / 20% 20% 0 0; opacity:.8; animation: gmr-floor 12s ease-in-out infinite; }
.scn-gaoler-mockery .prisoner { position:absolute; bottom:18%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 60%, #3a2818 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(10deg); box-shadow: 0 5px 15px rgba(0,0,0,.5); animation: gmr-prisoner 3s ease-in-out infinite; }
.scn-gaoler-mockery .gaoler { position:absolute; bottom:20%; right:20%; width:45px; height:70px; background: linear-gradient(180deg, #c8553d 0%, #a0442a 50%, #7a3220 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; transform: rotate(-5deg); animation: gmr-gaoler 4s ease-in-out infinite; }
.scn-gaoler-mockery .gaoler::before { content:''; position:absolute; top:-10%; left:30%; width:30%; height:15%; background: #7a3220; border-radius:50%; }
.scn-gaoler-mockery .noose { position:absolute; top:5%; left:40%; width:4px; height:60px; background: #3a2a1a; border-radius:20%; box-shadow: 0 0 0 2px #4a3a2a; transform: rotate(-5deg); animation: gmr-noose 8s ease-in-out infinite; }
.scn-gaoler-mockery .noose::after { content:''; position:absolute; bottom:0; left:-6px; width:16px; height:14px; border:3px solid #4a3a2a; border-radius:50%; background:transparent; }
.scn-gaoler-mockery .plate { position:absolute; bottom:10%; right:40%; width:30px; height:10px; background: radial-gradient(ellipse, #b0a080 0%, #807050 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: gmr-plate 5s ease-in-out infinite; }
.scn-gaoler-mockery .spit-stick { position:absolute; bottom:16%; left:42%; width:50px; height:4px; background: #6a5030; border-radius:2px; transform: rotate(15deg); animation: gmr-spit 6s ease-in-out infinite; }
@keyframes gmr-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes gmr-floor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes gmr-prisoner { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(8deg) translateY(2px) } 50% { transform: rotate(12deg) translateY(-2px) } 75% { transform: rotate(9deg) translateY(1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes gmr-gaoler { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-7deg) translateY(0) } }
@keyframes gmr-noose { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.1) } }
@keyframes gmr-plate { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gmr-spit { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.1) } 100% { transform: rotate(15deg) scaleX(1) } }

.scn-lucius-consoles {
  background: linear-gradient(180deg, #f5d6b8 0%, #e3b58a 30%, #8b6f5c 70%, #4a3b33 100%),
              radial-gradient(ellipse at 50% 20%, #f5d6b8 0%, transparent 60%);
  animation: lc-shift 30s ease-in-out infinite alternate;
}
.scn-lucius-consoles .sky-dawn {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b1a7a6 0%, #d4b096 50%, transparent 100%);
  animation: lc-sky 12s ease-in-out infinite;
}
.scn-lucius-consoles .sun {
  position: absolute; top: 20%; left: 75%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe6b3 0%, #f5d6b8 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5d6b8, 0 0 120px 40px rgba(245,214,184,0.3);
  animation: lc-sun 20s ease-in-out infinite alternate;
}
.scn-lucius-consoles .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7d8a5b 0%, #5c6a3e 50%, #3e4a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-lucius-consoles .path {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #8b7355 20%, #7a6245 50%, #8b7355 80%, transparent 100%);
  border-radius: 50%;
  transform: perspective(200px) rotateX(30deg);
  animation: lc-path 6s ease-in-out infinite;
}
.scn-lucius-consoles .figure-consoler {
  position: absolute; bottom: 28%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #55473a 0%, #3a2f26 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-stand 4s ease-in-out infinite alternate;
}
.scn-lucius-consoles .figure-kneeling {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #6b5c4f 0%, #4a3b33 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lc-kneel 6s ease-in-out infinite;
}
.scn-lucius-consoles .flower-cluster {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #d8b89a 0%, transparent 60%),
              radial-gradient(circle at 70% 50%, #cfa886 0%, transparent 60%);
  filter: blur(1px);
  animation: lc-flower 8s ease-in-out infinite alternate;
}
.scn-lucius-consoles .mountain-far {
  position: absolute; bottom: 50%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  border-radius: 50% 60% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: lc-mtn 20s ease-in-out infinite;
}
@keyframes lc-shift { 0% { transform: scale(1.02); } 50% { transform: scale(1); } 100% { transform: scale(1.01); } }
@keyframes lc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes lc-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.05); } 100% { transform: translateY(-3px) scale(0.98); } }
@keyframes lc-path { 0%,100% { transform: perspective(200px) rotateX(30deg) translateY(0); } 50% { transform: perspective(200px) rotateX(30deg) translateY(-2px); } }
@keyframes lc-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lc-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(2deg); } }
@keyframes lc-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes lc-mtn { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }

.scn-lucius-takes-fidele {
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 30%, #1a2a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a4a3a 0%, transparent 80%);
  animation: ltf-shift 30s ease-in-out infinite alternate;
}
.scn-lucius-takes-fidele .forest-floor {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  box-shadow: inset 0 50px 80px rgba(0,0,0,0.5);
}
.scn-lucius-takes-fidele .grave-mound {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: ltf-mound 8s ease-in-out infinite;
}
.scn-lucius-takes-fidele .shovel {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 40% 40%;
  transform-origin: bottom center;
  animation: ltf-shovel 4s ease-in-out infinite;
}
.scn-lucius-takes-fidele .master-body {
  position: absolute; bottom: 12%; left: 38%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30%;
  opacity: 0.8;
  animation: ltf-body 12s ease-in-out infinite alternate;
}
.scn-lucius-takes-fidele .flower-grave {
  position: absolute; bottom: 18%; left: 30%; width: 25px; height: 15px;
  background: radial-gradient(circle at 20% 50%, #b8a898 0%, transparent 60%),
              radial-gradient(circle at 80% 50%, #c8b8a8 0%, transparent 60%);
  filter: blur(2px);
  animation: ltf-flower 6s ease-in-out infinite alternate;
}
.scn-lucius-takes-fidele .leaf-swirl {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a6a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ltf-leaf 15s linear infinite;
}
.scn-lucius-takes-fidele .tree-trunk {
  position: absolute; top: 10%; left: 10%; bottom: 40%; width: 20px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: ltf-trunk 20s ease-in-out infinite alternate;
}
.scn-lucius-takes-fidele .canopy {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 20%, #2a4a2a 0%, transparent 70%),
              radial-gradient(ellipse at 70% 30%, #3a5a3a 0%, transparent 60%);
  filter: blur(8px);
  animation: ltf-canopy 25s ease-in-out infinite;
}
@keyframes ltf-shift { 0% { transform: scale(1.01) translateY(0); } 100% { transform: scale(1) translateY(2px); } }
@keyframes ltf-mound { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes ltf-shovel { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ltf-body { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes ltf-flower { 0% { transform: scale(0.9) rotate(0deg); } 50% { transform: scale(1.1) rotate(15deg); } 100% { transform: scale(1) rotate(5deg); } }
@keyframes ltf-leaf { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(-20px, 30px) rotate(180deg) scale(1.2); } 100% { transform: translate(-40px, 60px) rotate(360deg) scale(0.8); } }
@keyframes ltf-trunk { 0% { transform: skewX(0deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-1deg); } }
@keyframes ltf-canopy { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-burial-by-soldiers { background: radial-gradient(ellipse at 50% 80%, rgba(200,140,80,.2) 0%, transparent 55%), linear-gradient(180deg, #0b0b1e 0%, #1a1a3e 55%, #2c1e16 55%, #15100a 100%); }
.scn-burial-by-soldiers .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.06) 0%, transparent 70%); animation: bbs-sky 12s ease-in-out infinite alternate; }
.scn-burial-by-soldiers .mound { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:40px; background: linear-gradient(180deg, #332218 0%, #1a120a 100%); border-radius:50% / 60%; box-shadow:inset 0 4px 8px rgba(0,0,0,.6); animation:bbs-mound 8s ease-in-out infinite alternate; }
.scn-burial-by-soldiers .soldier { position:absolute; bottom:17%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bbs-soldier-sway 6s ease-in-out infinite alternate; }
.scn-burial-by-soldiers .soldier-1 { left:25%; }
.scn-burial-by-soldiers .soldier-2 { left:45%; animation-delay:-2s; }
.scn-burial-by-soldiers .soldier-3 { left:65%; animation-delay:-4s; }
.scn-burial-by-soldiers .shovel { position:absolute; bottom:20%; left:43%; width:4px; height:20px; background: linear-gradient(180deg, #4a3a2e 70%, #6a5848 100%); border-radius:2px; transform-origin:bottom center; animation:bbs-shovel-dig 2.5s ease-in-out infinite; }
.scn-burial-by-soldiers .lantern { position:absolute; bottom:17%; left:47%; width:6px; height:6px; background: radial-gradient(circle, #ffd680 0%, #b08040 80%); border-radius:50%; box-shadow:0 0 12px 4px rgba(200,140,80,.8); animation:bbs-lantern-flicker 3s ease-in-out infinite alternate; }
.scn-burial-by-soldiers .cloud-a { position:absolute; top:10%; left:-60px; width:80px; height:18px; background:rgba(255,255,255,.12); border-radius:50%; filter:blur(6px); animation:bbs-cloud-a 35s linear infinite; }
.scn-burial-by-soldiers .cloud-b { position:absolute; top:20%; right:-60px; width:60px; height:14px; background:rgba(255,255,255,.08); border-radius:50%; filter:blur(5px); animation:bbs-cloud-b 45s linear infinite reverse; }
@keyframes bbs-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes bbs-mound { 0% { transform:translateX(-50%) scale(1,1) } 50% { transform:translateX(-50%) scale(1.02,1.02) } 100% { transform:translateX(-50%) scale(1,1) } }
@keyframes bbs-soldier-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes bbs-shovel-dig { 0% { transform:translateY(0) rotate(-5deg) } 25% { transform:translateY(-8px) rotate(0deg) } 50% { transform:translateY(-12px) rotate(5deg) } 75% { transform:translateY(-8px) rotate(0deg) } 100% { transform:translateY(0) rotate(-5deg) } }
@keyframes bbs-lantern-flicker { 0% { box-shadow:0 0 10px 3px rgba(200,140,80,.6); opacity:.7 } 50% { box-shadow:0 0 18px 6px rgba(255,180,80,.9); opacity:1 } 100% { box-shadow:0 0 12px 4px rgba(200,140,80,.7); opacity:.85 } }
@keyframes bbs-cloud-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes bbs-cloud-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

.scn-palace-anxiety {
  background: linear-gradient(90deg, #b8a898 0%, #c8b8a8 30%, #d8c8b8 50%, #c8b8a8 70%, #b8a898 100%),
              radial-gradient(ellipse at 50% 40%, #e8d8c8 0%, #b8a898 80%);
  animation: pa-shift 10s ease-in-out infinite alternate;
}
.scn-palace-anxiety .wall-panel {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #e8d8c8 30%, transparent 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-palace-anxiety .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #a89888 0px, #b8a898 4px, #a89888 8px);
  transform: perspective(300px) rotateX(60deg);
  transform-origin: bottom;
  animation: pa-floor 8s ease-in-out infinite alternate;
}
.scn-palace-anxiety .window-arch {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #e8f0f0 0%, #a0b0b0 60%, #606868 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 0 30px rgba(255,255,255,0.2);
  animation: pa-window 6s ease-in-out infinite alternate;
}
.scn-palace-anxiety .queen-bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5), inset 0 20px 40px rgba(0,0,0,0.3);
  animation: pa-bed 15s ease-in-out infinite;
}
.scn-palace-anxiety .queen-figure {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.6);
  animation: pa-queen 4s ease-in-out infinite alternate;
}
.scn-palace-anxiety .attendant {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-attendant 5s ease-in-out infinite alternate;
}
.scn-palace-anxiety .candle {
  position: absolute; top: 22%; right: 30%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0d8b8 0%, #c8a888 100%);
  border-radius: 2px 2px 40% 40%;
  box-shadow: 0 0 20px 6px #f0d8b8;
  animation: pa-candle 3s ease-in-out infinite alternate;
}
.scn-palace-anxiety .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(0,0,0,0.08) 30px, rgba(0,0,0,0.08) 34px, transparent 34px);
  animation: pa-bars 12s ease-in-out infinite alternate;
}
@keyframes pa-shift { 0% { transform: scale(1.02) translateX(-2px); } 50% { transform: scale(1); } 100% { transform: scale(1.01) translateX(2px); } }
@keyframes pa-floor { 0% { transform: perspective(300px) rotateX(60deg) translateY(0); } 50% { transform: perspective(300px) rotateX(60deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(60deg) translateY(1px); } }
@keyframes pa-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,255,0.5), 0 0 60px rgba(255,255,255,0.3); } 100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 0 30px rgba(255,255,255,0.1); } }
@keyframes pa-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes pa-queen { 0% { transform: scaleX(0.6) translateY(0) rotate(0deg); } 50% { transform: scaleX(0.65) translateY(-2px) rotate(2deg); } 100% { transform: scaleX(0.58) translateY(0) rotate(-2deg); } }
@keyframes pa-attendant { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes pa-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; box-shadow: 0 0 20px 6px #f0d8b8; } 50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; box-shadow: 0 0 30px 10px #f0d8b8; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.8; box-shadow: 0 0 15px 4px #f0d8b8; } }
@keyframes pa-bars { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* --- Scene: rome-briton-enters (calm, bright interior) --- */
.scn-rome-briton-enters {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b88c 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 50%);
}
.scn-rome-briton-enters .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c2a67a 0%, #9e7f5c 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.15); }
.scn-rome-briton-enters .wall  { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #eddcc5 0%, #dcc8aa 100%); }
.scn-rome-briton-enters .window{ position:absolute; top:15%; left:15%; width:22%; height:45%; background: linear-gradient(180deg, #b0d0f0 0%, #8598c0 100%); border:6px solid #8a6e4a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 40px rgba(255,255,255,.3); animation: be-window 12s ease-in-out infinite alternate; }
.scn-rome-briton-enters .door  { position:absolute; right:10%; bottom:30%; width:18%; height:70%; background: linear-gradient(180deg, #6b4d32 0%, #4a3220 100%); border-radius:6% 6% 0 0; border:4px solid #3a2210; box-shadow: -4px 0 10px rgba(0,0,0,.2); animation: be-door 20s ease-in-out infinite; }
.scn-rome-briton-enters .figure{ position:absolute; right:12%; bottom:35%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #221a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-figure 8s ease-in-out infinite; }
.scn-rome-briton-enters .table { position:absolute; left:40%; bottom:32%; width:35%; height:8%; background: linear-gradient(180deg, #7a5e3a 0%, #5a4228 100%); border-radius:10% 10% 30% 30% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-rome-briton-enters .lamp  { position:absolute; left:55%; bottom:40%; width:12px; height:14px; background: radial-gradient(circle, #ffd080 0%, #c08030 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 6px #ffcc60, 0 0 40px 12px rgba(255,204,96,.3); animation: be-lamp 3s ease-in-out infinite alternate; }

@keyframes be-window { 0% { opacity:.85; box-shadow: inset 0 0 30px rgba(255,255,255,.2); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,255,.4); } 100% { opacity:.9; box-shadow: inset 0 0 35px rgba(255,255,255,.3); } }
@keyframes be-door   { 0% { transform: scaleX(1); } 25% { transform: scaleX(1.02) translateX(-2px); } 50% { transform: scaleX(0.98); } 75% { transform: scaleX(1.01) translateX(2px); } 100% { transform: scaleX(1); } }
@keyframes be-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-8px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(-16px) translateY(0) rotate(-1deg); } 100% { transform: translateX(-24px) translateY(-1px) rotate(0deg); } }
@keyframes be-lamp   { 0% { box-shadow: 0 0 15px 4px #ffcc60, 0 0 30px 8px rgba(255,204,96,.3); opacity:.9; } 50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,.5); opacity:1; } 100% { box-shadow: 0 0 18px 5px #ffcc60, 0 0 35px 10px rgba(255,204,96,.35); opacity:.95; } }

/* --- Scene: rome-quarrel-recalled (tense, bright interior) --- */
.scn-rome-quarrel-recalled {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c8b488 100%),
    radial-gradient(ellipse at 60% 30%, #fff0cc 0%, transparent 40%);
}
.scn-rome-quarrel-recalled .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #a8906a 0%, #7a6240 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,.2); }
.scn-rome-quarrel-recalled .wall  { position:absolute; top:0; left:0; right:0; bottom:28%; background: linear-gradient(180deg, #dbcaa8 0%, #c4b090 100%); }
.scn-rome-quarrel-recalled .window{ position:absolute; top:12%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #9ab5d8 0%, #6880a0 100%); border:5px solid #7a5e3a; border-radius:6% 6% 10% 10%; box-shadow: inset 0 0 30px rgba(255,255,255,.25); animation: qr-window 4s ease-in-out infinite alternate; }
.scn-rome-quarrel-recalled .figure-left  { position:absolute; left:25%; bottom:32%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: qr-figure-l 2.5s ease-in-out infinite; }
.scn-rome-quarrel-recalled .figure-right { position:absolute; right:25%; bottom:32%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: qr-figure-r 2.5s ease-in-out infinite reverse; }
.scn-rome-quarrel-recalled .table { position:absolute; left:45%; right:45%; bottom:32%; height:5%; background: linear-gradient(180deg, #5a4228 0%, #3a2a18 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: qr-table 2s ease-in-out infinite; }
.scn-rome-quarrel-recalled .shadow-left  { position:absolute; left:22%; bottom:28%; width:30px; height:10px; background: rgba(0,0,0,.25); border-radius:50%; filter: blur(3px); animation: qr-shadow-l 2.5s ease-in-out infinite; }
.scn-rome-quarrel-recalled .shadow-right { position:absolute; right:22%; bottom:28%; width:30px; height:10px; background: rgba(0,0,0,.25); border-radius:50%; filter: blur(3px); animation: qr-shadow-r 2.5s ease-in-out infinite reverse; }

@keyframes qr-window   { 0% { opacity:.8; box-shadow: inset 0 0 20px rgba(255,255,255,.2); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,255,.4); } 100% { opacity:.7; box-shadow: inset 0 0 30px rgba(255,255,255,.15); } }
@keyframes qr-figure-l { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(8deg) translateX(-3px); } 50% { transform: rotate(-5deg) translateX(2px); } 75% { transform: rotate(6deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes qr-figure-r { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-8deg) translateX(3px); } 50% { transform: rotate(5deg) translateX(-2px); } 75% { transform: rotate(-6deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes qr-table    { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-1px) scaleX(1.01); } 50% { transform: translateY(0) scaleX(0.99); } 75% { transform: translateY(1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes qr-shadow-l { 0% { transform: translateX(0); opacity:1; } 25% { transform: translateX(-2px); opacity:.7; } 50% { transform: translateX(1px); opacity:1; } 75% { transform: translateX(-1px); opacity:.8; } 100% { transform: translateX(0); opacity:1; } }
@keyframes qr-shadow-r { 0% { transform: translateX(0); opacity:1; } 25% { transform: translateX(2px); opacity:.7; } 50% { transform: translateX(-1px); opacity:1; } 75% { transform: translateX(1px); opacity:.8; } 100% { transform: translateX(0); opacity:1; } }

/* --- Scene: rome-mistress-praise (tense, bright interior) --- */
.scn-rome-mistress-praise {
  background: 
    linear-gradient(180deg, #eedcc0 0%, #ccb898 100%),
    radial-gradient(ellipse at 50% 20%, #fff0cc 0%, transparent 50%);
}
.scn-rome-mistress-praise .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a88a64 0%, #806640 100%); box-shadow: inset 0 6px 14px rgba(0,0,0,.2); }
.scn-rome-mistress-praise .wall  { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #dcccb0 0%, #c8b498 100%); }
.scn-rome-mistress-praise .figure{ position:absolute; left:28%; bottom:32%; width:24px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #221810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure 3s ease-in-out infinite; }
.scn-rome-mistress-praise .portrait{ position:absolute; right:25%; bottom:35%; width:30px; height:42px; background: linear-gradient(180deg, #b09070 0%, #8a7058 100%); border:3px solid #5a4020; border-radius:10% 10% 12% 12%; box-shadow: 0 0 20px 4px rgba(200,170,120,.3); animation: mp-portrait 5s ease-in-out infinite alternate; }
.scn-rome-mistress-praise .frame{ position:absolute; right:23%; bottom:33%; width:36px; height:48px; border:4px solid #6a4a2a; border-radius:12% 12% 14% 14%; background: transparent; box-shadow: 0 0 8px rgba(0,0,0,.3); animation: mp-frame 5s ease-in-out infinite alternate-reverse; }
.scn-rome-mistress-praise .glow { position:absolute; right:22%; bottom:30%; width:40px; height:55px; background: radial-gradient(circle, rgba(255,220,180,.3) 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: mp-glow 4s ease-in-out infinite alternate; }
.scn-rome-mistress-praise .shadow{ position:absolute; left:26%; bottom:28%; width:30px; height:8px; background: rgba(0,0,0,.25); border-radius:50%; filter: blur(3px); animation: mp-shadow 3s ease-in-out infinite; }

@keyframes mp-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mp-portrait { 0% { opacity:.85; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.9; transform: scale(0.98); } }
@keyframes mp-frame { 0% { border-color: #6a4a2a; } 50% { border-color: #8a6a3a; } 100% { border-color: #5a3a1a; } }
@keyframes mp-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(0.95); } }
@keyframes mp-shadow { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(-2px) scaleX(1.05); } 50% { transform: translateX(1px) scaleX(0.95); } 75% { transform: translateX(-1px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }

/* --- Scene: rome-virtue-constant (warm, bright interior) --- */
.scn-rome-virtue-constant {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d0bc98 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 50%);
}
.scn-rome-virtue-constant .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b08e6a 0%, #8a6e4a 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,.15); }
.scn-rome-virtue-constant .wall  { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #e0ccb0 0%, #ccb498 100%); }
.scn-rome-virtue-constant .figure{ position:absolute; left:50%; bottom:30%; width:28px; height:65px; background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: vc-figure 6s ease-in-out infinite; }
.scn-rome-virtue-constant .pillar{ position:absolute; left:70%; bottom:28%; width:12px; height:55%; background: linear-gradient(180deg, #b09878 0%, #8a7258 100%); border-radius:10% 10% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.2); }
.scn-rome-virtue-constant .window{ position:absolute; top:15%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #b8d0e8 0%, #8098b8 100%); border:5px solid #6a4e32; border-radius:8% 8% 12% 12%; box-shadow: inset 0 0 40px rgba(255,255,255,.25); animation: vc-window 10s ease-in-out infinite alternate; }
.scn-rome-virtue-constant .light-beam{ position:absolute; top:20%; left:22%; width:15%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 40% 100%, 60% 100%); filter: blur(4px); animation: vc-beam 8s ease-in-out infinite alternate; }
.scn-rome-virtue-constant .glow   { position:absolute; left:45%; bottom:25%; width:70px; height:80px; background: radial-gradient(circle, rgba(255,220,180,.25) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: vc-glow 5s ease-in-out infinite alternate; }

@keyframes vc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(0.5deg) translateY(0); } 60% { transform: translateX(-50%) rotate(-0.5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes vc-window { 0% { opacity:.85; box-shadow: inset 0 0 30px rgba(255,255,255,.2); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,255,.4); } 100% { opacity:.9; box-shadow: inset 0 0 35px rgba(255,255,255,.3); } }
@keyframes vc-beam   { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.05); } 100% { opacity:.5; transform: scaleY(0.95); } }
@keyframes vc-glow   { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(.95); } }

.scn-cymbeline-recognizes-boy {
  background: 
    linear-gradient(180deg, #f5cba7 0%, #e6b07e 30%, #c89050 60%, #a06830 100%),
    radial-gradient(ellipse at 60% 20%, #f7dc9c 0%, transparent 60%);
}

.scn-cymbeline-recognizes-boy .crb-bg { position:absolute;inset:0 0 35% 0;background:linear-gradient(180deg, #e6b07e 0%, #c89050 100%);animation:crb-bg-pulse 8s ease-in-out infinite alternate; }
.scn-cymbeline-recognizes-boy .crb-floor { position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%);border-radius:30% 30% 0 0;box-shadow:inset 0 10px 30px rgba(0,0,0,.4); }
.scn-cymbeline-recognizes-boy .crb-throne { position:absolute;bottom:30%;left:20%;width:80px;height:120px;background:linear-gradient(135deg, #d4a373 0%, #b8865e 100%);border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;box-shadow:0 0 20px rgba(180,100,50,.3);transform:skewY(-2deg);animation:crb-throne-float 6s ease-in-out infinite; }
.scn-cymbeline-recognizes-boy .crb-figure-king { position:absolute;bottom:32%;left:22%;width:34px;height:60px;background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-5deg);animation:crb-king-bow 5s ease-in-out infinite; }
.scn-cymbeline-recognizes-boy .crb-figure-boy { position:absolute;bottom:30%;left:55%;width:28px;height:50px;background:linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(3deg);animation:crb-boy-tilt 7s ease-in-out infinite; }
.scn-cymbeline-recognizes-boy .crb-window { position:absolute;top:8%;right:12%;width:60px;height:80px;background:linear-gradient(180deg, #f7dc9c 0%, #e6b07e 100%);border-radius:10% / 20% 20% 10% 10%;box-shadow:0 0 30px rgba(255,200,100,.5), inset 0 0 20px rgba(200,150,80,.3);animation:crb-window-light 4s ease-in-out infinite alternate; }
.scn-cymbeline-recognizes-boy .crb-lightray { position:absolute;top:10%;left:45%;width:40px;height:200px;background: linear-gradient(180deg, rgba(255,215,150,.4) 0%, transparent 100%);transform:rotate(-15deg);filter:blur(8px);animation:crb-ray-sway 12s ease-in-out infinite; }
.scn-cymbeline-recognizes-boy .crb-column { position:absolute;bottom:10%;left:8%;width:20px;height:150px;background:linear-gradient(180deg, #b8865e 0%, #805030 100%);border-radius:10% / 20%;box-shadow:0 0 10px rgba(0,0,0,.3);animation:crb-column-breathe 9s ease-in-out infinite; }
.scn-cymbeline-recognizes-boy .crb-banner { position:absolute;top:5%;left:25%;width:20px;height:40px;background:linear-gradient(135deg, #c8553d 0%, #a0461a 100%);border-radius:0 0 30% 30%;transform-origin:top;box-shadow:0 0 12px rgba(200,80,40,.5);animation:crb-banner-wave 3s ease-in-out infinite alternate; }

@keyframes crb-bg-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes crb-throne-float { 0%,100% { transform:skewY(-2deg) translateY(0) } 50% { transform:skewY(-2deg) translateY(-3px) } }
@keyframes crb-king-bow { 0% { transform:rotate(-5deg) } 30% { transform:rotate(-8deg) } 70% { transform:rotate(-2deg) } 100% { transform:rotate(-5deg) } }
@keyframes crb-boy-tilt { 0% { transform:rotate(3deg) } 40% { transform:rotate(6deg) } 80% { transform:rotate(0deg) } 100% { transform:rotate(3deg) } }
@keyframes crb-window-light { 0% { box-shadow:0 0 30px rgba(255,200,100,.5) } 50% { box-shadow:0 0 50px rgba(255,220,130,.8) } 100% { box-shadow:0 0 20px rgba(255,200,100,.4) } }
@keyframes crb-ray-sway { 0% { transform:rotate(-15deg) translateX(0) } 50% { transform:rotate(-12deg) translateX(8px) } 100% { transform:rotate(-18deg) translateX(-5px) } }
@keyframes crb-column-breathe { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes crb-banner-wave { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-3deg) } }

/* Scene 2: imogen-denies-master */
.scn-imogen-denies-master {
  background:
    linear-gradient(135deg, #d98c5f 0%, #b86b3a 40%, #804a20 100%),
    radial-gradient(ellipse at 70% 30%, #e6a56e 0%, transparent 70%);
}

.scn-imogen-denies-master .idm-bg { position:absolute;inset:0 0 40% 0;background:linear-gradient(135deg, #d98c5f 0%, #c07040 100%);animation:idm-bg-tense 3s ease-in-out infinite alternate; }
.scn-imogen-denies-master .idm-floor { position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg, #6a4020 0%, #3a2010 100%);border-radius:20% 20% 0 0;box-shadow:inset 0 15px 40px rgba(0,0,0,.6); }
.scn-imogen-denies-master .idm-table { position:absolute;bottom:28%;left:35%;width:100px;height:30px;background:linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);border-radius:10% / 30%;transform:skewX(-10deg);box-shadow:0 8px 20px rgba(0,0,0,.5);animation:idm-table-shake 4s ease-in-out infinite; }
.scn-imogen-denies-master .idm-cloten { position:absolute;bottom:25%;left:20%;width:40px;height:70px;background:linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(10deg) scale(1.1);animation:idm-cloten-lunge 2s ease-in-out infinite; }
.scn-imogen-denies-master .idm-imogen { position:absolute;bottom:25%;left:60%;width:30px;height:60px;background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-5deg) scale(0.95);animation:idm-imogen-step 2.5s ease-in-out infinite; }
.scn-imogen-denies-master .idm-shadow-cloten { position:absolute;bottom:5%;left:15%;width:60px;height:30px;background:rgba(0,0,0,.4);border-radius:50%;filter:blur(8px);animation:idm-shadows 2s ease-in-out infinite; }
.scn-imogen-denies-master .idm-shadow-imogen { position:absolute;bottom:5%;left:55%;width:50px;height:25px;background:rgba(0,0,0,.3);border-radius:50%;filter:blur(6px);animation:idm-shadows 2s ease-in-out infinite reverse; }
.scn-imogen-denies-master .idm-door { position:absolute;top:10%;right:8%;width:80px;height:140px;background:linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);border-radius:10% / 5%;box-shadow:inset 0 0 20px rgba(0,0,0,.5);animation:idm-door-warp 8s ease-in-out infinite; }

@keyframes idm-bg-tense { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes idm-table-shake { 0%,100% { transform:skewX(-10deg) translateX(0) } 30% { transform:skewX(-12deg) translateX(-3px) } 60% { transform:skewX(-8deg) translateX(2px) } }
@keyframes idm-cloten-lunge { 0% { transform:rotate(10deg) scale(1.1) translateX(0) } 30% { transform:rotate(15deg) scale(1.15) translateX(4px) } 70% { transform:rotate(5deg) scale(1.05) translateX(-2px) } 100% { transform:rotate(10deg) scale(1.1) translateX(0) } }
@keyframes idm-imogen-step { 0% { transform:rotate(-5deg) scale(0.95) translateX(0) } 30% { transform:rotate(-8deg) scale(0.93) translateX(-3px) } 70% { transform:rotate(-2deg) scale(0.97) translateX(2px) } 100% { transform:rotate(-5deg) scale(0.95) translateX(0) } }
@keyframes idm-shadows { 0% { opacity:.4;transform:scale(1) } 50% { opacity:.6;transform:scale(1.1) } 100% { opacity:.3;transform:scale(0.95) } }
@keyframes idm-door-warp { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(0.98) } }

/* Scene 3: imogen-reveals-identity */
.scn-imogen-reveals-identity {
  background:
    linear-gradient(180deg, #e6b07e 0%, #c89050 40%, #a06830 100%),
    radial-gradient(ellipse at 50% 20%, #f7dc9c 0%, transparent 60%);
}

.scn-imogen-reveals-identity .iri-bg { position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg, #e6b07e 0%, #c89050 100%);animation:iri-bg-glow 5s ease-in-out infinite alternate; }
.scn-imogen-reveals-identity .iri-floor { position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg, #7a5020 0%, #4a2a10 100%);border-radius:40% 40% 0 0;box-shadow:inset 0 8px 25px rgba(0,0,0,.5); }
.scn-imogen-reveals-identity .iri-column { position:absolute;bottom:10%;left:25%;width:16px;height:160px;background:linear-gradient(180deg, #b8865e 0%, #7a5020 100%);border-radius:10% / 20%;box-shadow:0 0 10px rgba(0,0,0,.3);animation:iri-column-pulse 7s ease-in-out infinite; }
.scn-imogen-reveals-identity .iri-cymbeline { position:absolute;bottom:28%;left:30%;width:36px;height:65px;background:linear-gradient(180deg, #4a2a10 0%, #2a1a08 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-3deg);animation:iri-cymbeline-descend 6s ease-in-out infinite; }
.scn-imogen-reveals-identity .iri-imogen { position:absolute;bottom:25%;left:55%;width:30px;height:55px;background:linear-gradient(180deg, #6a3a20 0%, #3a1a10 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(5deg);animation:iri-imogen-kneel 4s ease-in-out infinite; }
.scn-imogen-reveals-identity .iri-hood { position:absolute;bottom:32%;left:57%;width:20px;height:15px;background:linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);border-radius:50% 50% 0 0;transform:rotate(-10deg);transform-origin:bottom;animation:iri-hood-fall 8s ease-in-out infinite; }
.scn-imogen-reveals-identity .iri-light { position:absolute;top:5%;left:45%;width:30px;height:40px;background:radial-gradient(circle, #ffdca8 0%, #e6a56e 100%);border-radius:50%;box-shadow:0 0 60px 20px rgba(255,200,100,.6);animation:iri-light-pulse 3s ease-in-out infinite alternate; }
.scn-imogen-reveals-identity .iri-crown { position:absolute;top:12%;left:32%;width:24px;height:16px;background:linear-gradient(135deg, #d4a373 0%, #b8865e 100%);border-radius:0 0 50% 50%;box-shadow:0 0 12px rgba(180,100,50,.4);animation:iri-crown-glint 5s ease-in-out infinite; }

@keyframes iri-bg-glow { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes iri-column-pulse { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } }
@keyframes iri-cymbeline-descend { 0% { transform:rotate(-3deg) translateY(0) } 30% { transform:rotate(-5deg) translateY(2px) } 70% { transform:rotate(0deg) translateY(-1px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes iri-imogen-kneel { 0% { transform:rotate(5deg) translateY(0) } 40% { transform:rotate(8deg) translateY(-3px) } 80% { transform:rotate(2deg) translateY(2px) } 100% { transform:rotate(5deg) translateY(0) } }
@keyframes iri-hood-fall { 0% { transform:rotate(-10deg) scaleY(1) } 30% { transform:rotate(-20deg) scaleY(0.8) } 70% { transform:rotate(5deg) scaleY(1.1) } 100% { transform:rotate(-10deg) scaleY(1) } }
@keyframes iri-light-pulse { 0% { opacity:.7;transform:scale(1) } 50% { opacity:1;transform:scale(1.1) } 100% { opacity:.8;transform:scale(0.95) } }
@keyframes iri-crown-glint { 0% { box-shadow:0 0 12px rgba(180,100,50,.4) } 50% { box-shadow:0 0 25px rgba(200,120,60,.7) } 100% { box-shadow:0 0 10px rgba(180,100,50,.3) } }

/* Scene 4: pisanio-recognizes */
.scn-pisanio-recognizes {
  background:
    linear-gradient(180deg, #f0d8b8 0%, #d4b080 40%, #b88a60 100%),
    radial-gradient(ellipse at 50% 15%, #f7e0c0 0%, transparent 70%);
}

.scn-pisanio-recognizes .pir-bg { position:absolute;inset:0 0 35% 0;background:linear-gradient(180deg, #f0d8b8 0%, #d4b080 100%);animation:pir-bg-calm 10s ease-in-out infinite alternate; }
.scn-pisanio-recognizes .pir-arch { position:absolute;top:5%;left:50%;width:120px;height:180px;background:radial-gradient(ellipse at 50% 100%, transparent 60%, #c8a070 60%);border-radius:60% 60% 0 0;transform:translateX(-50%);animation:pir-arch-breathe 14s ease-in-out infinite; }
.scn-pisanio-recognizes .pir-pisanio { position:absolute;bottom:25%;left:15%;width:32px;height:58px;background:linear-gradient(180deg, #3a2a18 0%, #1a1008 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-2deg);animation:pir-pisanio-watch 8s ease-in-out infinite; }
.scn-pisanio-recognizes .pir-imogen { position:absolute;bottom:26%;left:45%;width:30px;height:55px;background:linear-gradient(180deg, #5a3a20 0%, #2a1a10 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(3deg);animation:pir-imogen-turn 9s ease-in-out infinite; }
.scn-pisanio-recognizes .pir-cymbeline { position:absolute;bottom:28%;left:70%;width:36px;height:62px;background:linear-gradient(180deg, #4a2a10 0%, #2a1a08 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-1deg);animation:pir-cymbeline-stand 6s ease-in-out infinite; }
.scn-pisanio-recognizes .pir-window { position:absolute;top:8%;right:10%;width:50px;height:70px;background:linear-gradient(180deg, #f7e0c0 0%, #e6c8a0 100%);border-radius:10% / 20%;box-shadow:0 0 20px rgba(255,230,180,.4);animation:pir-window-glow 5s ease-in-out infinite alternate; }
.scn-pisanio-recognizes .pir-lightshaft { position:absolute;top:5%;left:30%;width:30px;height:200px;background:linear-gradient(180deg, rgba(255,240,210,.3) 0%, transparent 100%);transform:rotate(-8deg);filter:blur(10px);animation:pir-shaft-drift 20s linear infinite; }
.scn-pisanio-recognizes .pir-pillar { position:absolute;bottom:10%;right:12%;width:18px;height:150px;background:linear-gradient(180deg, #b8885e 0%, #805030 100%);border-radius:10% / 20%;box-shadow:0 0 8px rgba(0,0,0,.2);animation:pir-pillar-breathe 12s ease-in-out infinite; }

@keyframes pir-bg-calm { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes pir-arch-breathe { 0%,100% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.02) } }
@keyframes pir-pisanio-watch { 0% { transform:rotate(-2deg) } 30% { transform:rotate(0deg) } 70% { transform:rotate(-4deg) } 100% { transform:rotate(-2deg) } }
@keyframes pir-imogen-turn { 0% { transform:rotate(3deg) translateX(0) } 40% { transform:rotate(5deg) translateX(2px) } 80% { transform:rotate(1deg) translateX(-1px) } 100% { transform:rotate(3deg) translateX(0) } }
@keyframes pir-cymbeline-stand { 0% { transform:rotate(-1deg) } 30% { transform:rotate(1deg) } 70% { transform:rotate(-2deg) } 100% { transform:rotate(-1deg) } }
@keyframes pir-window-glow { 0% { box-shadow:0 0 20px rgba(255,230,180,.4) } 50% { box-shadow:0 0 35px rgba(255,240,200,.6) } 100% { box-shadow:0 0 15px rgba(255,230,180,.3) } }
@keyframes pir-shaft-drift { 0% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-6deg) translateX(10px) } 100% { transform:rotate(-10deg) translateX(-5px) } }
@keyframes pir-pillar-breathe { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }

.scn-garden-stolen-sons { background: linear-gradient(180deg, #fde8c8 0%, #d4a76a 40%, #8b6914 100%), radial-gradient(ellipse at 20% 60%, #fff2d0 0%, transparent 60%); }
.scn-garden-stolen-sons .sky-gss { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d8f0 0%, #fdf4d0 70%, transparent 100%); animation: gss-sky 14s ease-in-out infinite alternate; }
.scn-garden-stolen-sons .wall-gss { position:absolute; bottom:25%; left:20%; width:60%; height:30%; background: linear-gradient(135deg, #c8a87a 0%, #a08050 50%, #7a6030 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.3); animation: gss-wall 20s ease-in-out infinite; }
.scn-garden-stolen-sons .gate-gss { position:absolute; bottom:25%; left:44%; width:12%; height:30%; background: linear-gradient(180deg, #5a4020 0%, #3a2a10 100%); border-radius: 2% 2% 0 0; border: 3px solid #6a5020; box-shadow: 0 0 30px rgba(200,160,60,.5); animation: gss-gate 6s ease-in-out infinite alternate; }
.scn-garden-stolen-sons .figure-child1-gss { position:absolute; bottom:22%; left:38%; width:14px; height:26px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gss-walk1 5s ease-in-out infinite; }
.scn-garden-stolen-sons .figure-child2-gss { position:absolute; bottom:22%; left:42%; width:12px; height:24px; background: linear-gradient(180deg, #9a7a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gss-walk2 5.3s ease-in-out infinite; animation-delay: .8s; }
.scn-garden-stolen-sons .figure-man-gss { position:absolute; bottom:22%; left:46%; width:20px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gss-crouch 7s ease-in-out infinite; }
.scn-garden-stolen-sons .shadow-gss { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 30%, rgba(0,0,0,.3) 70%, transparent 100%); filter: blur(6px); animation: gss-shadow-move 12s ease-in-out infinite; }
.scn-garden-stolen-sons .leaf-gss { position:absolute; top:35%; left:10%; width:16px; height:24px; background: linear-gradient(135deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 80% 0 80% 0; transform: rotate(-20deg); filter: blur(1px); animation: gss-leaf-fall 18s linear infinite; }
@keyframes gss-sky { 0% { opacity: .7; } 33% { opacity: 1; } 66% { opacity: .85; } 100% { opacity: .75; } }
@keyframes gss-wall { 0% { transform: translateY(0); } 33% { transform: translateY(-3px); } 66% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gss-gate { 0% { transform: scaleX(1) translateX(0); opacity: .6; } 33% { transform: scaleX(1.1) translateX(5px); opacity: 1; } 66% { transform: scaleX(.95) translateX(-3px); opacity: .8; } 100% { transform: scaleX(1) translateX(0); opacity: .7; } }
@keyframes gss-walk1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes gss-walk2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-7px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-14px) translateY(0) rotate(1deg); } 75% { transform: translateX(-21px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-28px) translateY(0) rotate(0); } }
@keyframes gss-crouch { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(4px) scaleY(.85); } 50% { transform: translateX(8px) scaleY(1); } 75% { transform: translateX(12px) scaleY(.9); } 100% { transform: translateX(16px) scaleY(1); } }
@keyframes gss-shadow-move { 0% { transform: translateX(-20px) scaleX(1); } 25% { transform: translateX(-10px) scaleX(1.2); } 50% { transform: translateX(0) scaleX(.9); } 75% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(20px) scaleX(1); } }
@keyframes gss-leaf-fall { 0% { transform: translateX(0) translateY(0) rotate(-20deg); opacity: .8; } 20% { transform: translateX(15px) translateY(10vh) rotate(-10deg); opacity: .7; } 40% { transform: translateX(-10px) translateY(20vh) rotate(-30deg); opacity: .5; } 60% { transform: translateX(20px) translateY(30vh) rotate(-5deg); opacity: .4; } 80% { transform: translateX(-5px) translateY(40vh) rotate(-25deg); opacity: .2; } 100% { transform: translateX(10px) translateY(50vh) rotate(-15deg); opacity: 0; } }

.scn-garden-queen-entrance { background: linear-gradient(180deg, #fce8c8 0%, #d4b080 30%, #a07848 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%); }
.scn-garden-queen-entrance .sky-gqe { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8e0f8 0%, #fcf0d8 60%, transparent 100%); animation: gqe-sky 16s ease-in-out infinite alternate; }
.scn-garden-queen-entrance .path-gqe { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(90deg, #c0a070 0%, #a08050 30%, #b89060 70%, #906830 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.2); animation: gqe-path 18s ease-in-out infinite; }
.scn-garden-queen-entrance .hedge-gqe { position:absolute; bottom:25%; left:22%; width:56%; height:20%; background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 8px 30px rgba(0,0,0,.3); animation: gqe-hedge 22s ease-in-out infinite alternate; }
.scn-garden-queen-entrance .figure-queen-gqe { position:absolute; bottom:22%; left:55%; width:24px; height:44px; background: linear-gradient(180deg, #b08060 0%, #6a3a2a 60%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(180,140,80,.3); animation: gqe-queen 6s ease-in-out infinite; }
.scn-garden-queen-entrance .figure-prisoner-gqe { position:absolute; bottom:22%; left:35%; width:20px; height:38px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 60%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gqe-prone 8s ease-in-out infinite; }
.scn-garden-queen-entrance .shadow-gqe { position:absolute; bottom:18%; left:30%; width:40%; height:6%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 30%, rgba(0,0,0,.35) 70%, transparent 100%); filter: blur(5px); animation: gqe-shadow 12s ease-in-out infinite; }
.scn-garden-queen-entrance .throne-gqe { position:absolute; bottom:20%; left:52%; width:32px; height:36px; background: linear-gradient(135deg, #8a6a40 0%, #5a3a20 50%, #3a1a0a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 4px 16px rgba(0,0,0,.4); transform: translateX(8px); animation: gqe-throne 10s ease-in-out infinite; }
@keyframes gqe-sky { 0% { opacity: .8; } 33% { opacity: 1; } 66% { opacity: .9; } 100% { opacity: .75; } }
@keyframes gqe-path { 0% { transform: scaleX(1); } 33% { transform: scaleX(1.05); } 66% { transform: scaleX(.98); } 100% { transform: scaleX(1); } }
@keyframes gqe-hedge { 0% { transform: scaleY(1) translateY(0); } 33% { transform: scaleY(1.05) translateY(-4px); } 66% { transform: scaleY(.98) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes gqe-queen { 0% { transform: translateX(0) scaleY(1); opacity: .9; } 25% { transform: translateX(4px) scaleY(1.02); opacity: 1; } 50% { transform: translateX(8px) scaleY(.98); opacity: .95; } 75% { transform: translateX(12px) scaleY(1.01); opacity: 1; } 100% { transform: translateX(16px) scaleY(1); opacity: .9; } }
@keyframes gqe-prone { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gqe-shadow { 0% { transform: translateX(-10px); } 33% { transform: translateX(5px); } 66% { transform: translateX(-5px); } 100% { transform: translateX(10px); } }
@keyframes gqe-throne { 0% { transform: translateX(8px) scaleX(1); } 33% { transform: translateX(8px) scaleX(1.04); } 66% { transform: translateX(8px) scaleX(.98); } 100% { transform: translateX(8px) scaleX(1); } }

.scn-garden-posthumus-leave { background: linear-gradient(180deg, #f8e8c8 0%, #d4b080 35%, #8a6830 100%), radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 55%); }
.scn-garden-posthumus-leave .sky-gpl { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8d8f0 0%, #fcf0d8 60%, transparent 100%); animation: gpl-sky 15s ease-in-out infinite alternate; }
.scn-garden-posthumus-leave .wall-gpl { position:absolute; bottom:28%; left:10%; width:80%; height:25%; background: linear-gradient(135deg, #b89868 0%, #907850 50%, #705030 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 6px 24px rgba(0,0,0,.25); animation: gpl-wall 20s ease-in-out infinite; }
.scn-garden-posthumus-leave .door-gpl { position:absolute; bottom:28%; left:44%; width:12%; height:25%; background: linear-gradient(180deg, #5a3a20 0%, #3a1a0a 100%); border-radius: 2% 2% 0 0; border: 2px solid #7a4a20; box-shadow: 0 0 30px rgba(200,160,60,.3); animation: gpl-door 8s ease-in-out infinite alternate; }
.scn-garden-posthumus-leave .figure-posthumus-gpl { position:absolute; bottom:24%; left:50%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 60%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gpl-posthumus 5s ease-in-out infinite; }
.scn-garden-posthumus-leave .figure-imogen-gpl { position:absolute; bottom:24%; left:42%; width:20px; height:38px; background: linear-gradient(180deg, #7a5a4a 0%, #4a2a2a 60%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gpl-imogen 5.5s ease-in-out infinite; animation-delay: .5s; }
.scn-garden-posthumus-leave .rose-gpl { position:absolute; bottom:26%; left:46%; width:10px; height:10px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,85,61,.4); animation: gpl-rose 4s ease-in-out infinite alternate; }
.scn-garden-posthumus-leave .shadow-gpl { position:absolute; bottom:20%; left:30%; width:40%; height:6%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 30%, rgba(0,0,0,.3) 70%, transparent 100%); filter: blur(6px); animation: gpl-shadow 12s ease-in-out infinite; }
.scn-garden-posthumus-leave .leaf-gpl { position:absolute; top:30%; right:15%; width:14px; height:20px; background: linear-gradient(135deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 80% 0 80% 0; transform: rotate(30deg); filter: blur(1px); animation: gpl-leaf 16s linear infinite; }
@keyframes gpl-sky { 0% { opacity: .75; } 33% { opacity: 1; } 66% { opacity: .85; } 100% { opacity: .8; } }
@keyframes gpl-wall { 0% { transform: translateY(0); } 33% { transform: translateY(-4px); } 66% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gpl-door { 0% { transform: scaleX(1) translateX(0); opacity: .8; } 25% { transform: scaleX(1.05) translateX(3px); opacity: 1; } 50% { transform: scaleX(.95) translateX(-2px); opacity: .9; } 75% { transform: scaleX(1.02) translateX(2px); opacity: .95; } 100% { transform: scaleX(1) translateX(0); opacity: .85; } }
@keyframes gpl-posthumus { 0% { transform: translateX(0) scaleY(1); } 20% { transform: translateX(-4px) scaleY(1.02); } 40% { transform: translateX(-8px) scaleY(.98); } 60% { transform: translateX(-12px) scaleY(1.01); } 80% { transform: translateX(-16px) scaleY(.99); } 100% { transform: translateX(-20px) scaleY(1); } }
@keyframes gpl-imogen { 0% { transform: translateX(0) rotate(0); opacity: .9; } 25% { transform: translateX(4px) rotate(2deg); opacity: 1; } 50% { transform: translateX(8px) rotate(-1deg); opacity: .95; } 75% { transform: translateX(12px) rotate(3deg); opacity: 1; } 100% { transform: translateX(16px) rotate(0); opacity: .9; } }
@keyframes gpl-rose { 0% { transform: scale(1) rotate(0); box-shadow: 0 0 10px 3px rgba(200,85,61,.3); } 50% { transform: scale(1.3) rotate(15deg); box-shadow: 0 0 20px 6px rgba(200,85,61,.5); } 100% { transform: scale(1) rotate(0); box-shadow: 0 0 12px 4px rgba(200,85,61,.35); } }
@keyframes gpl-shadow { 0% { transform: translateX(-10px); } 33% { transform: translateX(5px); } 66% { transform: translateX(-5px); } 100% { transform: translateX(10px); } }
@keyframes gpl-leaf { 0% { transform: translateX(0) translateY(0) rotate(30deg); opacity: .8; } 20% { transform: translateX(-20px) translateY(12vh) rotate(20deg); opacity: .7; } 40% { transform: translateX(10px) translateY(24vh) rotate(40deg); opacity: .5; } 60% { transform: translateX(-15px) translateY(36vh) rotate(15deg); opacity: .4; } 80% { transform: translateX(20px) translateY(48vh) rotate(35deg); opacity: .2; } 100% { transform: translateX(-5px) translateY(60vh) rotate(25deg); opacity: 0; } }

.scn-garden-troth-plight { background: linear-gradient(180deg, #fdf0d8 0%, #f0d8a0 30%, #d4b060 100%), radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 60%); }
.scn-garden-troth-plight .sky-gtp { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8e8ff 0%, #fcf4e0 50%, transparent 100%); animation: gtp-sky 18s ease-in-out infinite alternate; }
.scn-garden-troth-plight .arbor-gtp { position:absolute; bottom:25%; left:25%; width:50%; height:40%; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 20% 20% 5% 5% / 60% 60% 10% 10%; box-shadow: inset 0 8px 30px rgba(0,0,0,.3); animation: gtp-arbor 24s ease-in-out infinite; }
.scn-garden-troth-plight .bench-gtp { position:absolute; bottom:22%; left:38%; width:24%; height:10%; background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 16px rgba(0,0,0,.2); animation: gtp-bench 20s ease-in-out infinite alternate; }
.scn-garden-troth-plight .figure-man-gtp { position:absolute; bottom:24%; left:44%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 60%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtp-man 6s ease-in-out infinite; }
.scn-garden-troth-plight .figure-woman-gtp { position:absolute; bottom:24%; left:38%; width:20px; height:38px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtp-woman 6.5s ease-in-out infinite; animation-delay: .3s; }
.scn-garden-troth-plight .hands-gtp { position:absolute; bottom:32%; left:41%; width:18%; height:6%; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a5a 50%, #6a5a4a 100%); border-radius: 50%; filter: blur(2px); transform: translateY(-2px); animation: gtp-hands 4s ease-in-out infinite alternate; }
.scn-garden-troth-plight .flower-gtp { position:absolute; bottom:28%; left:36%; width:8px; height:8px; background: radial-gradient(circle, #f0d060 0%, #d4a040 70%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(240,208,96,.5); animation: gtp-flower 5s ease-in-out infinite alternate; }
.scn-garden-troth-plight .shadow-gtp { position:absolute; bottom:18%; left:30%; width:40%; height:6%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.12) 30%, rgba(0,0,0,.25) 70%, transparent 100%); filter: blur(5px); animation: gtp-shadow 14s ease-in-out infinite; }
.scn-garden-troth-plight .light-beam-gtp { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, transparent 100%); transform: skewX(-10deg); filter: blur(15px); animation: gtp-beam 8s ease-in-out infinite alternate; }
@keyframes gtp-sky { 0% { opacity: .85; } 33% { opacity: 1; } 66% { opacity: .9; } 100% { opacity: .8; } }
@keyframes gtp-arbor { 0% { transform: scaleX(1) scaleY(1); } 33% { transform: scaleX(1.02) scaleY(1.01); } 66% { transform: scaleX(.98) scaleY(.99); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes gtp-bench { 0% { transform: translateY(0) scaleX(1); } 33% { transform: translateY(-3px) scaleX(1.02); } 66% { transform: translateY(-1px) scaleX(.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gtp-man { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gtp-woman { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gtp-hands { 0% { transform: translateY(-2px) scaleX(1); opacity: .8; } 50% { transform: translateY(-4px) scaleX(1.05); opacity: 1; } 100% { transform: translateY(-2px) scaleX(1); opacity: .85; } }
@keyframes gtp-flower { 0% { transform: scale(1) rotate(0); box-shadow: 0 0 12px 3px rgba(240,208,96,.4); } 50% { transform: scale(1.2) rotate(12deg); box-shadow: 0 0 24px 6px rgba(240,208,96,.6); } 100% { transform: scale(1) rotate(0); box-shadow: 0 0 14px 4px rgba(240,208,96,.45); } }
@keyframes gtp-shadow { 0% { transform: translateX(-10px); } 33% { transform: translateX(5px); } 66% { transform: translateX(-5px); } 100% { transform: translateX(10px); } }
@keyframes gtp-beam { 0% { opacity: .4; transform: skewX(-10deg) scaleY(1); } 50% { opacity: .8; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity: .5; transform: skewX(-12deg) scaleY(.95); } }

.scn-proof-of-identity {
  background:
    linear-gradient(180deg, #f7f0e0 0%, #e8dcc0 40%, #d4c8a0 80%, #c0b090 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-proof-of-identity .bg-light {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,245,230,0.5) 0%, transparent 100%);
  animation: pid-bg 10s ease-in-out infinite alternate;
}
.scn-proof-of-identity .window-frame {
  position:absolute; top:8%; left:10%; width:30%; height:55%;
  border: 6px solid #8a7a60; border-radius: 4px 4px 0 0;
  background: radial-gradient(ellipse at 50% 40%, #fffce8 0%, #e8dcc0 60%, transparent 100%);
  box-shadow: inset 0 0 40px rgba(200,180,140,0.3);
  animation: pid-window 12s ease-in-out infinite alternate;
}
.scn-proof-of-identity .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #b8a080 0px, #b8a080 2px, #c8b090 2px, #c8b090 4px);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-proof-of-identity .figure-stamp {
  position:absolute; bottom:28%; left:50%; width:32px; height:80px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pid-figure 6s ease-in-out infinite;
}
.scn-proof-of-identity .emblem {
  position:absolute; bottom:60%; left:50%; width:18px; height:18px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6), 0 0 40px 12px rgba(255,208,128,0.3);
  animation: pid-emblem 3s ease-in-out infinite alternate;
}
.scn-proof-of-identity .light-ray {
  position:absolute; top:0; left:10%; width:30%; height:80%;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pid-ray 8s ease-in-out infinite alternate;
}
.scn-proof-of-identity .motes-a {
  position:absolute; top:20%; left:15%; width:4px; height:4px;
  background: rgba(255,240,200,0.6); border-radius:50%;
  filter: blur(1px);
  animation: pid-mote-a 18s linear infinite;
}
.scn-proof-of-identity .motes-b {
  position:absolute; top:30%; left:20%; width:3px; height:3px;
  background: rgba(255,240,200,0.5); border-radius:50%;
  filter: blur(1px);
  animation: pid-mote-b 22s linear infinite reverse;
}
@keyframes pid-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pid-window { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.92; transform: scaleY(0.98) } }
@keyframes pid-figure { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } }
@keyframes pid-emblem { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.5), 0 0 30px 8px rgba(255,208,128,0.2); opacity:0.85 } 50% { box-shadow: 0 0 25px 8px rgba(255,208,128,0.8), 0 0 50px 16px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(255,208,128,0.6), 0 0 35px 10px rgba(255,208,128,0.3); opacity:0.9 } }
@keyframes pid-ray { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-5px) } 100% { opacity:0.4; transform: translateY(2px) } }
@keyframes pid-mote-a { 0% { transform: translate(0, 0) } 100% { transform: translate(30px, -60px) } }
@keyframes pid-mote-b { 0% { transform: translate(0, 0) } 100% { transform: translate(-20px, -40px) } }

.scn-imogen-embraces-brothers {
  background:
    linear-gradient(180deg, #8a6040 0%, #b87850 30%, #c8a070 60%, #d8b890 100%),
    radial-gradient(ellipse at 30% 70%, #e0b080 0%, transparent 70%);
}
.scn-imogen-embraces-brothers .bg-warm {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b08050 0%, #c8a070 40%, transparent 100%);
  animation: imb-bg 12s ease-in-out infinite alternate;
}
.scn-imogen-embraces-brothers .hearth-glow {
  position:absolute; bottom:20%; left:5%; width:50%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #ffa040 0%, #d07020 50%, transparent 100%);
  box-shadow: 0 0 80px 40px rgba(255,160,64,0.3);
  animation: imb-glow 5s ease-in-out infinite alternate;
}
.scn-imogen-embraces-brothers .hearth-stone {
  position:absolute; bottom:15%; left:15%; width:30%; height:12%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-imogen-embraces-brothers .figure-ima-sil {
  position:absolute; bottom:25%; left:45%; width:28px; height:72px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: imb-ima 4s ease-in-out infinite;
}
.scn-imogen-embraces-brothers .figure-brother-left {
  position:absolute; bottom:26%; left:35%; width:30px; height:68px;
  transform:rotate(10deg);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: imb-left 6s ease-in-out infinite alternate;
}
.scn-imogen-embraces-brothers .figure-brother-right {
  position:absolute; bottom:26%; right:35%; width:30px; height:68px;
  transform:rotate(-10deg);
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: imb-right 6s ease-in-out infinite alternate-reverse;
}
.scn-imogen-embraces-brothers .rug {
  position:absolute; bottom:8%; left:20%; width:60%; height:20%;
  background: repeating-linear-gradient(45deg, #6a5040 0px, #6a5040 6px, #5a4030 6px, #5a4030 12px);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-imogen-embraces-brothers .ember-a {
  position:absolute; bottom:35%; left:10%; width:6px; height:6px;
  background: radial-gradient(circle, #ffc040 0%, #ff8020 80%);
  border-radius:50%;
  box-shadow: 0 0 12px 4px #ff8020;
  animation: imb-ember 3s ease-in-out infinite;
}
.scn-imogen-embraces-brothers .ember-b {
  position:absolute; bottom:38%; left:14%; width:4px; height:4px;
  background: radial-gradient(circle, #ffd060 0%, #ff9030 80%);
  border-radius:50%;
  box-shadow: 0 0 8px 2px #ff9030;
  animation: imb-ember 4s ease-in-out infinite reverse;
}
@keyframes imb-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes imb-glow { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes imb-ima { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } }
@keyframes imb-left { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes imb-right { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes imb-ember { 0% { transform: translateY(0) scale(0.8); opacity:0.6 } 50% { transform: translateY(-8px) scale(1.2); opacity:1 } 100% { transform: translateY(0) scale(0.8); opacity:0.6 } }

.scn-cymbeline-questions {
  background:
    linear-gradient(180deg, #c8b898 0%, #b8a888 40%, #a09078 80%, #908068 100%),
    radial-gradient(ellipse at 50% 50%, #e0d0b0 0%, #b8a888 60%, transparent 100%);
}
.scn-cymbeline-questions .bg-palace {
  position:absolute; inset:0; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 50%, transparent 100%);
  animation: cym-bg 14s ease-in-out infinite alternate;
}
.scn-cymbeline-questions .throne-base {
  position:absolute; bottom:20%; left:50%; width:40%; height:16%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #705840 0%, #4a3828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-cymbeline-questions .figure-king-sil {
  position:absolute; bottom:36%; left:50%; width:36px; height:90px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cym-king 8s ease-in-out infinite;
}
.scn-cymbeline-questions .figure-courtier-left {
  position:absolute; bottom:32%; left:30%; width:26px; height:70px;
  transform:rotate(5deg);
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cym-court-l 10s ease-in-out infinite alternate;
}
.scn-cymbeline-questions .figure-courtier-right {
  position:absolute; bottom:32%; right:30%; width:26px; height:70px;
  transform:rotate(-5deg);
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cym-court-r 10s ease-in-out infinite alternate-reverse;
}
.scn-cymbeline-questions .pillar-left {
  position:absolute; bottom:10%; left:8%; width:6%; height:70%;
  background: linear-gradient(90deg, #908068, #b8a888 30%, #908068 60%, #706048);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
  animation: cym-pillar 16s ease-in-out infinite alternate;
}
.scn-cymbeline-questions .pillar-right {
  position:absolute; bottom:10%; right:8%; width:6%; height:70%;
  background: linear-gradient(90deg, #908068, #b8a888 30%, #908068 60%, #706048);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
  animation: cym-pillar 20s ease-in-out infinite alternate-reverse;
}
.scn-cymbeline-questions .light-shaft {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(255,248,220,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: cym-shaft 7s ease-in-out infinite alternate;
}
.scn-cymbeline-questions .floor-tiles {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: repeating-conic-gradient(#806850 0 25%, #706040 0 50%);
  background-size: 20px 20px;
  opacity:0.4;
}
@keyframes cym-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes cym-king { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-3px) rotate(0deg) } }
@keyframes cym-court-l { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes cym-court-r { 0% { transform: rotate(-6deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes cym-pillar { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:0.85; transform: scaleY(0.99) } }
@keyframes cym-shaft { 0% { opacity:0.2; transform: translateX(0) } 50% { opacity:0.5; transform: translateX(2px) } 100% { opacity:0.3; transform: translateX(-1px) } }

.scn-joyful-reconciliation {
  background:
    linear-gradient(180deg, #c0a080 0%, #d0b890 40%, #e0c8a0 80%, #f0d8b0 100%),
    radial-gradient(ellipse at 50% 50%, #f0d8b0 0%, #c0a080 60%, transparent 100%);
}
.scn-joyful-reconciliation .bg-curtain {
  position:absolute; inset:0 0 20% 0;
  background:
    linear-gradient(180deg, #806040 0%, #a08060 30%, transparent 100%),
    repeating-linear-gradient(0deg, #604020 0px, #604020 4px, #7a5a3a 4px, #7a5a3a 8px);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 85% 100%, 15% 100%, 0 70%);
  animation: joy-curtain 12s ease-in-out infinite alternate;
}
.scn-joyful-reconciliation .floor-shine {
  position:absolute; bottom:8%; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #c8b090 0%, #a08870 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.15);
  animation: joy-floor 14s ease-in-out infinite alternate;
}
.scn-joyful-reconciliation .figure-king {
  position:absolute; bottom:28%; left:55%; width:34px; height:85px;
  transform:rotate(5deg);
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: joy-king 5s ease-in-out infinite;
}
.scn-joyful-reconciliation .figure-soldier-kneel {
  position:absolute; bottom:15%; left:40%; width:30px; height:60px;
  transform:rotate(-20deg) translateY(10px);
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: joy-soldier 6s ease-in-out infinite alternate;
}
.scn-joyful-reconciliation .embrace-glow {
  position:absolute; bottom:35%; left:38%; width:24%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,80,0.3) 0%, transparent 100%);
  animation: joy-glow 4s ease-in-out infinite alternate;
}
.scn-joyful-reconciliation .spark-a {
  position:absolute; bottom:60%; left:30%; width:4px; height:4px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 80%);
  border-radius:50%;
  box-shadow: 0 0 8px 2px #ffa030;
  animation: joy-spark 3s ease-in-out infinite;
}
.scn-joyful-reconciliation .spark-b {
  position:absolute; bottom:65%; left:45%; width:3px; height:3px;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 80%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px #ffb040;
  animation: joy-spark 3.5s ease-in-out infinite 0.5s;
}
.scn-joyful-reconciliation .spark-c {
  position:absolute; bottom:58%; right:35%; width:5px; height:5px;
  background: radial-gradient(circle, #ffe070 0%, #ffa030 80%);
  border-radius:50%;
  box-shadow: 0 0 10px 3px #ffa030;
  animation: joy-spark 4s ease-in-out infinite 1s;
}
.scn-joyful-reconciliation .spark-d {
  position:absolute; bottom:70%; left:50%; width:3px; height:3px;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 80%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px #ffb040;
  animation: joy-spark 2.8s ease-in-out infinite 1.5s;
}
@keyframes joy-curtain { 0% { transform: translateY(0); opacity:0.9 } 50% { transform: translateY(-3px); opacity:1 } 100% { transform: translateY(0); opacity:0.95 } }
@keyframes joy-floor { 0% { opacity:0.8; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:0.85; transform: scaleX(0.98) } }
@keyframes joy-king { 0%,100% { transform: rotate(4deg) translateY(0) } 25% { transform: rotate(6deg) translateY(-2px) } 50% { transform: rotate(4deg) translateY(-4px) } 75% { transform: rotate(2deg) translateY(-1px) } }
@keyframes joy-soldier { 0% { transform: rotate(-18deg) translateY(8px) } 50% { transform: rotate(-22deg) translateY(12px) } 100% { transform: rotate(-18deg) translateY(8px) } }
@keyframes joy-glow { 0% { opacity:0.4; transform: scale(0.95) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.5; transform: scale(0.98) } }
@keyframes joy-spark { 0% { transform: translateY(0) scale(0.8); opacity:0.5 } 50% { transform: translateY(-12px) scale(1.3); opacity:1 } 100% { transform: translateY(0) scale(0.8); opacity:0.5 } }

/* Scene 1 – garden-arrival-gentlemen (tense, sunlit) */
.scn-garden-arrival-gentlemen {
  background: 
    linear-gradient(180deg, #4a7a9a 0%, #b0c8e0 40%, #e8dfb8 70%, #c8a870 100%),
    radial-gradient(ellipse at 50% 0%, #ffe78a 0%, transparent 60%);
}
.scn-garden-arrival-gentlemen .sky {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #8ab4d0 0%, #d4e4f0 40%, transparent 100%);
  animation: g1-sky 12s ease-in-out infinite alternate;
}
.scn-garden-arrival-gentlemen .palace-wall {
  position: absolute; bottom:20%; left:10%; width:35%; height:40%;
  background: linear-gradient(180deg, #c9b38a 0%, #a0805a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  transform: skewY(-2deg);
  animation: g1-wall 8s ease-in-out infinite;
}
.scn-garden-arrival-gentlemen .garden-path {
  position: absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #b5a070 0%, #7a5e3a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: g1-path 6s ease-in-out infinite alternate;
}
.scn-garden-arrival-gentlemen .tree-left {
  position: absolute; bottom:15%; left:5%; width:60px; height:100px;
  background: radial-gradient(ellipse at 50% 0%, #3a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  animation: g1-tree 10s ease-in-out infinite;
}
.scn-garden-arrival-gentlemen .gentleman-left {
  position: absolute; bottom:20%; left:38%; width:20px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px #00000044;
  animation: g1-gent1 3s ease-in-out infinite;
}
.scn-garden-arrival-gentlemen .gentleman-right {
  position: absolute; bottom:20%; left:52%; width:18px; height:48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px #00000044;
  animation: g1-gent2 3.5s ease-in-out infinite 0.5s;
}
.scn-garden-arrival-gentlemen .shadow-left {
  position: absolute; bottom:10%; left:35%; width:30px; height:6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%; filter: blur(3px);
  animation: g1-shadow 3s ease-in-out infinite;
}
.scn-garden-arrival-gentlemen .shadow-right {
  position: absolute; bottom:10%; left:50%; width:28px; height:5px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%; filter: blur(3px);
  animation: g1-shadow 3.5s ease-in-out infinite 0.5s;
}
@keyframes g1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes g1-wall { 0% { transform: skewY(-2deg) } 50% { transform: skewY(0deg) scaleY(1.02) } 100% { transform: skewY(-2deg) } }
@keyframes g1-path { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes g1-tree { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) scale(1.01) } 100% { transform: rotate(-5deg) } }
@keyframes g1-gent1 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes g1-gent2 { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes g1-shadow { 0% { width:30px; opacity:0.5 } 50% { width:20px; opacity:0.3 } 100% { width:30px; opacity:0.5 } }

/* Scene 2 – garden-discourse-continued (tense, sunlit) */
.scn-garden-discourse-continued {
  background: 
    linear-gradient(180deg, #3d6b8a 0%, #a8c4dc 35%, #e0d4a0 65%, #b89a60 100%),
    radial-gradient(ellipse at 30% 20%, #ffe68a 0%, transparent 50%),
    radial-gradient(ellipse at 70% 40%, #ffd06a 0%, transparent 40%);
}
.scn-garden-discourse-continued .sky {
  position: absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #84b0cc 0%, #c8dae8 30%, transparent 100%);
  animation: g2-sky 14s ease-in-out infinite alternate;
}
.scn-garden-discourse-continued .palace-arch {
  position: absolute; bottom:18%; left:20%; width:24%; height:50%;
  background: linear-gradient(135deg, #c0a878 0%, #a0804a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
  transform: skewX(2deg);
  animation: g2-arch 9s ease-in-out infinite;
}
.scn-garden-discourse-continued .throne {
  position: absolute; bottom:25%; left:30%; width:40px; height:45px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: scaleX(1.2);
  animation: g2-throne 7s ease-in-out infinite;
}
.scn-garden-discourse-continued .courtier-left {
  position: absolute; bottom:18%; left:15%; width:16px; height:44px;
  background: linear-gradient(180deg, #2e2e3a 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: g2-courtL 3s ease-in-out infinite;
}
.scn-garden-discourse-continued .courtier-right {
  position: absolute; bottom:18%; left:45%; width:16px; height:42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: g2-courtR 3.2s ease-in-out infinite 0.3s;
}
.scn-garden-discourse-continued .queen-figure {
  position: absolute; bottom:21%; left:34%; width:14px; height:38px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: g2-queen 4s ease-in-out infinite 0.7s;
}
.scn-garden-discourse-continued .hanging-vine {
  position: absolute; top:10%; left:55%; width:12px; height:60px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 20% 20% / 10% 10% 40% 40%;
  transform: rotate(10deg);
  animation: g2-vine 15s ease-in-out infinite alternate;
}
.scn-garden-discourse-continued .shadow-throne {
  position: absolute; bottom:12%; left:28%; width:45px; height:8px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%; filter: blur(4px);
  animation: g2-shade 7s ease-in-out infinite;
}
@keyframes g2-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes g2-arch { 0% { transform: skewX(2deg) scaleY(1) } 50% { transform: skewX(0deg) scaleY(1.03) } 100% { transform: skewX(2deg) scaleY(1) } }
@keyframes g2-throne { 0% { transform: scaleX(1.2) translateY(0) } 50% { transform: scaleX(1.2) translateY(-2px) } 100% { transform: scaleX(1.2) translateY(0) } }
@keyframes g2-courtL { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes g2-courtR { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes g2-queen { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes g2-vine { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) scaleY(1.05) } 100% { transform: rotate(8deg) } }
@keyframes g2-shade { 0% { width:45px; opacity:0.3 } 50% { width:35px; opacity:0.5 } 100% { width:45px; opacity:0.3 } }

/* Scene 3 – garden-praise-posthumus (warm, sunlit) */
.scn-garden-praise-posthumus {
  background: 
    linear-gradient(180deg, #f5d29a 0%, #fae3b8 35%, #ffeebb 60%, #edd9a0 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-garden-praise-posthumus .sky-glow {
  position: absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #ffdd88 0%, #ffeebb 40%, transparent 100%);
  animation: g3-sky 10s ease-in-out infinite alternate;
}
.scn-garden-praise-posthumus .garden-arbor {
  position: absolute; bottom:15%; left:30%; width:40%; height:35%;
  background: radial-gradient(ellipse at 50% 100%, #b8a070 0%, #8a6a3a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.1);
  transform: scale(0.95);
  animation: g3-arbor 12s ease-in-out infinite;
}
.scn-garden-praise-posthumus .figure-praise {
  position: absolute; bottom:12%; left:50%; width:22px; height:55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px #ffd080, 0 0 40px #ffc060;
  animation: g3-fig 5s ease-in-out infinite;
}
.scn-garden-praise-posthumus .laurel-wreath {
  position: absolute; bottom:40%; left:46%; width:16px; height:12px;
  background: radial-gradient(circle, #c8a842 0%, #4a7a2a 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(1px);
  animation: g3-wreath 6s ease-in-out infinite alternate;
}
.scn-garden-praise-posthumus .sun-ray {
  position: absolute; top:5%; left:40%; width:4px; height:60%;
  background: linear-gradient(180deg, #ffd080 0%, transparent 100%);
  transform: rotate(-15deg);
  opacity: 0.45;
  box-shadow: 10px 0 20px #ffd080;
  animation: g3-ray 8s ease-in-out infinite alternate;
}
.scn-garden-praise-posthumus .flower-vine {
  position: absolute; bottom:18%; left:25%; width:16px; height:40px;
  background: linear-gradient(180deg, #5a9a3a 0%, #3a6a1a 100%);
  border-radius: 50% 50% 20% 20% / 10% 10% 40% 40%;
  transform: rotate(15deg);
  animation: g3-vine 14s ease-in-out infinite alternate;
}
.scn-garden-praise-posthumus .ground-warm {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #b8a070 0%, #8a6a3a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: g3-ground 8s ease-in-out infinite alternate;
}
@keyframes g3-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes g3-arbor { 0% { transform: scale(0.95) } 50% { transform: scale(1) } 100% { transform: scale(0.95) } }
@keyframes g3-fig { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes g3-wreath { 0% { transform: scale(1) rotate(0deg) } 100% { transform: scale(1.1) rotate(10deg) } }
@keyframes g3-ray { 0% { transform: rotate(-15deg); opacity:0.45 } 50% { transform: rotate(-10deg); opacity:0.6 } 100% { transform: rotate(-15deg); opacity:0.45 } }
@keyframes g3-vine { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) scaleY(1.05) } 100% { transform: rotate(12deg) } }
@keyframes g3-ground { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }

/* Scene 4 – garden-comparison-speech (warm, sunlit) */
.scn-garden-comparison-speech {
  background: 
    linear-gradient(180deg, #f5d29a 0%, #fae3b8 30%, #ffeebb 55%, #edd9a0 100%),
    radial-gradient(ellipse at 20% 30%, #fff5d0 0%, transparent 60%);
}
.scn-garden-comparison-speech .sky {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffdd88 0%, #ffe8b0 30%, transparent 100%);
  animation: g4-sky 11s ease-in-out infinite alternate;
}
.scn-garden-comparison-speech .colonnade {
  position: absolute; bottom:10%; left:10%; width:80%; height:50%;
  background: linear-gradient(90deg, #c0a878 0%, #d4b890 20%, transparent 30%, transparent 70%, #d4b890 80%, #c0a878 100%);
  background-size: 30% 100%;
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  transform: perspective(400px) rotateX(5deg);
  animation: g4-colonnade 15s ease-in-out infinite alternate;
}
.scn-garden-comparison-speech .figure-left {
  position: absolute; bottom:12%; left:25%; width:18px; height:48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: g4-figL 3.5s ease-in-out infinite;
}
.scn-garden-comparison-speech .figure-right {
  position: absolute; bottom:12%; left:55%; width:22px; height:52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 14px #ffc060;
  animation: g4-figR 4s ease-in-out infinite 0.5s;
}
.scn-garden-comparison-speech .pedestal {
  position: absolute; bottom:8%; left:48%; width:30px; height:8px;
  background: linear-gradient(180deg, #b8a070 0%, #8a6a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  animation: g4-ped 9s ease-in-out infinite;
}
.scn-garden-comparison-speech .olive-branch {
  position: absolute; bottom:20%; left:52%; width:14px; height:22px;
  background: radial-gradient(ellipse at 50% 100%, #5a9a3a 0%, #3a6a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 10% 10%;
  transform: rotate(20deg);
  animation: g4-olive 12s ease-in-out infinite alternate;
}
.scn-garden-comparison-speech .shadow-base {
  position: absolute; bottom:5%; left:30%; width:80px; height:6px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%; filter: blur(4px);
  animation: g4-shade 6s ease-in-out infinite;
}
@keyframes g4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes g4-colonnade { 0% { transform: perspective(400px) rotateX(5deg) } 50% { transform: perspective(400px) rotateX(2deg) scaleY(1.01) } 100% { transform: perspective(400px) rotateX(5deg) } }
@keyframes g4-figL { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes g4-figR { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes g4-ped { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes g4-olive { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(25deg) scale(1.05) } 100% { transform: rotate(18deg) scale(1) } }
@keyframes g4-shade { 0% { width:80px; opacity:0.3 } 50% { width:70px; opacity:0.45 } 100% { width:80px; opacity:0.3 } }

/* scene: brothers-urging-rest */
.scn-brothers-urging-rest {
  background: linear-gradient(180deg, #2a1e14 0%, #1f140e 40%, #0d0a08 100%),
              radial-gradient(ellipse at 50% 60%, #3a2818 0%, transparent 70%);
}
.scn-brothers-urging-rest .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a120e 0%, #0f0c0a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-brothers-urging-rest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-brothers-urging-rest .fire-glow {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8843a 0%, #c05a20 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #b85a20, 0 0 120px 50px rgba(184,90,32,0.3);
  animation: bu1-fire 3s ease-in-out infinite alternate;
}
.scn-brothers-urging-rest .bed {
  position: absolute; bottom: 30%; left: 30%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-brothers-urging-rest .figure-rest {
  position: absolute; bottom: 32%; left: 38%; width: 10%; height: 16%;
  background: radial-gradient(ellipse 60% 70% at 50% 40%, #4a3828 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bu1-lying 6s ease-in-out infinite alternate;
}
.scn-brothers-urging-rest .figure-stand {
  position: absolute; bottom: 32%; left: 52%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2818 0%, #1e1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bu1-stand 4s ease-in-out infinite;
}
.scn-brothers-urging-rest .figure-door {
  position: absolute; bottom: 32%; left: 70%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: bu1-walk 7s ease-in-out infinite;
}
.scn-brothers-urging-rest .door {
  position: absolute; bottom: 30%; left: 72%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #1e1612 0%, #0a0806 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.4);
}
@keyframes bu1-fire {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; }
}
@keyframes bu1-lying {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes bu1-stand {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes bu1-walk {
  0% { transform: scaleX(-1) translateX(0); }
  30% { transform: scaleX(-1) translateX(8px) rotate(2deg); }
  60% { transform: scaleX(-1) translateX(16px) rotate(-1deg); }
  100% { transform: scaleX(-1) translateX(0); }
}

/* scene: brothers-praise-fidele */
.scn-brothers-praise-fidele {
  background: linear-gradient(180deg, #2e2218 0%, #1f140e 50%, #0d0a08 100%),
              radial-gradient(ellipse at 50% 30%, #4a3424 0%, transparent 80%);
}
.scn-brothers-praise-fidele .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a120e 0%, #0f0c0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-brothers-praise-fidele .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-brothers-praise-fidele .hearth {
  position: absolute; bottom: 25%; left: 20%; width: 25%; height: 18%;
  background: linear-gradient(180deg, #3a2818 0%, #1e1612 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
}
.scn-brothers-praise-fidele .pot {
  position: absolute; bottom: 28%; left: 28%; width: 8%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(200,130,60,0.3);
  animation: bp2-pot 5s ease-in-out infinite;
}
.scn-brothers-praise-fidele .figure-cook {
  position: absolute; bottom: 26%; left: 24%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #3a2818 0%, #1e1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bp2-cook 4s ease-in-out infinite;
}
.scn-brothers-praise-fidele .figure-sing {
  position: absolute; bottom: 28%; left: 52%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #3a2818 0%, #1e1612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: bp2-sing 6s ease-in-out infinite alternate;
}
.scn-brothers-praise-fidele .figure-listen {
  position: absolute; bottom: 26%; left: 68%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #140e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: bp2-listen 8s ease-in-out infinite;
}
.scn-brothers-praise-fidele .shadow-dance {
  position: absolute; bottom: 25%; left: 55%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bp2-shadow 10s ease-in-out infinite;
}
@keyframes bp2-pot {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes bp2-cook {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bp2-sing {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes bp2-listen {
  0% { transform: scaleX(-1) translateX(0); }
  50% { transform: scaleX(-1) translateX(4px) rotate(2deg); }
  100% { transform: scaleX(-1) translateX(0); }
}
@keyframes bp2-shadow {
  0% { opacity: 0.2; transform: scale(1) translateY(0); }
  50% { opacity: 0.4; transform: scale(1.1) translateY(-3px); }
  100% { opacity: 0.2; transform: scale(1) translateY(0); }
}

/* scene: morning-departure */
.scn-morning-departure {
  background: linear-gradient(180deg, #f5d6a8 0%, #e8b878 30%, #c89050 60%, #7a5830 100%),
              radial-gradient(ellipse at 50% 20%, #fce4b0 0%, transparent 60%);
}
.scn-morning-departure .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0c888 0%, #d8a858 50%, #b88838 100%);
  animation: md3-sky 12s ease-in-out infinite alternate;
}
.scn-morning-departure .sun-glow {
  position: absolute; top: 12%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f0a030, 0 0 160px 60px rgba(240,160,48,0.3);
  animation: md3-sun 8s ease-in-out infinite alternate;
}
.scn-morning-departure .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #7a5830 0%, #5a3a20 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
}
.scn-morning-departure .tree-grief {
  position: absolute; bottom: 38%; left: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%);
  border-radius: 10% 10% 40% 40% / 10% 10% 30% 30%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: md3-tree 15s ease-in-out infinite;
}
.scn-morning-departure .figure-leaving {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: md3-leave 6s ease-in-out infinite;
}
.scn-morning-departure .figure-watching {
  position: absolute; bottom: 35%; left: 40%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: md3-watch 10s ease-in-out infinite;
}
.scn-morning-departure .pack {
  position: absolute; bottom: 38%; left: 52%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 10%;
  transform: rotate(-5deg);
  animation: md3-pack 4s ease-in-out infinite alternate;
}
@keyframes md3-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes md3-sun {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}
@keyframes md3-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) scale(1.01); }
  100% { transform: rotate(-1deg); }
}
@keyframes md3-leave {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(10px) rotate(2deg); }
  60% { transform: translateX(20px) rotate(-1deg); }
  100% { transform: translateX(0); }
}
@keyframes md3-watch {
  0% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); }
  100% { transform: scaleX(-1) translateY(0); }
}
@keyframes md3-pack {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-2px); }
}

/* scene: cloten-arrival */
.scn-cloten-arrival {
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 70%, #0a1a1a 100%),
              radial-gradient(ellipse at 40% 60%, #5a7a7a 0%, transparent 70%);
}
.scn-cloten-arrival .forest-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-cloten-arrival .mist {
  position: absolute; top: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(200,220,220,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: ca4-mist 20s ease-in-out infinite;
}
.scn-cloten-arrival .tree-left {
  position: absolute; bottom: 18%; left: 5%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: ca4-tree 8s ease-in-out infinite alternate;
}
.scn-cloten-arrival .tree-right {
  position: absolute; bottom: 18%; right: 5%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.4);
  animation: ca4-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-cloten-arrival .figure-cloten {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scale(1.1);
  animation: ca4-cloten 4s ease-in-out infinite alternate;
}
.scn-cloten-arrival .sword-glin {
  position: absolute; bottom: 28%; left: 48%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #a0b0b0 0%, #607070 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,220,220,0.3);
  transform: rotate(15deg);
  animation: ca4-sword 3s ease-in-out infinite;
}
.scn-cloten-arrival .figure-hide-a {
  position: absolute; bottom: 16%; left: 30%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: ca4-hide 6s ease-in-out infinite;
}
.scn-cloten-arrival .figure-hide-b {
  position: absolute; bottom: 18%; left: 38%; width: 7%; height: 16%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scale(0.9);
  animation: ca4-hide 7s ease-in-out infinite 1s;
}
.scn-cloten-arrival .shadow-ambush {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 5%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: ca4-shade 5s ease-in-out infinite alternate;
}
@keyframes ca4-mist {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(0); }
}
@keyframes ca4-tree {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes ca4-cloten {
  0% { transform: scale(1.1) translateX(0); }
  50% { transform: scale(1.1) translateX(6px) rotate(2deg); }
  100% { transform: scale(1.1) translateX(-2px); }
}
@keyframes ca4-sword {
  0% { transform: rotate(15deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(10deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(15deg) translateY(0); opacity: 0.7; }
}
@keyframes ca4-hide {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ca4-shade {
  0% { opacity: 0.2; transform: scaleX(1); }
  100% { opacity: 0.4; transform: scaleX(1.2); }
}

.scn-palace-gate-insults {
  background: linear-gradient(180deg, #7ec8e3 0%, #f9d976 50%, #e8b94a 100%),
              radial-gradient(ellipse at 50% 30%, #fce4a0 0%, transparent 70%);
}
.scn-palace-gate-insults .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  animation: insult-sky 20s ease-in-out infinite alternate;
}
.scn-palace-gate-insults .gate-arch {
  position: absolute; bottom: 30%; left: 50%; width: 50%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a76a 0%, #8b6b3e 50%, #5e421a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: insult-gate 6s ease-in-out infinite;
}
.scn-palace-gate-insults .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a86a 0%, #8b7238 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-palace-gate-insults .fig-left {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2c2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: insult-fig-left 3s ease-in-out infinite;
}
.scn-palace-gate-insults .fig-right {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2c2a2a 0%, #111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: insult-fig-right 2.5s ease-in-out infinite 0.5s;
}
.scn-palace-gate-insults .comb {
  position: absolute; bottom: 32%; right: 15%; width: 20px; height: 10px;
  background: #d45e30;
  border-radius: 50% 50% 0 0;
  animation: insult-comb 2.4s ease-in-out infinite;
}
@keyframes insult-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes insult-gate {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes insult-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-5deg) skewX(0); }
  30% { transform: translateX(8px) translateY(-3px) rotate(5deg) skewX(5deg); }
  60% { transform: translateX(2px) translateY(1px) rotate(-2deg) skewX(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg) skewX(0); }
}
@keyframes insult-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(3deg) scaleX(1); }
  25% { transform: translateX(-6px) translateY(-2px) rotate(-3deg) scaleX(0.95); }
  50% { transform: translateX(0) translateY(1px) rotate(0) scaleX(1); }
  75% { transform: translateX(4px) translateY(-1px) rotate(2deg) scaleX(0.97); }
  100% { transform: translateX(0) translateY(0) rotate(3deg) scaleX(1); }
}
@keyframes insult-comb {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-6px) rotate(15deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-palace-gate-italian-news {
  background: linear-gradient(135deg, #5b7a9a 0%, #9fc3e8 30%, #f2d98a 70%, #e3b455 100%),
              radial-gradient(ellipse at 80% 20%, #ffe4a0 0%, transparent 60%);
}
.scn-palace-gate-italian-news .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #7ea6c4 100%);
  animation: ital-sky 15s ease-in-out infinite alternate;
}
.scn-palace-gate-italian-news .gate-arch {
  position: absolute; bottom: 30%; left: 30%; width: 60%; height: 50%;
  transform: translateX(-10%);
  background: linear-gradient(180deg, #b89a6a 0%, #725434 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
  animation: ital-gate 4s ease-in-out infinite alternate;
}
.scn-palace-gate-italian-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9c8652 0%, #5e4a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-palace-gate-italian-news .lord {
  position: absolute; bottom: 18%; left: 15%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2e2b24 0%, #0f0d0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ital-lord 3s ease-in-out infinite;
}
.scn-palace-gate-italian-news .page {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a352e 0%, #1c1812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ital-page 2s ease-in-out infinite alternate;
}
.scn-palace-gate-italian-news .stranger-shadow {
  position: absolute; bottom: 15%; right: 10%; width: 45px; height: 100px;
  background: rgba(15,10,5,0.6);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: ital-shadow 5s ease-in-out infinite;
}
@keyframes ital-sky {
  0% { opacity: 0.7; filter: brightness(1); }
  50% { opacity: 0.9; filter: brightness(1.1); }
  100% { opacity: 0.6; filter: brightness(0.9); }
}
@keyframes ital-gate {
  0% { transform: translateX(-10%) scaleX(1); }
  50% { transform: translateX(-10%) scaleX(1.02); }
  100% { transform: translateX(-10%) scaleX(0.98); }
}
@keyframes ital-lord {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ital-page {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(8px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ital-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.2) translateX(-10px); opacity: 0.8; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
}

.scn-palace-gate-second-lord-soliloquy {
  background: linear-gradient(135deg, #1a1a2a 0%, #2c2c44 40%, #5a6a7a 80%, #c8d8e8 100%),
              radial-gradient(ellipse at 70% 10%, #ffe4a0 0%, transparent 60%);
}
.scn-palace-gate-second-lord-soliloquy .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8e8f8 0%, #8a9ab0 60%, #3a4a5a 100%);
  animation: sol-sky 25s ease-in-out infinite alternate;
}
.scn-palace-gate-second-lord-soliloquy .gate-shadow {
  position: absolute; bottom: 25%; left: 40%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #2a2018 0%, #040302 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  filter: blur(4px);
  animation: sol-gate-shadow 8s ease-in-out infinite alternate;
}
.scn-palace-gate-second-lord-soliloquy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-palace-gate-second-lord-soliloquy .bowed-figure {
  position: absolute; bottom: 18%; left: 50%; width: 45px; height: 75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1510 0%, #050300 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sol-bowed 6s ease-in-out infinite;
}
.scn-palace-gate-second-lord-soliloquy .mother-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 100px;
  background: rgba(40,20,10,0.7);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(5px);
  animation: sol-mother 12s ease-in-out infinite;
}
.scn-palace-gate-second-lord-soliloquy .chain {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  animation: sol-chain 3s ease-in-out infinite;
}
@keyframes sol-sky {
  0% { opacity: 0.5; filter: brightness(0.8); }
  50% { opacity: 0.8; filter: brightness(1); }
  100% { opacity: 0.4; filter: brightness(0.7); }
}
@keyframes sol-gate-shadow {
  0% { transform: scaleY(1) translateX(0); opacity: 0.7; }
  50% { transform: scaleY(1.1) translateX(10px); opacity: 1; }
  100% { transform: scaleY(1) translateX(0); opacity: 0.7; }
}
@keyframes sol-bowed {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  30% { transform: translateX(-50%) translateY(3px) rotate(5deg); }
  60% { transform: translateX(-50%) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes sol-mother {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(15px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.4; }
}
@keyframes sol-chain {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-bedchamber-night-reading {
  background: linear-gradient(180deg, #1a1412 0%, #2c221e 40%, #3a2e26 60%, #4a3c32 100%),
              radial-gradient(ellipse at 20% 80%, #f5d080 0%, transparent 50%);
}
.scn-bedchamber-night-reading .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c221e 0%, #1a1412 100%);
  opacity: 0.8;
  animation: bed-wall 30s ease-in-out infinite alternate;
}
.scn-bedchamber-night-reading .bed {
  position: absolute; bottom: 10%; left: 50%; width: 70%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: bed-float 8s ease-in-out infinite;
}
.scn-bedchamber-night-reading .figure {
  position: absolute; bottom: 15%; left: 30%; width: 55px; height: 70px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bed-figure 6s ease-in-out infinite;
}
.scn-bedchamber-night-reading .book {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bed-book 9s ease-in-out infinite;
}
.scn-bedchamber-night-reading .candle-glow {
  position: absolute; bottom: 35%; right: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.6), 0 0 60px 30px rgba(255,200,80,0.2);
  animation: bed-candle 2s ease-in-out infinite alternate;
}
.scn-bedchamber-night-reading .window-beam {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(150,180,220,0.2) 0%, rgba(150,180,220,0.05) 80%, transparent 100%);
  transform: rotate(10deg);
  animation: bed-beam 10s ease-in-out infinite alternate;
}
.scn-bedchamber-night-reading .attendant {
  position: absolute; bottom: 10%; right: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bed-attendant 12s ease-in-out infinite;
}
@keyframes bed-wall {
  0% { opacity: 0.7; filter: brightness(0.8); }
  50% { opacity: 0.9; filter: brightness(1); }
  100% { opacity: 0.7; filter: brightness(0.8); }
}
@keyframes bed-float {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.01); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes bed-figure {
  0% { transform: rotate(0) scaleY(1); }
  30% { transform: rotate(3deg) scaleY(0.98); }
  60% { transform: rotate(-2deg) scaleY(1.02); }
  100% { transform: rotate(0) scaleY(1); }
}
@keyframes bed-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes bed-candle {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes bed-beam {
  0% { opacity: 0.2; transform: rotate(10deg) scaleX(1); }
  50% { opacity: 0.4; transform: rotate(12deg) scaleX(1.1); }
  100% { opacity: 0.2; transform: rotate(10deg) scaleX(1); }
}
@keyframes bed-attendant {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* gaoler-philosophy */
.scn-gaoler-philosophy {
  background: linear-gradient(180deg, #2a1e14 0%, #1f1510 50%, #14100c 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-gaoler-philosophy .cell-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e2218 0%, #1a1410 100%); }
.scn-gaoler-philosophy .bars { position:absolute; top:0; bottom:0; width:6px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: 2px 0 4px rgba(0,0,0,.5); }
.scn-gaoler-philosophy .bars-left { left:20%; }
.scn-gaoler-philosophy .bars-right { right:20%; }
.scn-gaoler-philosophy .gaoler { position:absolute; bottom:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: gp-sit 6s ease-in-out infinite; }
.scn-gaoler-philosophy .lamp { position:absolute; top:35%; left:60%; width:12px; height:18px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #c08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,200,80,0.4); animation: gp-flicker 2s ease-in-out infinite alternate; }
.scn-gaoler-philosophy .stool { position:absolute; bottom:20%; left:45%; width:30px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; transform: perspective(200px) rotateX(5deg); }
.scn-gaoler-philosophy .light-glow { position:absolute; top:30%; left:55%; width:80px; height:100px; background: radial-gradient(circle, rgba(255,200,80,0.2) 0%, transparent 70%); animation: gp-glow 3s ease-in-out infinite alternate; }
@keyframes gp-sit { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-48%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes gp-flicker { 0% { box-shadow: 0 0 15px 5px rgba(255,200,80,0.3); opacity:0.85; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,80,0.6); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.4); opacity:0.9; } }
@keyframes gp-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }

/* posthumus-merry */
.scn-posthumus-merry {
  background: linear-gradient(180deg, #1a1822 0%, #12101a 50%, #0a0810 100%), radial-gradient(ellipse at 70% 30%, #2a2840 0%, transparent 50%);
}
.scn-posthumus-merry .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1c28 0%, #14121c 100%); }
.scn-posthumus-merry .bed { position:absolute; bottom:15%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #3a3030 0%, #1e1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-posthumus-merry .figure-sleep { position:absolute; bottom:20%; left:35%; width:50px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 50%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-breath 4s ease-in-out infinite; }
.scn-posthumus-merry .gibbet { position:absolute; bottom:55%; left:50%; width:10px; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: translateX(-50%); }
.scn-posthumus-merry .noose { position:absolute; bottom:55%; left:50%; width:16px; height:16px; background: #3a2a2a; border-radius: 50%; border: 3px solid #5a4a3a; transform: translateX(-50%) translateY(-8px); animation: pm-noose-swing 3s ease-in-out infinite; }
.scn-posthumus-merry .rope { position:absolute; bottom:55%; left:50%; width:3px; height:100px; background: #5a4a3a; transform: translateX(-50%) translateY(-16px); animation: pm-rope-sway 4s ease-in-out infinite; }
.scn-posthumus-merry .window { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border: 4px solid #1a1a2a; border-radius: 10%; }
.scn-posthumus-merry .moon { position:absolute; top:12%; right:18%; width:30px; height:30px; background: radial-gradient(circle, #d0d8e0 0%, #8090a0 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,220,0.3); animation: pm-moon-drift 20s linear infinite; }
@keyframes pm-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pm-noose-swing { 0% { transform: translateX(-50%) translateY(-8px) rotate(-5deg); } 50% { transform: translateX(-50%) translateY(-10px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(-8px) rotate(-5deg); } }
@keyframes pm-rope-sway { 0% { transform: translateX(-50%) translateY(-16px) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-18px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(-16px) rotate(-2deg); } }
@keyframes pm-moon-drift { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

/* blind-way */
.scn-blind-way {
  background: linear-gradient(180deg, #1e1a14 0%, #14100c 50%, #0a0806 100%), radial-gradient(ellipse at 30% 60%, #2a221a 0%, transparent 60%);
}
.scn-blind-way .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a221a 0%, #1a1612 100%); }
.scn-blind-way .wall { position:absolute; bottom:30%; left:50%; width:20%; height:50%; background: linear-gradient(180deg, #3a2e26 0%, #1e1814 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-blind-way .figure-blind { position:absolute; bottom:25%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 50%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: bw-walk 4s ease-in-out infinite; }
.scn-blind-way .stick { position:absolute; bottom:20%; left:30%; width:4px; height:60px; background: #5a4a3a; transform-origin: bottom left; animation: bw-stick-sway 2s ease-in-out infinite; }
.scn-blind-way .hole-light { position:absolute; bottom:45%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #f0d080 0%, #c8a050 60%, transparent 100%); border-radius: 50%; animation: bw-hole-pulse 3s ease-in-out infinite; }
.scn-blind-way .shadow { position:absolute; bottom:25%; left:28%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: bw-shadow 4s ease-in-out infinite; }
@keyframes bw-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes bw-stick-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes bw-hole-pulse { 0% { box-shadow: 0 0 10px 2px rgba(240,208,128,0.5); } 50% { box-shadow: 0 0 25px 8px rgba(240,208,128,0.8); } 100% { box-shadow: 0 0 15px 4px rgba(240,208,128,0.5); } }
@keyframes bw-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* gaoler-final */
.scn-gaoler-final {
  background: linear-gradient(180deg, #1c1410 0%, #14100c 50%, #0c0806 100%), radial-gradient(ellipse at 50% 20%, #2e2218 0%, transparent 50%);
}
.scn-gaoler-final .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1e1612 0%, #120e0a 100%); }
.scn-gaoler-final .gallows { position:absolute; bottom:30%; left:50%; width:12px; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: translateX(-50%); }
.scn-gaoler-final .gibbet { position:absolute; bottom:75%; left:50%; width:60px; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: translateX(-50%); border-radius: 5px; }
.scn-gaoler-final .noose { position:absolute; bottom:72%; left:50%; width:16px; height:16px; background: #3a2a2a; border-radius: 50%; border: 3px solid #5a4a3a; transform: translateX(-50%) translateY(-8px); animation: gf-swing 4s ease-in-out infinite; }
.scn-gaoler-final .figure-convict { position:absolute; bottom:10%; left:50%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 50%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-50%); animation: gf-dangle 6s ease-in-out infinite; }
.scn-gaoler-final .gaoler-fig { position:absolute; bottom:18%; left:30%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-50%); animation: gf-point 5s ease-in-out infinite; }
.scn-gaoler-final .chain { position:absolute; bottom:40%; left:50%; width:4px; height:80px; background: #4a3a2a; transform: translateX(-50%); animation: gf-chain-sway 3s ease-in-out infinite; }
@keyframes gf-swing { 0% { transform: translateX(-50%) translateY(-8px) rotate(-5deg); } 50% { transform: translateX(-50%) translateY(-10px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(-8px) rotate(-5deg); } }
@keyframes gf-dangle { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes gf-point { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes gf-chain-sway { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }

.scn-arviragus-tender {
  background: linear-gradient(180deg, #ffd88a 0%, #ffaa55 30%, #cc7733 60%, #553322 100%),
              radial-gradient(ellipse at 50% 100%, #ffaa55 0%, transparent 60%);
}
.scn-arviragus-tender .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #ffcc88 0%, #ffaa55 50%, transparent 100%);
  animation: at-sky 12s ease-in-out infinite alternate;
}
.scn-arviragus-tender .hill {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #665544 0%, #443322 100%);
  border-radius: 80% 100% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: at-hill 20s ease-in-out infinite;
}
.scn-arviragus-tender .figure-kneel {
  position:absolute; bottom:28%; left:35%; width:40px; height:80px;
  background: linear-gradient(180deg, #332211 0%, #221100 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-kneel 8s ease-in-out infinite;
}
.scn-arviragus-tender .figure-lying {
  position:absolute; bottom:20%; left:45%; width:60px; height:30px;
  background: linear-gradient(180deg, #443322 0%, #332211 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform-origin: center bottom;
  animation: at-lying 8s ease-in-out infinite;
}
.scn-arviragus-tender .glow {
  position:absolute; bottom:40%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, #ffeeaa 0%, #ffcc66 40%, transparent 70%);
  border-radius:50%; filter: blur(10px);
  animation: at-glow 6s ease-in-out infinite alternate;
}
.scn-arviragus-tender .blade {
  position:absolute; bottom:28%; left:25%; width:4px; height:30px;
  background: linear-gradient(180deg, #887744 0%, #443322 100%);
  border-radius:50% 50% 0 0; transform-origin: bottom;
  animation: at-blade 6s ease-in-out infinite;
}

@keyframes at-sky {
  0% { opacity:.7; filter: brightness(1); }
  50% { opacity:1; filter: brightness(1.1); }
  100% { opacity:.8; filter: brightness(1); }
}
@keyframes at-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes at-kneel {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-3deg); }
  50% { transform: translateY(-0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes at-lying {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes at-glow {
  0% { opacity:.5; box-shadow: 0 0 40px 20px #ffcc66, 0 0 80px 30px rgba(255,204,102,.3); }
  50% { opacity:.8; box-shadow: 0 0 60px 30px #ffeeaa, 0 0 100px 50px rgba(255,238,170,.4); }
  100% { opacity:.6; box-shadow: 0 0 40px 20px #ffcc66, 0 0 80px 30px rgba(255,204,102,.3); }
}
@keyframes at-blade {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}

.scn-nature-praise {
  background: linear-gradient(180deg, #b5d8e8 0%, #88c0d0 30%, #e8a870 60%, #c08050 100%),
              radial-gradient(ellipse at 50% 100%, #e8a870 0%, transparent 70%);
}
.scn-nature-praise .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffeedd 0%, #b5d8e8 50%, transparent 100%);
  animation: np-sky 15s ease-in-out infinite alternate;
}
.scn-nature-praise .mountain {
  position:absolute; bottom:25%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: np-mtn 20s ease-in-out infinite;
}
.scn-nature-praise .pine-left,
.scn-nature-praise .pine-right {
  position:absolute; bottom:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius:50% 50% 0 0; transform-origin: bottom center;
  animation: np-pine 8s ease-in-out infinite;
}
.scn-nature-praise .pine-left { left:20%; }
.scn-nature-praise .pine-right { right:20%; animation-delay: -3s; }
.scn-nature-praise .figure {
  position:absolute; bottom:28%; left:50%; width:30px; height:70px;
  background: linear-gradient(180deg, #221100 0%, #110000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); transform-origin: bottom center;
  animation: np-fig 12s ease-in-out infinite;
}
.scn-nature-praise .bird {
  position:absolute; top:20%; right:20%; width:30px; height:10px;
  background: radial-gradient(circle at 0 50%, #332211 0%, transparent 60%);
  border-radius:50%; filter: blur(2px);
  animation: np-bird 35s linear infinite;
}

@keyframes np-sky {
  0% { opacity:.8; filter: brightness(.95); }
  50% { opacity:1; filter: brightness(1.05); }
  100% { opacity:.9; filter: brightness(.98); }
}
@keyframes np-mtn {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes np-pine {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(0deg); }
}
@keyframes np-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(4deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-2px) rotate(-4deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes np-bird {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-20px) translateY(-5px) rotate(-5deg); }
  50% { transform: translateX(-40px) translateY(0) rotate(0deg); }
  75% { transform: translateX(-20px) translateY(5px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

.scn-solemn-music {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 20%, #4a3a5e 50%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-solemn-music .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a2a4e 40%, transparent 100%);
  animation: sm-sky 18s ease-in-out infinite alternate;
}
.scn-solemn-music .river {
  position:absolute; bottom:10%; left:0; right:0; height:30%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 0 0 40% 40%;
  animation: sm-river 12s linear infinite;
}
.scn-solemn-music .bank {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.6);
}
.scn-solemn-music .figure {
  position:absolute; bottom:28%; left:50%; width:30px; height:80px;
  background: linear-gradient(180deg, #221122 0%, #110011 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); transform-origin: bottom center;
  animation: sm-fig 8s ease-in-out infinite;
}
.scn-solemn-music .instrument {
  position:absolute; bottom:30%; left:48%; width:40px; height:15px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-15deg);
  animation: sm-instr 8s ease-in-out infinite;
}
.scn-solemn-music .leaf {
  position:absolute; top:20%; left:30%; width:10px; height:10px;
  background: radial-gradient(circle, #5a4a3a 0%, transparent 60%);
  border-radius:50%; filter: blur(4px);
  animation: sm-leaf 20s linear infinite;
}

@keyframes sm-sky {
  0% { opacity:.6; filter: brightness(.8); }
  50% { opacity:1; filter: brightness(1); }
  100% { opacity:.7; filter: brightness(.9); }
}
@keyframes sm-river {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}
@keyframes sm-fig {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes sm-instr {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sm-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity:0; }
  10% { opacity:1; }
  90% { opacity:1; }
  100% { transform: translate(-30px, 40px) rotate(720deg); opacity:0; }
}

.scn-cadwal-lament {
  background: linear-gradient(180deg, #1a110a 0%, #2a1a10 30%, #3a2a1a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-cadwal-lament .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-cadwal-lament .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 -5px 15px rgba(0,0,0,.5);
}
.scn-cadwal-lament .window {
  position:absolute; top:10%; left:40%; width:60px; height:80px;
  background: #1a1a3e;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 20px rgba(255,200,100,.2), 0 0 40px rgba(255,200,100,.1);
  animation: cl-window 10s ease-in-out infinite alternate;
}
.scn-cadwal-lament .figure-carrier {
  position:absolute; bottom:20%; left:35%; width:40px; height:100px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-carrier 12s ease-in-out infinite;
}
.scn-cadwal-lament .figure-carried {
  position:absolute; bottom:40%; left:45%; width:50px; height:40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: cl-carried 12s ease-in-out infinite;
}
.scn-cadwal-lament .candle {
  position:absolute; bottom:30%; left:20%; width:8px; height:20px;
  background: linear-gradient(180deg, #ffeedd 0%, #cc8844 50%, #442211 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px #cc8844, 0 0 60px 20px rgba(204,136,68,.3);
  animation: cl-candle 4s ease-in-out infinite alternate;
}

@keyframes cl-window {
  0% { opacity:.6; box-shadow: inset 0 0 20px rgba(255,200,100,.1), 0 0 20px rgba(255,200,100,.05); }
  50% { opacity:.9; box-shadow: inset 0 0 30px rgba(255,200,100,.3), 0 0 40px rgba(255,200,100,.2); }
  100% { opacity:.7; box-shadow: inset 0 0 20px rgba(255,200,100,.15), 0 0 30px rgba(255,200,100,.1); }
}
@keyframes cl-carrier {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cl-carried {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cl-candle {
  0% { opacity:.8; box-shadow: 0 0 20px 8px #cc8844, 0 0 40px 15px rgba(204,136,68,.2); transform: scaleY(1); }
  50% { opacity:1; box-shadow: 0 0 30px 12px #ffcc66, 0 0 60px 25px rgba(255,204,102,.3); transform: scaleY(1.05); }
  100% { opacity:.85; box-shadow: 0 0 20px 8px #cc8844, 0 0 40px 15px rgba(204,136,68,.2); transform: scaleY(1); }
}

/* Scene 1: rescue-of-cymbeline */
.scn-rescue-of-cymbeline {
  background:
    linear-gradient(180deg, #6b8e23 0%, #c85a17 30%, #f5a623 60%, #4a1500 100%),
    radial-gradient(ellipse at 60% 25%, #f5a623 0%, transparent 70%);
}
.scn-rescue-of-cymbeline .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #f0d060 50%, #c85a17 100%);
  animation: s1-sky 15s ease-in-out infinite alternate;
}
.scn-rescue-of-cymbeline .sun {
  position: absolute; top: 12%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #f5a623 60%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(245,166,35,0.4);
  animation: s1-sun 4s ease-in-out infinite alternate;
}
.scn-rescue-of-cymbeline .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a5f0b 0%, #1a3a00 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 12px #0000004d;
  animation: s1-hills 20s ease-in-out infinite alternate;
}
.scn-rescue-of-cymbeline .lane {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(400px) rotateX(10deg);
  box-shadow: inset 0 8px 16px #00000066;
}
.scn-rescue-of-cymbeline .soldier-left {
  position: absolute; bottom: 18%; left: 28%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-fight 1.8s ease-in-out infinite alternate;
}
.scn-rescue-of-cymbeline .soldier-right {
  position: absolute; bottom: 18%; right: 28%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-fight 1.8s ease-in-out infinite alternate-reverse;
}
.scn-rescue-of-cymbeline .standard {
  position: absolute; bottom: 20%; left: 48%; width: 4px; height: 60px;
  background: #5a3a1a;
  border-radius: 2px;
}
.scn-rescue-of-cymbeline .standard::after {
  content: ''; display: block; position: absolute; left: -12px; top: 0;
  width: 28px; height: 18px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 4px;
  animation: s1-flag 2s ease-in-out infinite alternate;
}
.scn-rescue-of-cymbeline .dust {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: rgba(200, 170, 100, 0.3);
  filter: blur(8px);
  border-radius: 50%;
  animation: s1-dust 5s ease-in-out infinite;
}
@keyframes s1-sky { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes s1-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes s1-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes s1-fight { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes s1-flag { 0% { transform: skewX(0deg); } 50% { transform: skewX(10deg); } 100% { transform: skewX(-10deg); } }
@keyframes s1-dust { 0% { opacity: 0.3; transform: scale(1) translateY(0); } 50% { opacity: 0.6; transform: scale(1.2) translateY(-5px); } 100% { opacity: 0.3; transform: scale(1) translateY(0); } }

/* Scene 2: posthumus-lord-exchange */
.scn-posthumus-lord-exchange {
  background:
    linear-gradient(180deg, #7a9aab 0%, #c8a952 40%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 70%, #c8a952 0%, transparent 60%);
}
.scn-posthumus-lord-exchange .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #e8c56a 60%, transparent 100%);
  animation: s2-sky 12s ease-in-out infinite alternate;
}
.scn-posthumus-lord-exchange .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 20px #00000033;
}
.scn-posthumus-lord-exchange .tent {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: 0 6px 12px #0000004d;
}
.scn-posthumus-lord-exchange .fire {
  position: absolute; bottom: 22%; left: 46%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #ff8c00 40%, transparent 70%);
  border-radius: 50%;
  animation: s2-fire 2s ease-in-out infinite alternate;
}
.scn-posthumus-lord-exchange .lord-left {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s2-breathe 4s ease-in-out infinite;
}
.scn-posthumus-lord-exchange .lord-right {
  position: absolute; bottom: 18%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s2-breathe 4s ease-in-out infinite reverse;
}
.scn-posthumus-lord-exchange .smoke {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 40px;
  background: rgba(180, 160, 140, 0.3);
  filter: blur(10px);
  border-radius: 50%;
  animation: s2-smoke 6s ease-in-out infinite;
}
@keyframes s2-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s2-fire { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.3) translateY(-3px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.9; } }
@keyframes s2-breathe { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes s2-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.6; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }

/* Scene 3: lord-describes-battle */
.scn-lord-describes-battle {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #c87030 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #e8a040 0%, transparent 60%);
}
.scn-lord-describes-battle .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a9ab0 0%, #e8c56a 50%, #c87030 100%);
  animation: s3-sky 18s ease-in-out infinite alternate;
}
.scn-lord-describes-battle .sun {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 50px;
  margin-left: -25px;
  background: radial-gradient(circle, #fff7b0 0%, #e8a040 60%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(232,160,64,0.5);
  animation: s3-pulse 3s ease-in-out infinite alternate;
}
.scn-lord-describes-battle .lane {
  position: absolute; bottom: 12%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(300px) rotateX(5deg);
  box-shadow: inset 0 10px 20px #00000066;
}
.scn-lord-describes-battle .dead-figure {
  position: absolute; bottom: 10%; left: 30%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  animation: s3-fall 8s ease-in-out infinite;
}
.scn-lord-describes-battle .fleeing-soldier {
  position: absolute; bottom: 14%; right: 30%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s3-run 2s linear infinite;
}
.scn-lord-describes-battle .spear {
  position: absolute; bottom: 15%; left: 35%; width: 3px; height: 50px;
  background: #5a3a1a;
  border-radius: 1px;
  transform: rotate(15deg);
}
.scn-lord-describes-battle .dust {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 10%;
  background: rgba(180, 140, 80, 0.3);
  filter: blur(12px);
  border-radius: 50%;
  animation: s3-dust 4s ease-in-out infinite;
}
@keyframes s3-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s3-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes s3-fall { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes s3-run { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(-3deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes s3-dust { 0% { opacity: 0.3; transform: scale(1) translateY(0); } 50% { opacity: 0.5; transform: scale(1.1) translateY(-3px); } 100% { opacity: 0.3; transform: scale(1) translateY(0); } }

/* Scene 4: three-heroes */
.scn-three-heroes {
  background:
    linear-gradient(180deg, #4a7a9a 0%, #f5d060 40%, #d08830 100%),
    radial-gradient(ellipse at 50% 30%, #f5d060 0%, transparent 70%);
}
.scn-three-heroes .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7ab0d0 0%, #f5e080 50%, transparent 100%);
  animation: s4-sky 16s ease-in-out infinite alternate;
}
.scn-three-heroes .sunburst {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 100px;
  margin-left: -50px;
  background: radial-gradient(circle, #fff7b0 0%, #f5d060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: s4-sunburst 10s ease-in-out infinite alternate;
}
.scn-three-heroes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 10px 20px #0000004d;
}
.scn-three-heroes .heroic-left {
  position: absolute; bottom: 8%; left: 20%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: s4-hero 6s ease-in-out infinite;
}
.scn-three-heroes .heroic-center {
  position: absolute; bottom: 10%; left: 50%; width: 24px; height: 65px;
  margin-left: -12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-hero-center 6s ease-in-out infinite;
}
.scn-three-heroes .heroic-right {
  position: absolute; bottom: 8%; right: 20%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: s4-hero 6s ease-in-out infinite reverse;
}
.scn-three-heroes .light-rays {
  position: absolute; top: 15%; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,240,150,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: s4-rays 8s ease-in-out infinite alternate;
}
.scn-three-heroes .shield {
  position: absolute; bottom: 18%; left: 48%; width: 14px; height: 20px;
  margin-left: -7px;
  background: radial-gradient(circle, #d0a040 0%, #8a5a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(208,160,64,0.5);
  animation: s4-shield 3s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes s4-sunburst { 0% { transform: scale(1) translateY(0); opacity: 0.7; } 50% { transform: scale(1.1) translateY(-5px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.8; } }
@keyframes s4-hero { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes s4-hero-center { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-rays { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes s4-shield { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }

.scn-imogen-revived {
  background:
    linear-gradient(180deg, #1b1b2f 0%, #2a2a3e 40%, #1f1f2e 100%),
    radial-gradient(ellipse at 70% 30%, #3a3a5e 0%, transparent 80%);
}
.scn-imogen-revived .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e30 0%, #2c2c44 50%, #1a1a28 100%);
  animation: ir-bg 20s ease-in-out infinite alternate;
}
.scn-imogen-revived .bed {
  position: absolute; bottom: 10%; left: 5%; width: 40%; height: 35%;
  background: linear-gradient(150deg, #3d2a1a 0%, #2a1e12 50%, #1b140e 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: ir-bed 10s ease-in-out infinite;
}
.scn-imogen-revived .figure {
  position: absolute; bottom: 15%; left: 20%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2c2c44 0%, #1a1a28 60%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ir-figure 4s ease-in-out infinite;
}
.scn-imogen-revived .window {
  position: absolute; top: 18%; right: 12%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #3a3a5e 0%, #2a2a4e 100%);
  border: 4px solid #4a4a6e;
  border-radius: 8% 8% 12% 12%;
  box-shadow: inset 0 0 30px rgba(100,120,200,0.3);
  animation: ir-window 12s ease-in-out infinite alternate;
}
.scn-imogen-revived .moonbeam {
  position: absolute; top: 20%; right: 15%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(180,200,255,0.2) 0%, transparent 100%);
  transform: skewX(-15deg);
  animation: ir-beam 15s ease-in-out infinite alternate;
}
.scn-imogen-revived .bottle {
  position: absolute; bottom: 20%; left: 35%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #4a5030 0%, #2a3018 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ir-bottle 3s ease-in-out infinite;
}
.scn-imogen-revived .lantern {
  position: absolute; bottom: 40%; left: 10%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #a07030 80%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px #a07030, 0 0 40px 12px rgba(160,112,48,0.4);
  animation: ir-lantern 2s ease-in-out infinite alternate;
}
.scn-imogen-revived .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: ir-shadow 8s ease-in-out infinite;
}
@keyframes ir-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ir-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ir-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ir-window { 0% { box-shadow: inset 0 0 20px rgba(100,120,200,0.2); } 50% { box-shadow: inset 0 0 40px rgba(100,120,200,0.4); } 100% { box-shadow: inset 0 0 20px rgba(100,120,200,0.2); } }
@keyframes ir-beam { 0% { opacity: 0.3; transform: skewX(-15deg) translateX(0); } 50% { opacity: 0.6; transform: skewX(-10deg) translateX(5px); } 100% { opacity: 0.3; transform: skewX(-15deg) translateX(0); } }
@keyframes ir-bottle { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ir-lantern { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px #a07030; } 50% { opacity: 1; box-shadow: 0 0 28px 8px #ffc060; } 100% { opacity: 0.8; box-shadow: 0 0 16px 5px #a07030; } }
@keyframes ir-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.6; } }

.scn-cordial-box-accusation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #252540 50%, #1e1e30 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 70%);
}
.scn-cordial-box-accusation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1c30 0%, #2a2a44 60%, #16162a 100%);
  animation: cba-bg 25s ease-in-out infinite alternate;
}
.scn-cordial-box-accusation .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: cba-table 12s ease-in-out infinite;
}
.scn-cordial-box-accusation .hand {
  position: absolute; bottom: 20%; left: 35%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cba-hand 1.5s ease-in-out infinite alternate;
}
.scn-cordial-box-accusation .box {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2216 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: cba-box 4s ease-in-out infinite;
}
.scn-cordial-box-accusation .rat-shadow {
  position: absolute; bottom: 30%; right: 10%; width: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: cba-rat 3s ease-in-out infinite alternate;
}
.scn-cordial-box-accusation .candle {
  position: absolute; bottom: 25%; left: 20%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: inset 0 4px 10px rgba(255,200,100,0.3);
  animation: cba-candle 2s ease-in-out infinite alternate;
}
.scn-cordial-box-accusation .goblet {
  position: absolute; bottom: 18%; right: 25%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #4a4050 0%, #2a2030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cba-goblet 5s ease-in-out infinite;
}
@keyframes cba-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cba-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cba-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cba-box { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes cba-rat { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(-10px) scale(1.1); opacity: 0.7; } 100% { transform: translateX(0) scale(1); opacity: 0.4; } }
@keyframes cba-candle { 0% { opacity: 0.8; box-shadow: inset 0 4px 10px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: inset 0 4px 20px rgba(255,200,100,0.6); } 100% { opacity: 0.9; box-shadow: inset 0 4px 10px rgba(255,200,100,0.3); } }
@keyframes cba-goblet { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }

.scn-cornelius-revelation {
  background:
    linear-gradient(180deg, #1e1e30 0%, #2a2a44 40%, #1a1a2c 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-cornelius-revelation .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #252542 60%, #16162a 100%);
  animation: cr-bg 30s ease-in-out infinite alternate;
}
.scn-cornelius-revelation .fireplace {
  position: absolute; bottom: 5%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, #2a1a0e 80%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 0 -10px 30px rgba(255,100,30,0.4);
  animation: cr-fire 2s ease-in-out infinite alternate;
}
.scn-cornelius-revelation .table {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: cr-table 15s ease-in-out infinite;
}
.scn-cornelius-revelation .vials {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(135deg, #4a6050 0%, #2a4030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cr-vials 4s ease-in-out infinite;
}
.scn-cornelius-revelation .figure-left {
  position: absolute; bottom: 12%; left: 10%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-fleft 3s ease-in-out infinite alternate;
}
.scn-cornelius-revelation .figure-right {
  position: absolute; bottom: 12%; right: 10%; width: 18%; height: 42%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-fright 3s ease-in-out infinite alternate;
}
.scn-cornelius-revelation .shadow-pool {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: cr-shadow 10s ease-in-out infinite;
}
@keyframes cr-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cr-fire { 0% { opacity: 0.7; box-shadow: inset 0 -10px 30px rgba(255,100,30,0.4); } 50% { opacity: 1; box-shadow: inset 0 -10px 50px rgba(255,150,50,0.6); } 100% { opacity: 0.8; box-shadow: inset 0 -10px 30px rgba(255,100,30,0.4); } }
@keyframes cr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cr-vials { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes cr-fleft { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cr-fright { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cr-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.6; } }

.scn-cordial-box-revealed {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1e1e32 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 80%);
}
.scn-cordial-box-revealed .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1c30 0%, #2a2a46 60%, #16162a 100%);
  animation: cbr-bg 20s ease-in-out infinite alternate;
}
.scn-cordial-box-revealed .rock {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: cbr-rock 15s ease-in-out infinite;
}
.scn-cordial-box-revealed .tree {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.4);
  animation: cbr-tree 8s ease-in-out infinite alternate;
}
.scn-cordial-box-revealed .figure-left {
  position: absolute; bottom: 15%; left: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbr-fleft 4s ease-in-out infinite;
}
.scn-cordial-box-revealed .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbr-fright 4s ease-in-out infinite;
}
.scn-cordial-box-revealed .embrace-glow {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 20%;
  background: radial-gradient(circle, rgba(200,180,255,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: cbr-glow 6s ease-in-out infinite alternate;
}
.scn-cordial-box-revealed .stardust {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.05) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,255,255,0.03) 0%, transparent 50%);
  animation: cbr-dust 30s linear infinite;
}
@keyframes cbr-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cbr-rock { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cbr-tree { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(3deg) scale(1); } }
@keyframes cbr-fleft { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes cbr-fright { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-5px) translateY(-3px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes cbr-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes cbr-dust { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }

.scn-ante-chamber-queen-advice { background: linear-gradient(180deg, #ffd6b0 0%, #ffe0b2 20%, #f4c280 50%, #d4a373 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%); }
.scn-ante-chamber-queen-advice .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4a373 0%, #b07d44 100%); animation: acqa-wall 12s ease-in-out infinite alternate; }
.scn-ante-chamber-queen-advice .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7f5539 0%, #5c3a21 100%); }
.scn-ante-chamber-queen-advice .window { position:absolute; top:15%; left:10%; width:25%; height:40%; background: linear-gradient(180deg, #fff8e7 0%, #ffe0b2 100%); border-radius:5px; box-shadow:inset 0 0 20px #ffd0a0; animation: acqa-window 8s ease-in-out infinite alternate; }
.scn-ante-chamber-queen-advice .queen-figure { position:absolute; bottom:30%; left:30%; width:4%; height:30%; background: linear-gradient(180deg, #6b4e3a 0%, #4a3525 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: acqa-queen 6s ease-in-out infinite; }
.scn-ante-chamber-queen-advice .advisor-figure { position:absolute; bottom:30%; right:25%; width:3%; height:25%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: acqa-advisor 8s ease-in-out infinite; }
.scn-ante-chamber-queen-advice .candle { position:absolute; bottom:20%; left:50%; width:1%; height:5%; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius:50%; box-shadow:0 0 10px 5px rgba(255,215,0,0.5); animation: acqa-candle 3s ease-in-out infinite; }
.scn-ante-chamber-queen-advice .dawn-glow { position:absolute; inset:0 0 60% 0; background: radial-gradient(circle at 20% 20%, rgba(255,230,200,0.4) 0%, transparent 50%); animation: acqa-glow 10s ease-in-out infinite alternate; }
@keyframes acqa-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes acqa-window { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(1); } }
@keyframes acqa-queen { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes acqa-advisor { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-3px) rotate(-0.5deg); } 100% { transform:translateX(0); } }
@keyframes acqa-candle { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.9; transform:scale(1); } }
@keyframes acqa-glow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-ante-chamber-cloten-alone { background: linear-gradient(180deg, #d9734e 0%, #c14a2a 50%, #8b3a1a 100%), radial-gradient(ellipse at 50% 0%, #f0c27a 0%, transparent 60%); }
.scn-ante-chamber-cloten-alone .wall { position:absolute; inset:0 0 40% 0; background: #5c2e1a; animation: acca-wall 4s ease-in-out infinite alternate; }
.scn-ante-chamber-cloten-alone .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: #3a1f0f; }
.scn-ante-chamber-cloten-alone .window { position:absolute; top:10%; left:5%; width:20%; height:30%; background: #f0c27a; box-shadow:0 0 30px #ffa07a; animation: acca-window 4s ease-in-out infinite alternate; }
.scn-ante-chamber-cloten-alone .cloten-figure { position:absolute; bottom:30%; left:40%; width:5%; height:35%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: acca-cloten 2s ease-in-out infinite; }
.scn-ante-chamber-cloten-alone .gold-chest { position:absolute; bottom:20%; left:55%; width:8%; height:6%; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius:10%; box-shadow:0 0 15px #ffd700; animation: acca-chest 6s ease-in-out infinite; }
.scn-ante-chamber-cloten-alone .shadow { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 40%); animation: acca-shadow 5s ease-in-out infinite alternate; }
@keyframes acca-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes acca-window { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.75; transform:scale(1); } }
@keyframes acca-cloten { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes acca-chest { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes acca-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-ante-chamber-imogen-confronts { background: linear-gradient(180deg, #c14a2a 0%, #a03a1a 40%, #6b2a10 100%), radial-gradient(ellipse at 80% 10%, #ffb07a 0%, transparent 50%); }
.scn-ante-chamber-imogen-confronts .wall { position:absolute; inset:0 0 35% 0; background: #4a2215; animation: acic-wall 3s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-confronts .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: #2a150a; }
.scn-ante-chamber-imogen-confronts .window { position:absolute; top:5%; right:10%; width:15%; height:25%; background: #ffb07a; box-shadow:0 0 20px #ff8a5c; animation: acic-window 3s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-confronts .imogen-figure { position:absolute; bottom:30%; left:25%; width:4%; height:35%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0f 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: acic-imogen 1.5s ease-in-out infinite; }
.scn-ante-chamber-imogen-confronts .gentleman-figure { position:absolute; bottom:30%; right:20%; width:5%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: acic-gentleman 2s ease-in-out infinite; }
.scn-ante-chamber-imogen-confronts .door-frame { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(90deg, #5c3a21 0%, #7f5539 50%, #5c3a21 100%); border:2px solid #3a1f0f; box-shadow:inset 0 0 10px #2a150a; animation: acic-door 8s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-confronts .veil { position:absolute; top:10%; left:28%; width:6%; height:50%; background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%); filter:blur(2px); animation: acic-veil 4s ease-in-out infinite alternate; }
@keyframes acic-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes acic-window { 0% { opacity:0.6; transform:scale(1) rotate(0deg); } 50% { opacity:1; transform:scale(1.03) rotate(1deg); } 100% { opacity:0.65; transform:scale(1) rotate(0deg); } }
@keyframes acic-imogen { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(5px) translateY(-2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes acic-gentleman { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(-4px) rotate(1deg); } 100% { transform:translateX(0); } }
@keyframes acic-door { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.98); } 100% { transform:scaleX(1); } }
@keyframes acic-veil { 0% { opacity:0.15; transform:translateX(0); } 50% { opacity:0.35; transform:translateX(3px); } 100% { opacity:0.2; transform:translateX(0); } }

.scn-ante-chamber-spurning-cloten { background: linear-gradient(180deg, #b0452a 0%, #8a3515 50%, #5c2210 100%), radial-gradient(ellipse at 30% 0%, #ffa07a 0%, transparent 70%); }
.scn-ante-chamber-spurning-cloten .wall { position:absolute; inset:0 0 30% 0; background: #4a1a0a; animation: acsc-wall 2s ease-in-out infinite alternate; }
.scn-ante-chamber-spurning-cloten .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: #2a1005; }
.scn-ante-chamber-spurning-cloten .window { position:absolute; top:5%; left:5%; width:12%; height:20%; background: #ffa07a; box-shadow:0 0 15px #ff7f50; animation: acsc-window 2s ease-in-out infinite alternate; }
.scn-ante-chamber-spurning-cloten .cloten-figure { position:absolute; bottom:30%; right:30%; width:4%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: acsc-cloten 2.4s ease-in-out infinite; }
.scn-ante-chamber-spurning-cloten .spurner-figure { position:absolute; bottom:30%; left:20%; width:4%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: acsc-spurner 2s ease-in-out infinite; }
.scn-ante-chamber-spurning-cloten .hand-reject { position:absolute; top:30%; left:22%; width:2%; height:2%; background: #ffd0b0; border-radius:50%; box-shadow:0 0 5px #ffa07a; animation: acsc-hand 1.6s ease-in-out infinite alternate; }
@keyframes acsc-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes acsc-window { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:1; transform:scale(1.08); } 100% { opacity:0.6; transform:scale(1); } }
@keyframes acsc-cloten { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-6px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes acsc-spurner { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 50% { transform:translateX(4px) translateY(-2px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes acsc-hand { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(-8px); opacity:1; } 100% { transform:translateY(0); opacity:0.7; } }

/* Scene: rome-senate-war-levy */
.scn-rome-senate-war-levy {
  background: linear-gradient(180deg, #c4a882 0%, #8b7355 40%, #4a3b2c 100%), radial-gradient(ellipse at 50% 20%, #e0c8a8 0%, transparent 70%);
}
.scn-rome-senate-war-levy .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b89a6e 0%, #c8aa7a 50%, #b89a6e 100%); 
  animation: rs-wall 12s ease-in-out infinite alternate;
}
.scn-rome-senate-war-levy .column-left {
  position: absolute; bottom: 0; left: 10%; width: 6%; height: 90%; 
  background: linear-gradient(90deg, #a0825a 0%, #c4a872 40%, #90724a 100%); 
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: rs-column 15s linear infinite alternate;
}
.scn-rome-senate-war-levy .column-right {
  position: absolute; bottom: 0; right: 10%; width: 6%; height: 90%; 
  background: linear-gradient(90deg, #a0825a 0%, #c4a872 40%, #90724a 100%); 
  border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,.3);
  animation: rs-column 15s linear infinite alternate-reverse;
}
.scn-rome-senate-war-levy .window {
  position: absolute; top: 12%; left: 40%; width: 20%; height: 30%; 
  background: radial-gradient(ellipse at 50% 50%, #fce0b0 0%, #d4a86a 60%, transparent 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(255,220,140,.3);
  animation: rs-window 4s ease-in-out infinite alternate;
}
.scn-rome-senate-war-levy .banner {
  position: absolute; top: 5%; left: 43%; width: 14%; height: 25%; 
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  border-radius: 0 0 4px 4px; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: rs-banner 6s ease-in-out infinite;
}
.scn-rome-senate-war-levy .scroll {
  position: absolute; bottom: 30%; left: 52%; width: 12%; height: 16%; 
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b88a 100%);
  border-radius: 4px 4px 50% 50%; box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  transform-origin: bottom center; animation: rs-scroll 3s ease-in-out infinite;
}
.scn-rome-senate-war-levy .senator {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 40%; 
  background: linear-gradient(180deg, #f0d8c0 0%, #d4b89a 30%, #8b7355 60%, #4a3b2c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  box-shadow: 2px 0 10px rgba(0,0,0,.5); animation: rs-senator 4s ease-in-out infinite;
}
.scn-rome-senate-war-levy .tribune {
  position: absolute; bottom: 10%; left: 50%; width: 11%; height: 36%; 
  background: linear-gradient(180deg, #d4b89a 0%, #b89a6e 40%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: scaleX(-1); box-shadow: -2px 0 8px rgba(0,0,0,.4);
  animation: rs-tribune 5s ease-in-out infinite alternate;
}
.scn-rome-senate-war-levy .floor-shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 10%; 
  background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 70%);
  animation: rs-shadow 8s ease-in-out infinite alternate;
}
@keyframes rs-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes rs-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rs-window { 0% { opacity: .7; box-shadow: inset 0 0 20px rgba(255,220,140,.2); } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,220,140,.5); } 100% { opacity: .8; box-shadow: inset 0 0 40px rgba(255,220,140,.3); } }
@keyframes rs-banner { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rs-scroll { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(0deg) } }
@keyframes rs-senator { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rs-tribune { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-3px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes rs-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .4; transform: scaleX(1) } }

/* Scene: wales-cloten-approach */
.scn-wales-cloten-approach {
  background: linear-gradient(180deg, #6a8aaa 0%, #8db6ce 40%, #f0e68c 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-wales-cloten-approach .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #6a8aaa 0%, #b0c4de 60%, transparent 100%);
  animation: wc-sky 20s ease-in-out infinite alternate;
}
.scn-wales-cloten-approach .sun {
  position: absolute; top: 8%; right: 20%; width: 12%; height: 12%; 
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, #daa520 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.3);
  animation: wc-sun 8s ease-in-out infinite alternate;
}
.scn-wales-cloten-approach .trees {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #2d5a1e 0%, #1a3a0f 100%);
  clip-path: polygon(0% 100%, 5% 40%, 10% 100%, 20% 50%, 30% 100%, 40% 60%, 50% 100%, 60% 45%, 70% 100%, 80% 55%, 90% 100%, 100% 50%, 100% 100%);
  animation: wc-trees 12s ease-in-out infinite alternate;
}
.scn-wales-cloten-approach .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; 
  background: linear-gradient(180deg, #6b5b3a 0%, #4a3a1a 100%);
  border-radius: 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: wc-ground 10s ease-in-out infinite alternate;
}
.scn-wales-cloten-approach .figure-cloten {
  position: absolute; bottom: 5%; left: 40%; width: 12%; height: 45%; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 4px 0 12px rgba(0,0,0,.6); transform-origin: bottom center;
  animation: wc-figure 4s ease-in-out infinite;
}
.scn-wales-cloten-approach .shadow {
  position: absolute; bottom: 0; left: 38%; width: 18%; height: 8%; 
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: wc-shadow 4s ease-in-out infinite;
}
.scn-wales-cloten-approach .cloak {
  position: absolute; bottom: 10%; left: 48%; width: 15%; height: 30%; 
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  clip-path: polygon(20% 0%, 100% 10%, 90% 100%, 10% 100%, 0% 10%);
  transform-origin: top center; animation: wc-cloak 3s ease-in-out infinite alternate;
}
@keyframes wc-sky { 0% { opacity: .7; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-2px) } 100% { opacity: .8; transform: translateY(0) } }
@keyframes wc-sun { 0% { opacity: .6; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(1) } }
@keyframes wc-trees { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes wc-ground { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes wc-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) scale(1.01) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1deg) scale(1.01) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes wc-shadow { 0% { opacity: .3; transform: scaleX(1) translateX(0) } 25% { opacity: .5; transform: scaleX(1.1) translateX(6px) } 50% { opacity: .4; transform: scaleX(1.05) translateX(12px) } 75% { opacity: .5; transform: scaleX(1.1) translateX(18px) } 100% { opacity: .3; transform: scaleX(1) translateX(24px) } }
@keyframes wc-cloak { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.1) } 100% { transform: rotate(0deg) scaleX(1) } }

/* Scene: wales-cave-imogen-ill */
.scn-wales-cave-imogen-ill {
  background: linear-gradient(180deg, #2a1e14 0%, #1a0f0a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-wales-cave-imogen-ill .cave-back {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #1a0f0a 0%, #0d0805 100%);
  animation: ci-cave 18s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-ill .cave-opening {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%; 
  background: radial-gradient(ellipse at 50% 100%, #6a8aaa 0%, #3a4a5a 50%, transparent 80%);
  clip-path: ellipse(50% 60% at 50% 100%); opacity: .6;
  animation: ci-opening 10s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-ill .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: ci-floor 14s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-ill .fire {
  position: absolute; bottom: 20%; left: 35%; width: 8%; height: 15%; 
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 40%, #8b4513 80%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px #ff8c00, 0 0 80px 40px rgba(255,140,0,.3);
  animation: ci-fire 2s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-ill .figure-imogen {
  position: absolute; bottom: 10%; left: 20%; width: 14%; height: 30%; 
  background: linear-gradient(180deg, #c4a882 0%, #a0825a 40%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ci-imogen 6s ease-in-out infinite;
}
.scn-wales-cave-imogen-ill .figure-belarius {
  position: absolute; bottom: 15%; left: 55%; width: 16%; height: 45%; 
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 60%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: ci-belarius 8s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-ill .pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 6%; 
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50%; opacity: .5; box-shadow: inset 0 2px 6px rgba(0,0,0,.4);
  animation: ci-pool 5s ease-in-out infinite alternate;
}
@keyframes ci-cave { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ci-opening { 0% { opacity: .4; transform: scaleX(.95) } 50% { opacity: .7; transform: scaleX(1.05) } 100% { opacity: .5; transform: scaleX(1) } }
@keyframes ci-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ci-fire { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 15px #ff8c00; } 50% { transform: scale(1.1) translateY(-4px); box-shadow: 0 0 50px 25px #ffa500; } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 20px #ff8c00; } }
@keyframes ci-imogen { 0% { transform: translateY(0) rotate(0deg) scaleX(1) } 25% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 50% { transform: translateY(0) rotate(0deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(-1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(0deg) scaleX(1) } }
@keyframes ci-belarius { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes ci-pool { 0% { opacity: .3; transform: scaleX(1) translateY(0) } 50% { opacity: .5; transform: scaleX(1.05) translateY(-1px) } 100% { opacity: .4; transform: scaleX(1) translateY(0) } }

/* Scene: imogen-aside-cave */
.scn-imogen-aside-cave {
  background: linear-gradient(180deg, #0d0a07 0%, #1a1210 40%, #0a0502 100%), radial-gradient(ellipse at 30% 70%, #2a1a0a 0%, transparent 60%);
}
.scn-imogen-aside-cave .cave-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, #1a1210 0%, #0d0a07 100%);
  animation: ic-dark 15s ease-in-out infinite alternate;
}
.scn-imogen-aside-cave .rock-left {
  position: absolute; bottom: 10%; left: 5%; width: 25%; height: 50%; 
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 100%);
  border-radius: 40% 60% 20% 80% / 30% 50% 50% 70%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.6);
  animation: ic-rock 20s ease-in-out infinite alternate;
}
.scn-imogen-aside-cave .rock-right {
  position: absolute; bottom: 5%; right: 5%; width: 30%; height: 60%; 
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 100%);
  border-radius: 60% 40% 80% 20% / 50% 30% 70% 50%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.6);
  animation: ic-rock 18s ease-in-out infinite alternate-reverse;
}
.scn-imogen-aside-cave .figure-imogen-dark {
  position: absolute; bottom: 8%; left: 38%; width: 12%; height: 40%; 
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 60%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 10px rgba(0,0,0,.7); transform-origin: bottom center;
  animation: ic-figure 4s ease-in-out infinite;
}
.scn-imogen-aside-cave .candle {
  position: absolute; bottom: 20%; left: 50%; width: 3%; height: 8%; 
  background: linear-gradient(180deg, #f0d060 0%, #c08040 60%, #8b4513 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 0 8px 2px #ffd060;
  animation: ic-candle 2s ease-in-out infinite alternate;
}
.scn-imogen-aside-cave .candle-glow {
  position: absolute; bottom: 16%; left: 46%; width: 12%; height: 12%; 
  background: radial-gradient(circle, rgba(255,208,96,.5) 0%, rgba(255,208,96,.1) 40%, transparent 70%);
  border-radius: 50%; animation: ic-glow 3s ease-in-out infinite alternate;
}
.scn-imogen-aside-cave .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%; 
  background: radial-gradient(circle at 20% 30%, rgba(200,180,160,.3) 0%, transparent 8%, rgba(200,180,160,.1) 15%, transparent 25%);
  background-size: 100% 100%; animation: ic-dust 25s linear infinite;
}
@keyframes ic-dark { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ic-rock { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ic-figure { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-3px) rotate(2deg) scale(1.02) } 50% { transform: translateY(0) rotate(0deg) scale(1) } 75% { transform: translateY(-3px) rotate(-2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes ic-candle { 0% { transform: scaleY(1) translateY(0); opacity: .8 } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1 } 100% { transform: scaleY(1) translateY(0); opacity: .9 } }
@keyframes ic-glow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .8; transform: scale(1.2) } 100% { opacity: .5; transform: scale(1) } }
@keyframes ic-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-100%) } }

/* Scene: britain-court-rome-tribute */
.scn-britain-court-rome-tribute {
  background: linear-gradient(180deg, #fdf5e6 0%, #f0d9b5 50%, #e6c795 100%),
              radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-britain-court-rome-tribute .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, #fcf3e0 0%, transparent 50%);
  animation: bcr1-bg 8s ease-in-out infinite alternate;
}
.scn-britain-court-rome-tribute .pillar-left {
  position: absolute; left: 8%; bottom: 0; width: 6%; height: 80%;
  background: linear-gradient(180deg, #d1b896 0%, #b59a78 50%, #8a7458 100%);
  border-radius: 4px; box-shadow: 6px 0 12px rgba(0,0,0,0.2);
  animation: bcr1-pillar 12s ease-in-out infinite alternate;
}
.scn-britain-court-rome-tribute .pillar-right {
  position: absolute; right: 8%; bottom: 0; width: 6%; height: 80%;
  background: linear-gradient(180deg, #d1b896 0%, #b59a78 50%, #8a7458 100%);
  border-radius: 4px; box-shadow: -6px 0 12px rgba(0,0,0,0.2);
  animation: bcr1-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-britain-court-rome-tribute .throne {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 30%;
  background: linear-gradient(180deg, #c8a060 0%, #a88440 50%, #8a6828 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: bcr1-throne 9s ease-in-out infinite;
}
.scn-britain-court-rome-tribute .ruler {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 14%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bcr1-ruler 5s ease-in-out infinite alternate;
}
.scn-britain-court-rome-tribute .tribute {
  position: absolute; bottom: 22%; left: 35%;
  width: 12%; height: 18%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bcr1-tribute 4s ease-in-out infinite;
}
.scn-britain-court-rome-tribute .light-shaft {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,240,0.3) 0%, rgba(255,250,240,0.1) 80%, transparent 100%);
  filter: blur(4px);
  animation: bcr1-light 3s ease-in-out infinite alternate;
}
.scn-britain-court-rome-tribute .torch {
  position: absolute; bottom: 35%; left: 20%;
  width: 2%; height: 10%;
  background: linear-gradient(180deg, #b87840 0%, #7a4818 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(200,120,40,0.6);
  animation: bcr1-torch 2s ease-in-out infinite;
}
@keyframes bcr1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bcr1-pillar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bcr1-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes bcr1-ruler { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes bcr1-tribute { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bcr1-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes bcr1-torch { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(200,120,40,0.6); } 50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 30px 12px rgba(200,120,40,0.8); } 100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(200,120,40,0.6); } }

/* Scene: britain-court-queen-speech */
.scn-britain-court-queen-speech {
  background: linear-gradient(180deg, #c0c0c0 0%, #e0d8cf 50%, #b0a8a0 100%),
              radial-gradient(ellipse at 80% 30%, #f5f0ea 0%, transparent 60%);
}
.scn-britain-court-queen-speech .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 20% 30%, rgba(255,255,240,0.15) 0%, transparent 50%);
  animation: bcqs-bg 10s ease-in-out infinite alternate;
}
.scn-britain-court-queen-speech .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #9a8e7a 0%, #706458 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform: perspective(800px) rotateX(10deg);
  animation: bcqs-floor 15s ease-in-out infinite alternate;
}
.scn-britain-court-queen-speech .queen {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: bcqs-queen 6s ease-in-out infinite alternate;
}
.scn-britain-court-queen-speech .crown {
  position: absolute; bottom: 72%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 8%;
  background: linear-gradient(180deg, #f1d87a 0%, #d4b84a 50%, #a88828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(180,140,40,0.5);
  animation: bcqs-crown 4s ease-in-out infinite;
}
.scn-britain-court-queen-speech .banner {
  position: absolute; bottom: 40%; left: 75%; transform-origin: bottom left;
  width: 12%; height: 30%;
  background: linear-gradient(180deg, #c8553d 0%, #a04028 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: bcqs-banner 8s ease-in-out infinite alternate;
}
.scn-britain-court-queen-speech .dais {
  position: absolute; bottom: 25%; left: 45%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #a8987a 0%, #7a6a52 100%);
  border-radius: 10% 10% 5% 5%;
  transform: perspective(800px) rotateX(5deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-britain-court-queen-speech .window-light {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,240,0.25) 0%, transparent 70%);
  filter: blur(6px);
  animation: bcqs-window 12s ease-in-out infinite alternate;
}
.scn-britain-court-queen-speech .shadow-drape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,6,0.4) 100%);
  animation: bcqs-shadow 10s ease-in-out infinite alternate;
}
@keyframes bcqs-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bcqs-floor { 0% { transform: perspective(800px) rotateX(10deg) scaleY(1); } 50% { transform: perspective(800px) rotateX(8deg) scaleY(1.02); } 100% { transform: perspective(800px) rotateX(10deg) scaleY(1); } }
@keyframes bcqs-queen { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes bcqs-crown { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes bcqs-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes bcqs-window { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes bcqs-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene: britain-court-rome-defiance */
.scn-britain-court-rome-defiance {
  background: linear-gradient(180deg, #f4d03f 0%, #e8b845 50%, #d4a040 100%),
              radial-gradient(ellipse at 50% 0%, #fcf0c0 0%, transparent 60%);
}
.scn-britain-court-rome-defiance .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(255,240,180,0.2) 0%, transparent 50%);
  animation: bcrd-bg 9s ease-in-out infinite alternate;
}
.scn-britain-court-rome-defiance .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #a08050 0%, #705a38 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: bcrd-table 12s ease-in-out infinite alternate;
}
.scn-britain-court-rome-defiance .defiant {
  position: absolute; bottom: 30%; left: 40%; transform: translateX(-50%);
  width: 18%; height: 35%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: bcrd-defiant 3s ease-in-out infinite;
}
.scn-britain-court-rome-defiance .roman {
  position: absolute; bottom: 25%; left: 65%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1006 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bcrd-roman 5s ease-in-out infinite alternate;
}
.scn-britain-court-rome-defiance .shield {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 14%;
  background: radial-gradient(circle, #a04028 0%, #701a08 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: bcrd-shield 7s ease-in-out infinite;
}
.scn-britain-court-rome-defiance .torch {
  position: absolute; bottom: 40%; left: 15%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #b87840 0%, #7a4818 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,120,40,0.6);
  animation: bcrd-torch 2s ease-in-out infinite;
}
.scn-britain-court-rome-defiance .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: bcrd-shadow 4s ease-in-out infinite alternate;
}
.scn-britain-court-rome-defiance .tapestry {
  position: absolute; top: 0; right: 5%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 50%, #2a120a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: bcrd-tapestry 15s ease-in-out infinite alternate;
}
@keyframes bcrd-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bcrd-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes bcrd-defiant { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-4px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(0) rotate(2deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes bcrd-roman { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes bcrd-shield { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes bcrd-torch { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(200,120,40,0.6); } 50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 30px 12px rgba(200,120,40,0.8); } 100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 8px rgba(200,120,40,0.6); } }
@keyframes bcrd-shadow { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }
@keyframes bcrd-tapestry { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* Scene: palace-pisanio-letter */
.scn-palace-pisanio-letter {
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1820 50%, #0e0c12 100%),
              radial-gradient(ellipse at 50% 100%, #1a1820 0%, transparent 70%);
}
.scn-palace-pisanio-letter .bg-wall {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, rgba(60,50,70,0.3) 0%, transparent 70%);
  animation: ppl-bg 12s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .desk {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ppl-desk 8s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .candle {
  position: absolute; bottom: 28%; left: 38%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d4a060 50%, #a07030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,140,60,0.5);
  animation: ppl-candle 4s ease-in-out infinite;
}
.scn-palace-pisanio-letter .letter {
  position: absolute; bottom: 20%; left: 42%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(2deg);
  animation: ppl-letter 3s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .pisanio {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 14%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppl-pisanio 5s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .window {
  position: absolute; top: 10%; right: 12%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #202a3a 0%, #10141a 100%);
  border: 2px solid #3a3a4a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(100,120,200,0.1);
  animation: ppl-window 6s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .moonbeam {
  position: absolute; top: 15%; right: 18%; width: 12%; height: 80%;
  background: linear-gradient(180deg, rgba(180,200,240,0.08) 0%, rgba(180,200,240,0.03) 80%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: ppl-moon 20s ease-in-out infinite alternate;
}
.scn-palace-pisanio-letter .ink-pot {
  position: absolute; bottom: 22%; left: 36%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: ppl-ink 8s ease-in-out infinite alternate;
}
@keyframes ppl-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ppl-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ppl-candle { 0% { transform: scale(1) rotate(-1deg); box-shadow: 0 0 20px 6px rgba(200,140,60,0.5); } 50% { transform: scale(1.05) rotate(1deg); box-shadow: 0 0 30px 10px rgba(200,140,60,0.7); } 100% { transform: scale(1) rotate(-1deg); box-shadow: 0 0 20px 6px rgba(200,140,60,0.5); } }
@keyframes ppl-letter { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ppl-pisanio { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ppl-window { 0% { box-shadow: inset 0 0 20px rgba(100,120,200,0.1); } 50% { box-shadow: inset 0 0 30px rgba(100,120,200,0.2); } 100% { box-shadow: inset 0 0 20px rgba(100,120,200,0.1); } }
@keyframes ppl-moon { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-10deg) translateX(5px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes ppl-ink { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-posthumus-soliloquy {
  background: 
    linear-gradient(180deg, #2a2a4e 0%, #5c3a5e 40%, #7a5a4e 70%, #a07060 100%),
    radial-gradient(ellipse at 50% 20%, #d09050 0%, transparent 40%);
}
.scn-posthumus-soliloquy .dusk-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a7a8a 0%, #b08060 60%, #c09a70 100%); opacity:0.6; animation: ps-sky 10s ease-in-out infinite alternate; }
.scn-posthumus-soliloquy .window-frame { position:absolute; left:20%; right:20%; bottom:40%; height:40%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: ps-frame 8s ease-in-out infinite; }
.scn-posthumus-soliloquy .figure { position:absolute; left:50%; bottom:20%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-figure 6s ease-in-out infinite; }
.scn-posthumus-soliloquy .table { position:absolute; left:30%; right:30%; bottom:10%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-posthumus-soliloquy .cloth { position:absolute; left:40%; bottom:22%; width:40px; height:20px; background: linear-gradient(135deg, #5e3a2a 0%, #7a4a3a 40%, #8a5a4a 100%); border-radius: 30% 70% 40% 60% / 40% 30% 70% 60%; opacity:0.8; animation: ps-cloth 12s ease-in-out infinite alternate; }
.scn-posthumus-soliloquy .candle { position:absolute; left:50%; bottom:28%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e0c080 0%, #c09050 60%, #8a6030 100%); border-radius:50% 50% 10% 10%; }
.scn-posthumus-soliloquy .candle-glow { position:absolute; left:50%; bottom:28%; width:30px; height:30px; transform:translate(-50%, -50%); background: radial-gradient(circle, #ffd080 0%, #c07030 40%, transparent 70%); border-radius:50%; animation: ps-glow 3s ease-in-out infinite alternate; }
@keyframes ps-sky { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes ps-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes ps-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ps-cloth { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes ps-glow { 0% { opacity:0.6; transform: translate(-50%,-50%) scale(1); } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.2); } 100% { opacity:0.7; transform: translate(-50%,-50%) scale(0.9); } }

.scn-posthumus-regret {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #5a3a4e 70%, #4a2a3a 100%),
    radial-gradient(ellipse at 50% 60%, #7a4a5a 0%, transparent 50%);
}
.scn-posthumus-regret .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4e 60%, #4a3a4e 100%); animation: pr-wall 15s ease-in-out infinite alternate; }
.scn-posthumus-regret .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:0; }
.scn-posthumus-regret .figure-kneeling { position:absolute; left:40%; bottom:10%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pr-figure 5s ease-in-out infinite; }
.scn-posthumus-regret .shadow { position:absolute; left:38%; bottom:0; width:44px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: pr-shadow 5s ease-in-out infinite; }
.scn-posthumus-regret .tear { position:absolute; left:42%; bottom:45%; width:6px; height:8px; background: linear-gradient(180deg, rgba(200,200,240,0.8) 0%, rgba(200,200,240,0.2) 100%); border-radius:50%; animation: pr-tear 4s ease-in-out infinite; }
.scn-posthumus-regret .tear-glow { position:absolute; left:42%; bottom:45%; width:14px; height:14px; background: radial-gradient(circle, rgba(200,200,240,0.3) 0%, transparent 100%); border-radius:50%; animation: pr-tear-glow 4s ease-in-out infinite; }
@keyframes pr-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pr-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pr-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes pr-tear { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(10px); opacity:0.2; } 100% { transform: translateY(0); opacity:0.8; } }
@keyframes pr-tear-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-posthumus-disguise {
  background: 
    linear-gradient(180deg, #6a8a9a 0%, #b0a080 40%, #c09070 70%, #a07050 100%),
    radial-gradient(ellipse at 50% 20%, #e0b080 0%, transparent 40%);
}
.scn-posthumus-disguise .bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a9a 0%, #b0a080 60%, #d0b090 100%); opacity:0.5; animation: pd-bg 12s ease-in-out infinite alternate; }
.scn-posthumus-disguise .mirror-frame { position:absolute; left:15%; right:15%; bottom:30%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); }
.scn-posthumus-disguise .figure-disguise { position:absolute; left:50%; bottom:20%; width:35px; height:55px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pd-figure 4s ease-in-out infinite; }
.scn-posthumus-disguise .cloak { position:absolute; left:48%; bottom:20%; width:50px; height:40px; transform-origin: top center; background: linear-gradient(135deg, #4a2a2a 0%, #6a3a3a 40%, #8a4a4a 100%); border-radius: 30% 50% 60% 40% / 40% 30% 70% 50%; animation: pd-cloak 5s ease-in-out infinite alternate; }
.scn-posthumus-disguise .arm { position:absolute; left:55%; bottom:35%; width:8px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; transform-origin: top; animation: pd-arm 3s ease-in-out infinite; }
.scn-posthumus-disguise .sword-sheath { position:absolute; left:60%; bottom:18%; width:5px; height:25px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; transform: rotate(10deg); animation: pd-sword 6s ease-in-out infinite; }
@keyframes pd-bg { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes pd-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pd-cloak { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes pd-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes pd-sword { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-iachimo-defeated {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0d090 40%, #c09860 70%, #a07840 100%),
    radial-gradient(ellipse at 50% 30%, #ffebc0 0%, transparent 40%);
}
.scn-iachimo-defeated .bright-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ADD8E6 0%, #f0e0a0 60%, #d0b080 100%); opacity:0.6; animation: id-sky 8s ease-in-out infinite alternate; }
.scn-iachimo-defeated .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a08050 0%, #7a6030 100%); border-radius:0; }
.scn-iachimo-defeated .fallen-figure { position:absolute; left:40%; bottom:15%; width:50px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform: rotate(-20deg); animation: id-figure 10s ease-in-out infinite; }
.scn-iachimo-defeated .armor-piece { position:absolute; left:45%; bottom:25%; width:30px; height:20px; background: linear-gradient(135deg, #b09870 0%, #c0a080 40%, #d0b090 60%, #b09870 100%); border-radius: 20% 20% 40% 40% / 30% 30% 20% 20%; animation: id-armor 6s ease-in-out infinite alternate; }
.scn-iachimo-defeated .broken-sword { position:absolute; left:35%; bottom:20%; width:6px; height:50px; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:2px; transform: rotate(30deg); animation: id-sword 12s ease-in-out infinite; }
.scn-iachimo-defeated .shadow-long { position:absolute; left:35%; bottom:0; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); animation: id-shadow 8s ease-in-out infinite; }
.scn-iachimo-defeated .dust { position:absolute; left:45%; bottom:10%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,180,150,0.4) 0%, transparent 100%); border-radius:50%; animation: id-dust 5s ease-in-out infinite; }
@keyframes id-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes id-figure { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes id-armor { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes id-sword { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes id-shadow { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }
@keyframes id-dust { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-5px) scale(1.2); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

.scn-milford-pisanio-plan { background: linear-gradient(180deg, #4a8fc9 0%, #6db3f2 40%, #b8d4e3 70%, #f2e8c6 100%), radial-gradient(ellipse at 80% 20%, #f7d86e 30%, transparent 60%); }
.scn-milford-pisanio-plan .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a8fc9 0%, transparent 100%); animation: mp-sky 12s ease-in-out infinite alternate; }
.scn-milford-pisanio-plan .mountains { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a7a5a 0%, #2a4a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: mp-mountains 18s ease-in-out infinite alternate; }
.scn-milford-pisanio-plan .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); animation: mp-ground 20s ease-in-out infinite; }
.scn-milford-pisanio-plan .tree { position:absolute; bottom:20%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform-origin: bottom center; animation: mp-tree 4s ease-in-out infinite alternate; }
.scn-milford-pisanio-plan .figure-one { position:absolute; bottom:12%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure1 3s ease-in-out infinite alternate; }
.scn-milford-pisanio-plan .figure-two { position:absolute; bottom:12%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure2 3.5s ease-in-out infinite alternate; }
.scn-milford-pisanio-plan .sun-glare { position:absolute; top:10%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #f7d86e 30%, transparent 70%); border-radius:50%; animation: mp-sun 5s ease-in-out infinite alternate; }
@keyframes mp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mp-mountains { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mp-ground { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-3px) } 75% { transform: translateY(2px) } }
@keyframes mp-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes mp-figure1 { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(10px) rotate(3deg) } 100% { transform: translateX(5px) rotate(-1deg) } }
@keyframes mp-figure2 { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(-3px) rotate(1deg) } }
@keyframes mp-sun { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1.05) } }

.scn-palace-court-rome-farewell { background: linear-gradient(180deg, #4a3a2a 0%, #7a5a3a 30%, #c8a060 60%, #d8b878 100%), radial-gradient(ellipse at 50% 30%, #f0d890 0%, transparent 60%); }
.scn-palace-court-rome-farewell .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); animation: pr-floor 15s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .back-wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #7a5a3a 0%, #a07850 100%); animation: pr-wall 20s ease-in-out infinite; }
.scn-palace-court-rome-farewell .throne { position:absolute; bottom:20%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a07850 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pr-throne 8s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .pillar-left { position:absolute; bottom:20%; left:10%; width:20px; height:80%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:5% 5% 0 0; animation: pr-pillarL 12s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .pillar-right { position:absolute; bottom:20%; right:10%; width:20px; height:80%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:5% 5% 0 0; animation: pr-pillarR 13s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .chandelier { position:absolute; top:8%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #f0d890 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px #f0d890; animation: pr-chand 4s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .figure-king { position:absolute; bottom:20%; left:35%; width:22px; height:45px; background: linear-gradient(180deg, #c8a060 0%, #a07850 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-king 4s ease-in-out infinite alternate; }
.scn-palace-court-rome-farewell .figure-lucius { position:absolute; bottom:20%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #a07850 0%, #8a6a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr-lucius 4.5s ease-in-out infinite alternate; }
@keyframes pr-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes pr-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pr-throne { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pr-pillarL { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pr-pillarR { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pr-chand { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.8; transform: translateX(-50%) scale(1.05) } }
@keyframes pr-king { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(2px) rotate(-1deg) } }
@keyframes pr-lucius { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(-2px) rotate(1deg) } }

.scn-palace-imogen-missing { background: linear-gradient(180deg, #1a1a2a 0%, #3a2a3a 30%, #5a3a3a 60%, #3a2a2a 100%), radial-gradient(ellipse at 50% 50%, #6a4a4a 0%, transparent 70%); }
.scn-palace-imogen-missing .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); animation: im-floor 20s ease-in-out infinite; }
.scn-palace-imogen-missing .wall { position:absolute; top:0; left:0; right:0; bottom:15%; background: linear-gradient(180deg, #3a2a3a 0%, #5a3a3a 100%); animation: im-wall 18s ease-in-out infinite alternate; }
.scn-palace-imogen-missing .door { position:absolute; bottom:15%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:5% 5% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: im-door 15s ease-in-out infinite; }
.scn-palace-imogen-missing .candle { position:absolute; bottom:30%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #f0d890 0%, #a07850 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 12px 4px #f0d890; animation: im-candle 3s ease-in-out infinite alternate; }
.scn-palace-imogen-missing .attendant-shadow { position:absolute; bottom:15%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: im-attr 5s ease-in-out infinite alternate; }
.scn-palace-imogen-missing .imogen-shadow { position:absolute; bottom:15%; left:60%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: im-imogen 5.5s ease-in-out infinite alternate; }
@keyframes im-floor { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes im-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes im-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes im-candle { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.9; transform: scale(1.05) } }
@keyframes im-attr { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(4px) rotate(-1deg) } }
@keyframes im-imogen { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-6px) rotate(-2deg) } 100% { transform: translateX(-3px) rotate(1deg) } }

.scn-palace-cloten-revenge { background: linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 30%, #6a3a2a 60%, #4a2a1a 100%), radial-gradient(ellipse at 40% 40%, #8a4a3a 0%, transparent 70%); }
.scn-palace-cloten-revenge .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); animation: cr-floor 20s ease-in-out infinite; }
.scn-palace-cloten-revenge .wall { position:absolute; top:0; left:0; right:0; bottom:15%; background: linear-gradient(180deg, #4a2a2a 0%, #6a3a2a 100%); animation: cr-wall 18s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .column { position:absolute; bottom:15%; left:45%; width:15px; height:85%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:5% 5% 0 0; animation: cr-column 14s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .cloten-figure { position:absolute; bottom:15%; left:30%; width:22px; height:45px; background: linear-gradient(180deg, #4a1a1a 0%, #2a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cr-cloten 3s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .pisanio-figure { position:absolute; bottom:15%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cr-pisanio 3.5s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .window-light { position:absolute; top:20%; right:15%; width:30px; height:50px; background: radial-gradient(ellipse, #f0d890 30%, transparent 70%); border-radius:10% 10% 0 0; animation: cr-window 6s ease-in-out infinite alternate; }
@keyframes cr-floor { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes cr-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cr-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cr-cloten { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(15px) rotate(5deg) } 100% { transform: translateX(5px) rotate(-2deg) } }
@keyframes cr-pisanio { 0% { transform: translateX(0) rotate(3deg) } 50% { transform: translateX(-10px) rotate(-3deg) } 100% { transform: translateX(-3px) rotate(1deg) } }
@keyframes cr-window { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1.05) } }

.scn-cowards-turn-heroes { background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 40%, #ffd700 60%, #fff8dc 100%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%); }
.scn-cowards-turn-heroes .sky { position:absolute; inset:0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, transparent 100%); animation: cth-sky 8s ease-in-out infinite alternate; }
.scn-cowards-turn-heroes .sun { position:absolute; top:10%; left:50%; width:60px; height:60px; transform:translate(-50%,0); background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, rgba(255,215,0,0) 70%); border-radius:50%; animation: cth-sun 10s ease-in-out infinite; }
.scn-cowards-turn-heroes .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b4513 0%, #d2b48c 100%); }
.scn-cowards-turn-heroes .pikes { position:absolute; bottom:40%; left:20%; right:20%; height:10%; background: linear-gradient(90deg, transparent, #a0522d 30%, #a0522d 70%, transparent); border-radius:50% / 0 0 50% 50%; animation: cth-pikes 6s ease-in-out infinite alternate; }
.scn-cowards-turn-heroes .figure-left { position:absolute; bottom:25%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cth-figureL 4s ease-in-out infinite; }
.scn-cowards-turn-heroes .figure-right { position:absolute; bottom:25%; right:15%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cth-figureR 4.2s ease-in-out infinite; }
.scn-cowards-turn-heroes .figure-center { position:absolute; bottom:30%; left:50%; width:22px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #a0461a 0%, #6b2e12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cth-figureC 3.5s ease-in-out infinite; }
.scn-cowards-turn-heroes .cloud-1 { position:absolute; top:15%; left:-10%; width:80px; height:20px; background: rgba(255,255,255,0.7); border-radius:50%; filter: blur(8px); animation: cth-cloud 30s linear infinite; }
.scn-cowards-turn-heroes .cloud-2 { position:absolute; top:25%; left:-20%; width:60px; height:15px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(6px); animation: cth-cloud 40s linear infinite 5s; }
@keyframes cth-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes cth-sun { 0%{transform:translate(-50%,0) scale(1)} 50%{transform:translate(-50%,-5px) scale(1.05)} 100%{transform:translate(-50%,0) scale(0.95)} }
@keyframes cth-pikes { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.02)} 100%{transform:translateY(-1px) scale(0.98)} }
@keyframes cth-figureL { 0%{transform:rotate(0) translateX(0)} 30%{transform:rotate(10deg) translateX(5px)} 60%{transform:rotate(-5deg) translateX(10px)} 100%{transform:rotate(0) translateX(0)} }
@keyframes cth-figureR { 0%{transform:rotate(0) translateX(0)} 30%{transform:rotate(-10deg) translateX(-5px)} 60%{transform:rotate(5deg) translateX(-10px)} 100%{transform:rotate(0) translateX(0)} }
@keyframes cth-figureC { 0%{transform:translateX(-50%) rotate(0)} 25%{transform:translateX(-40%) rotate(8deg)} 50%{transform:translateX(-30%) rotate(-5deg)} 75%{transform:translateX(-40%) rotate(4deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes cth-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(120vw)} }

.scn-slaughter-aftermath { background: linear-gradient(180deg, #c0c0c0 0%, #e0d8c8 30%, #b0a090 60%, #806850 100%), radial-gradient(ellipse at 40% 0%, #fff8dc 0%, transparent 50%); }
.scn-slaughter-aftermath .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d3d3d3 0%, #c0b098 50%, transparent 100%); animation: sa-sky 12s ease-in-out infinite alternate; }
.scn-slaughter-aftermath .sun { position:absolute; top:8%; left:35%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #e0d8c0 40%, transparent 60%); border-radius:50%; animation: sa-sun 10s ease-in-out infinite; }
.scn-slaughter-aftermath .wall-left { position:absolute; top:15%; left:0; bottom:30%; width:20%; background: linear-gradient(90deg, #8b7d6b 0%, #a09080 100%); border-right:2px solid #6b5d4b; }
.scn-slaughter-aftermath .wall-right { position:absolute; top:15%; right:0; bottom:30%; width:20%; background: linear-gradient(90deg, #a09080 0%, #8b7d6b 100%); border-left:2px solid #6b5d4b; }
.scn-slaughter-aftermath .ground { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #6b5d4b 0%, #4a3d2d 100%); }
.scn-slaughter-aftermath .body-1 { position:absolute; bottom:20%; left:35%; width:40px; height:20px; background: #5a4a3a; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform-origin: bottom; animation: sa-body 8s ease-in-out infinite; }
.scn-slaughter-aftermath .body-2 { position:absolute; bottom:18%; left:55%; width:35px; height:18px; background: #5a4a3a; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:rotate(20deg); animation: sa-body 8s ease-in-out infinite 2s; }
.scn-slaughter-aftermath .old-man { position:absolute; bottom:30%; left:50%; width:18px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3020 0%, #2a2015 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sa-oldman 6s ease-in-out infinite; }
.scn-slaughter-aftermath .cloud { position:absolute; top:20%; right:-10%; width:70px; height:18px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(8px); animation: sa-cloud 40s linear infinite; }
@keyframes sa-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes sa-sun { 0%{transform:scale(1) translateX(0)} 50%{transform:scale(1.1) translateX(5px)} 100%{transform:scale(0.9) translateX(-5px)} }
@keyframes sa-body { 0%{transform:rotate(0) translateY(0)} 50%{transform:rotate(15deg) translateY(-3px)} 100%{transform:rotate(0) translateY(0)} }
@keyframes sa-oldman { 0%{transform:translateX(-50%) rotate(0)} 25%{transform:translateX(-45%) rotate(5deg)} 50%{transform:translateX(-40%) rotate(-3deg)} 75%{transform:translateX(-45%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes sa-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(-150vw)} }

.scn-posthumus-mocks-lord { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 30%, #d0b898 60%, #a08060 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 60%); }
.scn-posthumus-mocks-lord .wall-back { position:absolute; inset:0; background: linear-gradient(90deg, #d0b898 0%, #c0a888 50%, #d0b898 100%); }
.scn-posthumus-mocks-lord .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b09070 0%, #8a7a5a 100%); }
.scn-posthumus-mocks-lord .lord { position:absolute; bottom:40%; right:10%; width:22px; height:45px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pml-lord 3s ease-in-out infinite; }
.scn-posthumus-mocks-lord .posthumus { position:absolute; bottom:40%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #8b5a3a 0%, #5a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pml-post 2.8s ease-in-out infinite; }
.scn-posthumus-mocks-lord .hat { position:absolute; bottom:70%; right:10%; width:30px; height:12px; background: #3a2a1a; border-radius:50% 50% 0 0; transform:rotate(15deg); animation: pml-hat 3.2s ease-in-out infinite; }
.scn-posthumus-mocks-lord .shadow { position:absolute; bottom:0; left:15%; right:10%; height:15%; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(10px); animation: pml-shadow 4s ease-in-out infinite; }
@keyframes pml-lord { 0%{transform:rotate(0) translateX(0)} 30%{transform:rotate(-10deg) translateX(-5px)} 60%{transform:rotate(5deg) translateX(-10px)} 100%{transform:rotate(0) translateX(0)} }
@keyframes pml-post { 0%{transform:rotate(0) scaleY(1)} 50%{transform:rotate(8deg) scaleY(1.1)} 100%{transform:rotate(0) scaleY(1)} }
@keyframes pml-hat { 0%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(20deg) translateY(-5px)} 100%{transform:rotate(15deg) translateY(0)} }
@keyframes pml-shadow { 0%{opacity:0.5; transform:scale(1)} 50%{opacity:0.8; transform:scale(1.1)} 100%{opacity:0.5; transform:scale(1)} }

.scn-posthumus-seeks-death { background: linear-gradient(180deg, #2a1a0a 0%, #4a3020 30%, #6a5040 60%, #8a7060 100%), radial-gradient(ellipse at 50% 60%, #d0a060 0%, transparent 70%); }
.scn-posthumus-seeks-death .wall { position:absolute; inset:0; background: linear-gradient(90deg, #4a3020 0%, #3a2a1a 50%, #4a3020 100%); }
.scn-posthumus-seeks-death .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-posthumus-seeks-death .bed { position:absolute; bottom:20%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7060 0%, #5a4a3a 100%); border-radius:10px; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: psd-bed 8s ease-in-out infinite; }
.scn-posthumus-seeks-death .table { position:absolute; bottom:30%; left:30%; width:40px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:5px; }
.scn-posthumus-seeks-death .cup { position:absolute; bottom:38%; left:32%; width:14px; height:18px; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius:4px 4px 0 0; animation: psd-cup 6s ease-in-out infinite; }
.scn-posthumus-seeks-death .posthumus { position:absolute; bottom:25%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: psd-post 7s ease-in-out infinite; }
.scn-posthumus-seeks-death .window { position:absolute; top:15%; right:15%; width:50px; height:60px; border:2px solid #8a7060; background: radial-gradient(ellipse at 50% 50%, #ffd700 0%, transparent 70%); border-radius:5px; animation: psd-window 8s ease-in-out infinite; }
.scn-posthumus-seeks-death .lamp { position:absolute; top:20%; left:10%; width:10px; height:15px; background: radial-gradient(circle, #ffd700 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(255,215,0,0.5); animation: psd-lamp 5s ease-in-out infinite alternate; }
@keyframes psd-bed { 0%{transform:translateX(-50%) rotate(0)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes psd-cup { 0%{transform:translateY(0) rotate(0)} 30%{transform:translateY(-2px) rotate(5deg)} 60%{transform:translateY(-4px) rotate(-3deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes psd-post { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(5px) rotate(5deg)} 50%{transform:translateX(10px) rotate(-3deg)} 75%{transform:translateX(5px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes psd-window { 0%{opacity:0.5} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes psd-lamp { 0%{box-shadow: 0 0 15px 3px rgba(255,215,0,0.3)} 50%{box-shadow: 0 0 25px 8px rgba(255,215,0,0.7)} 100%{box-shadow: 0 0 15px 3px rgba(255,215,0,0.3)} }

.scn-queens-death-confession {
  background:
    linear-gradient(180deg, #d4b896 0%, #a68466 50%, #73553a 100%),
    radial-gradient(ellipse at 50% 20%, #e6d0b8 0%, transparent 60%);
}
.scn-queens-death-confession .window {
  position: absolute; top: 8%; right: 10%; width: 28%; height: 32%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #d4b080 70%, transparent 100%);
  border: 3px solid #6b4f36; border-radius: 2px;
  box-shadow: 0 0 40px 10px rgba(255,232,192,0.4), inset 0 0 0 1px #8c6c4e;
}
.scn-queens-death-confession .light-ray {
  position: absolute; top: 30%; right: 15%; width: 55%; height: 60%;
  background: linear-gradient(135deg, rgba(255,232,192,0.25) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  transform: skewY(-10deg) rotate(5deg);
  animation: qdc-lightray 8s ease-in-out infinite alternate;
}
.scn-queens-death-confession .bed {
  position: absolute; bottom: 6%; left: 5%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #5e3a24 0%, #3d2214 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-queens-death-confession .queen {
  position: absolute; bottom: 14%; left: 13%; width: 18%; height: 18%;
  background: linear-gradient(180deg, #2a1c14 0%, #120c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qdc-breathe 5s ease-in-out infinite;
}
.scn-queens-death-confession .woman-kneeling {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qdc-bow 6s ease-in-out infinite;
}
.scn-queens-death-confession .woman-standing {
  position: absolute; bottom: 8%; right: 25%; width: 10%; height: 34%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: qdc-sway 7s ease-in-out infinite;
}
.scn-queens-death-confession .candle-body {
  position: absolute; bottom: 22%; right: 12%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #d4b080 0%, #b8885c 100%);
  border-radius: 2px;
}
.scn-queens-death-confession .candle-flame {
  position: absolute; bottom: 34%; right: 12.5%; width: 2%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #ffaa40 0%, #ff6a20 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: qdc-flicker 2s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-queens-death-confession .tear {
  position: absolute; bottom: 24%; left: 27%; width: 1%; height: 2%;
  background: radial-gradient(circle, #c0d8f0 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0;
  animation: qdc-tear 4s ease-in-out infinite;
}
@keyframes qdc-lightray {
  0% { opacity: 0.5; width: 55%; }
  50% { opacity: 0.8; width: 65%; }
  100% { opacity: 0.4; width: 55%; }
}
@keyframes qdc-breathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(1); }
}
@keyframes qdc-bow {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0); }
}
@keyframes qdc-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes qdc-flicker {
  0% { opacity: 0.8; transform: scaleY(1) scaleX(1); }
  50% { opacity: 1; transform: scaleY(1.15) scaleX(0.9); }
  100% { opacity: 0.7; transform: scaleY(0.95) scaleX(1.05); }
}
@keyframes qdc-tear {
  0% { opacity: 0; transform: translateY(0); }
  20% { opacity: 0.6; }
  50% { opacity: 0.8; transform: translateY(6px); }
  80% { opacity: 0.4; }
  100% { opacity: 0; transform: translateY(12px); }
}

.scn-queen\s-death-confession {
  background:
    linear-gradient(180deg, #1a0a2a 0%, #2a1a3a 50%, #0e0518 100%),
    radial-gradient(ellipse at 50% 30%, #ffd080 0%, transparent 60%);
}
.scn-queen\s-death-confession .backwall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1030 0%, #2a1a3a 100%);
  animation: qdc-wall 20s ease-in-out infinite alternate;
}
.scn-queen\s-death-confession .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0e0510 100%);
  transform: perspective(800px) rotateX(5deg);
}
.scn-queen\s-death-confession .canopy {
  position: absolute;
  top: 0; left: 20%; right: 20%;
  height: 15%;
  background: #3a1a2a;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,.6);
  animation: qdc-canopy 8s ease-in-out infinite;
}
.scn-queen\s-death-confession .bed {
  position: absolute;
  bottom: 30%; left: 25%; right: 25%;
  height: 18%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-queen\s-death-confession .queen {
  position: absolute;
  bottom: 35%; left: 38%;
  width: 24%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #c08060 0%, #4a3030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qdc-queen 6s ease-in-out infinite;
}
.scn-queen\s-death-confession .attendant-l {
  position: absolute;
  bottom: 30%; left: 10%;
  width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: qdc-att 12s ease-in-out infinite;
}
.scn-queen\s-death-confession .attendant-r {
  position: absolute;
  bottom: 30%; right: 10%;
  width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: qdc-att 12s ease-in-out infinite reverse;
}
.scn-queen\s-death-confession .candle-glow {
  position: absolute;
  bottom: 43%; left: 50%;
  transform: translateX(-50%);
  width: 20px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: qdc-candle 3s ease-in-out infinite alternate;
}
@keyframes qdc-wall {
  0% { opacity: .9 }
  50% { opacity: 1 }
  100% { opacity: .85 }
}
@keyframes qdc-canopy {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes qdc-queen {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(1) }
}
@keyframes qdc-att {
  0% { transform: translateX(0) }
  50% { transform: translateX(2px) }
  100% { transform: translateX(0) }
}
@keyframes qdc-candle {
  0% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.4); opacity: .9 }
  50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.5); opacity: 1 }
  100% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 15px rgba(255,208,128,.45); opacity: .92 }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.ember { position: absolute; pointer-events: none; }
.note { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-garden-gentlemen-talk {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 100%), radial-gradient(ellipse at 50% 100%, #F0E68C 0%, transparent 70%);
}
.scn-garden-gentlemen-talk .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%);
  animation: gg-sky 15s ease-in-out infinite alternate;
}
.scn-garden-gentlemen-talk .sun {
  position: absolute; top: 5%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: gg-sun 20s ease-in-out infinite;
}
.scn-garden-gentlemen-talk .path {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(90deg, #C2B280 0%, #8B7355 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: perspective(300px) rotateX(10deg);
}

.scn-tent-oracle-interpreted {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b68a 40%, #b2947a 70%, #8a6e4e 100%),
    radial-gradient(ellipse at 30% 20%, #ffeac2 0%, transparent 60%),
    linear-gradient(135deg, #c9a97a 0%, #e3cba8 50%, #d4b68a 100%);
}
.scn-tent-oracle-interpreted .tent-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(245,230,200,0.4) 0%, rgba(210,180,140,0.8) 50%, rgba(160,130,100,1) 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
  animation: toi-wall 20s ease-in-out infinite alternate;
}
.scn-tent-oracle-interpreted .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b5a3e 0%, #4a3d2e 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-tent-oracle-interpreted .table {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #9c7a5a 0%, #6a4e32 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-tent-oracle-interpreted .scroll {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0dbb0 0%, #c9a97a 50%, #b08a5e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: toi-scroll 6s ease-in-out infinite;
}
.scn-tent-oracle-interpreted .figure-side {
  position: absolute; bottom: 24%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: toi-figure 8s ease-in-out infinite;
}
.scn-tent-oracle-interpreted .lamp {
  position: absolute; bottom: 30%; left: 58%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px #ffcc66, 0 0 40px 12px rgba(255,200,80,0.5);
  animation: toi-lamp 4s ease-in-out infinite alternate;
}
.scn-tent-oracle-interpreted .shadow {
  position: absolute; bottom: 24%; left: 32%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: toi-shadow 8s ease-in-out infinite alternate;
}
.scn-tent-oracle-interpreted .glow {
  position: absolute; bottom: 30%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: toi-glow 5s ease-in-out infinite alternate;
}

@keyframes toi-wall {
  0% { opacity: 0.85; transform: scaleY(1); }
  50% { opacity: 0.95; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes toi-scroll {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes toi-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(2px) rotate(0deg); }
  66% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes toi-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes toi-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(4px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}
@keyframes toi-glow {
  0% { transform: scale(0.9); opacity: 0.3; }
  100% { transform: scale(1.3); opacity: 0.6; }
}

/* --- Scene 2: tent-final-peace --- */
.scn-tent-final-peace {
  background:
    linear-gradient(180deg, #e0d0b8 0%, #cbb59a 40%, #a88f73 100%),
    radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 60%),
    linear-gradient(90deg, #d4b896 0%, #e0c8a8 50%, #c2a484 100%);
}
.scn-tent-final-peace .tent-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(240,225,200,0.3) 0%, rgba(180,150,120,0.7) 50%, rgba(120,90,60,0.9) 100%);
  border-radius: 0 0 25% 25%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: tfp-interior 30s ease-in-out infinite alternate;
}
.scn-tent-final-peace .altar {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6e5a42 0%, #4a3b2a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-tent-final-peace .smoke-1 {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.5) 0%, transparent 80%);
  filter: blur(8px);
  border-radius: 50%;
  animation: tfp-smoke-1 10s ease-in-out infinite alternate;
}
.scn-tent-final-peace .smoke-2 {
  position: absolute; bottom: 38%; left: 55%; width: 25px; height: 35px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.4) 0%, transparent 70%);
  filter: blur(6px);
  border-radius: 50%;
  animation: tfp-smoke-2 12s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-tent-final-peace .banner-roman {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a30 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: tfp-banner-roman 6s ease-in-out infinite;
}
.scn-tent-final-peace .banner-british {
  position: absolute; bottom: 40%; right: 30%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: tfp-banner-british 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-tent-final-peace .figure-priest {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a140e 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfp-priest 10s ease-in-out infinite;
}
.scn-tent-final-peace .offering {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc88 0%, #dba060 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 10px 4px rgba(255,200,100,0.4);
  animation: tfp-offering 8s ease-in-out infinite alternate;
}
.scn-tent-final-peace .light-ray {
  position: absolute; top: 0; left: 50%; width: 80px; height: 100%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(30px);
  animation: tfp-ray 15s ease-in-out infinite alternate;
}

@keyframes tfp-interior {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes tfp-smoke-1 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(-3px, -10px) scale(1.5); opacity: 0.6; }
  100% { transform: translate(2px, -5px) scale(1.2); opacity: 0.2; }
}
@keyframes tfp-smoke-2 {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(4px, -8px) scale(1.3); opacity: 0.7; }
  100% { transform: translate(-2px, -3px) scale(0.9); opacity: 0.3; }
}
@keyframes tfp-banner-roman {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes tfp-banner-british {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(2deg); }
}
@keyframes tfp-priest {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes tfp-offering {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.8; }
}
@keyframes tfp-ray {
  0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.2; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 0.4; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 0.3; }
}

/* wales-cloten-alone */
.scn-wales-cloten-alone {
  background: linear-gradient(180deg, #4a5555 0%, #2c3636 40%, #1a2222 100%), radial-gradient(ellipse at 30% 70%, #4a5555 0%, transparent 60%);
  animation: wco-bg 20s ease-in-out infinite alternate;
}
.scn-wales-cloten-alone .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5c6d6d 0%, #3a4949 100%);
  animation: wco-sky 12s ease-in-out infinite alternate;
}
.scn-wales-cloten-alone .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1e2c1e 100%);
  border-radius: 50% 20% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: wco-mountains 18s ease-in-out infinite alternate;
}
.scn-wales-cloten-alone .path {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 30%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: wco-path 14s ease-in-out infinite alternate;
}
.scn-wales-cloten-alone .figure {
  position: absolute; bottom: 24%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wco-figure 4s ease-in-out infinite;
}
.scn-wales-cloten-alone .cape {
  position: absolute; bottom: 24%; left: 52%; width: 28px; height: 36px;
  background: linear-gradient(135deg, #3a2020 0%, #1a1010 100%);
  border-radius: 0 80% 0 60%;
  transform-origin: top left;
  animation: wco-cape 3s ease-in-out infinite alternate;
}
.scn-wales-cloten-alone .bird {
  position: absolute; top: 18%; right: 20%; width: 12px; height: 8px;
  background: #2a3535;
  border-radius: 50%;
  filter: blur(1px);
  animation: wco-bird 30s linear infinite;
}
@keyframes wco-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wco-sky { 0% { opacity: 0.7 } 100% { opacity: 0.9 } }
@keyframes wco-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wco-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes wco-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0) } 50% { transform: translateX(8px) translateY(0) rotate(2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0) } 100% { transform: translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes wco-cape { 0% { transform: rotate(0) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(0) scaleX(1) } }
@keyframes wco-bird { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-20px) translateY(-3px) } 100% { transform: translateX(-100vw) translateY(2px) } }

/* wales-cave-sickness */
.scn-wales-cave-sickness {
  background: linear-gradient(135deg, #2e2b2a 0%, #3b3530 50%, #1f1b18 100%), radial-gradient(ellipse at 50% 60%, #4a3f35 0%, transparent 80%);
}
.scn-wales-cave-sickness .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1917 0%, #2a2520 50%, #1f1b18 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-wales-cave-sickness .stalactite-left {
  position: absolute; top: 0; left: 10%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3f35 0%, #2a2520 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: wcs-stal 8s ease-in-out infinite alternate;
}
.scn-wales-cave-sickness .stalactite-right {
  position: absolute; top: 0; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3f35 0%, #2a2520 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  animation: wcs-stal 10s ease-in-out infinite alternate-reverse;
}
.scn-wales-cave-sickness .ledge {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% / 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-wales-cave-sickness .figure-lying {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: wcs-figure 6s ease-in-out infinite;
}
.scn-wales-cave-sickness .cloak {
  position: absolute; bottom: 27%; left: 38%; width: 36px; height: 22px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 80% 40% 40%;
  transform: rotate(-5deg);
  animation: wcs-cloak 7s ease-in-out infinite alternate;
}
.scn-wales-cave-sickness .light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(180,160,120,0.15) 0%, rgba(180,160,120,0.05) 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: wcs-light 9s ease-in-out infinite alternate;
}
@keyframes wcs-stal { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes wcs-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes wcs-cloak { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes wcs-light { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

/* wales-cave-hunt */
.scn-wales-cave-hunt {
  background: linear-gradient(180deg, #5c6868 0%, #3a4545 40%, #1c2828 100%), radial-gradient(ellipse at 50% 30%, #6a7676 0%, transparent 70%);
}
.scn-wales-cave-hunt .moor-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6d7a7a 0%, #4a5a5a 100%);
  animation: wch-sky 15s ease-in-out infinite alternate;
}
.scn-wales-cave-hunt .cave-mouth {
  position: absolute; bottom: 35%; left: 40%; width: 120px; height: 90px;
  background: linear-gradient(135deg, #1e1c1a 0%, #2a2622 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: wch-cave 20s ease-in-out infinite alternate;
}
.scn-wales-cave-hunt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-wales-cave-hunt .figure-one {
  position: absolute; bottom: 18%; left: 20%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a3020 0%, #1a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: wch-figures 5s ease-in-out infinite;
}
.scn-wales-cave-hunt .figure-two {
  position: absolute; bottom: 17%; left: 26%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #302a20 0%, #201a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.0);
  animation: wch-figures 5s ease-in-out infinite -1.5s;
}
.scn-wales-cave-hunt .figure-three {
  position: absolute; bottom: 16%; left: 32%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a18 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.05);
  animation: wch-figures 5s ease-in-out infinite -3s;
}
.scn-wales-cave-hunt .spear {
  position: absolute; bottom: 22%; left: 24%; width: 4px; height: 30px;
  background: #5a4a3a;
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: wch-spear 4s ease-in-out infinite alternate;
}
@keyframes wch-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wch-cave { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes wch-figures { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5px) translateY(-1px) } 50% { transform: translateX(10px) translateY(0) } 75% { transform: translateX(15px) translateY(-1px) } 100% { transform: translateX(20px) translateY(0) } }
@keyframes wch-spear { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } 100% { transform: rotate(30deg) scaleY(1) } }

/* wales-cave-cloten-challenge */
.scn-wales-cave-cloten-challenge {
  background: linear-gradient(180deg, #3a4545 0%, #1c2828 40%, #0a1414 100%), radial-gradient(ellipse at 30% 50%, #3a5050 0%, transparent 70%);
}
.scn-wales-cave-cloten-challenge .storm-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  animation: wcc-sky 8s ease-in-out infinite alternate;
}
.scn-wales-cave-cloten-challenge .crag-left {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3030 0%, #1a2020 100%);
  clip-path: polygon(0 100%, 100% 50%, 80% 0, 0 0);
  animation: wcc-crag 12s ease-in-out infinite alternate;
}
.scn-wales-cave-cloten-challenge .crag-right {
  position: absolute; bottom: 20%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a3030 0%, #1a2020 100%);
  clip-path: polygon(100% 100%, 0 50%, 20% 0, 100% 0);
  animation: wcc-crag 12s ease-in-out infinite alternate-reverse;
}
.scn-wales-cave-cloten-challenge .cloten {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-5deg);
  animation: wcc-cloten 3s ease-in-out infinite;
}
.scn-wales-cave-cloten-challenge .belarius {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a3020 0%, #1a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wcc-belarius 4s ease-in-out infinite;
}
.scn-wales-cave-cloten-challenge .guiderius {
  position: absolute; bottom: 23%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #202a18 0%, #101a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: wcc-belarius 4s ease-in-out infinite -1s;
}
.scn-wales-cave-cloten-challenge .arvirago {
  position: absolute; bottom: 22%; left: 60%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a2420 0%, #0e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: wcc-belarius 4s ease-in-out infinite -2s;
}
.scn-wales-cave-cloten-challenge .sword-clash {
  position: absolute; bottom: 32%; left: 42%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a08060 0%, #605040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(160,128,96,0.4);
  animation: wcc-spark 1.8s ease-in-out infinite alternate;
}
@keyframes wcc-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wcc-crag { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes wcc-cloten { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(0) translateX(2px) } 50% { transform: rotate(5deg) translateX(0) } 75% { transform: rotate(0) translateX(-2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes wcc-belarius { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wcc-spark { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.5); opacity: 1 } 100% { transform: scale(0.8); opacity: 0.5 } }

.scn-palace-cymbeline-war-preparations {
  position: relative;
  width: 100%; height: 100%;
  background: linear-gradient(180deg, #f5f0e1 0%, #d6cdb4 60%, #b8a88a 100%),
              radial-gradient(circle at 70% 30%, rgba(255,250,240,0.9) 0%, rgba(255,250,240,0.3) 40%, transparent 70%);
  overflow: hidden;
}
.scn-palace-cymbeline-war-preparations .arch {
  position: absolute;
  inset: 10% 20% 40% 20%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.2);
}
.scn-palace-cymbeline-war-preparations .window-light {
  position: absolute;
  top: 0; left: 60%; width: 30%; height: 100%;
  background: linear-gradient(105deg, rgba(255,250,240,0.6) 0%, rgba(255,250,240,0) 60%);
  transform-origin: top right;
  animation: pcwp-light-drift 14s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-war-preparations .col {
  position: absolute;
  width: 8%; height: 70%;
  background: linear-gradient(90deg, #b8a88a 0%, #d6cdb4 20%, #b8a88a 80%, #a08870 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-palace-cymbeline-war-preparations .col-left { left: 10%; bottom: 20%; }
.scn-palace-cymbeline-war-preparations .col-right { right: 10%; bottom: 20%; }
.scn-palace-cymbeline-war-preparations .throne {
  position: absolute;
  bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 30%;
  background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%);
  border-radius: 15% 15% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
}
.scn-palace-cymbeline-war-preparations .figure {
  position: absolute;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
}
.scn-palace-cymbeline-war-preparations .figure-king {
  bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 12%;
  animation: pcwp-king-breath 6s ease-in-out infinite;
}
.scn-palace-cymbeline-war-preparations .figure-queen {
  bottom: 20%; left: 32%;
  width: 6%; height: 14%;
  animation: pcwp-queen-sway 7s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-war-preparations .figure-envoy {
  bottom: 22%; right: 25%;
  width: 7%; height: 12%;
  transform-origin: bottom center;
  animation: pcwp-envoy-bow 5s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-war-preparations .banner {
  position: absolute;
  top: 5%; left: 50%; transform: translateX(-50%);
  width: 20%; height: 10%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pcwp-banner-sway 12s ease-in-out infinite alternate;
}

@keyframes pcwp-light-drift {
  0%   { opacity: 0.7; transform: translateX(-5%); }
  50%  { opacity: 1;   transform: translateX(0); }
  100% { opacity: 0.8; transform: translateX(3%); }
}
@keyframes pcwp-king-breath {
  0%   { transform: translateX(-50%) scaleY(1); }
  50%  { transform: translateX(-50%) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes pcwp-queen-sway {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pcwp-envoy-bow {
  0%   { transform: rotate(-10deg) translateY(0); }
  50%  { transform: rotate(-15deg) translateY(3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes pcwp-banner-sway {
  0%   { transform: translateX(-50%) rotate(-3deg); }
  50%  { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}

.scn-palace-queen-dissembling { background: linear-gradient(180deg, #1c0e2a 0%, #2a1a40 40%, #4a3060 100%), radial-gradient(ellipse at 50% 20%, #5a4a70 0%, transparent 60%); }
.scn-palace-queen-dissembling .arches { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #2a1a40 0%, #1a0e2a 100%); border-radius: 0 0 60% 60% / 0 0 50% 50%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); animation: pqd-arches 30s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .window-light { position:absolute; top:8%; right:12%; width:35%; height:25%; background: linear-gradient(160deg, rgba(230,180,100,.25) 20%, rgba(180,100,60,.1) 80%); filter: blur(4px); transform: rotate(-8deg); animation: pqd-light 18s linear infinite; }
.scn-palace-queen-dissembling .throne { position:absolute; bottom:12%; left:50%; width:22%; height:28%; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius: 20% 20% 6% 6% / 30% 30% 10% 10%; box-shadow: 0 12px 20px rgba(0,0,0,.5), inset 0 6px 12px rgba(0,0,0,.4); animation: pqd-throne 8s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .queen-figure { position:absolute; bottom:18%; left:47%; width:9%; height:22%; background: linear-gradient(180deg, #5a2a60 0%, #3a1a40 100%); border-radius: 45% 45% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; transform: rotate(-12deg); animation: pqd-queen 6s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .attendant { position:absolute; bottom:16%; left:38%; width:7%; height:18%; background: linear-gradient(180deg, #2a4060 0%, #1a2a40 100%); border-radius: 40% 40% 50% 50% / 50% 50% 30% 30%; transform: rotate(8deg); animation: pqd-attendant 5s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .guard { position:absolute; bottom:14%; left:60%; width:6%; height:24%; background: linear-gradient(180deg, #4a4a4a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 6px rgba(0,0,0,.6); animation: pqd-guard 7s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .chandelier { position:absolute; top:0%; left:50%; width:18%; height:16%; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, rgba(255,220,140,.8) 0%, rgba(200,150,60,.4) 20%, transparent 60%); filter: blur(1px); animation: pqd-chandelier 6s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .candle { position:absolute; width:6px; height:12px; border-radius:30% 30% 50% 50%; background: radial-gradient(circle at 50% 30%, #ffd280 0%, #c0a040 70%); box-shadow: 0 0 12px 3px rgba(255,210,100,.6); }
.scn-palace-queen-dissembling .candle-left { bottom:22%; left:25%; animation: pqd-candle 3.5s ease-in-out infinite alternate; }
.scn-palace-queen-dissembling .candle-right { bottom:22%; right:22%; animation: pqd-candle 4.2s ease-in-out infinite alternate 1s; }
@keyframes pqd-arches { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pqd-light { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes pqd-throne { 0% { box-shadow: 0 12px 20px rgba(0,0,0,.5), inset 0 6px 12px rgba(0,0,0,.4); } 50% { box-shadow: 0 14px 22px rgba(0,0,0,.6), inset 0 8px 14px rgba(0,0,0,.5); } 100% { box-shadow: 0 12px 20px rgba(0,0,0,.5), inset 0 6px 12px rgba(0,0,0,.4); } }
@keyframes pqd-queen { 0% { transform: rotate(-12deg) translateY(0); } 25% { transform: rotate(-13deg) translateY(-1px); } 50% { transform: rotate(-11deg) translateY(1px); } 75% { transform: rotate(-13deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes pqd-attendant { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes pqd-guard { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pqd-chandelier { 0% { transform: translateX(-50%) rotate(-1.5deg); } 50% { transform: translateX(-50%) rotate(1.5deg); } 100% { transform: translateX(-50%) rotate(-1.5deg); } }
@keyframes pqd-candle { 0% { box-shadow: 0 0 10px 2px rgba(255,210,100,.6); opacity: .85; } 50% { box-shadow: 0 0 16px 5px rgba(255,230,120,.8); opacity: 1; } 100% { box-shadow: 0 0 12px 3px rgba(255,210,100,.6); opacity: .85; } }

.scn-palace-cloten-revenge { background: linear-gradient(180deg, #0b0b1e 0%, #141432 40%, #1a1a3e 100%), radial-gradient(circle at 70% 80%, #3a2e4a 0%, transparent 70%); }
.scn-palace-cloten-revenge .arch-frame { position:absolute; inset:0; background: radial-gradient(circle at 50% 0%, #2a1a3e 0%, transparent 60%), linear-gradient(180deg, #1a0a1a 0%, transparent 100%); box-shadow: inset 0 0 60px 20px rgba(0,0,0,.8); animation: pcr-arch 18s ease-in-out infinite; }
.scn-palace-cloten-revenge .pillar { position:absolute; top:10%; bottom:0; width:8%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%), radial-gradient(circle at 50% 0%, rgba(255,255,255,.1) 0%, transparent 30%); border-radius:4px; box-shadow: 0 0 12px rgba(0,0,0,.6); }
.scn-palace-cloten-revenge .pillar-left { left:5%; animation: pcr-pillar 8s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .pillar-right { right:5%; animation: pcr-pillar 7.5s ease-in-out infinite alternate-reverse; }
.scn-palace-cloten-revenge .throne { position:absolute; bottom:15%; left:50%; width:50px; height:32px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%), radial-gradient(ellipse at 50% 70%, #4a2a2a 0%, transparent 60%); border-radius:5% 5% 20% 20% / 30% 30% 60% 60%; box-shadow: 0 0 18px rgba(0,0,0,.7); animation: pcr-throne 12s ease-in-out infinite; }
.scn-palace-cloten-revenge .torch { position:absolute; bottom:20%; left:75%; width:8px; height:26px; background: linear-gradient(180deg, #ffd680 0%, #b07030 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 24px 8px rgba(255,208,96,.5), 0 0 48px 16px rgba(255,192,64,.3), 0 0 72px 24px rgba(255,160,32,.15); animation: pcr-torch-flicker 3s ease-in-out infinite alternate; }
.scn-palace-cloten-revenge .figure { position:absolute; bottom:14%; left:39%; width:14px; height:28px; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcr-figure-lean 5s ease-in-out infinite; }
.scn-palace-cloten-revenge .smoke { position:absolute; background: radial-gradient(ellipse at center, rgba(100,100,140,.15) 0%, transparent 100%); filter:blur(8px); border-radius:50%; }
.scn-palace-cloten-revenge .smoke-a { width:40px; height:14px; top:40%; left:65%; animation: pcr-smoke-a 22s linear infinite; animation-delay:0s; }
.scn-palace-cloten-revenge .smoke-b { width:50px; height:18px; top:35%; left:60%; animation: pcr-smoke-b 28s linear infinite; animation-delay:-11s; }
@keyframes pcr-arch { 0%,100% { opacity:.9; } 50% { opacity:.75; transform: scale(1.005); } }
@keyframes pcr-pillar { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pcr-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px) scale(1.01); } }
@keyframes pcr-torch-flicker { 0% { opacity:.85; box-shadow: 0 0 20px 6px rgba(255,208,96,.45), 0 0 40px 12px rgba(255,192,64,.25), 0 0 60px 18px rgba(255,160,32,.1); } 33% { opacity:1; box-shadow: 0 0 30px 12px rgba(255,228,128,.6), 0 0 56px 22px rgba(255,224,96,.4), 0 0 80px 30px rgba(255,192,64,.2); } 66% { opacity:.7; box-shadow: 0 0 16px 4px rgba(255,176,64,.35), 0 0 32px 8px rgba(255,160,32,.15), 0 0 48px 12px rgba(255,128,0,.05); } 100% { opacity:.9; box-shadow: 0 0 22px 8px rgba(255,208,96,.5), 0 0 44px 14px rgba(255,192,64,.3), 0 0 64px 20px rgba(255,160,32,.15); } }
@keyframes pcr-figure-lean { 0% { transform: translateX(0) rotate(-2deg) translateY(0); } 30% { transform: translateX(8px) rotate(5deg) translateY(-2px); } 70% { transform: translateX(-2px) rotate(-3deg) translateY(0); } 100% { transform: translateX(0) rotate(0deg) translateY(0); } }
@keyframes pcr-smoke-a { 0% { transform: translate(0,0) scale(1); opacity:.6; } 50% { transform: translate(30px,-12px) scale(1.2); opacity:.3; } 100% { transform: translate(60px,-20px) scale(1.5); opacity:0; } }
@keyframes pcr-smoke-b { 0% { transform: translate(0,0) scale(1.1); opacity:.5; } 50% { transform: translate(-20px,-16px) scale(1.4); opacity:.25; } 100% { transform: translate(-45px,-25px) scale(1.8); opacity:0; } }

.scn-palace-cloten-letters { background: radial-gradient(ellipse at 50% 30%, #f2e8d5 0%, #c4a47c 50%, #3a2e24 100%), linear-gradient(180deg, #6a5c4a 0%, #3e332a 100%); }
.scn-palace-cloten-letters .arch { position: absolute; inset: 0 0 auto 0; height: 40%; background: linear-gradient(180deg, #e8dcc8 0%, #b8a88a 100%); border-radius: 50% 50% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: pcl-arch 20s ease-in-out infinite alternate; }
.scn-palace-cloten-letters .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #4a4030 0%, #2c241a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: pcl-floor 15s linear infinite; }
.scn-palace-cloten-letters .table { position: absolute; bottom: 20%; left: 50%; width: 30%; height: 8%; transform: translateX(-50%); background: linear-gradient(180deg, #6b4e3a 0%, #3b2a1e 100%); border-radius: 5px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pcl-table 6s ease-in-out infinite alternate; }
.scn-palace-cloten-letters .window { position: absolute; top: 5%; left: 10%; width: 20%; height: 15%; background: radial-gradient(circle, #fff8e0 0%, #ffe0a0 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 30px 10px #ffe0a0, 0 0 60px 20px rgba(255,224,160,.5); animation: pcl-window 12s ease-in-out infinite alternate; }
.scn-palace-cloten-letters .letter { position: absolute; bottom: 21%; left: 45%; width: 10%; height: 3%; background: #f5f0e0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform-origin: center center; animation: pcl-letter 2.5s ease-in-out infinite; }
.scn-palace-cloten-letters .figure { position: absolute; bottom: 22%; left: 25%; width: 6%; height: 12%; background: linear-gradient(180deg, #3d2e1f 0%, #1e1714 100%); border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.3); transform-origin: bottom center; animation: pcl-figure 4s ease-in-out infinite; }
.scn-palace-cloten-letters .ray { position: absolute; top: -10%; left: -10%; width: 50%; height: 60%; background: linear-gradient(45deg, rgba(255,240,200,.4) 0%, transparent 70%); filter: blur(15px); animation: pcl-ray 12s linear infinite; }
@keyframes pcl-arch { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pcl-floor { 0% { background-position: 0% 0%; } 50% { background-position: 2% 1%; } 100% { background-position: 0% 0%; } }
@keyframes pcl-table { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes pcl-window { 0% { box-shadow: 0 0 20px 10px #ffe0a0, 0 0 40px 15px rgba(255,224,160,.4); opacity:0.85; } 50% { box-shadow: 0 0 40px 15px #fff8e0, 0 0 80px 30px rgba(255,248,224,.7); opacity:1; } 100% { box-shadow: 0 0 25px 12px #ffe0a0, 0 0 50px 20px rgba(255,224,160,.5); opacity:0.9; } }
@keyframes pcl-letter { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateY(1px) rotate(2deg) scale(1.05); } 100% { transform: translateY(0) rotate(-1deg) scale(1); } }
@keyframes pcl-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes pcl-ray { 0% { transform: translate(-20px, 0px) rotate(-5deg); opacity:0.6; } 50% { transform: translate(0px, 5px) rotate(0deg); opacity:0.9; } 100% { transform: translate(15px, -2px) rotate(5deg); opacity:0.7; } }

.scn-milford-haven-pisanio-letter {
  background:
    linear-gradient(180deg, #2c3e50 0%, #4a5d6a 30%, #7f8c8d 60%, #b0a090 80%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 0%, #f0d4a0 0%, transparent 60%);
}
.scn-milford-haven-pisanio-letter .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a506b 0%, #6b7f8c 50%, #a8b8b0 100%);
  animation: mh1-sky 15s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-letter .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: mh1-hills 20s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-letter .figure-imogen {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh1-imogen 6s ease-in-out infinite;
}
.scn-milford-haven-pisanio-letter .figure-pisanio {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh1-pisanio 7s ease-in-out infinite;
}
.scn-milford-haven-pisanio-letter .letter {
  position: absolute; bottom: 40%; left: 40%; width: 30px; height: 20px;
  background: #e8d8c0;
  border: 1px solid #c0b098;
  transform: rotate(10deg);
  animation: mh1-float 5s ease-in-out infinite;
}
.scn-milford-haven-pisanio-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-milford-haven-pisanio-letter .bird-1,
.scn-milford-haven-pisanio-letter .bird-2 {
  position: absolute; top: 20%; width: 12px; height: 8px;
  background: #2a2a3a;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%);
  opacity: 0.6;
  animation: mh1-bird 30s linear infinite;
}
.scn-milford-haven-pisanio-letter .bird-1 { left: -10%; animation-delay: 0s; }
.scn-milford-haven-pisanio-letter .bird-2 { left: -20%; animation-delay: -10s; }

@keyframes mh1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mh1-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mh1-imogen { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes mh1-pisanio { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(1deg); } 70% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes mh1-float { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } }
@keyframes mh1-bird { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(80vw) scale(0.8); } 100% { transform: translateX(160vw) scale(1); } }

/* Scene 2: milford-haven-pisanio-plot */
.scn-milford-haven-pisanio-plot {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #4a3a3a 70%, #2a1a1a 100%),
    radial-gradient(ellipse at 30% 80%, #a05030 0%, transparent 60%);
}
.scn-milford-haven-pisanio-plot .tent-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a3a 0%, #3a2a2a 50%, #2a1a1a 100%);
  border-radius: 5px;
}
.scn-milford-haven-pisanio-plot .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: #2a1a1a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-milford-haven-pisanio-plot .figure-pisanio-plot {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh2-pisanio 4s ease-in-out infinite;
}
.scn-milford-haven-pisanio-plot .dagger {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 20px;
  background: #a0a0b0;
  border-radius: 0 0 50% 50%;
  transform: rotate(30deg);
  box-shadow: 0 0 8px 2px rgba(200,200,220,0.5);
  animation: mh2-dagger 6s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-plot .candle {
  position: absolute; bottom: 25%; right: 25%; width: 8px; height: 20px;
  background: #c0a070;
  border-radius: 2px 2px 0 0;
}
.scn-milford-haven-pisanio-plot .candle-glow {
  position: absolute; bottom: 40%; right: 23%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d060 0%, #d09040 40%, transparent 70%);
  animation: mh2-flame 3s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-plot .shadow-pisanio {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #1a0a0a 0%, transparent 70%);
  opacity: 0.5;
  animation: mh2-shadow 5s ease-in-out infinite;
}

@keyframes mh2-pisanio { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-3deg); } }
@keyframes mh2-dagger { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(40deg) translateY(0); } }
@keyframes mh2-flame { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes mh2-shadow { 0%,100% { opacity: 0.3; width: 60px; } 50% { opacity: 0.7; width: 90px; } }

/* Scene 3: milford-haven-pisanio-plan */
.scn-milford-haven-pisanio-plan {
  background:
    linear-gradient(180deg, #3d4a5a 0%, #5a6a7a 40%, #7a8a7a 70%, #6a7a5a 100%),
    radial-gradient(ellipse at 50% 100%, #a8b8a0 0%, transparent 60%);
}
.scn-milford-haven-pisanio-plan .dawn-sky-plan {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a6070 0%, #8a9a8a 100%);
  animation: mh3-sky 12s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-plan .treeline {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 50%, 20% 70%, 25% 40%, 30% 60%, 35% 30%, 40% 50%, 45% 20%, 50% 40%, 55% 10%, 60% 30%, 65% 0%, 70% 20%, 75% 5%, 80% 15%, 85% 0%, 90% 10%, 95% 0%, 100% 20%, 100% 100%);
  animation: mh3-trees 10s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-plan .figure-imogen-plan {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh3-imogen 5s ease-in-out infinite;
}
.scn-milford-haven-pisanio-plan .figure-pisanio-plan {
  position: absolute; bottom: 20%; left: 48%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh3-pisanio 6s ease-in-out infinite;
}
.scn-milford-haven-pisanio-plan .map-scroll {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 10px;
  background: linear-gradient(90deg, #d4c4a8, #e0d4b8, #d4c4a8);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: mh3-scroll 8s ease-in-out infinite alternate;
}
.scn-milford-haven-pisanio-plan .rock {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 25px;
  background: #5a5a4a;
  border-radius: 30% 70% 50% 50% / 60% 50% 50% 40%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-milford-haven-pisanio-plan .mist-1,
.scn-milford-haven-pisanio-plan .mist-2 {
  position: absolute; bottom: 35%; width: 120px; height: 30px;
  background: rgba(200,210,200,0.15);
  filter: blur(20px);
  border-radius: 50%;
  animation: mh3-mist 25s linear infinite;
}
.scn-milford-haven-pisanio-plan .mist-1 { left: -20%; animation-delay: 0s; }
.scn-milford-haven-pisanio-plan .mist-2 { left: -50%; animation-delay: -12s; }

@keyframes mh3-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mh3-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes mh3-imogen { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes mh3-pisanio { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(2deg); } 70% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes mh3-scroll { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes mh3-mist { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }

/* Scene 4: milford-haven-disguise */
.scn-milford-haven-disguise {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, #6a7a6a 70%, #4a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #c0b8a8 0%, transparent 50%);
}
.scn-milford-haven-disguise .hills-disguise {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-milford-haven-disguise .road {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%);
}
.scn-milford-haven-disguise .figure-disguise {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh4-figure 4s ease-in-out infinite;
}
.scn-milford-haven-disguise .cloak {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: mh4-cloak 5s ease-in-out infinite;
}
.scn-milford-haven-disguise .hat {
  position: absolute; bottom: 68%; left: 43%; width: 24px; height: 12px;
  background: #2a2a3a;
  border-radius: 50% 50% 0 0;
  transform: rotate(-5deg);
  animation: mh4-hat 4s ease-in-out infinite alternate;
}
.scn-milford-haven-disguise .staff {
  position: absolute; bottom: 25%; left: 48%; width: 3px; height: 45px;
  background: #5a4a3a;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: mh4-staff 6s ease-in-out infinite;
}
.scn-milford-haven-disguise .shadow-figure {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  opacity: 0.4;
  animation: mh4-shadow 8s ease-in-out infinite;
}
.scn-milford-haven-disguise .dawn-glow {
  position: absolute; bottom: 40%; left: 20%; width: 100px; height: 60px;
  background: radial-gradient(circle at 50% 50%, rgba(255,200,150,0.15) 0%, transparent 70%);
  animation: mh4-glow 10s ease-in-out infinite alternate;
}

@keyframes mh4-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } }
@keyframes mh4-cloak { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }
@keyframes mh4-hat { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-8deg); } }
@keyframes mh4-staff { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }
@keyframes mh4-shadow { 0%,100% { width: 60px; opacity: 0.3; } 50% { width: 80px; opacity: 0.5; } }
@keyframes mh4-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.8); } }

/* Scene: tent-queen-death-revealed */
.scn-tent-queen-death-revealed {
  background: radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              linear-gradient(180deg, #3a1a0a 0%, #2a1208 50%, #1a0800 100%);
}
.scn-tent-queen-death-revealed .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #5a2a1a 0%, #3a1a0a 50%, #1a0800 100%); animation: qdr-flicker 6s ease-in-out infinite alternate;
}
.scn-tent-queen-death-revealed .tent-wall-left {
  position: absolute; top: 0; left: 0; width: 35%; height: 100%; background: linear-gradient(135deg, #6a3a2a 0%, #4a2a1a 50%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: qdr-sway 9s ease-in-out infinite;
}
.scn-tent-queen-death-revealed .bier {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 50%; height: 25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -6px 20px rgba(0,0,0,.6), inset 0 4px 8px rgba(100,50,20,.3); animation: qdr-float 5s ease-in-out infinite;
}
.scn-tent-queen-death-revealed .queen-figure {
  position: absolute; bottom: 18%; left: 48%; width: 12%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: qdr-breathe 4s ease-in-out infinite alternate;
}
.scn-tent-queen-death-revealed .torch {
  position: absolute; top: 20%; right: 20%; width: 8px; height: 40px; background: linear-gradient(180deg, #8a6030 0%, #4a3018 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-10deg); box-shadow: 0 0 12px rgba(200,100,30,.3);
}
.scn-tent-queen-death-revealed .torch-glow {
  position: absolute; top: 15%; right: 18%; width: 60px; height: 60px; background: radial-gradient(circle, #ff8c40 0%, #d06020 30%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: qdr-glow 3s ease-in-out infinite alternate;
}
.scn-tent-queen-death-revealed .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, transparent 0%, rgba(20,10,0,.6) 80%); animation: qdr-shadow 7s ease-in-out infinite;
}
@keyframes qdr-flicker { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes qdr-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }
@keyframes qdr-float { 0% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, -3px); } 100% { transform: translate(-50%, 0); } }
@keyframes qdr-breathe { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.01) translateY(-1px); } }
@keyframes qdr-glow { 0% { opacity: .7; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1); } }
@keyframes qdr-shadow { 0% { opacity: .8; } 50% { opacity: .6; } 100% { opacity: .8; } }

/* Scene: tent-iachimo-confesses */
.scn-tent-iachimo-confesses {
  background: radial-gradient(ellipse at 50% 50%, #5a3018 0%, #2a1408 60%, #1a0800 100%),
              linear-gradient(180deg, #3a1a0a 0%, #2a1208 50%, #1a0800 100%);
}
.scn-tent-iachimo-confesses .tent-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #6a3a2a 0%, #3a1a0a 70%); animation: iac-fade 10s ease-in-out infinite alternate;
}
.scn-tent-iachimo-confesses .tent-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; animation: iac-ground 8s ease-in-out infinite;
}
.scn-tent-iachimo-confesses .kneeling-figure {
  position: absolute; bottom: 12%; left: 30%; width: 15%; height: 28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: translateX(-50%) rotate(5deg); box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: iac-kneel 4s ease-in-out infinite;
}
.scn-tent-iachimo-confesses .standing-figures {
  position: absolute; bottom: 20%; right: 15%; width: 30%; height: 45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); border-radius: 20% 20% 0 0; animation: iac-stand 6s ease-in-out infinite alternate;
}
.scn-tent-iachimo-confesses .sword {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 50px; background: linear-gradient(180deg, #8a6030 0%, #5a3018 100%); border-radius: 10% 10% 0 0; transform: rotate(-20deg); animation: iac-sword 5s ease-in-out infinite alternate;
}
.scn-tent-iachimo-confesses .scroll {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 16px; background: linear-gradient(135deg, #b08050 0%, #8a6030 100%); border-radius: 10% 10% 20% 20%; transform: rotate(15deg); box-shadow: 0 0 6px rgba(0,0,0,.3); animation: iac-scroll 7s ease-in-out infinite;
}
@keyframes iac-fade { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes iac-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes iac-kneel { 0% { transform: translateX(-50%) rotate(5deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(5deg) scaleY(1); } }
@keyframes iac-stand { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(1.02) translateY(-3px); } }
@keyframes iac-sword { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg); } }
@keyframes iac-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(15deg) translateY(0); } }

/* Scene: tent-imogen-reveals */
.scn-tent-imogen-reveals {
  background: radial-gradient(ellipse at 50% 50%, #5a3a20 0%, #2a1808 70%, #1a0a00 100%),
              linear-gradient(180deg, #3a2010 0%, #2a1408 100%);
}
.scn-tent-imogen-reveals .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a2a18 0%, #2a1408 100%); animation: imr-depth 8s ease-in-out infinite alternate;
}
.scn-tent-imogen-reveals .left-profile {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 50%; background: linear-gradient(135deg, #3a2010 0%, #1a0a00 100%); border-radius: 50% 10% 30% 10% / 60% 20% 40% 20%; clip-path: polygon(0 0, 70% 0, 100% 40%, 90% 100%, 0 100%); animation: imr-turn-l 5s ease-in-out infinite alternate;
}
.scn-tent-imogen-reveals .right-profile {
  position: absolute; bottom: 20%; right: 15%; width: 25%; height: 50%; background: linear-gradient(225deg, #3a2010 0%, #1a0a00 100%); border-radius: 10% 50% 10% 30% / 20% 60% 20% 40%; clip-path: polygon(30% 0, 100% 0, 100% 100%, 10% 100%, 0 40%); animation: imr-turn-r 5s ease-in-out infinite alternate;
}
.scn-tent-imogen-reveals .glow-center {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; background: radial-gradient(circle, #ffd080 0%, #f0a050 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,160,80,.5); animation: imr-glow 4s ease-in-out infinite alternate;
}
.scn-tent-imogen-reveals .particles {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.2) 0%, transparent 60%); filter: blur(8px); animation: imr-spark 7s ease-in-out infinite;
}
@keyframes imr-depth { 0% { opacity: .9; } 100% { opacity: 1; } }
@keyframes imr-turn-l { 0% { transform: translateX(0); } 100% { transform: translateX(10px) rotate(-3deg); } }
@keyframes imr-turn-r { 0% { transform: translateX(0); } 100% { transform: translateX(-10px) rotate(3deg); } }
@keyframes imr-glow { 0% { opacity: .6; transform: translate(-50%, -50%) scale(.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); } 100% { opacity: .7; transform: translate(-50%, -50%) scale(1); } }
@keyframes imr-spark { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .3; } }

/* Scene: tent-posthumus-reveals */
.scn-tent-posthumus-reveals {
  background: radial-gradient(ellipse at 50% 30%, #3a1a0a 0%, #1a0a00 60%, #000 100%),
              linear-gradient(180deg, #2a1008 0%, #1a0800 100%);
}
.scn-tent-posthumus-reveals .tent-ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: por-ceiling 10s ease-in-out infinite alternate;
}
.scn-tent-posthumus-reveals .chains-left {
  position: absolute; top: 20%; left: 35%; width: 4px; height: 60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2010 100%); border-radius: 10%; transform: rotate(15deg); animation: por-chain-l 3s ease-in-out infinite alternate;
}
.scn-tent-posthumus-reveals .chains-right {
  position: absolute; top: 20%; right: 35%; width: 4px; height: 60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2010 100%); border-radius: 10%; transform: rotate(-15deg); animation: por-chain-r 3.5s ease-in-out infinite alternate;
}
.scn-tent-posthumus-reveals .figure-reach {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 20%; height: 35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 50% 50% 40% 40%; clip-path: polygon(20% 0, 80% 0, 100% 40%, 100% 100%, 0 100%, 0 40%); animation: por-reach 4s ease-in-out infinite alternate;
}
.scn-tent-posthumus-reveals .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a0800 0%, #0a0300 100%); border-radius: 30% 70% 0 0 / 80% 80% 0 0; animation: por-floor 6s ease-in-out infinite;
}
.scn-tent-posthumus-reveals .shadow-pool {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 15%; background: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 70%); filter: blur(6px); animation: por-shadow 5s ease-in-out infinite alternate;
}
@keyframes por-ceiling { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }
@keyframes por-chain-l { 0% { transform: rotate(15deg) scaleY(1); } 100% { transform: rotate(18deg) scaleY(1.05); } }
@keyframes por-chain-r { 0% { transform: rotate(-15deg) scaleY(1); } 100% { transform: rotate(-18deg) scaleY(1.05); } }
@keyframes por-reach { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 50% { transform: translateX(-50%) translateY(-5px) scaleY(1.03); } 100% { transform: translateX(-50%) translateY(0) scaleY(1); } }
@keyframes por-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(.98); } 100% { transform: scaleY(1); } }
@keyframes por-shadow { 0% { opacity: .7; transform: scale(1); } 100% { opacity: .5; transform: scale(1.1); } }

.scn-bedchamber-iachimo-creeps { background: linear-gradient(180deg, #0f1228 0%, #1a1d3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 70% 20%, #4a6a9a 0%, transparent 60%); }
.scn-bedchamber-iachimo-creeps .moon { position:absolute; top:8%; left:60%; width:70px; height:70px; background: radial-gradient(circle at 30% 30%, #c8d8ff 0%, #8aa0e0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(138,160,224,.3), 0 0 80px 30px rgba(100,130,200,.15); animation: bc-moon 12s ease-in-out infinite alternate; }
.scn-bedchamber-iachimo-creeps .window-frame { position:absolute; top:6%; left:57%; width:80px; height:100px; border:6px solid #2a2a1a; background: transparent; border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-bedchamber-iachimo-creeps .bed { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius:10px 10px 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.6); }
.scn-bedchamber-iachimo-creeps .figure-ia { position:absolute; bottom:15%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%; transform: rotate(5deg); transform-origin: bottom center; animation: bc-creep 4s ease-in-out infinite; }
.scn-bedchamber-iachimo-creeps .curtain { position:absolute; top:0; left:2%; width:30%; height:100%; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 40%, #2a1a1a 100%); border-radius:0 0 30px 30px; transform-origin: top left; animation: bc-curtain 8s ease-in-out infinite alternate; }
.scn-bedchamber-iachimo-creeps .pillow { position:absolute; bottom:30%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-bedchamber-iachimo-creeps .rug { position:absolute; bottom:0; left:20%; right:20%; height:8%; background: linear-gradient(90deg, #4a3a3a 0%, #5a4a4a 50%, #3a2a2a 100%); border-radius:20% 20% 0 0; }
.scn-bedchamber-iachimo-creeps .shadow-beam { position:absolute; top:10%; left:55%; width:120px; height:200px; background: linear-gradient(180deg, rgba(100,120,180,.25) 0%, transparent 100%); filter: blur(10px); transform: rotate(10deg); animation: bc-beam 6s ease-in-out infinite alternate; }
@keyframes bc-moon { 0% { opacity:.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.85; transform: scale(0.98) } }
@keyframes bc-creep { 0% { transform: translateX(0) rotate(5deg) } 50% { transform: translateX(8px) rotate(7deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes bc-curtain { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) scaleX(0.98) } 100% { transform: rotate(0) } }
@keyframes bc-beam { 0% { opacity:.2; transform: rotate(8deg) } 50% { opacity:.4; transform: rotate(12deg) } 100% { opacity:.2; transform: rotate(8deg) } }

.scn-bedchamber-iachimo-mole { background: linear-gradient(180deg, #0a0a1a 0%, #12122e 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 80%, #2a2a5a 0%, transparent 70%); }
.scn-bedchamber-iachimo-mole .starry-sky { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%); animation: bc-sky 18s ease-in-out infinite; }
.scn-bedchamber-iachimo-mole .bed-mole { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:15px 15px 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,.6); }
.scn-bedchamber-iachimo-mole .figure-mole { position:absolute; bottom:15%; left:38%; width:80px; height:130px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0808 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform: rotate(-3deg); transform-origin: bottom center; animation: bc-fig 6s ease-in-out infinite; }
.scn-bedchamber-iachimo-mole .sheet { position:absolute; bottom:20%; left:35%; right:40%; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:30% 30% 20% 20%; transform: rotate(-5deg); }
.scn-bedchamber-iachimo-mole .mole-spot-1 { position:absolute; bottom:45%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #b05040 0%, #6a2010 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(176,80,64,.5); animation: bc-mole 4s ease-in-out infinite; }
.scn-bedchamber-iachimo-mole .mole-spot-2 { position:absolute; bottom:46%; left:48%; width:6px; height:6px; background: radial-gradient(circle, #b05040 0%, #6a2010 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(176,80,64,.4); animation: bc-mole 4s ease-in-out infinite 0.3s; }
.scn-bedchamber-iachimo-mole .mole-spot-3 { position:absolute; bottom:44%; left:50%; width:7px; height:7px; background: radial-gradient(circle, #b05040 0%, #6a2010 100%); border-radius:50%; box-shadow: 0 0 11px 2px rgba(176,80,64,.45); animation: bc-mole 4s ease-in-out infinite 0.6s; }
.scn-bedchamber-iachimo-mole .mole-spot-4 { position:absolute; bottom:47%; left:52%; width:5px; height:5px; background: radial-gradient(circle, #b05040 0%, #6a2010 100%); border-radius:50%; box-shadow: 0 0 9px 2px rgba(176,80,64,.4); animation: bc-mole 4s ease-in-out infinite 0.9s; }
.scn-bedchamber-iachimo-mole .mole-spot-5 { position:absolute; bottom:43%; left:54%; width:6px; height:6px; background: radial-gradient(circle, #b05040 0%, #6a2010 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(176,80,64,.4); animation: bc-mole 4s ease-in-out infinite 1.2s; }
@keyframes bc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bc-fig { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes bc-mole { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(1) } }

.scn-ante-chamber-music { background: linear-gradient(180deg, #5a3a1a 0%, #8a5a2a 20%, #c09050 50%, #e0b070 100%), radial-gradient(ellipse at 30% 10%, #ffd080 0%, transparent 60%); }
.scn-ante-chamber-music .sunrise { position:absolute; top:2%; left:20%; width:120px; height:100px; background: radial-gradient(circle at 30% 20%, #ffd090 0%, #c08040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(255,208,144,.3); animation: ac-sun 6s ease-in-out infinite alternate; }
.scn-ante-chamber-music .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:20% 20% 0 0; }
.scn-ante-chamber-music .cloten { position:absolute; bottom:15%; left:35%; width:70px; height:130px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 60% 50% 30% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: ac-cloten 2s ease-in-out infinite; }
.scn-ante-chamber-music .lute { position:absolute; bottom:18%; left:42%; width:30px; height:60px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-20deg); transform-origin: bottom left; animation: ac-lute 3s ease-in-out infinite; }
.scn-ante-chamber-music .music-note-1 { position:absolute; top:30%; left:50%; width:14px; height:20px; background: radial-gradient(circle at 50% 30%, #e0d0b0 0%, #a08060 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%); animation: ac-note 4s ease-in-out infinite; }
.scn-ante-chamber-music .music-note-2 { position:absolute; top:35%; left:60%; width:12px; height:18px; background: radial-gradient(circle at 50% 30%, #e0d0b0 0%, #a08060 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%); animation: ac-note 4s ease-in-out infinite 1s; }
.scn-ante-chamber-music .music-note-3 { position:absolute; top:28%; left:70%; width:10px; height:16px; background: radial-gradient(circle at 50% 30%, #e0d0b0 0%, #a08060 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%); animation: ac-note 4s ease-in-out infinite 2s; }
.scn-ante-chamber-music .shadow-comic { position:absolute; bottom:12%; left:30%; right:40%; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 100%); animation: ac-shadow 3s ease-in-out infinite; }
@keyframes ac-sun { 0% { opacity:.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.9; transform: scale(1) } }
@keyframes ac-cloten { 0% { transform: rotate(8deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-2px) } 50% { transform: rotate(10deg) translateY(0) } 75% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes ac-lute { 0% { transform: rotate(-18deg) scale(1) } 50% { transform: rotate(-25deg) scale(1.05) } 100% { transform: rotate(-18deg) scale(1) } }
@keyframes ac-note { 0% { opacity:.3; transform: translateY(0) rotate(0) } 50% { opacity:.9; transform: translateY(-20px) rotate(15deg) } 100% { opacity:.3; transform: translateY(0) rotate(0) } }
@keyframes ac-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) opacity:.5 } 100% { transform: scaleX(1) } }

.scn-ante-chamber-cymbeline-queen { background: linear-gradient(180deg, #b09070 0%, #d0b090 30%, #e0c8b0 60%, #f0d8c0 100%), radial-gradient(ellipse at 20% 10%, #ffe0c0 0%, transparent 70%); }
.scn-ante-chamber-cymbeline-queen .dawn-sky { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #b09070 0%, #d0b090 50%, transparent 100%); }
.scn-ante-chamber-cymbeline-queen .colonnade { position:absolute; top:0; left:10%; right:10%; bottom:20%; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 12px, #c0b0a0 12px, #c0b0a0 14px); border-radius:10px; opacity:.6; }
.scn-ante-chamber-cymbeline-queen .cymbeline { position:absolute; bottom:15%; left:28%; width:50px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 60% 50% 30% 40%; transform: rotate(0); transform-origin: bottom center; animation: acq-king 6s ease-in-out infinite; }
.scn-ante-chamber-cymbeline-queen .queen { position:absolute; bottom:15%; left:55%; width:45px; height:110px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 50% 30% 40%; transform: rotate(-2deg); transform-origin: bottom center; animation: acq-queen 6s ease-in-out infinite 0.5s; }
.scn-ante-chamber-cymbeline-queen .carpet { position:absolute; bottom:0; left:15%; right:15%; height:10%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%); border-radius:30% 30% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-ante-chamber-cymbeline-queen .doorway { position:absolute; bottom:30%; left:43%; right:43%; height:50%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; border:4px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-ante-chamber-cymbeline-queen .morning-ray { position:absolute; top:5%; left:20%; width:200px; height:300px; background: linear-gradient(180deg, rgba(255,224,192,.3) 0%, transparent 100%); transform: rotate(15deg); filter: blur(15px); animation: acq-ray 10s ease-in-out infinite alternate; }
@keyframes acq-king { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes acq-queen { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes acq-ray { 0% { opacity:.3; transform: rotate(12deg) } 50% { opacity:.6; transform: rotate(18deg) } 100% { opacity:.3; transform: rotate(12deg) } }

.scn-rome-posthumus-waiting { background: linear-gradient(180deg, #d4c8b0 0%, #c2b49a 40%, #a89980 100%), radial-gradient(ellipse at 50% 20%, #e6dcc6 0%, transparent 70%); }
.scn-rome-posthumus-waiting .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e0d4c0 0%, #c8b8a0 100%); }
.scn-rome-posthumus-waiting .window-frame { position:absolute; top:8%; left:35%; width:30%; height:45%; border:12px solid #6b5a44; border-radius:4px; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
.scn-rome-posthumus-waiting .snowscape { position:absolute; top:8%; left:35%; width:30%; height:45%; background: linear-gradient(180deg, #aac0d0 0%, #d0d8e0 100%); border-radius:4px; opacity:0.7; animation: rpw-snow 20s linear infinite; }
.scn-rome-posthumus-waiting .figure-wait { position:absolute; bottom:22%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rpw-turn 6s ease-in-out infinite; }
.scn-rome-posthumus-waiting .chair { position:absolute; bottom:14%; left:44%; width:30px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(3deg); }
.scn-rome-posthumus-waiting .lantern { position:absolute; bottom:32%; left:58%; width:8px; height:12px; background: radial-gradient(circle, #f0d080 0%, #c8a050 100%); border-radius:30%; box-shadow: 0 0 20px 6px rgba(200,160,80,0.6); animation: rpw-lantern 4s ease-in-out infinite alternate; }
.scn-rome-posthumus-waiting .rug { position:absolute; bottom:8%; left:30%; width:40%; height:8%; background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 30% 30% 10% 10%; }
@keyframes rpw-snow { 0% { background-position: 0 0; } 50% { background-position: 0 20px; } 100% { background-position: 0 0; } }
@keyframes rpw-turn { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rpw-lantern { 0% { opacity: 0.7; box-shadow: 0 0 10px 4px rgba(200,160,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,160,80,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(200,160,80,0.5); } }

.scn-rome-iachimo-returns { background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 50%, #a89888 100%), radial-gradient(ellipse at 50% 30%, #ece4d8 0%, transparent 60%); }
.scn-rome-iachimo-returns .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d8c8b8 0%, #b8a898 100%); }
.scn-rome-iachimo-returns .door-arch { position:absolute; right:12%; bottom:0; width:20%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.4); }
.scn-rome-iachimo-returns .figure-iachimo { position:absolute; bottom:22%; right:20%; width:24px; height:55px; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rir-enter 5s ease-in-out infinite; }
.scn-rome-iachimo-returns .figure-posthumus { position:absolute; bottom:22%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rir-start 3s ease-in-out infinite alternate; }
.scn-rome-iachimo-returns .table-small { position:absolute; bottom:15%; left:50%; width:40px; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; transform: translateX(-50%); }
.scn-rome-iachimo-returns .goblet { position:absolute; bottom:22%; left:52%; width:8px; height:16px; background: radial-gradient(circle at 50% 30%, #c0a880 0%, #907058 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rir-goblet 2s ease-in-out infinite alternate; }
.scn-rome-iachimo-returns .shadow-stripe { position:absolute; bottom:0; left:10%; width:80%; height:100%; background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,0.15) 40%, transparent 60%); pointer-events: none; animation: rir-shadow 8s linear infinite; }
@keyframes rir-enter { 0% { transform: translateX(20px) rotate(5deg); opacity:0.3; } 50% { transform: translateX(0) rotate(-2deg); opacity:1; } 100% { transform: translateX(0) rotate(0deg); opacity:1; } }
@keyframes rir-start { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rir-goblet { 0% { transform: rotate(0deg); } 100% { transform: rotate(6deg); } }
@keyframes rir-shadow { 0% { background-position: 0 0; } 100% { background-position: 0 50px; } }

.scn-rome-iachimo-triumph { background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 50%, #a08878 100%), radial-gradient(ellipse at 40% 40%, #e8dcc8 0%, transparent 60%); }
.scn-rome-iachimo-triumph .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-rome-iachimo-triumph .table-low { position:absolute; bottom:15%; left:50%; width:50px; height:12px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; transform: translateX(-50%); box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-rome-iachimo-triumph .ring { position:absolute; bottom:20%; left:52%; width:10px; height:10px; background: radial-gradient(circle, #d4b87a 0%, #b89858 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(180,152,88,0.6); animation: rit-ring 1.5s ease-in-out infinite alternate; }
.scn-rome-iachimo-triumph .glove { position:absolute; bottom:16%; left:46%; width:14px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-15deg); animation: rit-glove 6s ease-in-out infinite; }
.scn-rome-iachimo-triumph .figure-iachimo-triumph { position:absolute; bottom:18%; right:20%; width:26px; height:60px; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rit-point 4s ease-in-out infinite; }
.scn-rome-iachimo-triumph .figure-posthumus-triumph { position:absolute; bottom:18%; left:25%; width:22px; height:52px; background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rit-recoil 3s ease-in-out infinite alternate; }
.scn-rome-iachimo-triumph .candle { position:absolute; bottom:22%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 100%); border-radius: 20%; box-shadow: 0 0 8px 2px rgba(200,160,80,0.5); }
.scn-rome-iachimo-triumph .candle-glow { position:absolute; bottom:22%; left:50%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%); transform: translate(-50%, -50%); animation: rit-glow 2s ease-in-out infinite alternate; }
@keyframes rit-ring { 0% { transform: scale(0.9) rotate(0deg); box-shadow: 0 0 8px 2px rgba(180,152,88,0.4); } 50% { transform: scale(1.1) rotate(10deg); box-shadow: 0 0 20px 6px rgba(180,152,88,0.8); } 100% { transform: scale(0.95) rotate(-5deg); box-shadow: 0 0 12px 3px rgba(180,152,88,0.5); } }
@keyframes rit-glove { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes rit-point { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rit-recoil { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rit-glow { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.8); } 100% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.2); } }

.scn-rome-iachimo-details { background: linear-gradient(180deg, #c8b8a8 0%, #b0a090 50%, #988878 100%), radial-gradient(ellipse at 60% 50%, #d8c8b8 0%, transparent 60%); }
.scn-rome-iachimo-details .fireplace { position:absolute; bottom:0; left:20%; width:60%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6); }
.scn-rome-iachimo-details .mantel { position:absolute; top:15%; left:20%; width:60%; height:5%; background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-rome-iachimo-details .statue-diana { position:absolute; top:8%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: scale(0.9); box-shadow: 0 0 20px 4px rgba(200,180,160,0.3); animation: rid-statue 20s ease-in-out infinite alternate; }
.scn-rome-iachimo-details .flame { position:absolute; bottom:8%; left:42%; width:8px; height:20px; background: linear-gradient(180deg, #d08050 0%, #a06040 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); }
.scn-rome-iachimo-details .flame-1 { animation: rid-flame1 1.5s ease-in-out infinite alternate; }
.scn-rome-iachimo-details .flame-2 { left:52%; animation: rid-flame2 2s ease-in-out infinite alternate-reverse; }
.scn-rome-iachimo-details .figure-iachimo-detail { position:absolute; bottom:20%; right:14%; width:24px; height:55px; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rid-gesture 5s ease-in-out infinite; }
.scn-rome-iachimo-details .figure-posthumus-detail { position:absolute; bottom:20%; left:14%; width:22px; height:50px; background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rid-listen 4s ease-in-out infinite alternate; }
.scn-rome-iachimo-details .log { position:absolute; bottom:6%; left:45%; width:30px; height:6px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20%; transform: rotate(10deg); }
@keyframes rid-statue { 0% { transform: scale(0.9) rotate(-2deg); } 50% { transform: scale(0.95) rotate(0deg); } 100% { transform: scale(0.9) rotate(2deg); } }
@keyframes rid-flame1 { 0% { height:18px; opacity:0.8; transform: translateY(0); } 50% { height:24px; opacity:1; transform: translateY(-4px); } 100% { height:20px; opacity:0.9; transform: translateY(-2px); } }
@keyframes rid-flame2 { 0% { height:16px; opacity:0.7; transform: translateY(0); } 50% { height:22px; opacity:0.9; transform: translateY(-3px); } 100% { height:18px; opacity:0.8; transform: translateY(-1px); } }
@keyframes rid-gesture { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-6px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rid-listen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* scn-wales-lucius-arrives */
.scn-wales-lucius-arrives {
  background: linear-gradient(180deg, #4a2a1a 0%, #8a5a3a 30%, #d0a060 60%, #c0b080 100%), radial-gradient(ellipse at 50% 80%, #d0a060 0%, transparent 60%);
}
.scn-wales-lucius-arrives .sky-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #6a3a1a 30%, #b05030 60%, #d07040 100%);
  animation: wla-sky 15s ease-in-out infinite alternate;
}
.scn-wales-lucius-arrives .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 50%, #1a2a3a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: wla-sea 8s ease-in-out infinite alternate;
}
.scn-wales-lucius-arrives .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.6);
}
.scn-wales-lucius-arrives .ship-1 {
  position: absolute; bottom: 22%; left: 10%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: wla-ship-sway 6s ease-in-out infinite;
}
.scn-wales-lucius-arrives .ship-2 {
  position: absolute; bottom: 24%; right: 15%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: wla-ship-sway 8s ease-in-out infinite reverse;
}
.scn-wales-lucius-arrives .soldiers {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: wla-march 4s ease-in-out infinite;
}
.scn-wales-lucius-arrives .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, rgba(255,200,150,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: wla-drift 40s linear infinite;
}
.scn-wales-lucius-arrives .cloud-b {
  position: absolute; top: 25%; right: 20%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, rgba(255,200,150,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: wla-drift 50s linear infinite reverse;
}
@keyframes wla-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wla-sea { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(4px) scale(1.02); } 100% { transform: translateY(-2px) scale(0.98); } }
@keyframes wla-ship-sway { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes wla-march { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } }
@keyframes wla-drift { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

/* scn-palace-cymbeline-grief */
.scn-palace-cymbeline-grief {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%);
}
.scn-palace-cymbeline-grief .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-palace-cymbeline-grief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-palace-cymbeline-grief .candle {
  position: absolute; bottom: 45%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a08040 0%, #4a3a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 6px #b09050, 0 0 40px 12px rgba(176,144,80,0.3);
  animation: pcg-flicker 3s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-grief .throne {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.7);
}
.scn-palace-cymbeline-grief .king-silhouette {
  position: absolute; bottom: 32%; left: 42%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcg-breathe 5s ease-in-out infinite;
}
.scn-palace-cymbeline-grief .servant {
  position: absolute; bottom: 28%; right: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcg-bow 8s ease-in-out infinite;
}
@keyframes pcg-flicker { 0% { box-shadow: 0 0 15px 4px #b09050, 0 0 30px 8px rgba(176,144,80,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #c0a060, 0 0 50px 16px rgba(192,160,96,0.4); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b09050, 0 0 35px 10px rgba(176,144,80,0.3); opacity: 0.85; } }
@keyframes pcg-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pcg-bow { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(2px) rotate(-5deg); } 70% { transform: translateY(-1px) rotate(3deg); } }

/* scn-palace-cymbeline-war-news */
.scn-palace-cymbeline-war-news {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%);
}
.scn-palace-cymbeline-war-news .wall-dim {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-palace-cymbeline-war-news .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-palace-cymbeline-war-news .table {
  position: absolute; bottom: 22%; left: 25%; width: 120px; height: 10px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-palace-cymbeline-war-news .map {
  position: absolute; bottom: 24%; left: 28%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
  animation: pcw-spread 12s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-war-news .messenger {
  position: absolute; bottom: 26%; right: 12%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcw-kneel 6s ease-in-out infinite;
}
.scn-palace-cymbeline-war-news .cymbeline {
  position: absolute; bottom: 30%; left: 20%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pcw-turn 8s ease-in-out infinite;
}
.scn-palace-cymbeline-war-news .lantern {
  position: absolute; bottom: 55%; left: 10%; width: 12px; height: 15px;
  background: radial-gradient(circle, #b08040 0%, #6a4020 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.4), 0 0 60px 20px rgba(176,128,64,0.2);
  animation: pcw-swing 4s ease-in-out infinite alternate;
}
@keyframes pcw-spread { 0% { transform: scale(0.95) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes pcw-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(-3deg); } }
@keyframes pcw-turn { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(5deg); } }
@keyframes pcw-swing { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

/* scn-wales-cave-brothers-war */
.scn-wales-cave-brothers-war {
  background: linear-gradient(180deg, #1a1a2a 0%, #3a3a5a 30%, #4a4a6a 60%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #6a6a8a 0%, transparent 70%);
}
.scn-wales-cave-brothers-war .sky-cave-dawn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 30%, #8a5a2a 60%, #b08040 100%);
  animation: wcb-dawn 20s ease-in-out infinite alternate;
}
.scn-wales-cave-brothers-war .cave-entrance {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-wales-cave-brothers-war .cave-interior {
  position: absolute; bottom: 25%; left: 20%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #0a0a10 0%, #000005 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
}
.scn-wales-cave-brothers-war .tree-left {
  position: absolute; bottom: 0; left: 5%; width: 30px; height: 70%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: wcb-tree-sway 10s ease-in-out infinite;
}
.scn-wales-cave-brothers-war .tree-right {
  position: absolute; bottom: 0; right: 5%; width: 25px; height: 60%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: wcb-tree-sway 12s ease-in-out infinite reverse;
}
.scn-wales-cave-brothers-war .figure-guiderius {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wcb-shift 6s ease-in-out infinite;
}
.scn-wales-cave-brothers-war .figure-arviragus {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wcb-shift 7s ease-in-out infinite -1.5s;
}
.scn-wales-cave-brothers-war .figure-belarius {
  position: absolute; bottom: 32%; left: 42%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wcb-step 5s ease-in-out infinite;
}
@keyframes wcb-dawn { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes wcb-tree-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes wcb-shift { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } }
@keyframes wcb-step { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* palace-cloten-garment */
.scn-palace-cloten-garment {
  background: 
    linear-gradient(180deg, #1e1c1a 0%, #2c2824 40%, #3e3428 70%, #4a3c2c 100%),
    radial-gradient(ellipse at 30% 20%, #4a3c2c 0%, transparent 60%);
}
.scn-palace-cloten-garment .wall {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #3a3028 0%, #2a2420 100%);
  animation: sc1-shadow 8s ease-in-out infinite alternate;
}
.scn-palace-cloten-garment .floor {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(0deg, #1e1c18 0%, #2a2420 100%);
}
.scn-palace-cloten-garment .mannequin {
  position:absolute; bottom:32%; left:45%; width:28px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
  animation: sc1-breathe 5s ease-in-out infinite;
}
.scn-palace-cloten-garment .garment {
  position:absolute; bottom:38%; left:45%; width:48px; height:52px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(135deg, #5e4a3a 0%, #7a624a 40%, #5a4838 100%);
  border-radius: 20% 60% 20% 40% / 30% 50% 30% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,200,100,.2);
  animation: sc1-drape 7s ease-in-out infinite;
}
.scn-palace-cloten-garment .candle {
  position:absolute; bottom:56%; left:55%; width:6px; height:22px;
  background: linear-gradient(0deg, #5a3a1a 0%, #8a5a2a 100%);
  border-radius: 2px 2px 1px 1px;
}
.scn-palace-cloten-garment .candle::after {
  content:''; position:absolute; top:-8px; left:1px; width:4px; height:10px;
  background: radial-gradient(circle, #ffd060 0%, #e08020 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px #ffb040, 0 0 40px 16px rgba(255,176,64,.4);
  animation: sc1-flame 2s ease-in-out infinite alternate;
}
.scn-palace-cloten-garment .shadow {
  position:absolute; bottom:30%; left:38%; width:80px; height:40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%);
  filter: blur(6px);
  transform: skewX(-10deg);
  animation: sc1-pulse 4s ease-in-out infinite;
}
.scn-palace-cloten-garment .chain {
  position:absolute; bottom:52%; left:50%; width:40px; height:4px;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 4px, #5a4a3a 4px, #5a4a3a 6px);
  border-radius: 0 0 50% 50% / 0 0 50% 50%;
  transform: translateX(-50%);
  animation: sc1-sway 6s ease-in-out infinite;
}
@keyframes sc1-shadow   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sc1-breathe  { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes sc1-drape    { 0%,100% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes sc1-flame    { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.3) scaleX(.8); opacity:1 } 100% { transform: scaleY(.95) scaleX(1.1); opacity:.85 } }
@keyframes sc1-pulse    { 0%,100% { transform: skewX(-10deg) scaleX(1); opacity:.5 } 50% { transform: skewX(-10deg) scaleX(1.2); opacity:.8 } }
@keyframes sc1-sway     { 0%,100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(3deg) } 75% { transform: translateX(-50%) rotate(-3deg) } }

/* wales-cave-imogen-arrives */
.scn-wales-cave-imogen-arrives {
  background: 
    linear-gradient(180deg, #5a6060 0%, #4a5055 30%, #3a4048 60%, #2a3035 100%),
    radial-gradient(ellipse at 50% 20%, #6a7075 0%, transparent 70%);
}
.scn-wales-cave-imogen-arrives .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6a7070 0%, #4a5050 100%);
  animation: sc2-sky 20s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-arrives .mount-bg {
  position:absolute; bottom:30%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #3a4040 0%, #2a3030 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  clip-path: polygon(0% 100%, 0% 40%, 30% 20%, 50% 30%, 70% 15%, 100% 35%, 100% 100%);
  animation: sc2-mount 15s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-arrives .mount-fg {
  position:absolute; bottom:15%; left:0; right:20%; height:35%;
  background: linear-gradient(180deg, #2a3035 0%, #1a2025 100%);
  border-radius: 80% 20% 0 0 / 100% 60% 0 0;
  clip-path: polygon(0% 100%, 0% 60%, 20% 40%, 40% 55%, 60% 35%, 80% 50%, 100% 30%, 100% 100%);
  animation: sc2-mount-fg 12s ease-in-out infinite alternate;
}
.scn-wales-cave-imogen-arrives .cave {
  position:absolute; bottom:10%; left:55%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, #0a0a0a 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.7);
}
.scn-wales-cave-imogen-arrives .path {
  position:absolute; bottom:8%; left:40%; right:40%; height:4%;
  background: linear-gradient(0deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 50% 50% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: sc2-path 8s ease-in-out infinite;
}
.scn-wales-cave-imogen-arrives .figure {
  position:absolute; bottom:25%; left:30%; width:16px; height:40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-walk 6s ease-in-out infinite;
}
.scn-wales-cave-imogen-arrives .stone {
  position:absolute; bottom:12%; left:22%; width:24px; height:10px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 40% 60% 30% 50% / 80% 80% 40% 40%;
  transform: rotate(-15deg);
}
@keyframes sc2-sky      { 0% { opacity:.7; filter: brightness(1) } 50% { opacity:.9; filter: brightness(1.1) } 100% { opacity:.8; filter: brightness(1.05) } }
@keyframes sc2-mount    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes sc2-mount-fg { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.02) } 100% { transform: translateY(1px) scaleX(.98) } }
@keyframes sc2-path     { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(10deg) translateX(3px) } }
@keyframes sc2-walk     { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }

/* wales-cave-brothers-meet */
.scn-wales-cave-brothers-meet {
  background: 
    linear-gradient(180deg, #1c1e1a 0%, #2a2e26 30%, #1e221c 70%, #121612 100%),
    radial-gradient(ellipse at 50% 60%, #3a3e32 0%, transparent 70%);
}
.scn-wales-cave-brothers-meet .cave-wall {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #2a2e26 0%, #1a1e16 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.6);
}
.scn-wales-cave-brothers-meet .fire {
  position:absolute; bottom:28%; left:50%; width:30px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e06820 0%, #c05010 40%, #8a3010 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  box-shadow: 0 0 30px 12px #c05010, 0 0 60px 24px rgba(192,80,16,.5);
  animation: sc3-fire 3s ease-in-out infinite alternate;
}
.scn-wales-cave-brothers-meet .cauldron {
  position:absolute; bottom:26%; left:50%; width:40px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.4);
}
.scn-wales-cave-brothers-meet .figure-left {
  position:absolute; bottom:22%; left:28%; width:20px; height:46px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-stir 6s ease-in-out infinite;
}
.scn-wales-cave-brothers-meet .figure-right {
  position:absolute; bottom:22%; right:28%; width:22px; height:48px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-reach 8s ease-in-out infinite;
}
.scn-wales-cave-brothers-meet .figure-back {
  position:absolute; bottom:30%; left:40%; width:24px; height:52px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(.85);
  filter: brightness(.8);
}
.scn-wales-cave-brothers-meet .smoke {
  position:absolute; top:15%; left:46%; width:40px; height:30px;
  background: radial-gradient(ellipse, rgba(200,180,160,.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: sc3-smoke 10s linear infinite;
}
@keyframes sc3-fire   { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:.85 } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.9); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95) scaleX(1.05); opacity:.9 } }
@keyframes sc3-stir   { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes sc3-reach  { 0%,100% { transform: rotate(3deg) } 33% { transform: rotate(-8deg) translateX(4px) } 66% { transform: rotate(8deg) translateX(-4px) } }
@keyframes sc3-smoke  { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-20px) scale(1.3); opacity:.2 } 100% { transform: translateY(-40px) scale(1.6); opacity:0 } }

/* rome-senate-war */
.scn-rome-senate-war {
  background: 
    linear-gradient(180deg, #d4c8b8 0%, #c0b4a4 30%, #a89888 60%, #8a7c6e 100%),
    radial-gradient(ellipse at 60% 40%, #e4d8c8 0%, transparent 60%);
}
.scn-rome-senate-war .colonnade {
  position:absolute; top:0; bottom:40%; left:5%; right:5%;
  background: repeating-linear-gradient(90deg, #9a8a7a 0px, #9a8a7a 12px, transparent 12px, transparent 18px);
  border-bottom: 8px solid #7a6a5a;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  mask-image: linear-gradient(0deg, transparent 0%, #000 30%);
  -webkit-mask-image: linear-gradient(0deg, transparent 0%, #000 30%);
}
.scn-rome-senate-war .dais {
  position:absolute; bottom:25%; left:35%; right:35%; height:15%;
  background: linear-gradient(180deg, #b09880 0%, #8a7860 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
}
.scn-rome-senate-war .senate-left {
  position:absolute; bottom:21%; left:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-argue 5s ease-in-out infinite;
}
.scn-rome-senate-war .senate-right {
  position:absolute; bottom:21%; right:15%; width:32px; height:48px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-argue 5s ease-in-out infinite reverse;
}
.scn-rome-senate-war .scroll {
  position:absolute; bottom:30%; left:48%; width:60px; height:18px;
  background: linear-gradient(180deg, #d4c0a0 0%, #b09870 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: sc4-scroll 8s ease-in-out infinite;
}
.scn-rome-senate-war .shadow-stripe {
  position:absolute; bottom:20%; left:25%; right:25%; height:2%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.3), transparent);
  border-radius: 50%;
}
.scn-rome-senate-war .mosaic {
  position:absolute; bottom:0; left:0; right:0; height:8%;
  background: radial-gradient(circle at 20% 50%, #8a7a6a 10%, transparent 10%),
              radial-gradient(circle at 40% 30%, #6a5a4a 8%, transparent 8%),
              radial-gradient(circle at 60% 70%, #7a6a5a 12%, transparent 12%);
  background-size: 20px 20px;
  filter: blur(1px);
}
@keyframes sc4-argue   { 0% { transform: rotate(-3deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(-3deg) } }
@keyframes sc4-scroll  { 0%,100% { transform: translateX(-50%) rotate(-2deg) scaleX(1) } 50% { transform: translateX(-50%) rotate(1deg) scaleX(1.05) } }

/* scene 1: prison-tablet-found (calm, dim-interior) */
.scn-prison-tablet-found {
  background:
    linear-gradient(180deg, #1f1a28 0%, #2a2230 25%, #3a2f40 50%, #251e30 75%, #181420 100%),
    radial-gradient(ellipse at 30% 40%, #4a3a4a 0%, transparent 60%);
}
.scn-prison-tablet-found .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2230 0%, #3a2f40 50%, #2a2230 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: ptf-wall 20s ease-in-out infinite alternate;
}
.scn-prison-tablet-found .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2230 0%, #181420 100%);
  border-radius: 0 0 10% 10%;
}
.scn-prison-tablet-found .window {
  position: absolute; top: 15%; left: 70%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, #6a5a6a 0%, #3a2f40 70%);
  border: 4px solid #1a1420;
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px rgba(100,90,100,.3);
}
.scn-prison-tablet-found .figure {
  position: absolute; bottom: 25%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2230 0%, #15101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-2deg);
  animation: ptf-figure 5s ease-in-out infinite alternate;
}
.scn-prison-tablet-found .tablet {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #706050 0%, #504030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(10deg);
  animation: ptf-tablet 4s ease-in-out infinite alternate;
}
.scn-prison-tablet-found .candle-glow {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 70%, #ffd080 0%, #b07030 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ptf-glow 3s ease-in-out infinite alternate;
}
.scn-prison-tablet-found .candle-wax {
  position: absolute; bottom: 29%; left: 56%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8ac80 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
}
@keyframes ptf-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes ptf-figure { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ptf-tablet { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-1px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes ptf-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .9; transform: scale(1.05) } 100% { opacity: .6; transform: scale(.95) } }

/* scene 2: prison-gaoler-jest (funny, dim-interior) */
.scn-prison-gaoler-jest {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a2a 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 60% 50%, #5a4030 0%, transparent 70%);
}
.scn-prison-gaoler-jest .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.7);
  animation: pgj-wall 15s ease-in-out infinite alternate;
}
.scn-prison-gaoler-jest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 0 0 20% 20%;
}
.scn-prison-gaoler-jest .fire {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 60%, #ff8040 0%, #c04020 40%, #5a2010 70%, transparent 90%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pgj-fire .6s ease-in-out infinite alternate;
}
.scn-prison-gaoler-jest .gaoler {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: pgj-gaoler 2.4s ease-in-out infinite alternate;
}
.scn-prison-gaoler-jest .prisoner {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  animation: pgj-prisoner 1.8s ease-in-out infinite alternate;
}
.scn-prison-gaoler-jest .pot {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  animation: pgj-pot 2s ease-in-out infinite alternate;
}
.scn-prison-gaoler-jest .sparks {
  position: absolute; bottom: 30%; left: 22%; width: 100%; height: 40px;
  background: radial-gradient(circle at 50% 50%, #ffa060 0%, transparent 70%);
  filter: blur(4px);
  animation: pgj-sparks 1.6s ease-in-out infinite alternate;
}
@keyframes pgj-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes pgj-fire { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(2deg) } 100% { transform: scale(.95) rotate(-2deg) } }
@keyframes pgj-gaoler { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(7deg) translateY(0) } }
@keyframes pgj-prisoner { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes pgj-pot { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-45%) rotate(2deg) } 100% { transform: translateX(-55%) rotate(-2deg) } }
@keyframes pgj-sparks { 0% { opacity: .3 } 50% { opacity: .8 } 100% { opacity: .2 } }

/* scene 3: prison-released (calm, dim-interior) */
.scn-prison-released {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #4a3a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 80% 30%, #5a4a5a 0%, transparent 70%);
}
.scn-prison-released .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: pr-wall 25s ease-in-out infinite alternate;
}
.scn-prison-released .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 15% 15%;
}
.scn-prison-released .door {
  position: absolute; top: 5%; left: 80%; width: 50px; height: 90px;
  background: linear-gradient(135deg, #4a3a4a 0%, #3a2a3a 100%);
  border: 3px solid #1a1a2a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  transform: rotateY(0deg);
  animation: pr-door 8s ease-in-out infinite alternate;
}
.scn-prison-released .figure {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: pr-figure 6s ease-in-out infinite alternate;
}
.scn-prison-released .manacle-left {
  position: absolute; bottom: 30%; left: 32%; width: 10px; height: 8px;
  background: #6a5a6a;
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: pr-manacle-left 4s ease-in-out infinite alternate;
}
.scn-prison-released .manacle-right {
  position: absolute; bottom: 30%; left: 42%; width: 10px; height: 8px;
  background: #6a5a6a;
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: pr-manacle-right 4s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-prison-released .lightbeam {
  position: absolute; top: 2%; left: 75%; width: 80px; height: 100px;
  background: linear-gradient(180deg, rgba(200,180,200,.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(6px);
  animation: pr-light 7s ease-in-out infinite alternate;
}
@keyframes pr-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes pr-door { 0% { transform: rotateY(0deg) scaleY(1) } 50% { transform: rotateY(5deg) scaleY(1.02) } 100% { transform: rotateY(0deg) scaleY(1) } }
@keyframes pr-figure { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes pr-manacle-left { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pr-manacle-right { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-10deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pr-light { 0% { opacity: .3; transform: scaleY(.9) } 50% { opacity: .7; transform: scaleY(1.1) } 100% { opacity: .4; transform: scaleY(1) } }

/* scene 4: tent-cymbeline-reward (calm, bright-interior) */
.scn-tent-cymbeline-reward {
  background:
    linear-gradient(180deg, #e8d0a0 0%, #d0b080 30%, #c0a070 60%, #b09060 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-tent-cymbeline-reward .tent {
  position: absolute; inset: 5% 5% 10% 5%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 80px rgba(160,120,80,.3);
  animation: tcr-tent 30s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-reward .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #b09060 0%, #907050 100%);
  border-radius: 0 0 20% 20%;
}
.scn-tent-cymbeline-reward .king {
  position: absolute; bottom: 8%; left: 50%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: tcr-king 5s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-reward .soldier {
  position: absolute; bottom: 6%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(4deg);
  animation: tcr-soldier 6s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-reward .banner {
  position: absolute; top: 10%; left: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 5%;
  transform: rotate(-5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
  animation: tcr-banner 8s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-reward .rays {
  position: absolute; top: -5%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,220,150,.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: tcr-rays 12s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-reward .gold-dust {
  position: absolute; bottom: 15%; left: 40%; right: 40%; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  filter: blur(4px);
  animation: tcr-dust 4s ease-in-out infinite alternate;
}
@keyframes tcr-tent { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(.98) rotate(-1deg) } }
@keyframes tcr-king { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes tcr-soldier { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(0) } }
@keyframes tcr-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-2deg) } }
@keyframes tcr-rays { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes tcr-dust { 0% { opacity: .2; transform: translateY(0) } 50% { opacity: .6; transform: translateY(-5px) } 100% { opacity: .3; transform: translateY(0) } }

/* ===== Scene: roman-camp-posthumus-repentant ===== */
.scn-roman-camp-posthumus-repentant {
  background: 
    linear-gradient(180deg, #b89070 0%, #8c6e4e 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 20%, #d4b090 0%, transparent 70%);
}
.scn-roman-camp-posthumus-repentant .sky-rcp {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #c4a282 60%, transparent 100%);
  animation: rcp-sky 20s ease-in-out infinite alternate;
}
.scn-roman-camp-posthumus-repentant .tent-rcp {
  position: absolute; bottom: 30%; left: 20%; width: 110px; height: 90px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: rcp-tent 6s ease-in-out infinite;
}
.scn-roman-camp-posthumus-repentant .ground-rcp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: rcp-ground 4s ease-in-out infinite alternate;
}
.scn-roman-camp-posthumus-repentant .posthumus-rcp {
  position: absolute; bottom: 30%; left: 60%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rcp-figure 3s ease-in-out infinite;
}
.scn-roman-camp-posthumus-repentant .cloth-rcp {
  position: absolute; bottom: 40%; left: 58%; width: 20px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #a0461a 0%, #702243 60%, #4a1a1a 100%);
  border-radius: 50% 70% 30% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 0 10px 3px rgba(112,34,67,0.4);
  animation: rcp-cloth 2s ease-in-out infinite alternate;
}
.scn-roman-camp-posthumus-repentant .fire-rcp {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #e8a040 0%, #c08030 50%, #804020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 8px rgba(200,128,48,0.6);
  animation: rcp-fire 1.5s ease-in-out infinite alternate;
}
.scn-roman-camp-posthumus-repentant .smoke-rcp {
  position: absolute; bottom: 40%; left: 28%; width: 40px; height: 20px;
  background: radial-gradient(circle, rgba(80,60,40,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: rcp-smoke 8s linear infinite;
}
@keyframes rcp-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes rcp-tent { 0%,100% { transform: translate(0, 0) scaleY(1); } 50% { transform: translate(-2px, -3px) scaleY(1.02); } }
@keyframes rcp-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rcp-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes rcp-cloth { 0% { transform: rotate(-20deg) scale(1); opacity: 0.8; } 50% { transform: rotate(-10deg) scale(1.05); opacity: 1; } 100% { transform: rotate(-15deg) scale(1); opacity: 0.9; } }
@keyframes rcp-fire { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 20px 6px rgba(200,128,48,0.5); } 50% { transform: scale(1.15) translateY(-3px); box-shadow: 0 0 30px 10px rgba(200,128,48,0.8); } 100% { transform: scale(0.9) translateY(0); box-shadow: 0 0 20px 6px rgba(200,128,48,0.5); } }
@keyframes rcp-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateX(10px) translateY(-8px) scale(1.5); opacity: 0.2; } 100% { transform: translateX(20px) translateY(0) scale(1); opacity: 0.5; } }

/* ===== Scene: battle-iachimo-defeated ===== */
.scn-battle-iachimo-defeated {
  background:
    linear-gradient(180deg, #6b7a7e 0%, #4a5558 40%, #2a3033 100%),
    radial-gradient(ellipse at 70% 30%, #4a5558 0%, transparent 70%);
}
.scn-battle-iachimo-defeated .sky-bid {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7e8a8c 0%, #5c686a 60%, transparent 100%);
  animation: bid-sky 18s ease-in-out infinite alternate;
}
.scn-battle-iachimo-defeated .ground-bid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4245 0%, #1a1f20 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: bid-ground 5s ease-in-out infinite alternate;
}
.scn-battle-iachimo-defeated .figure1-bid {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #1e2628 0%, #0e1415 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(10deg) scaleX(-1);
  animation: bid-fig1 4s ease-in-out infinite;
}
.scn-battle-iachimo-defeated .figure2-bid {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #1a2224 0%, #0a1012 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: bid-fig2 4.5s ease-in-out infinite;
}
.scn-battle-iachimo-defeated .sword-bid {
  position: absolute; bottom: 35%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8c9a9e 0%, #4a5558 100%);
  border-radius: 1px;
  transform: rotate(30deg);
  box-shadow: 0 0 4px rgba(200,200,200,0.3);
  animation: bid-sword 3s ease-in-out infinite alternate;
}
.scn-battle-iachimo-defeated .banner-bid {
  position: absolute; bottom: 30%; left: 70%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 0 4px 4px 4px;
  transform: skewX(-5deg);
  animation: bid-banner 6s ease-in-out infinite;
}
.scn-battle-iachimo-defeated .dust-bid {
  position: absolute; bottom: 45%; left: 20%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(90,100,102,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: bid-dust 10s linear infinite;
}
@keyframes bid-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bid-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bid-fig1 { 0%,100% { transform: translateX(0) rotate(10deg) scaleX(-1); } 50% { transform: translateX(8px) rotate(15deg) scaleX(-1); } }
@keyframes bid-fig2 { 0%,100% { transform: translateX(0) rotate(-15deg); } 50% { transform: translateX(-6px) rotate(-20deg); } }
@keyframes bid-sword { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.1); opacity: 0.9; } 100% { transform: rotate(25deg) scaleY(1); } }
@keyframes bid-banner { 0%,100% { transform: skewX(-5deg) translate(0,0); } 50% { transform: skewX(0deg) translate(2px, -4px); } }
@keyframes bid-dust { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(20px) scale(1.5); opacity: 0.2; } 100% { transform: translateX(40px) scale(1); opacity: 0.4; } }

/* ===== Scene: battle-rescue-cymbeline ===== */
.scn-battle-rescue-cymbeline {
  background:
    linear-gradient(180deg, #5c6e72 0%, #3a484a 40%, #1a2426 100%),
    radial-gradient(ellipse at 50% 40%, #4a585a 0%, transparent 80%);
}
.scn-battle-rescue-cymbeline .sky-brc {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a7e80 0%, #4c5c5e 60%, transparent 100%);
  animation: brc-sky 22s ease-in-out infinite alternate;
}
.scn-battle-rescue-cymbeline .ground-brc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2e3c3e 0%, #121a1c 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: brc-ground 3s ease-in-out infinite alternate;
}
.scn-battle-rescue-cymbeline .cymbeline-brc {
  position: absolute; bottom: 25%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #162022 0%, #0a1012 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-12px);
  animation: brc-fig-c 3s ease-in-out infinite;
}
.scn-battle-rescue-cymbeline .rescuer1-brc {
  position: absolute; bottom: 25%; left: 35%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #1a2628 0%, #0a1416 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(8deg) scaleX(-1);
  animation: brc-fig-r1 2.5s ease-in-out infinite;
}
.scn-battle-rescue-cymbeline .rescuer2-brc {
  position: absolute; bottom: 25%; left: 55%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #1a2628 0%, #0a1416 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(-8deg);
  animation: brc-fig-r2 2.8s ease-in-out infinite;
}
.scn-battle-rescue-cymbeline .tree-brc {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a3a3c 0%, #1a2628 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%;
  transform: scale(0.9);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: brc-tree 8s ease-in-out infinite;
}
.scn-battle-rescue-cymbeline .smoke-brc {
  position: absolute; bottom: 40%; left: 65%; width: 50px; height: 25px;
  background: radial-gradient(ellipse, rgba(80,90,92,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: brc-smoke 12s linear infinite reverse;
}
@keyframes brc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes brc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes brc-fig-c { 0%,100% { transform: translateX(-12px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(2deg) translateY(-2px); } }
@keyframes brc-fig-r1 { 0%,100% { transform: rotate(8deg) scaleX(-1) translateX(0); } 50% { transform: rotate(15deg) scaleX(-1) translateX(6px); } }
@keyframes brc-fig-r2 { 0%,100% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(-6px); } }
@keyframes brc-tree { 0%,100% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } }
@keyframes brc-smoke { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(-15px) scale(1.3); opacity: 0.2; } 100% { transform: translateX(-30px) scale(1); opacity: 0.4; } }

/* ===== Scene: battle-lord-reports ===== */
.scn-battle-lord-reports {
  background:
    linear-gradient(180deg, #5c6e72 0%, #3a484a 40%, #1a2426 100%),
    radial-gradient(ellipse at 30% 50%, #4a585a 0%, transparent 70%);
}
.scn-battle-lord-reports .sky-blr {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7e80 0%, #4c5c5e 60%, transparent 100%);
  animation: blr-sky 20s ease-in-out infinite alternate;
}
.scn-battle-lord-reports .ground-blr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2e3c3e 0%, #121a1c 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: blr-ground 4s ease-in-out infinite alternate;
}
.scn-battle-lord-reports .posthumus-blr {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #162022 0%, #0a1012 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: blr-fig-p 3s ease-in-out infinite;
}
.scn-battle-lord-reports .lord-blr {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a2628 0%, #0a1416 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(8deg);
  animation: blr-fig-l 3.5s ease-in-out infinite;
}
.scn-battle-lord-reports .tent-blr {
  position: absolute; bottom: 25%; left: 15%; width: 90px; height: 70px;
  background: linear-gradient(135deg, #3a4a4c 0%, #1a282a 100%);
  clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: blr-tent 6s ease-in-out infinite;
}
.scn-battle-lord-reports .flag-blr {
  position: absolute; bottom: 30%; left: 70%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  animation: blr-flag 5s ease-in-out infinite;
}
.scn-battle-lord-reports .distant-smoke-blr {
  position: absolute; bottom: 35%; left: 50%; width: 70px; height: 35px;
  background: radial-gradient(ellipse, rgba(90,100,102,0.3) 0%, transparent 100%);
  filter: blur(7px);
  animation: blr-smoke 15s linear infinite;
}
@keyframes blr-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes blr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes blr-fig-p { 0%,100% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(4px) rotate(-2deg) translateY(-2px); } }
@keyframes blr-fig-l { 0%,100% { transform: translateX(0) rotate(8deg); } 50% { transform: translateX(-4px) rotate(12deg) translateY(-2px); } }
@keyframes blr-tent { 0%,100% { transform: translate(0,0) scaleY(1); } 50% { transform: translate(-2px, -3px) scaleY(1.02); } }
@keyframes blr-flag { 0%,100% { transform: skewX(-10deg) translate(0,0); } 50% { transform: skewX(0deg) translate(3px, -2px); } }
@keyframes blr-smoke { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(20px) scale(1.4); opacity: 0.15; } 100% { transform: translateX(40px) scale(1); opacity: 0.3; } }

/* wales-cave-cloten-head – tense, overcast */
.scn-wales-cave-cloten-head { 
  background: linear-gradient(180deg, #3b3b4a 0%, #2a2a36 50%, #1f1f28 100%), radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 70%);
}
.scn-wales-cave-cloten-head .cave-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a4a5e, #2f2f3b); border-radius: 30% 50% 0 0 / 50% 40% 0 0; animation: ch-wall 12s ease-in-out infinite alternate; }
.scn-wales-cave-cloten-head .cave-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1b1b24 0%, #2f2f3b 100%); border-radius: 60% 30% 0 0 / 80% 50% 0 0; animation: ch-floor 8s ease-in-out infinite; }
.scn-wales-cave-cloten-head .figure-belarius { position:absolute; bottom:25%; left:25%; width:24px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch-figure1 4s ease-in-out infinite; }
.scn-wales-cave-cloten-head .figure-arviragus { position:absolute; bottom:28%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #2e2e3c 0%, #16161e 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ch-figure2 4.5s ease-in-out infinite 0.5s; }
.scn-wales-cave-cloten-head .cloten-head { position:absolute; bottom:35%; left:42%; width:20px; height:16px; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ch-head 2s ease-in-out infinite alternate; }
.scn-wales-cave-cloten-head .rock { position:absolute; bottom:20%; left:10%; width:40px; height:30px; background: linear-gradient(135deg, #5a5a6e 0%, #3a3a4a 100%); border-radius: 40% 60% 30% 50%; transform: rotate(10deg); box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: ch-rock 18s ease-in-out infinite; }

@keyframes ch-wall { 0% { opacity:0.85; transform: scaleY(1); } 50% { opacity:0.95; transform: scaleY(1.02); } 100% { opacity:0.75; transform: scaleY(0.98); } }
@keyframes ch-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(1px) scaleY(0.99); } }
@keyframes ch-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-figure2 { 0% { transform: translateX(0) rotate(1deg); } 40% { transform: translateX(-3px) rotate(-1deg); } 70% { transform: translateX(-6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-head { 0% { transform: rotate(5deg) scale(1); box-shadow: 0 4px 8px rgba(0,0,0,0.3); } 50% { transform: rotate(-3deg) scale(1.05); box-shadow: 0 6px 12px rgba(0,0,0,0.6); } 100% { transform: rotate(2deg) scale(0.95); box-shadow: 0 2px 4px rgba(0,0,0,0.4); } }
@keyframes ch-rock { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(1px); } }

/* wales-cave-fidele-funeral – dark, dusk */
.scn-wales-cave-fidele-funeral { 
  background: linear-gradient(180deg, #2a1a2e 0%, #1f1423 50%, #120a16 100%), radial-gradient(ellipse at 50% 120%, #2e1e34 0%, transparent 70%);
}
.scn-wales-cave-fidele-funeral .cave-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #1a1020 0%, #2a1a2e 50%, #1a0e1e 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: fu-cave 20s ease-in-out infinite alternate; }
.scn-wales-cave-fidele-funeral .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #0d0812 0%, #1a1420 100%); border-radius: 50% 30% 0 0 / 80% 60% 0 0; animation: fu-ground 10s ease-in-out infinite; }
.scn-wales-cave-fidele-funeral .cave-entrance { position:absolute; bottom:20%; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 0%, #1a1420 0%, transparent 70%); border-radius: 40% 40% 0 0; animation: fu-entrance 15s ease-in-out infinite; }
.scn-wales-cave-fidele-funeral .figure-belarius-stand { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2030 0%, #160f1e 100%); border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: fu-stand 6s ease-in-out infinite; }
.scn-wales-cave-fidele-funeral .body-fidele { position:absolute; bottom:15%; left:48%; width:24px; height:36px; background: linear-gradient(180deg, #3a2a30 0%, #1c101a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%; transform: rotate(-10deg); box-shadow: 0 -2px 8px rgba(0,0,0,0.5); animation: fu-body 8s ease-in-out infinite alternate; }
.scn-wales-cave-fidele-funeral .torch { position:absolute; bottom:28%; left:65%; width:6px; height:30px; background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%); border-radius: 2px; transform: rotate(5deg); animation: fu-torch 3s ease-in-out infinite; }
.scn-wales-cave-fidele-funeral .torch-glow { position:absolute; bottom:25%; left:63%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,140,60,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: fu-glow 3s ease-in-out infinite alternate; }

@keyframes fu-cave { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.65; } }
@keyframes fu-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fu-entrance { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.97); } }
@keyframes fu-stand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fu-body { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes fu-torch { 0% { transform: rotate(3deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.1); } 100% { transform: rotate(2deg) scaleY(0.95); } }
@keyframes fu-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.4); } 100% { opacity:0.7; transform: scale(0.9); } }

/* wales-cave-fidele-dead – dark, dusk */
.scn-wales-cave-fidele-dead { 
  background: linear-gradient(180deg, #1f1423 0%, #160f1a 50%, #0b0710 100%), radial-gradient(ellipse at 50% 100%, #261b30 0%, transparent 70%);
}
.scn-wales-cave-fidele-dead .cave-bg-dead { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #1a1020 0%, #2a1a30 50%, #140e1a 100%); border-radius: 40% 60% 0 0 / 45% 55% 0 0; animation: de-cave 18s ease-in-out infinite alternate; }
.scn-wales-cave-fidele-dead .cave-floor-dead { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0d0812 0%, #1a1420 100%); border-radius: 30% 70% 0 0 / 60% 70% 0 0; animation: de-floor 12s ease-in-out infinite; }
.scn-wales-cave-fidele-dead .figure-arviragus-carry { position:absolute; bottom:20%; left:35%; width:24px; height:70px; background: linear-gradient(180deg, #2a2035 0%, #160f1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-carry 5s ease-in-out infinite; }
.scn-wales-cave-fidele-dead .body-imogen { position:absolute; bottom:28%; left:36%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a38 0%, #1c101a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%; transform: rotate(15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: de-imogen 6s ease-in-out infinite alternate; }
.scn-wales-cave-fidele-dead .rock-large { position:absolute; bottom:15%; left:60%; width:50px; height:40px; background: linear-gradient(135deg, #3a3a4a 0%, #1e1e2a 100%); border-radius: 50% 30% 40% 60%; transform: rotate(-20deg); box-shadow: inset 0 -6px 8px rgba(0,0,0,0.5); animation: de-rock 20s ease-in-out infinite; }
.scn-wales-cave-fidele-dead .draped-cloth { position:absolute; bottom:10%; left:43%; width:30px; height:12px; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); border-radius: 50% 50% 20% 20%; filter: blur(2px); transform: rotate(20deg); animation: de-cloth 7s ease-in-out infinite; }

@keyframes de-cave { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.03); } 100% { opacity:0.7; transform: scaleY(0.97); } }
@keyframes de-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes de-carry { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes de-imogen { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.05); } 100% { transform: rotate(14deg) scaleY(0.95); } }
@keyframes de-rock { 0% { transform: rotate(-18deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(-3px); } 100% { transform: rotate(-16deg) translateY(1px); } }
@keyframes de-cloth { 0% { transform: rotate(18deg) translateX(0); } 50% { transform: rotate(22deg) translateX(4px); } 100% { transform: rotate(16deg) translateX(-2px); } }

/* wales-cave-awakens – dark, starlit */
.scn-wales-cave-awakens { 
  background: linear-gradient(180deg, #0b0e1a 0%, #14182e 50%, #0a0c14 100%), radial-gradient(ellipse at 50% 0%, #161c36 0%, transparent 70%);
}
.scn-wales-cave-awakens .starlit-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f1322 0%, #080a12 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; animation: aw-sky 25s ease-in-out infinite alternate; }
.scn-wales-cave-awakens .ground-awakens { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #080a10 0%, #141a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: aw-ground 14s ease-in-out infinite; }
.scn-wales-cave-awakens .cloten-body { position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #2a2030 0%, #160f1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 0 10px 2px rgba(0,0,0,0.7); animation: aw-cloten 8s ease-in-out infinite; }
.scn-wales-cave-awakens .figure-imogen { position:absolute; bottom:25%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #1e1e2e 0%, #0c0c18 100%); border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: aw-imogen 5s ease-in-out infinite; }
.scn-wales-cave-awakens .bush { position:absolute; bottom:10%; left:70%; width:40px; height:25px; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0d150d 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; filter: blur(2px); animation: aw-bush 12s ease-in-out infinite; }
.scn-wales-cave-awakens .star.small { position:absolute; top:6%; left:20%; width:2px; height:2px; background: #d7e0f0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(215,224,240,0.5); animation: aw-star-small 3s ease-in-out infinite alternate; }
.scn-wales-cave-awakens .star.medium { position:absolute; top:12%; left:70%; width:3px; height:3px; background: #c0ccf0; border-radius:50%; box-shadow: 0 0 10px 3px rgba(192,204,240,0.4); animation: aw-star-med 4s ease-in-out infinite alternate 0.5s; }
.scn-wales-cave-awakens .star.large { position:absolute; top:18%; left:50%; width:4px; height:4px; background: #e0e8ff; border-radius:50%; box-shadow: 0 0 14px 4px rgba(224,232,255,0.6); animation: aw-star-large 5s ease-in-out infinite alternate 1s; }

@keyframes aw-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes aw-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes aw-cloten { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(2px); } }
@keyframes aw-imogen { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aw-bush { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-2deg); } }
@keyframes aw-star-small { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes aw-star-med { 0% { opacity:0.3; transform: scale(0.7); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1.0); } }
@keyframes aw-star-large { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.7; transform: scale(0.8); } }

.scn-palace-imogen-woe {
  background: linear-gradient(180deg, #0f0e1a 0%, #1a1630 40%, #2a1f3a 100%), 
              radial-gradient(ellipse at 50% 40%, #2a1f3a 0%, transparent 70%);
}
.scn-palace-imogen-woe .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(15,14,26,0.9) 0%, rgba(26,22,48,0.7) 50%, rgba(42,31,58,0.9) 100%);
  animation: p1-shift 20s ease-in-out infinite alternate;
}
.scn-palace-imogen-woe .window {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a6b7a 0%, #3a5a6a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: p1-window 12s ease-in-out infinite;
}
.scn-palace-imogen-woe .moonbeam {
  position: absolute; top: 20%; left: 42%; width: 16%; height: 50%;
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%);
  transform: skewX(-8deg); filter: blur(4px);
  animation: p1-beam 15s ease-in-out infinite alternate;
}
.scn-palace-imogen-woe .figure {
  position: absolute; bottom: 20%; left: 50%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: p1-figure 6s ease-in-out infinite;
}
.scn-palace-imogen-woe .candle {
  position: absolute; bottom: 30%; left: 35%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: p1-candle 8s ease-in-out infinite;
}
.scn-palace-imogen-woe .candle::after {
  content: ''; position: absolute; top: -10%; left: -50%; width: 200%; height: 20%;
  background: radial-gradient(circle, #ffd070 0%, rgba(255,208,112,0.3) 40%, transparent 70%);
  border-radius: 50%;
  animation: p1-flame 2s ease-in-out infinite alternate;
}
.scn-palace-imogen-woe .tapestry {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: p1-tapestry 30s linear infinite;
}
.scn-palace-imogen-woe .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: p1-shad 6s ease-in-out infinite;
}
@keyframes p1-shift {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes p1-window {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes p1-beam {
  0% { transform: skewX(-8deg) translateX(0); opacity: 0.5; }
  50% { transform: skewX(-6deg) translateX(5px); opacity: 0.8; }
  100% { transform: skewX(-8deg) translateX(0); opacity: 0.6; }
}
@keyframes p1-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes p1-candle {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes p1-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.3) translateY(-5px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.8; }
}
@keyframes p1-tapestry {
  0% { background-position: 0 0; }
  100% { background-position: 0 100%; }
}
@keyframes p1-shad {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-palace-iachimo-temptation {
  background: linear-gradient(180deg, #fff8e8 0%, #f0e0c0 40%, #d0b898 100%), 
              radial-gradient(ellipse at 60% 30%, rgba(255,240,200,0.6) 0%, transparent 70%);
}
.scn-palace-iachimo-temptation .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,248,232,0.9) 0%, rgba(240,224,192,0.8) 50%, rgba(208,184,152,0.9) 100%);
  animation: p2-shift 18s ease-in-out infinite alternate;
}
.scn-palace-iachimo-temptation .lightbeam {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 90%;
  background: linear-gradient(135deg, rgba(255,255,220,0.25) 0%, transparent 70%);
  transform: skewX(-15deg); filter: blur(6px);
  animation: p2-beam 14s ease-in-out infinite alternate;
}
.scn-palace-iachimo-temptation .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  animation: p2-desk 8s ease-in-out infinite;
}
.scn-palace-iachimo-temptation .letter {
  position: absolute; bottom: 28%; left: 35%; width: 20%; height: 12%;
  background: linear-gradient(135deg, #f5f0d0 0%, #d0c8a0 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: p2-letter 6s ease-in-out infinite alternate;
}
.scn-palace-iachimo-temptation .figure {
  position: absolute; bottom: 15%; left: 30%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scaleX(-1);
  animation: p2-figure 7s ease-in-out infinite;
}
.scn-palace-iachimo-temptation .chair {
  position: absolute; bottom: 18%; left: 48%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: p2-chair 12s ease-in-out infinite alternate;
}
.scn-palace-iachimo-temptation .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(30,20,10,0.5) 0%, transparent 100%);
  animation: p2-shad 6s ease-in-out infinite;
}
@keyframes p2-shift {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes p2-beam {
  0% { transform: skewX(-15deg) translateX(0); opacity: 0.3; }
  50% { transform: skewX(-12deg) translateX(10px); opacity: 0.7; }
  100% { transform: skewX(-15deg) translateX(0); opacity: 0.4; }
}
@keyframes p2-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes p2-letter {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes p2-figure {
  0% { transform: translateX(-50%) scaleX(-1) translateY(0); }
  25% { transform: translateX(-50%) scaleX(-1) translateY(-4px); }
  50% { transform: translateX(-50%) scaleX(-1) translateY(0); }
  75% { transform: translateX(-50%) scaleX(-1) translateY(-2px); }
  100% { transform: translateX(-50%) scaleX(-1) translateY(0); }
}
@keyframes p2-chair {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes p2-shad {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-palace-iachimo-lies {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 50%, #a08870 100%), 
              radial-gradient(ellipse at 40% 50%, #d0c0a0 0%, transparent 70%);
}
.scn-palace-iachimo-lies .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(232,220,192,0.9) 0%, rgba(200,184,152,0.8) 50%, rgba(160,136,112,0.9) 100%);
  animation: p3-shift 22s ease-in-out infinite alternate;
}
.scn-palace-iachimo-lies .table {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 18px rgba(0,0,0,0.3);
  animation: p3-table 10s ease-in-out infinite;
}
.scn-palace-iachimo-lies .book {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 2px; transform: rotate(3deg);
  animation: p3-book 8s ease-in-out infinite alternate;
}
.scn-palace-iachimo-lies .figure-a {
  position: absolute; bottom: 10%; left: 25%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: p3-figA 9s ease-in-out infinite;
}
.scn-palace-iachimo-lies .figure-b {
  position: absolute; bottom: 10%; right: 25%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: p3-figB 9s ease-in-out infinite;
}
.scn-palace-iachimo-lies .goblet {
  position: absolute; bottom: 22%; left: 50%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 0 0 20% 20%;
  transform: translateX(-50%);
  animation: p3-goblet 6s ease-in-out infinite;
}
.scn-palace-iachimo-lies .candle {
  position: absolute; bottom: 28%; left: 65%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: p3-candle 7s ease-in-out infinite;
}
@keyframes p3-shift {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes p3-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes p3-book {
  0% { transform: rotate(3deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(3deg) scale(1); }
}
@keyframes p3-figA {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes p3-figB {
  0% { transform: scaleX(-1) translateX(0) translateY(0); }
  25% { transform: scaleX(-1) translateX(-5px) translateY(-3px); }
  50% { transform: scaleX(-1) translateX(0) translateY(0); }
  75% { transform: scaleX(-1) translateX(5px) translateY(-2px); }
  100% { transform: scaleX(-1) translateX(0) translateY(0); }
}
@keyframes p3-goblet {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes p3-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.9; transform: scaleY(1); }
}

.scn-palace-imogen-rejects {
  background: linear-gradient(180deg, #f5ecd6 0%, #e8d8b8 40%, #c8b898 100%), 
              radial-gradient(ellipse at 30% 50%, #fff8e8 0%, transparent 70%);
}
.scn-palace-imogen-rejects .bg-sunlit {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(245,236,214,0.9) 0%, rgba(232,216,184,0.8) 50%, rgba(200,184,152,0.9) 100%);
  animation: p4-shift 20s ease-in-out infinite alternate;
}
.scn-palace-imogen-rejects .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c8dce8 0%, #a8c8d8 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: p4-window 14s ease-in-out infinite;
}
.scn-palace-imogen-rejects .figure {
  position: absolute; bottom: 15%; left: 45%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: p4-figure 7s ease-in-out infinite;
}
.scn-palace-imogen-rejects .mirror {
  position: absolute; top: 15%; right: 15%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #c0b8a8 0%, #a09888 100%);
  border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  animation: p4-mirror 18s ease-in-out infinite alternate;
}
.scn-palace-imogen-rejects .letter {
  position: absolute; bottom: 25%; left: 20%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 2px; transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: p4-letter 6s ease-in-out infinite alternate;
}
.scn-palace-imogen-rejects .rose-petal {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 4%;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50% 0 50% 50%;
  transform: rotate(45deg);
  animation: p4-petal 4s ease-in-out infinite;
}
.scn-palace-imogen-rejects .shadow-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(100,80,60,0.3) 0%, transparent 100%);
  animation: p4-shad 8s ease-in-out infinite;
}
@keyframes p4-shift {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes p4-window {
  0% { opacity: 0.7; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes p4-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes p4-mirror {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes p4-letter {
  0% { transform: rotate(-8deg) scale(1); }
  50% { transform: rotate(-6deg) scale(1.03); }
  100% { transform: rotate(-8deg) scale(1); }
}
@keyframes p4-petal {
  0% { transform: rotate(45deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(45deg) translateY(-8px); opacity: 1; }
  100% { transform: rotate(45deg) translateY(0); opacity: 0.9; }
}
@keyframes p4-shad {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* palace-imogen-mourning */
.scn-palace-imogen-mourning { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 70% 90%, #2a2a4e 0%, transparent 70%); }
.scn-palace-imogen-mourning .wall { position:absolute; inset:0; background: linear-gradient(90deg, #1e1e30 0%, #2a2a44 40%, #1e1e30 100%); }
.scn-palace-imogen-mourning .window { position:absolute; top:15%; left:25%; width:120px; height:180px; background: linear-gradient(180deg, #3a5a70 0%, #2a4a60 100%); border-radius: 60px 60px 10px 10px; box-shadow: inset 0 0 30px rgba(100,150,200,.3); animation: pim-window 8s ease-in-out infinite alternate; }
.scn-palace-imogen-mourning .moonlight { position:absolute; top:15%; left:25%; width:120px; height:180px; background: radial-gradient(circle at 50% 30%, rgba(200,230,255,.15) 0%, transparent 80%); animation: pim-moon 5s ease-in-out infinite alternate; }
.scn-palace-imogen-mourning .figure { position:absolute; bottom:18%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pim-figure 6s ease-in-out infinite; }
.scn-palace-imogen-mourning .chair { position:absolute; bottom:16%; left:25%; width:50px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 4px 4px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-palace-imogen-mourning .candle { position:absolute; bottom:20%; left:48%; width:4px; height:10px; background: #d4b080; border-radius: 2px 2px 1px 1px; }
.scn-palace-imogen-mourning .candle-glow { position:absolute; bottom:20%; left:48%; width:20px; height:20px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 80%); border-radius: 50%; animation: pim-candle 3s ease-in-out infinite alternate; }
.scn-palace-imogen-mourning .shadow { position:absolute; bottom:0; left:25%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 80%); animation: pim-shadow 8s ease-in-out infinite alternate; }
@keyframes pim-window { 0% { opacity:0.8; box-shadow: 0 0 20px rgba(100,150,200,.2); } 50% { opacity:1; box-shadow: 0 0 40px rgba(100,150,200,.4); } 100% { opacity:0.85; box-shadow: 0 0 20px rgba(100,150,200,.2); } }
@keyframes pim-moon { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pim-figure { 0% { transform: translateX(0px) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0px) rotate(0deg); } }
@keyframes pim-candle { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes pim-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* palace-lady-summon */
.scn-palace-lady-summon { background: linear-gradient(180deg, #1e2030 0%, #2a2c3e 40%, #1a1c2a 100%), radial-gradient(ellipse at 80% 100%, #3a3c5e 0%, transparent 70%); }
.scn-palace-lady-summon .wall-pls { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a40 0%, #3a3a54 40%, #2a2a40 100%); }
.scn-palace-lady-summon .doorway { position:absolute; top:10%; left:70%; width:80px; height:160px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40px 40px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-palace-lady-summon .figure-seated { position:absolute; bottom:22%; left:30%; width:34px; height:50px; background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pls-seated 10s ease-in-out infinite; }
.scn-palace-lady-summon .figure-standing { position:absolute; bottom:20%; left:65%; width:28px; height:60px; background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: pls-standing 12s ease-in-out infinite; }
.scn-palace-lady-summon .bench { position:absolute; bottom:18%; left:25%; width:50px; height:10px; background: #3a2a2a; border-radius: 3px; }
.scn-palace-lady-summon .lamp { position:absolute; top:30%; left:50%; width:8px; height:16px; background: #c0a070; border-radius: 4px 4px 2px 2px; }
.scn-palace-lady-summon .lamp-glow { position:absolute; top:28%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e8c080 0%, #c08040 50%, transparent 80%); border-radius: 50%; animation: pls-lamp 4s ease-in-out infinite alternate; }
@keyframes pls-seated { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pls-standing { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pls-lamp { 0% { opacity:0.7; transform: translate(-50%,-50%) scale(1); } 50% { opacity:0.9; transform: translate(-50%,-50%) scale(1.05); } 100% { opacity:0.75; transform: translate(-50%,-50%) scale(0.98); } }

/* rome-philario-house */
.scn-rome-philario-house { background: linear-gradient(180deg, #e8d8c8 0%, #d4c0a8 40%, #c0a888 100%), radial-gradient(ellipse at 50% 30%, #f0e4d4 0%, transparent 60%); }
.scn-rome-philario-house .wall-rph { position:absolute; inset:0; background: linear-gradient(90deg, #d4c0a8 0%, #e0d0b8 40%, #d4c0a8 100%); }
.scn-rome-philario-house .window-rph { position:absolute; top:10%; left:20%; width:120px; height:180px; background: radial-gradient(circle at 50% 50%, #ffe8d0 0%, #d0b898 80%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(255,200,150,.3); animation: rph-win 6s ease-in-out infinite alternate; }
.scn-rome-philario-house .table-rph { position:absolute; bottom:20%; left:50%; width:160px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-rome-philario-house .goblet-left { position:absolute; bottom:30%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 0 0 6px 6px; animation: rph-gob 5s ease-in-out infinite; }
.scn-rome-philario-house .goblet-right { position:absolute; bottom:30%; left:58%; width:20px; height:30px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 0 0 6px 6px; animation: rph-gob 5s ease-in-out infinite reverse; }
.scn-rome-philario-house .figure-left { position:absolute; bottom:22%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rph-fig 8s ease-in-out infinite; }
.scn-rome-philario-house .figure-right { position:absolute; bottom:22%; left:63%; width:40px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: rph-fig 8s ease-in-out infinite reverse; }
.scn-rome-philario-house .sunbeam { position:absolute; top:10%; left:20%; width:120px; height:180px; background: linear-gradient(135deg, rgba(255,240,210,.2) 0%, transparent 100%); animation: rph-beam 10s ease-in-out infinite alternate; }
@keyframes rph-win { 0% { opacity:0.9; } 50% { opacity:1; box-shadow: 0 0 40px rgba(255,200,150,.4); } 100% { opacity:0.95; } }
@keyframes rph-gob { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes rph-fig { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes rph-beam { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

/* rome-posthumus-wager */
.scn-rome-posthumus-wager { background: linear-gradient(180deg, #d8c8b0 0%, #c0a890 50%, #a08070 100%), radial-gradient(ellipse at 70% 60%, #f0e0d0 0%, transparent 60%); }
.scn-rome-posthumus-wager .floor-rpw { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b09880 0%, #8a7060 100%); }
.scn-rome-posthumus-wager .wall-rpw { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(90deg, #d0c0a8 0%, #e0d0b8 40%, #d0c0a8 100%); }
.scn-rome-posthumus-wager .table-rpw { position:absolute; bottom:22%; left:50%; width:180px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #a08870 0%, #807060 100%); border-radius: 4px; box-shadow: 0 6px 14px rgba(0,0,0,.3); animation: rpw-table 7s ease-in-out infinite alternate; }
.scn-rome-posthumus-wager .dice { position:absolute; bottom:30%; left:46%; width:14px; height:14px; background: #e8d8c8; border-radius: 3px; box-shadow: 1px 1px 2px rgba(0,0,0,.2); animation: rpw-dice 4s ease-in-out infinite; }
.scn-rome-posthumus-wager .hand-left { position:absolute; bottom:27%; left:35%; width:24px; height:40px; background: #7a6a5a; border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rpw-hand 9s ease-in-out infinite; }
.scn-rome-posthumus-wager .hand-right { position:absolute; bottom:27%; right:35%; width:24px; height:40px; background: #6a5a4a; border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rpw-hand 9s ease-in-out infinite reverse; }
.scn-rome-posthumus-wager .goblet-rpw { position:absolute; bottom:28%; left:55%; width:18px; height:26px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 0 0 4px 4px; animation: rpw-goblet 3s ease-in-out infinite alternate; }
.scn-rome-posthumus-wager .shadow-rpw { position:absolute; bottom:0; left:30%; width:200px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 80%); animation: rpw-shadow 6s ease-in-out infinite alternate; }
@keyframes rpw-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes rpw-dice { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(15deg) scale(1.1); } 50% { transform: rotate(-5deg) scale(0.95); } 75% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes rpw-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rpw-goblet { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes rpw-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-garden-farewell-pledges {
  background:
    linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #f5c070 60%, #c8a050 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-garden-farewell-pledges .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, transparent 100%);
  animation: gf-sky 20s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .sun {
  position: absolute; top: 12%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff3a0 0%, #f5d76e 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(245,215,110,0.4);
  animation: gf-sun 12s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .arch {
  position: absolute; bottom: 25%; left: 30%; width: 180px; height: 120px;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 6px solid #a08050; border-bottom: none;
  background: linear-gradient(135deg, transparent 60%, #8a7340 60%, #6a5a30 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: gf-arch 25s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .vines {
  position: absolute; bottom: 30%; left: 32%; width: 140px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #3a5a20 0%, transparent 70%);
  filter: blur(2px); opacity: 0.6;
  animation: gf-vines 8s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .flowers {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 40px;
  background: radial-gradient(circle, #ffa070 0%, #c8553d 40%, transparent 60%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 10px 5px rgba(200,85,61,0.3);
  animation: gf-flowers 6s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .letter {
  position: absolute; bottom: 30%; left: 48%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #fff8dc 0%, #f5e6b8 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-8deg);
  animation: gf-letter 4s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .shadow-figure {
  position: absolute; bottom: 25%; left: 52%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-figure 8s ease-in-out infinite alternate;
}
.scn-garden-farewell-pledges .motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,248,220,0.15) 0%, transparent 50%),
              radial-gradient(circle at 70% 20%, rgba(255,248,220,0.1) 0%, transparent 40%);
  animation: gf-motes 15s ease-in-out infinite alternate;
}
@keyframes gf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.9; transform: translateY(0); }
}
@keyframes gf-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.95; }
}
@keyframes gf-arch {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(0.98) translateY(1px); }
}
@keyframes gf-vines {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(5px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-3px) scale(0.95); opacity: 0.6; }
}
@keyframes gf-flowers {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-2deg) scale(0.95); }
}
@keyframes gf-letter {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(1px); }
}
@keyframes gf-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-6px) translateY(0) rotate(-1deg); }
}
@keyframes gf-motes {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-item-diamond-ring {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4b896 80%, #b89a74 100%),
    radial-gradient(ellipse at 40% 30%, #fff8f0 0%, transparent 70%);
}
.scn-item-diamond-ring .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c0a8 0%, #c0ac90 100%);
  border-radius: 20px;
  animation: dr-bg 20s ease-in-out infinite alternate;
}
.scn-item-diamond-ring .hand {
  position: absolute; bottom: 20%; left: 25%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 30% 50%, #e0c8a0 0%, #c0a080 60%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: dr-hand 8s ease-in-out infinite alternate;
}
.scn-item-diamond-ring .ring {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #f0d8a0 0%, #d4b060 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.3);
  animation: dr-ring 5s ease-in-out infinite alternate;
}
.scn-item-diamond-ring .gem {
  position: absolute; bottom: 30%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffffff 0%, #d0e0ff 40%, #7090c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(160,200,255,0.6), 0 0 40px 12px rgba(160,200,255,0.3);
  animation: dr-gem 3s ease-in-out infinite alternate;
}
.scn-item-diamond-ring .moteglow {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: dr-moteglow 10s ease-in-out infinite alternate;
}
.scn-item-diamond-ring .dust-a {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,248,220,0.6);
  border-radius: 50%;
  animation: dr-dust-a 15s linear infinite;
}
.scn-item-diamond-ring .dust-b {
  position: absolute; top: 30%; right: 20%; width: 3px; height: 3px;
  background: rgba(255,248,220,0.4);
  border-radius: 50%;
  animation: dr-dust-b 20s linear infinite reverse;
}
@keyframes dr-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dr-hand {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(-3px); }
  100% { transform: rotate(17deg) translateY(0); }
}
@keyframes dr-ring {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes dr-gem {
  0% { box-shadow: 0 0 15px 4px rgba(160,200,255,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(160,200,255,0.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(160,200,255,0.5); opacity: 0.9; }
}
@keyframes dr-moteglow {
  0% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes dr-dust-a {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-20px) translateX(10px); }
  100% { transform: translateY(0) translateX(20px); }
}
@keyframes dr-dust-b {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-30px) scale(1.5); }
  100% { transform: translateY(0) scale(0.8); }
}

.scn-item-bracelet-manacle {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 40%, #c0ac80 100%),
    radial-gradient(ellipse at 40% 50%, #fff8f0 0%, transparent 60%);
}
.scn-item-bracelet-manacle .bg-arm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d4b8 0%, #c0ac90 100%);
  animation: bm-bg 18s ease-in-out infinite alternate;
}
.scn-item-bracelet-manacle .arm {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 160px;
  background: radial-gradient(ellipse at 50% 40%, #e0c8a0 0%, #c0a080 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: bm-arm 10s ease-in-out infinite alternate;
}
.scn-item-bracelet-manacle .bracelet {
  position: absolute; bottom: 40%; left: 38%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #f0d8a0 0%, #d0b060 100%);
  border-radius: 30%;
  box-shadow: 0 0 10px 3px rgba(200,160,80,0.4);
  animation: bm-bracelet 6s ease-in-out infinite alternate;
}
.scn-item-bracelet-manacle .links {
  position: absolute; bottom: 38%; left: 36%; width: 50px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, #d0b060 20%, #f0d8a0 50%, #d0b060 80%, transparent 100%);
  border-radius: 30%;
  filter: blur(1px);
  animation: bm-links 4s ease-in-out infinite alternate;
}
.scn-item-bracelet-manacle .sparkle-a {
  position: absolute; bottom: 42%; left: 40%; width: 6px; height: 6px;
  background: rgba(255,248,220,0.8);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(255,200,100,0.5);
  animation: bm-sparkle-a 3s ease-in-out infinite alternate;
}
.scn-item-bracelet-manacle .sparkle-b {
  position: absolute; bottom: 36%; left: 44%; width: 4px; height: 4px;
  background: rgba(255,248,220,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 3px rgba(255,200,100,0.3);
  animation: bm-sparkle-b 4s ease-in-out infinite alternate-reverse;
}
.scn-item-bracelet-manacle .shadow-accent {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 50%;
  animation: bm-shadow 12s ease-in-out infinite alternate;
}
@keyframes bm-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bm-arm {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes bm-bracelet {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes bm-links {
  0% { transform: scaleX(1) translateX(0); opacity: 0.7; }
  50% { transform: scaleX(1.1) translateX(2px); opacity: 1; }
  100% { transform: scaleX(0.9) translateX(-1px); opacity: 0.8; }
}
@keyframes bm-sparkle-a {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes bm-sparkle-b {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.2); }
  100% { transform: translateY(2px) scale(0.9); }
}
@keyframes bm-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

.scn-palace-cymbeline-rage {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2040 30%, #3a2a50 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-palace-cymbeline-rage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cr-floor 20s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: cr-wall 30s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .throne {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
  animation: cr-throne 15s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .figure-rage {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure 4s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .drape-left {
  position: absolute; top: 0; left: 10%; width: 80px; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 0 20% 0 0;
  transform: skewX(-5deg);
  animation: cr-drape-left 12s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .drape-right {
  position: absolute; top: 0; right: 10%; width: 80px; height: 100%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%);
  border-radius: 20% 0 0 0;
  transform: skewX(5deg);
  animation: cr-drape-right 12s ease-in-out infinite alternate-reverse;
}
.scn-palace-cymbeline-rage .light-beam {
  position: absolute; top: 0; left: 40%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(230,168,23,0.3) 0%, rgba(230,168,23,0.05) 50%, transparent 100%);
  filter: blur(8px);
  animation: cr-beam 8s ease-in-out infinite alternate;
}
.scn-palace-cymbeline-rage .shadow-pool {
  position: absolute; bottom: 30%; left: 30%; width: 200px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: cr-shadow-pool 10s ease-in-out infinite alternate;
}
@keyframes cr-floor {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes cr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cr-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(0.95); }
}
@keyframes cr-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes cr-drape-left {
  0% { transform: skewX(-5deg) translateX(0); }
  50% { transform: skewX(-7deg) translateX(-2px); }
  100% { transform: skewX(-3deg) translateX(2px); }
}
@keyframes cr-drape-right {
  0% { transform: skewX(5deg) translateX(0); }
  50% { transform: skewX(7deg) translateX(2px); }
  100% { transform: skewX(3deg) translateX(-2px); }
}
@keyframes cr-beam {
  0% { opacity: 0.2; transform: scaleX(0.8); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes cr-shadow-pool {
  0% { transform: scaleX(0.9); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* Palace Iachimo Recovery */
.scn-palace-iachimo-recovery {
  background:
    linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 40%, #b8a88c 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-palace-iachimo-recovery .sunbeam {
  position: absolute; inset: 5% 45% 40% 40%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  filter: blur(15px);
  animation: pii-beam 8s ease-in-out infinite alternate;
}
.scn-palace-iachimo-recovery .window-arch {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #c0b090 0%, #908070 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-palace-iachimo-recovery .column {
  position: absolute; left: 28%; bottom: 0; width: 6%; height: 65%;
  background: linear-gradient(90deg, #d4c4a8 0%, #f0e6d0 30%, #d4c4a8 70%, #b8a88c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  transform: scale(0.95);
}
.scn-palace-iachimo-recovery .figure-silhouette {
  position: absolute; left: 35%; bottom: 18%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: pii-figure 6s ease-in-out infinite alternate;
}
.scn-palace-iachimo-recovery .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 18%;
  background: linear-gradient(180deg, #b8a88c 0%, #9a8a72 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-palace-iachimo-recovery .vase {
  position: absolute; left: 62%; bottom: 18%; width: 7%; height: 22%;
  background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #604830 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: pii-vase 12s ease-in-out infinite;
}
.scn-palace-iachimo-recovery .floor-shadow {
  position: absolute; left: 30%; bottom: 16%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  filter: blur(8px);
}
@keyframes pii-beam {
  0% { opacity: 0.5; transform: scale(1) rotate(-2deg); }
  50% { opacity: 0.9; transform: scale(1.05) rotate(0deg); }
  100% { opacity: 0.6; transform: scale(0.95) rotate(2deg); }
}
@keyframes pii-figure {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
}
@keyframes pii-vase {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}

/* Palace Trunk Request */
.scn-palace-trunk-request {
  background:
    linear-gradient(180deg, #f5ecd8 0%, #d8c8b0 50%, #b8a088 100%),
    radial-gradient(ellipse at 50% 60%, #fff8ee 0%, transparent 70%);
}
.scn-palace-trunk-request .trunk {
  position: absolute; left: 38%; bottom: 25%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 6px 6px 20px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,240,200,0.3);
  transform: perspective(800px) rotateX(3deg);
  animation: ptt-trunk 10s ease-in-out infinite alternate;
}
.scn-palace-trunk-request .lid {
  position: absolute; left: 38%; bottom: 53%; width: 24%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  transform-origin: bottom center;
  transform: perspective(800px) rotateX(-30deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: ptt-lid 8s ease-in-out infinite alternate;
}
.scn-palace-trunk-request .shadow-under {
  position: absolute; left: 36%; bottom: 22%; width: 28%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(10px);
  animation: ptt-shadow 10s ease-in-out infinite alternate;
}
.scn-palace-trunk-request .figure-left {
  position: absolute; left: 24%; bottom: 22%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1) translateY(0);
  animation: ptt-figure 6s ease-in-out infinite alternate;
}
.scn-palace-trunk-request .figure-right {
  position: absolute; right: 24%; bottom: 22%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateY(0);
  animation: ptt-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-palace-trunk-request .floor-tiles {
  position: absolute; left: 0; right: 0; bottom: 0; height: 20%;
  background:
    repeating-linear-gradient(90deg, #c8b8a0 0px, #c8b8a0 8px, #b8a890 8px, #b8a890 16px),
    repeating-linear-gradient(0deg, #c8b8a0 0px, #c8b8a0 8px, #b8a890 8px, #b8a890 16px);
  background-size: 16px 16px;
  opacity: 0.6;
}
.scn-palace-trunk-request .candle {
  position: absolute; left: 55%; bottom: 32%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,200,150,0.7);
  animation: ptt-candle 3s ease-in-out infinite alternate;
}
@keyframes ptt-trunk {
  0% { transform: perspective(800px) rotateX(3deg) translateY(0); }
  50% { transform: perspective(800px) rotateX(4deg) translateY(-2px); }
  100% { transform: perspective(800px) rotateX(2deg) translateY(0); }
}
@keyframes ptt-lid {
  0% { transform: perspective(800px) rotateX(-30deg); }
  50% { transform: perspective(800px) rotateX(-28deg); }
  100% { transform: perspective(800px) rotateX(-32deg); }
}
@keyframes ptt-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 0.5; }
  100% { opacity: 0.8; }
}
@keyframes ptt-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ptt-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.85; transform: scaleY(0.95); }
}

/* Before Palace Cloten Bowl */
.scn-before-palace-cloten-bowl {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f1 30%, #f0e68c 60%, #d2b48c 100%),
    radial-gradient(ellipse at 70% 20%, #fffacd 0%, transparent 50%);
}
.scn-before-palace-cloten-bowl .sky-bright {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f1 50%, transparent 100%);
  animation: bpc-sky 20s ease-in-out infinite alternate;
}
.scn-before-palace-cloten-bowl .palace-facade {
  position: absolute; left: 20%; right: 20%; top: 0; height: 45%;
  background:
    linear-gradient(180deg, #d2b48c 0%, #c0a080 40%, #a08060 100%),
    repeating-linear-gradient(90deg, transparent 0%, transparent 5%, #a08060 5%, #a08060 5.5%, transparent 5.5%);
  background-blend-mode: overlay;
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.scn-before-palace-cloten-bowl .ground {
  position: absolute; left: 0; right: 0; bottom: 0; height: 45%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 60% 40% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-before-palace-cloten-bowl .cloten-figure {
  position: absolute; left: 40%; bottom: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a0a 0%, #1a1a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bpc-cloten 1.6s ease-in-out infinite alternate;
}
.scn-before-palace-cloten-bowl .bowl {
  position: absolute; left: 55%; bottom: 30%; width: 5%; height: 5%;
  background: radial-gradient(circle, #debb87 0%, #b8860b 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: bpc-bowl 2.4s ease-in-out infinite;
}
.scn-before-palace-cloten-bowl .shadow-cloten {
  position: absolute; left: 38%; bottom: 32%; width: 16%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: bpc-shad 1.6s ease-in-out infinite alternate;
}
.scn-before-palace-cloten-bowl .puff-dust {
  position: absolute; left: 48%; bottom: 37%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(255,255,200,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: bpc-puff 1.5s ease-in-out infinite;
}
@keyframes bpc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bpc-cloten {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bpc-bowl {
  0% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(10px) translateY(-15px) scale(0.9); }
  50% { transform: translateX(20px) translateY(0) scale(1); }
  75% { transform: translateX(10px) translateY(-5px) scale(0.95); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}
@keyframes bpc-shad {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.2); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.7; }
}
@keyframes bpc-puff {
  0% { transform: scale(0) translate(0,0); opacity: 0.6; }
  50% { transform: scale(2) translate(10px,-5px); opacity: 0; }
  100% { transform: scale(0) translate(0,0); opacity: 0.6; }
}

/* Bedchamber Imogen Sleeps */
.scn-bedchamber-imogen-sleeps {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #0a0a1e 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-bedchamber-imogen-sleeps .wall-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e3e 0%, #2e2e4e 50%, #0e0e2e 100%);
  opacity: 0.9;
}
.scn-bedchamber-imogen-sleeps .window-moon {
  position: absolute; top: 15%; left: 70%; width: 12%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #c0d0ff 0%, #8090c0 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(120,160,255,0.5);
  animation: bis-moon 15s ease-in-out infinite alternate;
}
.scn-bedchamber-imogen-sleeps .moonlight-beam {
  position: absolute; top: 15%; left: 65%; width: 25%; height: 70%;
  background: linear-gradient(135deg, rgba(180,200,255,0.25) 0%, transparent 100%);
  filter: blur(20px);
  animation: bis-beam 12s ease-in-out infinite alternate;
}
.scn-bedchamber-imogen-sleeps .bed {
  position: absolute; left: 20%; bottom: 10%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.7), inset 0 8px 12px rgba(255,240,200,0.1);
}
.scn-bedchamber-imogen-sleeps .figure-sleeping {
  position: absolute; left: 30%; bottom: 18%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) scale(0.8);
  animation: bis-sleep 8s ease-in-out infinite alternate;
}
.scn-bedchamber-imogen-sleeps .candle-glow {
  position: absolute; left: 14%; bottom: 22%; width: 3%; height: 8%;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #c08040 60%, transparent 100%);
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.6);
  border-radius: 10% 10% 20% 20%;
  animation: bis-candle 4s ease-in-out infinite alternate;
}
.scn-bedchamber-imogen-sleeps .book-open {
  position: absolute; left: 22%; bottom: 12%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 4% 4% 20% 20%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  transform: rotate(10deg);
  animation: bis-book 10s ease-in-out infinite alternate;
}
@keyframes bis-moon {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes bis-beam {
  0% { opacity: 0.3; transform: rotate(0deg) scaleX(1); }
  50% { opacity: 0.5; transform: rotate(2deg) scaleX(1.05); }
  100% { opacity: 0.35; transform: rotate(-1deg) scaleX(0.95); }
}
@keyframes bis-sleep {
  0% { transform: rotate(15deg) scale(0.8) translateY(0); }
  50% { transform: rotate(15deg) scale(0.82) translateY(-2px); }
  100% { transform: rotate(15deg) scale(0.78) translateY(0); }
}
@keyframes bis-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2); }
  100% { opacity: 0.8; transform: scaleY(0.9); }
}
@keyframes bis-book {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}

.scn-hall-lucius-defiance {
  background: linear-gradient(180deg, #f5e6d0 0%, #c9a66b 40%, #4a2e1a 100%),
              radial-gradient(ellipse at 50% 30%, #ffe8b0 0%, transparent 60%);
}
.scn-hall-lucius-defiance .wall-left { position:absolute; top:0; bottom:20%; left:0; width:15%; background: linear-gradient(90deg, #3a2a1a 0%, transparent 100%); animation: hld-wall 8s ease-in-out infinite alternate; }
.scn-hall-lucius-defiance .wall-right { position:absolute; top:0; bottom:20%; right:0; width:15%; background: linear-gradient(270deg, #3a2a1a 0%, transparent 100%); animation: hld-wall 8s ease-in-out infinite alternate-reverse; }
.scn-hall-lucius-defiance .window-left { position:absolute; top:15%; left:20%; width:80px; height:120px; background: linear-gradient(180deg, #a0d8ef 0%, #6ab0d0 50%, #3a7890 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 0 40px 15px rgba(160,216,239,0.5); animation: hld-window 6s ease-in-out infinite alternate; }
.scn-hall-lucius-defiance .window-right { position:absolute; top:15%; right:20%; width:80px; height:120px; background: linear-gradient(180deg, #a0d8ef 0%, #6ab0d0 50%, #3a7890 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 0 40px 15px rgba(160,216,239,0.5); animation: hld-window 6s ease-in-out infinite alternate-reverse; }
.scn-hall-lucius-defiance .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-hall-lucius-defiance .figure-defiant { position:absolute; bottom:20%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: hld-figure 3s ease-in-out infinite; }
.scn-hall-lucius-defiance .banner { position:absolute; top:5%; left:35%; width:200px; height:60px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #7a3010 100%); border-radius:0 0 40% 40%; transform: skewX(-10deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: hld-banner 4s ease-in-out infinite; }
.scn-hall-lucius-defiance .light-beam { position:absolute; top:10%; left:25%; width:120px; height:300px; background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0) 100%); filter: blur(12px); transform: rotate(-12deg); animation: hld-beam 3s ease-in-out infinite alternate; }
@keyframes hld-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hld-window { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:0.75; transform:scale(0.98) } }
@keyframes hld-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 30% { transform:translateX(-48%) translateY(-2px) rotate(1deg) } 60% { transform:translateX(-50%) translateY(1px) rotate(-1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes hld-banner { 0% { transform:skewX(-10deg) translateY(0) } 50% { transform:skewX(-8deg) translateY(-3px) } 100% { transform:skewX(-12deg) translateY(2px) } }
@keyframes hld-beam { 0% { opacity:0.6; transform:rotate(-12deg) scale(1) } 50% { opacity:0.9; transform:rotate(-8deg) scale(1.05) } 100% { opacity:0.5; transform:rotate(-14deg) scale(0.95) } }

.scn-palace-pisanio-letter {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2a50 40%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a6e 0%, transparent 60%);
}
.scn-palace-pisanio-letter .back-wall { position:absolute; top:0; bottom:0; left:0; right:0; background: linear-gradient(90deg, #14142a 0%, #20204a 50%, #14142a 100%); animation: ppl-wall 12s ease-in-out infinite alternate; }
.scn-palace-pisanio-letter .floor-dark { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-palace-pisanio-letter .table { position:absolute; bottom:15%; left:35%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:4px 4px 10px 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-palace-pisanio-letter .candle-pisanio { position:absolute; bottom:22%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #ffd680 0%, #b08040 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(255,214,128,0.6); animation: ppl-candle 3s ease-in-out infinite; }
.scn-palace-pisanio-letter .figure-pisanio { position:absolute; bottom:10%; left:30%; width:50px; height:100px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ppl-figure 5s ease-in-out infinite; }
.scn-palace-pisanio-letter .letter-paper { position:absolute; bottom:28%; left:37%; width:40px; height:30px; background: linear-gradient(135deg, #f5e6d0 0%, #c9a66b 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform:rotate(-5deg); animation: ppl-letter 4s ease-in-out infinite; }
.scn-palace-pisanio-letter .shadow-pisanio { position:absolute; bottom:10%; left:28%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ppl-shadow 5s ease-in-out infinite; }
@keyframes ppl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ppl-candle { 0% { transform:scale(1); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.75 } }
@keyframes ppl-figure { 0% { transform:translateY(0) rotate(0deg) } 40% { transform:translateY(-2px) rotate(2deg) } 70% { transform:translateY(1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes ppl-letter { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-1px) } 100% { transform:rotate(-6deg) translateY(0) } }
@keyframes ppl-shadow { 0% { transform:scale(1); opacity:0.4 } 50% { transform:scale(1.05); opacity:0.6 } 100% { transform:scale(0.95); opacity:0.3 } }

.scn-palace-imogen-letter {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a22 40%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 70%, #7a5a3a 0%, transparent 60%);
}
.scn-palace-imogen-letter .window-soft { position:absolute; top:10%; right:20%; width:100px; height:150px; background: linear-gradient(180deg, #cce0ff 0%, #99b3e6 50%, #6680b3 100%); border-radius:10px 10px 5px 5px; box-shadow: 0 0 30px 10px rgba(153,179,230,0.3); animation: pil-window 8s ease-in-out infinite alternate; }
.scn-palace-imogen-letter .curtain { position:absolute; top:10%; right:18%; width:120px; height:160px; background: linear-gradient(180deg, #702243 0%, #4a162e 50%, #301020 100%); border-radius:0 0 30% 30%; transform-origin: top center; animation: pil-curtain 10s ease-in-out infinite; }
.scn-palace-imogen-letter .floor-wood { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); }
.scn-palace-imogen-letter .chair-imogen { position:absolute; bottom:18%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:20% 20% 10% 10%; box-shadow: 2px 2px 6px rgba(0,0,0,0.4); }
.scn-palace-imogen-letter .figure-imogen { position:absolute; bottom:20%; left:32%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pil-figure 6s ease-in-out infinite; }
.scn-palace-imogen-letter .letter-held { position:absolute; bottom:35%; left:28%; width:30px; height:25px; background: linear-gradient(135deg, #f5e6d0 0%, #c9a66b 100%); border-radius:2px; transform:rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: pil-letter 5s ease-in-out infinite; }
.scn-palace-imogen-letter .petal { position:absolute; top:50%; left:70%; width:8px; height:8px; background: #b87878; border-radius:50% 0 50% 0; animation: pil-petal 12s linear infinite; }
.scn-palace-imogen-letter .candle-imogen { position:absolute; bottom:25%; left:40%; width:4px; height:15px; background: linear-gradient(180deg, #ffd680 0%, #b08040 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 15px 5px rgba(255,214,128,0.5); animation: pil-candle 4s ease-in-out infinite; }
@keyframes pil-window { 0% { opacity:0.8; transform:scale(1) } 50% { opacity:0.95; transform:scale(1.02) } 100% { opacity:0.85; transform:scale(0.98) } }
@keyframes pil-curtain { 0% { transform:rotate(0deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes pil-figure { 0% { transform:translateY(0) rotate(0deg) } 40% { transform:translateY(-1px) rotate(1deg) } 70% { transform:translateY(1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pil-letter { 0% { transform:rotate(15deg) translateY(0) } 50% { transform:rotate(17deg) translateY(-1px) } 100% { transform:rotate(14deg) translateY(1px) } }
@keyframes pil-petal { 0% { transform:translateY(-20px) rotate(0deg); opacity:0 } 20% { opacity:0.8 } 80% { opacity:0.7 } 100% { transform:translateY(600px) rotate(360deg); opacity:0 } }
@keyframes pil-candle { 0% { transform:scale(1); opacity:0.8 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.75 } }

.scn-wales-mountain-cave {
  background: linear-gradient(180deg, #f0c8a0 0%, #d4a67a 30%, #8a6a4a 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 70% 30%, #ffdab9 0%, transparent 50%);
}
.scn-wales-mountain-cave .cave-roof { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0e06 0%, #3a2a1a 40%, transparent 100%); border-radius:0 0 40% 40%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-wales-mountain-cave .cave-wall-left { position:absolute; top:0; left:0; bottom:20%; width:20%; background: linear-gradient(90deg, #1a0e06 0%, transparent 100%); }
.scn-wales-mountain-cave .cave-wall-right { position:absolute; top:0; right:0; bottom:20%; width:20%; background: linear-gradient(270deg, #1a0e06 0%, transparent 100%); }
.scn-wales-mountain-cave .ground-rock { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); }
.scn-wales-mountain-cave .figure-belarius { position:absolute; bottom:18%; left:25%; width:50px; height:90px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(-5deg); transform-origin: bottom center; animation: wmc-belarius 7s ease-in-out infinite; }
.scn-wales-mountain-cave .figure-guiderius { position:absolute; bottom:20%; left:38%; width:45px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(3deg); transform-origin: bottom center; animation: wmc-guiderius 8s ease-in-out infinite; }
.scn-wales-mountain-cave .figure-arviragus { position:absolute; bottom:18%; left:50%; width:42px; height:75px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(-2deg); transform-origin: bottom center; animation: wmc-arviragus 9s ease-in-out infinite; }
.scn-wales-mountain-cave .entrance-glow { position:absolute; top:20%; right:15%; width:120px; height:200px; background: radial-gradient(ellipse, rgba(255,218,185,0.6) 0%, rgba(255,218,185,0) 70%); filter: blur(8px); animation: wmc-glow 6s ease-in-out infinite alternate; }
.scn-wales-mountain-cave .mist-dawn { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(255,218,185,0.2) 30%, rgba(255,218,185,0.15) 70%, transparent 100%); filter: blur(10px); animation: wmc-mist 15s linear infinite; }
@keyframes wmc-belarius { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(-6deg) translateY(1px) } }
@keyframes wmc-guiderius { 0% { transform:rotate(3deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-1px) } 100% { transform:rotate(2deg) translateY(1px) } }
@keyframes wmc-arviragus { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(0deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(1px) } }
@keyframes wmc-glow { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:0.9; transform:scale(1.03) } 100% { opacity:0.7; transform:scale(0.97) } }
@keyframes wmc-mist { 0% { transform:translateX(-20%) } 100% { transform:translateX(20%) } }

/* rome-posthumus-madness */
.scn-rome-posthumus-madness {
  background: linear-gradient(180deg, #1a1828 0%, #2c2038 50%, #3a2a44 100%),
              radial-gradient(ellipse at 40% 20%, #4a3e5e 0%, transparent 70%);
}
.scn-rome-posthumus-madness .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1c1a28 100%);
  animation: pm-wall 12s ease-in-out infinite alternate;
}
.scn-rome-posthumus-madness .window {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #b8a67a 0%, #8a7a5a 60%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px #b8a67a, 0 0 120px 40px rgba(184,166,122,0.3);
  animation: pm-window 8s ease-in-out infinite alternate;
}
.scn-rome-posthumus-madness .light-beam {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 0;
  background: linear-gradient(180deg, rgba(184,166,122,0.3) 0%, transparent 100%);
  box-shadow: 0 0 40px 10px rgba(184,166,122,0.2);
  animation: pm-beam 10s ease-in-out infinite alternate;
  border-radius: 50% 50% 0 0;
  pointer-events: none;
}
.scn-rome-posthumus-madness .figure {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 4s ease-in-out infinite;
}
.scn-rome-posthumus-madness .table {
  position: absolute; bottom: 20%; left: 15%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: pm-table 6s ease-in-out infinite alternate;
}
.scn-rome-posthumus-madness .candle {
  position: absolute; bottom: 26%; left: 45%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pm-candle 2s ease-in-out infinite alternate;
}
.scn-rome-posthumus-madness .shadow {
  position: absolute; bottom: 16%; left: 10%; width: 80%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pm-shadow 10s ease-in-out infinite alternate;
}
@keyframes pm-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pm-window { 0% { box-shadow: 0 0 40px 10px #b8a67a } 50% { box-shadow: 0 0 80px 25px #d4c092 } 100% { box-shadow: 0 0 50px 15px #a0906a } }
@keyframes pm-beam { 0% { height: 0; opacity: 0 } 50% { height: 40%; opacity: 0.6 } 100% { height: 30%; opacity: 0.3 } }
@keyframes pm-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pm-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.92) translateY(1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes pm-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* rome-posthumus-rage */
.scn-rome-posthumus-rage {
  background: linear-gradient(180deg, #1a1a30 0%, #3a2a40 50%, #4a3a50 100%),
              radial-gradient(ellipse at 60% 30%, #5a4a60 0%, transparent 70%);
}
.scn-rome-posthumus-rage .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a44 0%, #1c1a2a 100%);
  animation: rp-bg 7s ease-in-out infinite alternate;
}
.scn-rome-posthumus-rage .hand {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rp-hand 1.8s ease-in-out infinite;
}
.scn-rome-posthumus-rage .goblet {
  position: absolute; bottom: 35%; left: 45%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #b0a090 0%, #6a5a4a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: 0 0 20px 5px rgba(200,180,150,0.3);
  animation: rp-goblet 1.8s ease-in-out infinite alternate;
}
.scn-rome-posthumus-rage .spark {
  position: absolute; bottom: 48%; left: 48%; width: 2%; height: 2%;
  background: radial-gradient(circle, #f0d080 0%, #d0a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f0d080;
  animation: rp-spark 1.6s ease-in-out infinite alternate;
}
.scn-rome-posthumus-rage .shatter-a {
  position: absolute; bottom: 20%; left: 55%; width: 5%; height: 10%;
  background: linear-gradient(135deg, #d0c0b0 0%, #6a5a4a 100%);
  clip-path: polygon(20% 0%, 80% 10%, 60% 100%, 10% 80%);
  animation: rp-shatter 1.6s ease-in-out infinite;
}
.scn-rome-posthumus-rage .shatter-b {
  position: absolute; bottom: 15%; left: 60%; width: 4%; height: 8%;
  background: linear-gradient(135deg, #c0b0a0 0%, #5a4a3a 100%);
  clip-path: polygon(30% 0%, 90% 20%, 50% 100%, 0% 70%);
  animation: rp-shatter 1.6s ease-in-out 0.2s infinite;
}
.scn-rome-posthumus-rage .shadow-close {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: rp-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes rp-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rp-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-5deg) } 50% { transform: translateX(-3px) rotate(3deg) } 75% { transform: translateX(4px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rp-goblet { 0% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(5deg) } }
@keyframes rp-spark { 0% { opacity: 0; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: 0; transform: scale(0.3) } }
@keyframes rp-shatter { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px, -5px) rotate(30deg) } 50% { transform: translate(20px, -10px) rotate(60deg) } 75% { transform: translate(15px, -5px) rotate(45deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes rp-shadow { 0% { transform: scaleX(0.8) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

/* rome-posthumus-soliloquy */
.scn-rome-posthumus-soliloquy {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 80%);
}
.scn-rome-posthumus-soliloquy .wall-dim {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%);
  animation: sl-wall 20s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: sl-desk 15s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .figure-seated {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-figure 8s ease-in-out infinite;
}
.scn-rome-posthumus-soliloquy .candle {
  position: absolute; bottom: 25%; left: 55%; width: 1.5%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sl-candle 3s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .flame {
  position: absolute; bottom: 33%; left: 55.5%; width: 2%; height: 3%;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px #e0a040, 0 0 40px 15px rgba(224,160,64,0.4);
  animation: sl-flame 2s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .papers {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 5%;
  background: linear-gradient(135deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 10%;
  transform: rotate(10deg);
  animation: sl-papers 12s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .mirror {
  position: absolute; top: 15%; left: 60%; width: 15%; height: 30%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  border: 2px solid #6a5a4a;
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 30px rgba(0,0,0,0.5);
  animation: sl-mirror 18s ease-in-out infinite alternate;
}
.scn-rome-posthumus-soliloquy .shadow-kindled {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: sl-shadow 10s ease-in-out infinite alternate;
}
@keyframes sl-wall { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes sl-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sl-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sl-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes sl-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-3px) } 100% { transform: scaleY(0.9) translateY(1px) } }
@keyframes sl-papers { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(5px) } 100% { transform: rotate(8deg) translateX(-3px) } }
@keyframes sl-mirror { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8) } }
@keyframes sl-shadow { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* hall-cymbeline-rome-tribute */
.scn-hall-cymbeline-rome-tribute {
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a3a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #b0a080 0%, transparent 70%);
}
.scn-hall-cymbeline-rome-tribute .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  animation: ht-floor 30s ease-in-out infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .column-left {
  position: absolute; bottom: 35%; left: 10%; width: 5%; height: 65%;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 5px 0 20px rgba(0,0,0,0.5);
  animation: ht-column 20s ease-in-out infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .column-right {
  position: absolute; bottom: 35%; right: 10%; width: 5%; height: 65%;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -5px 0 20px rgba(0,0,0,0.5);
  animation: ht-column 20s ease-in-out 5s infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .throne {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.7);
  animation: ht-throne 25s ease-in-out infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .king {
  position: absolute; bottom: 35%; left: 43%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-king 4s ease-in-out infinite;
}
.scn-hall-cymbeline-rome-tribute .courtiers {
  position: absolute; bottom: 35%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 0 0;
  opacity: 0.7;
  animation: ht-courtiers 30s ease-in-out infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .banner {
  position: absolute; top: 5%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #702243 0%, #4a1220 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: ht-banner 8s ease-in-out infinite alternate;
}
.scn-hall-cymbeline-rome-tribute .light-shaft {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, transparent 80%);
  box-shadow: 0 0 40px 10px rgba(200,180,140,0.1);
  animation: ht-shaft 12s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes ht-floor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ht-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ht-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ht-king { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ht-courtiers { 0% { opacity: 0.6; transform: translateY(0) } 50% { opacity: 0.8; transform: translateY(-3px) } 100% { opacity: 0.7; transform: translateY(0) } }
@keyframes ht-banner { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) scaleY(1.05) } 100% { transform: scaleX(1) } }
@keyframes ht-shaft { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

/* ===== SCENE: tent-reunion ===== */
.scn-tent-reunion {
  background: 
    radial-gradient(ellipse at 50% 30%, #8c6e4a 0%, #4a3520 60%, #2a1e12 100%),
    linear-gradient(180deg, #503b26 0%, #3a2a1a 100%);
}
.scn-tent-reunion .tr-tent {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #7a5e3e 0%, #5c452a 40%, #3e2c18 80%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  opacity: 0.6; animation: tr-drape 12s ease-in-out infinite alternate;
}
.scn-tent-reunion .tr-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #5a4228 0%, #2e1f10 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
  animation: tr-floor 20s ease-in-out infinite alternate;
}
.scn-tent-reunion .tr-lamp {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 18px;
  background: radial-gradient(circle, #f5d6a0 0%, #c8913e 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #c8913e;
  animation: tr-lamp 3s ease-in-out infinite alternate;
}
.scn-tent-reunion .tr-glow {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,145,62,0.3) 0%, transparent 70%);
  animation: tr-glow 5s ease-in-out infinite alternate;
}
.scn-tent-reunion .tr-figure-kneeling {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3e2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr-kneel 4s ease-in-out infinite;
}
.scn-tent-reunion .tr-figure-standing {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr-stand 6s ease-in-out infinite;
}
.scn-tent-reunion .tr-shadow {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px); animation: tr-shadow 4s ease-in-out infinite;
}
@keyframes tr-drape   { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.03); opacity:0.7; } 100% { transform: scaleX(0.98); opacity:0.5; } }
@keyframes tr-floor   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes tr-lamp    { 0% { box-shadow: 0 0 15px 6px #c8913e; opacity:0.9; } 50% { box-shadow: 0 0 30px 14px #f5d6a0; opacity:1; } 100% { box-shadow: 0 0 20px 8px #c8913e; opacity:0.85; } }
@keyframes tr-glow    { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.15; } }
@keyframes tr-kneel   { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(1px) rotate(0deg); } 70% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tr-stand   { 0% { transform: translateY(0) rotate(1deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tr-shadow  { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.2; } 100% { transform: scaleX(0.9); opacity:0.4; } }

/* ===== SCENE: tent-belarius-reveals ===== */
.scn-tent-belarius-reveals {
  background: 
    radial-gradient(ellipse at 50% 40%, #a0784a 0%, #5a3d22 60%, #2e1a0e 100%),
    linear-gradient(180deg, #6b4f32 0%, #3e2a18 100%);
}
.scn-tent-belarius-reveals .br-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a5e3e 0%, #5c452a 40%, #3e2c18 80%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  opacity: 0.5; animation: br-drape 15s ease-in-out infinite alternate;
}
.scn-tent-belarius-reveals .br-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #5a4228 0%, #2e1f10 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: br-floor 18s ease-in-out infinite alternate;
}
.scn-tent-belarius-reveals .br-central {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 26px; height: 48px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: br-central 5s ease-in-out infinite;
}
.scn-tent-belarius-reveals .br-bound {
  position: absolute; bottom: 26%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3e2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform: rotate(-10deg); animation: br-bound 6s ease-in-out infinite;
}
.scn-tent-belarius-reveals .br-guard-left {
  position: absolute; bottom: 24%; left: 20%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a3d22 0%, #2e1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: br-guard 4s ease-in-out infinite;
}
.scn-tent-belarius-reveals .br-guard-right {
  position: absolute; bottom: 24%; right: 22%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #5a3d22 0%, #2e1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: br-guard 4.5s ease-in-out infinite reverse;
}
.scn-tent-belarius-reveals .br-light {
  position: absolute; bottom: 50%; left: 45%; width: 16px; height: 20px;
  background: radial-gradient(circle, #f5d6a0 0%, #c8913e 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,145,62,0.4);
  animation: br-light 2.5s ease-in-out infinite alternate;
}
@keyframes br-drape   { 0% { transform: skewX(-2deg); opacity:0.5; } 50% { transform: skewX(2deg); opacity:0.6; } 100% { transform: skewX(-1deg); opacity:0.4; } }
@keyframes br-floor   { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(1px) scaleX(0.98); } }
@keyframes br-central { 0% { transform: translateX(-50%) rotate(-2deg); } 40% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 80% { transform: translateX(-50%) translateY(2px) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes br-bound   { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes br-guard    { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(-1deg); } 70% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes br-light   { 0% { box-shadow: 0 0 30px 15px rgba(200,145,62,0.3); opacity:0.8; } 50% { box-shadow: 0 0 60px 30px rgba(245,214,160,0.5); opacity:1; } 100% { box-shadow: 0 0 35px 18px rgba(200,145,62,0.25); opacity:0.7; } }

/* ===== SCENE: tent-joy-recognition ===== */
.scn-tent-joy-recognition {
  background: 
    radial-gradient(ellipse at 50% 35%, #b88a5a 0%, #6b4f32 60%, #3a2515 100%),
    linear-gradient(180deg, #7a5e3e 0%, #4a3520 100%);
}
.scn-tent-joy-recognition .jr-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #8c6e4a 0%, #5c452a 40%, #3e2c18 80%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  opacity: 0.4; animation: jr-drape 14s ease-in-out infinite alternate;
}
.scn-tent-joy-recognition .jr-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #5a4228 0%, #2e1f10 100%);
  border-radius: 25% 25% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: jr-floor 16s ease-in-out infinite alternate;
}
.scn-tent-joy-recognition .jr-embrace-a {
  position: absolute; bottom: 28%; left: 44%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: jr-embrace 5s ease-in-out infinite;
}
.scn-tent-joy-recognition .jr-embrace-b {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5a3d22 0%, #2e1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: jr-embrace 5s ease-in-out infinite reverse;
}
.scn-tent-joy-recognition .jr-tears {
  position: absolute; bottom: 38%; left: 46%; width: 4px; height: 6px;
  background: radial-gradient(circle, #f0e0c8 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 6px 2px rgba(240,224,200,0.6);
  animation: jr-tears 3s ease-in-out infinite;
}
.scn-tent-joy-recognition .jr-light {
  position: absolute; bottom: 55%; left: 48%; width: 20px; height: 24px;
  background: radial-gradient(circle, #f5d6a0 0%, #c8913e 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,145,62,0.5);
  animation: jr-light 4s ease-in-out infinite alternate;
}
.scn-tent-joy-recognition .jr-shadow {
  position: absolute; bottom: 12%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(3px); animation: jr-shadow 5s ease-in-out infinite;
}
@keyframes jr-drape   { 0% { transform: scaleY(1); opacity:0.4; } 50% { transform: scaleY(1.02); opacity:0.5; } 100% { transform: scaleY(0.98); opacity:0.3; } }
@keyframes jr-floor   { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes jr-embrace { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(-2px) rotate(0deg); } 70% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes jr-tears   { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(10px) scale(0.8); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes jr-light   { 0% { box-shadow: 0 0 40px 20px rgba(200,145,62,0.3); opacity:0.8; } 50% { box-shadow: 0 0 80px 40px rgba(245,214,160,0.5); opacity:1; } 100% { box-shadow: 0 0 50px 25px rgba(200,145,62,0.3); opacity:0.7; } }
@keyframes jr-shadow  { 0% { transform: scaleX(1); opacity:0.25; } 50% { transform: scaleX(1.2); opacity:0.15; } 100% { transform: scaleX(0.9); opacity:0.35; } }

/* ===== SCENE: tent-cymbeline-pardon ===== */
.scn-tent-cymbeline-pardon {
  background: 
    radial-gradient(ellipse at 50% 30%, #a0784a 0%, #5a3d22 60%, #3a2515 100%),
    linear-gradient(180deg, #6b4f32 0%, #4a3520 100%);
}
.scn-tent-cymbeline-pardon .cp-tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a5e3e 0%, #5c452a 40%, #3e2c18 80%);
  clip-path: polygon(0% 0%, 100% 0%, 82% 100%, 18% 100%);
  opacity: 0.5; animation: cp-drape 18s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-pardon .cp-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #5a4228 0%, #2e1f10 100%);
  border-radius: 25% 25% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: cp-floor 22s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-pardon .cp-figure-bowing {
  position: absolute; bottom: 24%; left: 40%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cp-bow 6s ease-in-out infinite;
}
.scn-tent-cymbeline-pardon .cp-figure-standing {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a3d22 0%, #2e1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cp-stand 8s ease-in-out infinite;
}
.scn-tent-cymbeline-pardon .cp-candle {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 18px;
  background: linear-gradient(180deg, #f5d6a0 0%, #c8913e 70%, #7a5e3e 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 0 8px 2px #c8913e;
  animation: cp-candle 3s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-pardon .cp-candle-glow {
  position: absolute; bottom: 35%; left: 45%; right: 45%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,145,62,0.4) 0%, transparent 70%);
  animation: cp-glow 4s ease-in-out infinite alternate;
}
.scn-tent-cymbeline-pardon .cp-drapery {
  position: absolute; top: 5%; left: 10%; width: 20%; height: 80%;
  background: linear-gradient(90deg, #5c452a 0%, #3e2c18 50%, #5c452a 100%);
  border-radius: 0% 20% 20% 0%; clip-path: polygon(0% 0%, 100% 5%, 100% 95%, 0% 100%);
  animation: cp-drape-sway 15s ease-in-out infinite alternate;
}
@keyframes cp-drape       { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.03); opacity:0.6; } 100% { transform: scaleX(0.97); opacity:0.4; } }
@keyframes cp-floor       { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cp-bow         { 0% { transform: translateX(-2px) rotate(-3deg); } 30% { transform: translateX(0px) rotate(-1deg); } 70% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes cp-stand       { 0% { transform: translateY(0) rotate(1deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cp-candle      { 0% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity:0.8; } }
@keyframes cp-glow        { 0% { opacity:0.15; } 50% { opacity:0.35; } 100% { opacity:0.1; } }
@keyframes cp-drape-sway  { 0% { transform: skewY(2deg); } 50% { transform: skewY(-2deg); } 100% { transform: skewY(1deg); } }

/* rome-wager-on-chastity – tense bright interior */
.scn-rome-wager-on-chastity {
  background: linear-gradient(180deg, #f3e0c0 0%, #d4a373 50%, #b5895a 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,245,220,0.9) 0%, transparent 60%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.4);
}
.scn-rome-wager-on-chastity .bg-room {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.04) 0px, rgba(0,0,0,0.04) 2px, transparent 2px, transparent 18px);
}
.scn-rome-wager-on-chastity .window {
  position: absolute;
  top: 5%;
  left: 8%;
  width: 18%;
  height: 32%;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,250,235,1) 0%, rgba(255,225,170,0.8) 45%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 50px 20px rgba(255,220,150,0.5);
  animation: rwc-window-light 8s ease-in-out infinite alternate;
}
.scn-rome-wager-on-chastity .table {
  position: absolute;
  bottom: 12%;
  left: 50%;
  transform: translateX(-50%);
  width: 45%;
  height: 8%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3b220e 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: rwc-table-shift 6s ease-in-out infinite;
}
.scn-rome-wager-on-chastity .ring {
  position: absolute;
  bottom: 19%;
  left: 31%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle at 40% 40%, #fce48c, #c89020);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,0.7);
  animation: rwc-ring-sparkle 3s ease-in-out infinite alternate;
}
.scn-rome-wager-on-chastity .diamond {
  position: absolute;
  bottom: 19%;
  left: 55%;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle at 30% 30%, #ffffff, #aaccff);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  box-shadow: 0 0 10px 4px rgba(255,255,255,0.9);
  animation: rwc-diamond-glitter 4s linear infinite;
}
.scn-rome-wager-on-chastity .figure {
  position: absolute;
  bottom: 13%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-rome-wager-on-chastity .figure-left {
  left: 22%;
  animation: rwc-figure-sway 4s ease-in-out infinite alternate;
}
.scn-rome-wager-on-chastity .figure-right {
  left: 62%;
  animation: rwc-figure-sway 4s ease-in-out infinite alternate;
  animation-delay: 2s;
}

@keyframes rwc-window-light {
  0%   { opacity: 0.8; box-shadow: 0 0 40px 15px rgba(255,220,150,0.4); }
  50%  { opacity: 1;   box-shadow: 0 0 60px 25px rgba(255,220,150,0.6); }
  100% { opacity: 0.85; box-shadow: 0 0 45px 18px rgba(255,220,150,0.5); }
}
@keyframes rwc-table-shift {
  0%   { transform: translateX(-50%) translateY(0); }
  20%  { transform: translateX(-50%) translateX(-1px) translateY(-1px); }
  40%  { transform: translateX(-50%) translateX(1px) translateY(0); }
  60%  { transform: translateX(-50%) translateX(-1px) translateY(1px); }
  80%  { transform: translateX(-50%) translateX(1px) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rwc-ring-sparkle {
  0%   { box-shadow: 0 0 8px 3px rgba(255,215,0,0.6); opacity: 0.8; }
  50%  { box-shadow: 0 0 18px 7px rgba(255,215,0,1); opacity: 1; }
  100% { box-shadow: 0 0 8px 3px rgba(255,215,0,0.6); opacity: 0.8; }
}
@keyframes rwc-diamond-glitter {
  0%   { transform: rotate(0deg) scale(1); box-shadow: 0 0 6px 3px rgba(255,255,255,0.8); }
  50%  { transform: rotate(180deg) scale(1.25); box-shadow: 0 0 14px 6px rgba(255,255,255,1); }
  100% { transform: rotate(360deg) scale(1); box-shadow: 0 0 6px 3px rgba(255,255,255,0.8); }
}
@keyframes rwc-figure-sway {
  0%   { transform: translateX(0) rotate(-2deg); }
  50%  { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

.scn-rome-wager-accepted { background: linear-gradient(180deg, #fff3d6 0%, #d4b896 45%, #8c6b4a 100%), radial-gradient(ellipse at 50% 20%, rgba(255,240,190,1) 0%, rgba(255,240,190,0.15) 60%, transparent); }
.scn-rome-wager-accepted .bg-wall { position:absolute; inset:0 0 0 50%; background: linear-gradient(180deg, #3a2e22 0%, #1c1410 100%); opacity:0.6; }
.scn-rome-wager-accepted .arch { position:absolute; top:10%; left:50%; width:30%; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #9b7b5c 0%, #5a3d2c 100%); border-radius: 50% 50% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.3); }
.scn-rome-wager-accepted .drapery { position:absolute; top:20%; left:35%; width:30%; height:12%; background: linear-gradient(90deg, #5e1a1d 0%, #702243 40%, #5e1a1d 100%); border-radius: 0% 0% 10% 10% / 0% 0% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); filter: blur(1px); transform-origin: top center; animation: rwa-drapery 8s ease-in-out infinite alternate; }
.scn-rome-wager-accepted .window-light { position:absolute; bottom:40%; left:10%; width:10%; height:6%; background: radial-gradient(ellipse at center, rgba(255,255,220,.4) 0%, transparent 70%); filter: blur(8px); animation: rwa-window 20s linear infinite alternate; }
.scn-rome-wager-accepted .table { position:absolute; bottom:25%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 5% 5% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,255,200,.2); }
.scn-rome-wager-accepted .ring { position:absolute; bottom:31%; left:47%; width:6px; height:6px; background: radial-gradient(circle, #ffe680 0%, #c08020 80%); border-radius:50%; box-shadow: 0 0 18px 6px #e0b020, 0 0 36px 12px rgba(224,176,32,.5); animation: rwa-ring-pulse 4s ease-in-out infinite alternate; }
.scn-rome-wager-accepted .lamp { position:absolute; bottom:27%; left:48%; width:8px; height:14px; background: radial-gradient(circle at 50% 20%, #ffea70 0%, #ffa500 60%, transparent 90%); border-radius: 60% 60% 30% 30%; box-shadow: 0 0 20px 8px rgba(255,200,100,.7), 0 0 40px 16px rgba(255,180,70,.4); animation: rwa-flicker 3s ease-in-out infinite; }
.scn-rome-wager-accepted .figure { position:absolute; bottom:22%; width:3.5%; height:12%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 80% 20% 20%; box-shadow: inset 0 2px 4px rgba(255,255,255,.1); }
.scn-rome-wager-accepted .left-fig { left:20%; background: linear-gradient(180deg, #2a2f3a 0%, #4a5a6a 30%, #2a2f3a 100%); animation: rwa-sway-left 5s ease-in-out infinite alternate; }
.scn-rome-wager-accepted .right-fig { left:68%; background: linear-gradient(180deg, #a0461a 0%, #6a2a10 30%, #a0461a 100%); animation: rwa-sway-right 5s ease-in-out infinite alternate; }
@keyframes rwa-drapery { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes rwa-window { 0% { transform: translateX(-5%) translateY(0); opacity:.5; } 50% { transform: translateX(20%) translateY(-3px); opacity:.7; } 100% { transform: translateX(5%) translateY(2px); opacity:.6; } }
@keyframes rwa-ring-pulse { 0% { box-shadow: 0 0 14px 5px #e0b020, 0 0 28px 10px rgba(224,176,32,.4); opacity:.85 } 50% { box-shadow: 0 0 24px 10px #ffe060, 0 0 44px 18px rgba(255,224,96,.6); opacity:1 } 100% { box-shadow: 0 0 18px 7px #e0a020, 0 0 32px 12px rgba(224,160,32,.5); opacity:.9 } }
@keyframes rwa-flicker { 0% { box-shadow: 0 0 16px 6px rgba(255,200,100,.7), 0 0 30px 12px rgba(255,180,70,.4); opacity:.85 } 33% { box-shadow: 0 0 30px 14px rgba(255,230,90,.9), 0 0 50px 22px rgba(255,200,60,.6); opacity:1 } 66% { box-shadow: 0 0 18px 8px rgba(255,190,80,.7), 0 0 34px 14px rgba(255,160,50,.45); opacity:.9 } 100% { box-shadow: 0 0 20px 9px rgba(255,200,100,.75), 0 0 36px 15px rgba(255,180,70,.5); opacity:.88 } }
@keyframes rwa-sway-left { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes rwa-sway-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(2deg); } }

.scn-rome-wager-signed { background: linear-gradient(180deg, #cbb39b 0%, #8e7b65 50%, #4b3b2b 100%), radial-gradient(circle at 80% 20%, #fff9e6 0%, transparent 60%); }
.scn-rome-wager-signed .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #bea58b 0%, #8c7358 100%); }
.scn-rome-wager-signed .window { position:absolute; top:8%; right:12%; width:28%; height:35%; background: radial-gradient(ellipse at center, #fffce0 0%, #f5d78c 40%, transparent 70%); border-radius: 10%; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: rws-window-bright 24s ease-in-out infinite alternate; }
.scn-rome-wager-signed .figure-left { position:absolute; bottom:8%; left:22%; width:6%; height:14%; background: linear-gradient(180deg, #2a2018 0%, #0d0905 100%); border-radius: 45% 45% 30% 30% / 35% 35% 25% 25%; transform-origin: center bottom; animation: rws-sway-left 6s ease-in-out infinite alternate; }
.scn-rome-wager-signed .figure-right { position:absolute; bottom:8%; right:20%; width:6%; height:14%; background: linear-gradient(180deg, #2a2018 0%, #0d0905 100%); border-radius: 45% 45% 30% 30% / 35% 35% 25% 25%; transform-origin: center bottom; animation: rws-sway-right 6s ease-in-out infinite alternate; }
.scn-rome-wager-signed .table { position:absolute; bottom:18%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #6b4f38 0%, #3e2a1a 100%); border-radius: 8% 8% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -10px 18px rgba(0,0,0,.4), 0 6px 12px rgba(0,0,0,.5); animation: rws-table-tilt 10s ease-in-out infinite; }
.scn-rome-wager-signed .paper { position:absolute; bottom:28%; left:32%; width:24%; height:7%; background: #f7eedb; border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 3px 4px rgba(0,0,0,.25); animation: rws-paper-shift 8s ease-in-out infinite; }
.scn-rome-wager-signed .candle-body { position:absolute; bottom:28%; left:46%; width:3%; height:7%; background: linear-gradient(90deg, #d6a660, #b07d3e); border-radius: 12% 12% 8% 8% / 25% 25% 15% 15%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3); }
.scn-rome-wager-signed .candle-flame { position:absolute; bottom:35%; left:47%; width:2%; height:4%; background: radial-gradient(circle at 50% 60%, #ffe680 0%, #f90 80%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 18px 5px #ffaa33, 0 0 35px 10px rgba(255,170,51,.4); animation: rws-flame-flicker 3s ease-in-out infinite alternate; }
@keyframes rws-window-bright { 0% { opacity: .8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .85; transform: scale(1); } }
@keyframes rws-sway-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(-4deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rws-sway-right { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(4px) rotate(4deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes rws-table-tilt { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rws-paper-shift { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes rws-flame-flicker { 0% { opacity: .85; transform: scaleY(.95) translateY(1px); } 30% { opacity: 1; transform: scaleY(1.05) translateY(0); } 70% { opacity: .9; transform: scaleY(.98) translateY(1px); } 100% { opacity: .95; transform: scaleY(1.02) translateY(0); } }

.scn-palace-queen-poison {
  background:
    linear-gradient(180deg, #0e0820 0%, #1a1030 50%, #0a0418 100%),
    radial-gradient(ellipse at 50% 80%, rgba(100,50,130,0.4) 0%, transparent 70%);
}
.scn-palace-queen-poison .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,200,100,0.08) 0%, transparent 65%);
}
.scn-palace-queen-poison .candle {
  position: absolute; bottom: 18%; left: 50%; width: 4px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd680 10%, #a06020 80%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: pqp-flicker 3s ease-in-out infinite;
}
.scn-palace-queen-poison .arch {
  position: absolute; top: 0; left: 50%; width: 70%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0e0820 0%, #1a1030 80%);
  border-radius: 0 0 60% 60%;
  box-shadow: 0 8px 30px rgba(0,0,0,.6);
  animation: pqp-arch 7s ease-in-out infinite alternate;
}
.scn-palace-queen-poison .col-l {
  position: absolute; bottom: 15%; left: 28%; width: 8px; height: 60%;
  background: linear-gradient(90deg, #1a0a30, #2a1a40, #1a0a30);
  box-shadow: 2px 0 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pqp-sway 6s ease-in-out infinite alternate;
}
.scn-palace-queen-poison .col-r {
  position: absolute; bottom: 15%; right: 28%; width: 8px; height: 60%;
  background: linear-gradient(90deg, #1a0a30, #2a1a40, #1a0a30);
  box-shadow: -2px 0 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pqp-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-palace-queen-poison .figure-queen {
  position: absolute; bottom: 22%; left: 38%;
  width: 10px; height: 18px;
  background: linear-gradient(180deg, #3e1a2e 0%, #5e1a1d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: pqp-breath 4s ease-in-out infinite alternate;
}
.scn-palace-queen-poison .figure-doctor {
  position: absolute; bottom: 22%; right: 38%;
  width: 9px; height: 17px;
  background: linear-gradient(180deg, #1e1a30 0%, #0e0a1e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: pqp-breath 4s ease-in-out infinite alternate 0.5s;
}
.scn-palace-queen-poison .poison-box {
  position: absolute; bottom: 28%; left: 50%;
  width: 8px; height: 6px;
  transform: translateX(-50%);
  background: #2a0a3e;
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(80,224,80,.5), 0 0 20px 6px rgba(80,224,80,.2);
  animation: pqp-box-float 5s ease-in-out infinite alternate;
}
.scn-palace-queen-poison .vignette {
  position: absolute; inset: 0;
  box-shadow: inset 0 0 80px 30px rgba(0,0,0,.7);
  pointer-events: none;
}
@keyframes pqp-flicker {
  0% { opacity: .85; transform: translateX(-50%) scaleY(1); }
  30% { opacity: 1; transform: translateX(-50%) scaleY(1.2); }
  50% { opacity: .9; transform: translateX(-50%) scaleY(.85); }
  70% { opacity: 1; transform: translateX(-51%) scaleY(1.1); }
  100% { opacity: .8; transform: translateX(-49%) scaleY(.95); }
}
@keyframes pqp-arch {
  0% { box-shadow: 0 8px 30px rgba(0,0,0,.6); }
  50% { box-shadow: 0 12px 35px rgba(0,0,0,.7); }
  100% { box-shadow: 0 4px 25px rgba(0,0,0,.5); }
}
@keyframes pqp-sway {
  0% { transform: rotate(-0.3deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(0.3deg); }
}
@keyframes pqp-breath {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.05); }
}
@keyframes pqp-box-float {
  0% { transform: translateX(-50%) translateY(0); box-shadow: 0 0 10px 3px rgba(80,224,80,.5), 0 0 20px 6px rgba(80,224,80,.2); }
  50% { transform: translateX(-50%) translateY(-4px); box-shadow: 0 0 14px 4px rgba(80,224,80,.7), 0 0 28px 8px rgba(80,224,80,.3); }
  100% { transform: translateX(-50%) translateY(0); box-shadow: 0 0 8px 2px rgba(80,224,80,.4), 0 0 16px 4px rgba(80,224,80,.15); }
}

.scn-battle-captains-capture {
  background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 40%, #3a3a3a 100%), radial-gradient(ellipse at 50% 0%, #8a8a8a 0%, transparent 70%);
}
.scn-battle-captains-capture .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, rgba(90,90,90,0.6) 0%, rgba(60,60,60,0.3) 100%);
  animation: bc-sky 12s ease-in-out infinite alternate;
}
.scn-battle-captains-capture .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  animation: bc-gnd 8s ease-in-out infinite alternate;
}
.scn-battle-captains-capture .soldier-1,
.scn-battle-captains-capture .soldier-2,
.scn-battle-captains-capture .captain-1,
.scn-battle-captains-capture .captain-2,
.scn-battle-captains-capture .prisoner,
.scn-battle-captains-capture .jester {
  position: absolute;
  bottom: 38%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
}
.scn-battle-captains-capture .soldier-1 { left: 28%; animation: bc-sway-a 2s ease-in-out infinite; }
.scn-battle-captains-capture .soldier-2 { left: 65%; animation: bc-sway-b 2.4s ease-in-out infinite; }
.scn-battle-captains-capture .captain-1 { left: 35%; width: 24px; height: 60px; border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: bc-step-a 3.2s ease-in-out infinite; }
.scn-battle-captains-capture .captain-2 { left: 55%; width: 24px; height: 60px; border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: bc-step-b 3.2s ease-in-out infinite 1.6s; }
.scn-battle-captains-capture .prisoner { left: 45%; bottom: 32%; width: 18px; height: 40px; border-radius: 30% 30% 25% 25% / 45% 45% 30% 30%; animation: bc-pray 1.5s ease-in-out infinite; }
.scn-battle-captains-capture .jester { left: 50%; bottom: 37%; width: 16px; height: 48px; border-radius: 35% 35% 30% 30% / 40% 40% 30% 30%; animation: bc-jest 1.6s ease-in-out infinite; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); } /* desaturated red-brown */

@keyframes bc-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes bc-gnd { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: 0 0; } }
@keyframes bc-sway-a { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-sway-b { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bc-step-a { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bc-step-b { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bc-pray { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes bc-jest { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-5deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }

/* --- prison-posthumus-speech --- */
.scn-prison-posthumus-speech {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a3a 30%, #1a1a1a 100%), radial-gradient(ellipse at 70% 70%, #0a0a0a 0%, transparent 80%);
}
.scn-prison-posthumus-speech .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 8px, #2a2a3a 8px, #2a2a3a 10px);
  opacity: .6;
  animation: pp-wall 30s linear infinite;
}
.scn-prison-posthumus-speech .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-prison-posthumus-speech .bars-fore,
.scn-prison-posthumus-speech .bars-back {
  position: absolute; top: 0; bottom: 25%;
  width: 6px; background: linear-gradient(180deg, #4a4a5a, #2a2a3a);
  border-radius: 2px;
  box-shadow: inset 0 0 4px rgba(0,0,0,.5);
}
.scn-prison-posthumus-speech .bars-fore { left: 30%; animation: pp-bar 4s ease-in-out infinite; }
.scn-prison-posthumus-speech .bars-back { left: 66%; width: 4px; opacity: .6; animation: pp-bar 5s ease-in-out infinite; }
.scn-prison-posthumus-speech .posthumus {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  animation: pp-stand 3.5s ease-in-out infinite;
}
.scn-prison-posthumus-speech .chains {
  position: absolute; bottom: 48%; left: 47%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #5a5a6a 50%, transparent 50%);
  background-size: 4px 4px;
  background-repeat: repeat no-repeat;
  animation: pp-chain 2.4s ease-in-out infinite;
}
.scn-prison-posthumus-speech .light-ray {
  position: absolute; top: 5%; left: 40%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(180,180,200,.15) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: pp-light 8s ease-in-out infinite alternate;
}
.scn-prison-posthumus-speech .window {
  position: absolute; top: 6%; left: 42%; width: 16%; height: 15%;
  background: radial-gradient(ellipse, rgba(200,200,220,.3) 0%, transparent 70%);
  border: 3px solid #3a3a4a;
  border-radius: 4px;
  animation: pp-light 8s ease-in-out infinite alternate;
}

@keyframes pp-wall { 0% { background-position: 0 0; } 100% { background-position: -30px 0; } }
@keyframes pp-bar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pp-stand { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pp-chain { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pp-light { 0% { opacity: .2; } 50% { opacity: .6; } 100% { opacity: .2; } }

/* --- prison-jupiter-vision --- */
.scn-prison-jupiter-vision {
  background: linear-gradient(180deg, #0f0f1f 0%, #1c1c30 40%, #0a0a18 100%), radial-gradient(ellipse at 30% 20%, #4a4a6a 0%, transparent 70%);
}
.scn-prison-jupiter-vision .prison-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #1a1a2a 0px, #1a1a2a 15px, #12121f 15px, #12121f 16px);
  opacity: .5;
  animation: jv-bg 20s linear infinite;
}
.scn-prison-jupiter-vision .moonbeam {
  position: absolute; top: 0; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, rgba(200,200,255,.15) 0%, transparent 100%);
  transform: skewX(-15deg);
  animation: jv-beam 10s ease-in-out infinite alternate;
}
.scn-prison-jupiter-vision .apparition-father,
.scn-prison-jupiter-vision .apparition-mother,
.scn-prison-jupiter-vision .apparition-son1,
.scn-prison-jupiter-vision .apparition-son2 {
  position: absolute;
  background: radial-gradient(ellipse at 50% 30%, rgba(220,220,255,.2) 0%, rgba(180,180,255,.1) 50%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jv-float 8s ease-in-out infinite;
}
.scn-prison-jupiter-vision .apparition-father { bottom: 45%; left: 28%; width: 34px; height: 70px; animation-delay: 0s; }
.scn-prison-jupiter-vision .apparition-mother { bottom: 44%; left: 44%; width: 28px; height: 60px; animation-delay: -2s; }
.scn-prison-jupiter-vision .apparition-son1 { bottom: 43%; left: 60%; width: 26px; height: 56px; animation-delay: -4s; }
.scn-prison-jupiter-vision .apparition-son2 { bottom: 43%; left: 70%; width: 26px; height: 56px; animation-delay: -6s; }
.scn-prison-jupiter-vision .shimmer {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 20px, rgba(255,255,255,.02) 20px, rgba(255,255,255,.02) 22px);
  animation: jv-shim 6s ease-in-out infinite;
}

@keyframes jv-bg { 0% { background-position: 0 0; } 100% { background-position: 0 -30px; } }
@keyframes jv-beam { 0% { opacity: .1; transform: skewX(-15deg) scaleY(1); } 50% { opacity: .4; transform: skewX(-18deg) scaleY(1.1); } 100% { opacity: .1; transform: skewX(-15deg) scaleY(1); } }
@keyframes jv-float { 0% { transform: translateY(0) scale(1); opacity: .3; } 50% { transform: translateY(-6px) scale(1.04); opacity: .6; } 100% { transform: translateY(0) scale(1); opacity: .3; } }
@keyframes jv-shim { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } }

/* --- prison-jupiter-responds --- */
.scn-prison-jupiter-responds {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 80%);
}
.scn-prison-jupiter-responds .storm-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  animation: jr-storm 4s ease-in-out infinite alternate;
}
.scn-prison-jupiter-responds .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 30%, rgba(100,100,120,.2) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 60%, rgba(100,100,120,.15) 0%, transparent 40%);
  filter: blur(4px);
  animation: jr-cloud 20s linear infinite;
}
.scn-prison-jupiter-responds .eagle {
  position: absolute; top: 12%; left: 46%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: jr-eagle 6s ease-in-out infinite;
}
.scn-prison-jupiter-responds .jupiter {
  position: absolute; top: 5%; left: 46.5%; width: 18px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%;
  animation: jr-jupiter 6s ease-in-out infinite;
}
.scn-prison-jupiter-responds .thunderbolt {
  position: absolute; top: 20%; left: 48%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #ffffaa 0%, #ffcc33 50%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 50%, 100% 50%, 40% 100%);
  animation: jr-bolt 2.4s ease-in-out infinite;
}
.scn-prison-jupiter-responds .apparitions {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(220,220,255,.08) 0%, transparent 70%);
  animation: jr-fall 4s ease-in-out infinite;
}
.scn-prison-jupiter-responds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0f0f1a 0%, #050508 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: jr-ground 10s ease-in-out infinite alternate;
}

@keyframes jr-storm { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes jr-cloud { 0% { transform: translateX(0); } 50% { transform: translateX(-20px); } 100% { transform: translateX(0); } }
@keyframes jr-eagle { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes jr-jupiter { 0% { transform: translateY(0); } 50% { transform: translateY(6px); } 100% { transform: translateY(0); } }
@keyframes jr-bolt { 0% { opacity: 0; transform: scaleY(0); } 10% { opacity: 1; transform: scaleY(1); } 90% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0; transform: scaleY(0); } }
@keyframes jr-fall { 0% { transform: translateY(0); opacity: .2; } 50% { transform: translateY(10px); opacity: .6; } 100% { transform: translateY(0); opacity: .2; } }
@keyframes jr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: ante-chamber-lucius-news (tense dawn) */
.scn-ante-chamber-lucius-news { background: 
  linear-gradient(180deg, #2c2a38 0%, #3e3648 45%, #4e3e3a 100%),
  radial-gradient(ellipse at 70% 20%, #f0d890 0%, transparent 40%);
}
.scn-ante-chamber-lucius-news .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #3e3848 0%, #4a4252 50%, #2c2634 100%); }
.scn-ante-chamber-lucius-news .floor { position:absolute; inset:55% 0 0 0; background: linear-gradient(180deg, #3e3226 0%, #2a1e1a 100%); border-radius: 0 0 2% 2%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-ante-chamber-lucius-news .window-frame { position:absolute; top:8%; left:55%; width:22%; height:18%; background: linear-gradient(180deg, #5a4a38, #3a2a18); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); transform: scaleY(1.02); }
.scn-ante-chamber-lucius-news .beam { position:absolute; top:18%; left:56%; width:14%; height:52%; background: linear-gradient(105deg, rgba(240,210,130,.25) 0%, rgba(240,190,90,.4) 50%, rgba(240,190,90,.1) 100%); transform: rotate(12deg); transform-origin: top center; animation: aln-beam 12s ease-in-out infinite alternate; }
.scn-ante-chamber-lucius-news .figure { position:absolute; bottom:32%; left:48%; width:28px; height:68px; background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 60%, #1a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(14px) rotate(-3deg); box-shadow: 0 0 10px rgba(0,0,0,.6); animation: aln-fig 6s ease-in-out infinite; }
.scn-ante-chamber-lucius-news .fig-shadow { position:absolute; bottom:29%; left:58%; width:38px; height:14px; background: rgba(10,5,0,.8); border-radius: 50%; filter: blur(4px); animation: aln-shadow 9s ease-in-out infinite alternate; }
.scn-ante-chamber-lucius-news .dust { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #f0d870 0%, rgba(240,210,100,.4) 70%); border-radius:50%; filter: blur(1px); animation: aln-dust 18s linear infinite; }
.scn-ante-chamber-lucius-news .mote-a { top:55%; left:60%; animation-duration: 22s; animation-delay: 0s; }
.scn-ante-chamber-lucius-news .mote-b { top:48%; left:63%; animation-duration: 15s; animation-delay: -5s; }
.scn-ante-chamber-lucius-news .mote-c { top:60%; left:57%; animation-duration: 26s; animation-delay: -11s; }
@keyframes aln-beam { 0% { transform: rotate(10deg) translateX(0); opacity:.8; } 50% { transform: rotate(14deg) translateX(-3px); opacity:1; } 100% { transform: rotate(11deg) translateX(1px); opacity:.9; } }
@keyframes aln-fig { 0% { transform: translateX(12px) rotate(-2deg) scaleY(1); } 25% { transform: translateX(15px) rotate(-3deg) scaleY(1.02); } 50% { transform: translateX(12px) rotate(-2deg) scaleY(1.01); } 75% { transform: translateX(14px) rotate(-2.5deg) scaleY(.99); } 100% { transform: translateX(12px) rotate(-2deg) scaleY(1); } }
@keyframes aln-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.85; } 50% { transform: translateX(-5px) scaleX(1.1); opacity:.6; } 100% { transform: translateX(2px) scaleX(.95); opacity:.9; } }
@keyframes aln-dust { 0% { transform: translate(0, 0); opacity:.7; } 30% { transform: translate(8px, -4px); opacity:.4; } 60% { transform: translate(-3px, -2px); opacity:.9; } 100% { transform: translate(2px, 1px); opacity:.5; } }

/* Scene: ante-chamber-cloten-woman (funny dawn) */
.scn-ante-chamber-cloten-woman { background: 
  linear-gradient(180deg, #f4e8c8 0%, #e2d0a0 70%, #b0a080 100%),
  radial-gradient(ellipse at 20% 20%, #fff4c0 0%, transparent 50%);
}
.scn-ante-chamber-cloten-woman .wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(90deg, #ddc8a0 0%, #f0e4c0 40%, #cdb898 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.1); animation: acw-wall 14s ease-in-out infinite alternate; }
.scn-ante-chamber-cloten-woman .floor { position:absolute; inset:60% 0 0 0; background: repeating-linear-gradient(90deg, #b8a070 0px, #b8a070 12px, #d0b888 12px, #d0b888 24px); border-radius: 0 0 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: acw-floor 20s linear infinite; }
.scn-ante-chamber-cloten-woman .door { position:absolute; top:10%; left:15%; width:28%; height:55%; background: linear-gradient(180deg, #a06030 0%, #804020 70%, #602010 100%); border-radius: 4% 4% 0 0; box-shadow: 0 0 12px rgba(0,0,0,.5), inset 0 6px 10px rgba(0,0,0,.4); transform-origin: left center; animation: acw-door 3s ease-in-out infinite; }
.scn-ante-chamber-cloten-woman .knocker { position:absolute; top:28%; left:38%; width:12px; height:12px; background: radial-gradient(circle at 30% 30%, #d0a040 0%, #704020 80%); border-radius:50%; box-shadow: 0 0 6px rgba(0,0,0,.6); animation: acw-knocker 1.6s ease-in-out infinite; }
.scn-ante-chamber-cloten-woman .man-fig { position:absolute; bottom:45%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #6e3a4a 0%, #4a2a3a 60%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: acw-man 1.5s ease-in-out infinite; }
.scn-ante-chamber-cloten-woman .woman-fig { position:absolute; bottom:50%; left:60%; width:18px; height:40px; background: linear-gradient(180deg, #a06050 0%, #c08070 40%, #704030 100%); border-radius:50% 50% 30% 30% / 55% 55% 30% 30%; transform: rotate(3deg); opacity:.8; animation: acw-woman 2s ease-in-out infinite; }
.scn-ante-chamber-cloten-woman .rug { position:absolute; bottom:8%; left:30%; width:40%; height:10%; background: linear-gradient(90deg, #d0b860 0%, #e0c870 50%, #c0a850 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: acw-rug 10s ease-in-out infinite alternate; }
@keyframes acw-wall { 0% { filter: brightness(1); } 50% { filter: brightness(1.08); } 100% { filter: brightness(0.95); } }
@keyframes acw-floor { 0% { background-position: 0 0; } 100% { background-position: 24px 0; } }
@keyframes acw-door { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes acw-knocker { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes acw-man { 0% { transform: translateX(0) rotate(-3deg) scaleY(1); } 30% { transform: translateX(6px) rotate(-5deg) scaleY(1.03); } 60% { transform: translateX(0) rotate(-3deg) scaleY(1); } 100% { transform: translateX(-2px) rotate(-4deg) scaleY(.98); } }
@keyframes acw-woman { 0% { transform: translateY(0) rotate(2deg); opacity:.8; } 25% { transform: translateY(-4px) rotate(0deg); opacity:.65; } 50% { transform: translateY(-2px) rotate(3deg); opacity:.9; } 75% { transform: translateY(-6px) rotate(1deg); opacity:.5; } 100% { transform: translateY(0) rotate(2deg); opacity:.8; } }
@keyframes acw-rug { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(0.95); } }

/* Scene: ante-chamber-imogen-scorn (tense dawn) */
.scn-ante-chamber-imogen-scorn { background: 
  linear-gradient(180deg, #3a3848 0%, #4e4252 55%, #2e2a3a 100%),
  radial-gradient(ellipse at 80% 10%, #f0e0a0 0%, transparent 45%);
}
.scn-ante-chamber-imogen-scorn .wall { position:absolute; inset:0 0 58% 0; background: linear-gradient(90deg, #584a5a, #4a3e4a, #382e3a); box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: ais-wall 15s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-scorn .floor { position:absolute; inset:58% 0 0 0; background: linear-gradient(180deg, #3a2e28 0%, #1e1610 100%); border-radius: 0 0 2% 2%; box-shadow: inset 0 15px 30px rgba(0,0,0,.6); animation: ais-floor 22s linear infinite; }
.scn-ante-chamber-imogen-scorn .window { position:absolute; top:6%; left:72%; width:18%; height:16%; background: linear-gradient(180deg, #f0dcb0, #a09050); border-radius: 4px; box-shadow: 0 0 20px rgba(240,200,100,.4); animation: ais-window 8s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-scorn .beam-light { position:absolute; top:18%; left:68%; width:10%; height:45%; background: linear-gradient(110deg, rgba(240,200,90,.4) 0%, rgba(240,180,70,.3) 60%, transparent); transform: rotate(14deg); animation: ais-beam 10s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-scorn .woman-fig { position:absolute; bottom:25%; left:42%; width:22px; height:62px; background: linear-gradient(180deg, #6e3e3e 0%, #4e2e2e 50%, #2e1e1e 100%); border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%; transform: rotate(-8deg) translateX(0); animation: ais-woman 5s ease-in-out infinite; }
.scn-ante-chamber-imogen-scorn .man-fig { position:absolute; bottom:20%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #5e3a2a, #3a2218); border-radius: 45% 45% 30% 30% / 50% 50% 20% 20%; transform: rotate(5deg); opacity:.7; animation: ais-man 12s ease-in-out infinite alternate; }
.scn-ante-chamber-imogen-scorn .woman-shadow { position:absolute; bottom:22%; left:38%; width:40px; height:16px; background: rgba(0,0,0,.8); border-radius: 50%; filter: blur(6px); animation: ais-wshadow 6s ease-in-out infinite; }
@keyframes ais-wall { 0% { filter: brightness(.95); } 50% { filter: brightness(1.06); } 100% { filter: brightness(.9); } }
@keyframes ais-floor { 0% { background-position: 0 0; } 100% { background-position: 0 10px; } }
@keyframes ais-window { 0% { box-shadow: 0 0 16px rgba(240,200,100,.4); } 50% { box-shadow: 0 0 28px rgba(250,210,110,.7); } 100% { box-shadow: 0 0 18px rgba(240,200,100,.5); } }
@keyframes ais-beam { 0% { opacity:.6; transform: rotate(13deg) translateX(0); } 50% { opacity:.9; transform: rotate(15deg) translateX(-3px); } 100% { opacity:.7; transform: rotate(12deg) translateX(1px); } }
@keyframes ais-woman { 0% { transform: rotate(-8deg) translateX(0); } 25% { transform: rotate(-12deg) translateX(-3px) scaleY(1.02); } 50% { transform: rotate(-9deg) translateX(-1px) scaleY(1); } 75% { transform: rotate(-14deg) translateX(-5px) scaleY(.98); } 100% { transform: rotate(-8deg) translateX(0); } }
@keyframes ais-man { 0% { transform: rotate(5deg) translateX(0); opacity:.7; } 50% { transform: rotate(3deg) translateX(4px); opacity:.6; } 100% { transform: rotate(6deg) translateX(-2px); opacity:.75; } }
@keyframes ais-wshadow { 0% { transform: translateX(0) scaleX(1); opacity:.85; } 33% { transform: translateX(-8px) scaleX(1.2); opacity:.6; } 66% { transform: translateX(2px) scaleX(.9); opacity:.9; } 100% { transform: translateX(0) scaleX(1); opacity:.85; } }

/* Scene: ante-chamber-pisanio-summoned (tense dawn) */
.scn-ante-chamber-pisanio-summoned { background: 
  linear-gradient(180deg, #342e44 0%, #4e3e52 55%, #322a3a 100%),
  radial-gradient(ellipse at 30% 90%, #f0d090 0%, transparent 30%);
}
.scn-ante-chamber-pisanio-summoned .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #5a4e5e, #4a3e4a, #3a2e3a); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: aps-wall 20s ease-in-out infinite alternate; }
.scn-ante-chamber-pisanio-summoned .floor { position:absolute; inset:55% 0 0 0; background: repeating-linear-gradient(90deg, #2e2620 0, #2e2620 14px, #3e362c 14px, #3e362c 28px); border-radius: 0 0 3% 3%; box-shadow: inset 0 18px 36px rgba(0,0,0,.6); animation: aps-floor 24s linear infinite; }
.scn-ante-chamber-pisanio-summoned .door-frame { position:absolute; top:12%; left:10%; width:24%; height:52%; background: linear-gradient(180deg, #4a3a2a, #3a2a1a); border-radius: 3% 3% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.7); }
.scn-ante-chamber-pisanio-summoned .door { position:absolute; top:15%; left:14%; width:21%; height:48%; background: linear-gradient(180deg, #804020 0%, #603010 80%, #401808 100%); border-radius: 3% 3% 0 0; transform-origin: 0% 80%; animation: aps-door-swing 15.5s cubic-bezier(0.42, 0.0, 0.58, 1.0) infinite; }
.scn-ante-chamber-pisanio-summoned .entering-fig { position:absolute; bottom:28%; left:58%; width:20px; height:50px; background: linear-gradient(180deg, #5e3e2e, #3e2618); border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%; transform: translateX(0) rotate(1deg); animation: aps-enter 3s ease-in-out infinite; }
.scn-ante-chamber-pisanio-summoned .standing-fig { position:absolute; bottom:24%; left:24%; width:18px; height:54px; background: linear-gradient(180deg, #7a4a4a, #4e2e2e); border-radius: 48% 48% 32% 32% / 58% 58% 30% 30%; transform: rotate(-3deg); box-shadow: 0 0 16px rgba(0,0,0,.5); animation: aps-stand 4s ease-in-out infinite alternate; }
.scn-ante-chamber-pisanio-summoned .light-shaft { position:absolute; top:10%; left:0; width:100%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(240,200,100,.2) 50%, transparent 100%); animation: aps-light 9s ease-in-out infinite alternate; }
.scn-ante-chamber-pisanio-summoned .shadow { position:absolute; bottom:22%; left:22%; width:50px; height:12px; background: rgba(10,5,0,.8); border-radius: 50%; filter: blur(5px); animation: aps-shadow 12s ease-in-out infinite; }
@keyframes aps-wall { 0% { filter: brightness(1); } 50% { filter: brightness(1.07); } 100% { filter: brightness(.93); } }
@keyframes aps-floor { 0% { background-position: 0 0; } 100% { background-position: -28px 0; } }
@keyframes aps-door-swing { 0% { transform: rotate(-10deg); } 15% { transform: rotate(-20deg); } 30% { transform: rotate(-5deg); } 45% { transform: rotate(-18deg); } 60% { transform: rotate(-10deg); } 75% { transform: rotate(-16deg); } 100% { transform: rotate(-10deg); } }
@keyframes aps-enter { 0% { transform: translateX(0) rotate(1deg); opacity:.9; } 50% { transform: translateX(16px) rotate(-2deg); opacity:1; } 100% { transform: translateX(4px) rotate(0deg); opacity:.85; } }
@keyframes aps-stand { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes aps-light { 0% { opacity:.4; background-position: 0% 0%; } 50% { opacity:.7; background-position: 10% 0%; } 100% { opacity:.5; background-position: 20% 0%; } }
@keyframes aps-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.8; } 50% { transform: translateX(-10px) scaleX(1.3); opacity:.5; } 100% { transform: translateX(5px) scaleX(.85); opacity:.9; } }

/* Scene 1: palace-imogen-defiant – tense bright interior */

.scn-palace-imogen-defiant {
  background:
    linear-gradient(180deg, #f2e4c4 0%, #d9c393 40%, #a48b5e 100%),
    radial-gradient(ellipse at 15% 25%, rgba(255,255,240,0.95) 0%, transparent 55%);
}
.scn-palace-imogen-defiant .window {
  position: absolute; top: 8%; left: 4%; width: 28%; height: 70%;
  background: radial-gradient(ellipse at center, #fffbe6 0%, transparent 70%);
  border-radius: 8% 50% 50% 8%; box-shadow: 0 0 40px 20px rgba(255,248,220,0.5);
  animation: pid-glow 4s ease-in-out infinite alternate;
}
.scn-palace-imogen-defiant .beam {
  position: absolute; top: 15%; left: 8%; width: 45%; height: 65%;
  background: linear-gradient(105deg, rgba(255,252,230,0.5) 0%, transparent 70%);
  transform: rotate(-12deg); transform-origin: top left;
  animation: pid-beam 6s ease-in-out infinite alternate;
}
.scn-palace-imogen-defiant .col-l {
  position: absolute; top: 10%; left: 38%; width: 4%; height: 70%;
  background: linear-gradient(90deg, #8a7a5a, #5a4a3a);
  border-radius: 6px; box-shadow: 2px 0 12px rgba(0,0,0,0.3);
}
.scn-palace-imogen-defiant .col-r {
  position: absolute; top: 10%; right: 12%; width: 4%; height: 70%;
  background: linear-gradient(90deg, #8a7a5a, #5a4a3a);
  border-radius: 6px; box-shadow: -2px 0 12px rgba(0,0,0,0.3);
}
.scn-palace-imogen-defiant .figure {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  box-shadow: -6px 2px 14px rgba(0,0,0,0.4);
  animation: pid-defiant 3s ease-in-out infinite;
}
.scn-palace-imogen-defiant .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #7a6040 100%);
  border-radius: 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.2);
}
.scn-palace-imogen-defiant .shadow {
  position: absolute; bottom: 10%; left: 52%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  border-radius: 50%; transform: rotate(-12deg);
  animation: pid-shadow 5s ease-in-out infinite alternate;
}
@keyframes pid-glow {
  0% { box-shadow: 0 0 30px 15px rgba(255,248,220,0.4); }
  50% { box-shadow: 0 0 50px 28px rgba(255,248,220,0.65); }
  100% { box-shadow: 0 0 34px 19px rgba(255,248,220,0.45); }
}
@keyframes pid-beam {
  0% { opacity: 0.55; transform: rotate(-12deg) scaleX(0.95); }
  50% { opacity: 0.8; transform: rotate(-12deg) scaleX(1.02); }
  100% { opacity: 0.6; transform: rotate(-12deg) scaleX(0.97); }
}
@keyframes pid-defiant {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pid-shadow {
  0% { transform: rotate(-12deg) scaleX(1); opacity: 0.6; }
  50% { transform: rotate(-10deg) scaleX(1.15); opacity: 0.75; }
  100% { transform: rotate(-13deg) scaleX(1.02); opacity: 0.55; }
}

/* Scene 2: palace-pisanio-arrives – calm dim interior */
.scn-palace-pisanio-arrives {
  background:
    linear-gradient(180deg, #2b2d42 0%, #1e1f2e 50%, #151622 100%),
    radial-gradient(ellipse at 28% 38%, rgba(180,160,130,0.25) 0%, transparent 55%);
}
.scn-palace-pisanio-arrives .arch-l {
  position: absolute; top: 8%; left: 10%; width: 6%; height: 72%;
  background: linear-gradient(90deg, #3e3e4e, #1e1e2e);
  border-radius: 30% 10% 10% 30% / 60% 60% 40% 40%;
  box-shadow: -2px 0 10px rgba(0,0,0,0.5);
}
.scn-palace-pisanio-arrives .arch-r {
  position: absolute; top: 8%; right: 58%; width: 6%; height: 72%;
  background: linear-gradient(270deg, #3e3e4e, #1e1e2e);
  border-radius: 10% 30% 30% 10% / 60% 60% 40% 40%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.5);
}
.scn-palace-pisanio-arrives .figure {
  position: absolute; bottom: 22%; left: 28%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a2a3c 0%, #12121a 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%;
  animation: ppa-walk 8s linear infinite;
}
.scn-palace-pisanio-arrives .head {
  position: absolute; bottom: 38%; left: 30%; width: 10px; height: 10px;
  background: #1a1a2e; border-radius: 50%;
  animation: ppa-bob 2s ease-in-out infinite;
}
.scn-palace-pisanio-arrives .torch {
  position: absolute; top: 15%; left: 20%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0a860, #8a5a30);
  border-radius: 50%; box-shadow: 0 0 18px 6px rgba(224,168,96,0.35);
  animation: ppa-flicker 3s ease-in-out infinite alternate;
}
.scn-palace-pisanio-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e3a 0%, #151520 100%);
  box-shadow: inset 0 10px 18px rgba(0,0,0,0.4);
}
.scn-palace-pisanio-arrives .shadow {
  position: absolute; bottom: 14%; left: 26%; width: 32px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  border-radius: 50%; transform: rotate(-6deg);
  animation: ppa-shadow 8s linear infinite;
}
@keyframes ppa-walk {
  0% { transform: translateX(0) translateY(0) scale(1); }
  45% { transform: translateX(22px) translateY(-2px) scale(1.02); }
  90% { transform: translateX(44px) translateY(0) scale(1); }
  100% { transform: translateX(44px) translateY(0) scale(1); }
}
@keyframes ppa-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ppa-flicker {
  0% { opacity: 0.65; box-shadow: 0 0 14px 4px rgba(224,168,96,0.3); }
  50% { opacity: 0.9; box-shadow: 0 0 22px 10px rgba(224,168,96,0.5); }
  100% { opacity: 0.7; box-shadow: 0 0 16px 6px rgba(224,168,96,0.35); }
}
@keyframes ppa-shadow {
  0% { transform: translateX(0) rotate(-6deg) scaleX(1); }
  45% { transform: translateX(22px) rotate(-6deg) scaleX(1.1); }
  90% { transform: translateX(44px) rotate(-6deg) scaleX(1.02); }
  100% { transform: translateX(44px) rotate(-6deg) scaleX(1.02); }
}

/* Scene 3: palace-pisanio-notes – warm dim interior */
.scn-palace-pisanio-notes {
  background:
    linear-gradient(180deg, #3e2f1f 0%, #2a1e14 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 72% 32%, #c08060 0%, transparent 55%);
}
.scn-palace-pisanio-notes .desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-palace-pisanio-notes .figure {
  position: absolute; bottom: 42%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 50% 50%;
  transform-origin: bottom center;
  animation: ppn-read 4s ease-in-out infinite;
}
.scn-palace-pisanio-notes .head {
  position: absolute; bottom: 58%; left: 56%; width: 10px; height: 10px;
  background: #1a0a0a; border-radius: 50%;
  animation: ppn-bob 4s ease-in-out infinite;
}
.scn-palace-pisanio-notes .candle {
  position: absolute; bottom: 58%; left: 40%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #d4a373, #8a5a3a);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-palace-pisanio-notes .candle-flame {
  position: absolute; bottom: 67%; left: 39%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at bottom, #ffd8a0, #e07820);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 16px 6px rgba(255,200,100,0.45);
  animation: ppn-flame 2s ease-in-out infinite;
}
.scn-palace-pisanio-notes .notes {
  position: absolute; bottom: 30%; left: 38%; width: 32px; height: 22px;
  background: #e0d6c2; border-radius: 2px;
  transform: rotate(-3deg); box-shadow: 1px 2px 4px rgba(0,0,0,0.4);
  animation: ppn-rustle 6s ease-in-out infinite;
}
.scn-palace-pisanio-notes .window {
  position: absolute; top: 10%; right: 12%; width: 45px; height: 35px;
  background: radial-gradient(ellipse at center, rgba(80,100,120,0.25) 0%, transparent 70%);
  border-radius: 4px; border: 2px solid rgba(60,50,40,0.4);
  animation: ppn-twinkle 12s ease-in-out infinite alternate;
}
@keyframes ppn-read {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(0.5deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(0); }
}
@keyframes ppn-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ppn-flame {
  0% { opacity: 0.8; box-shadow: 0 0 14px 5px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 22px 12px rgba(255,200,100,0.6); }
  100% { opacity: 0.85; box-shadow: 0 0 16px 7px rgba(255,200,100,0.45); }
}
@keyframes ppn-rustle {
  0% { transform: rotate(-3deg) translateY(0); }
  30% { transform: rotate(-2deg) translateY(-1px); }
  70% { transform: rotate(-4deg) translateY(1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ppn-twinkle {
  0% { opacity: 0.4; box-shadow: 0 0 6px 2px rgba(180,200,220,0.15); }
  50% { opacity: 0.7; box-shadow: 0 0 12px 6px rgba(180,200,220,0.3); }
  100% { opacity: 0.45; box-shadow: 0 0 8px 3px rgba(180,200,220,0.2); }
}

/* Scene 4: public-place-cloten-bragging – funny sunlit */
.scn-public-place-cloten-bragging {
  background:
    linear-gradient(180deg, #4a90e2 0%, #87ceeb 30%, #e0d9c0 80%, #d4c87a 100%),
    radial-gradient(ellipse at 50% 8%, #ffffe0 0%, transparent 45%);
}
.scn-public-place-cloten-bragging .sun {
  position: absolute; top: 4%; right: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffef0 10%, #ffe8a0 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,255,200,0.5);
  animation: ppcb-sun 4s ease-in-out infinite alternate;
}
.scn-public-place-cloten-bragging .pavement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 34%;
  background: linear-gradient(180deg, #c4a88c 0%, #a17f6a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.25);
}
.scn-public-place-cloten-bragging .cloten {
  position: absolute; bottom: 30%; left: 44%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 75% 75% 50% 50%;
  transform-origin: bottom center;
  animation: ppcb-brag 1.5s ease-in-out infinite;
}
.scn-public-place-cloten-bragging .cloten-head {
  position: absolute; bottom: 49%; left: 43%; width: 13px; height: 13px;
  background: #1a0e06; border-radius: 50%;
  animation: ppcb-nod 1.5s ease-in-out infinite;
}
.scn-public-place-cloten-bragging .lord1 {
  position: absolute; bottom: 28%; left: 26%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 72% 72% 45% 45%;
  animation: ppcb-shake 2.2s ease-in-out infinite;
}
.scn-public-place-cloten-bragging .lord2 {
  position: absolute; bottom: 28%; right: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 72% 72% 45% 45%;
  animation: ppcb-shake 2.2s ease-in-out infinite 1.1s;
}
.scn-public-place-cloten-bragging .shadow {
  position: absolute; bottom: 28%; left: 42%; width: 28px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  border-radius: 50%;
  animation: ppcb-shadow 1.5s ease-in-out infinite;
}
@keyframes ppcb-sun {
  0% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1.02); opacity: 0.9; }
}
@keyframes ppcb-brag {
  0% { transform: translateY(0) rotate(-2deg) scale(1); }
  40% { transform: translateY(-8px) rotate(1deg) scale(1.06); }
  80% { transform: translateY(0) rotate(-1deg) scale(1.02); }
  100% { transform: translateY(0) rotate(-2deg) scale(1); }
}
@keyframes ppcb-nod {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ppcb-shake {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1.5deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ppcb-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(2px) scaleX(1.15); opacity: 0.65; }
  100% { transform: translateX(0) scaleX(1.02); opacity: 0.5; }
}

.scn-prison-jupiter-responds {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a4a 40%, #2a2a5a 80%, #3a3a6a 100%),
              radial-gradient(ellipse at 50% 20%, #4a4a7a 0%, transparent 60%);
  overflow: hidden;
}
.scn-prison-jupiter-responds .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(100,100,180,0.1) 0%, transparent 100%);
  animation: pj-sky 8s ease-in-out infinite alternate;
}
.scn-prison-jupiter-responds .moon {
  position: absolute;
  top: 10%;
  left: 70%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle at 40% 40%, #ffffff 0%, #d0d0ff 40%, #8080c0 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,160,255,0.4), 0 0 80px 20px rgba(100,100,200,0.2);
  animation: pj-moon 10s ease-in-out infinite alternate;
}
.scn-prison-jupiter-responds .clouds {
  position: absolute;
  top: 15%;
  left: 0;
  width: 200%;
  height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,180,220,0.15) 20%, rgba(200,200,240,0.1) 60%, transparent 100%);
  filter: blur(12px);
  animation: pj-clouds 30s linear infinite;
}
.scn-prison-jupiter-responds .lightning {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 100px;
  height: 200px;
  background: radial-gradient(ellipse at 30% 10%, #ffffff 0%, #ffffaa 20%, transparent 60%);
  filter: blur(6px);
  opacity: 0;
  animation: pj-lightning 4s ease-in-out infinite;
}
.scn-prison-jupiter-responds .eagle {
  position: absolute;
  bottom: 45%;
  left: 50%;
  width: 80px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  animation: pj-eagle 2s ease-in-out infinite;
}
.scn-prison-jupiter-responds .eagle::before,
.scn-prison-jupiter-responds .eagle::after {
  content: '';
  position: absolute;
  top: 10%;
  width: 60px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-prison-jupiter-responds .eagle::before {
  left: -50px;
  transform-origin: right center;
  animation: pj-wing-left 2s ease-in-out infinite;
}
.scn-prison-jupiter-responds .eagle::after {
  right: -50px;
  transform-origin: left center;
  animation: pj-wing-right 2s ease-in-out infinite;
}
.scn-prison-jupiter-responds .jupiter {
  position: absolute;
  bottom: 60%;
  left: 50%;
  width: 30px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: pj-jupiter 3s ease-in-out infinite;
}
.scn-prison-jupiter-responds .thunderbolt {
  position: absolute;
  top: 25%;
  left: 45%;
  width: 20px;
  height: 120px;
  background: linear-gradient(180deg, #ffffff 0%, #ffffaa 30%, #8899ff 70%, transparent 100%);
  clip-path: polygon(50% 0%, 60% 20%, 40% 25%, 55% 45%, 35% 50%, 50% 70%, 30% 75%, 45% 100%, 50% 80%, 60% 60%, 50% 55%);
  filter: drop-shadow(0 0 20px #aabbff);
  animation: pj-thunderbolt 4s ease-in-out infinite;
}
.scn-prison-jupiter-responds .apparition-1,
.scn-prison-jupiter-responds .apparition-2 {
  position: absolute;
  bottom: 20%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pj-apparition 1.5s ease-in-out infinite;
}
.scn-prison-jupiter-responds .apparition-1 {
  left: 30%;
  transform-origin: bottom center;
}
.scn-prison-jupiter-responds .apparition-2 {
  left: 60%;
  transform-origin: bottom center;
  animation-delay: 0.5s;
}
@keyframes pj-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pj-moon {
  0% { transform: translateY(0) scale(0.95); box-shadow: 0 0 30px 8px rgba(160,160,255,0.3); }
  50% { transform: translateY(-5px) scale(1.02); box-shadow: 0 0 50px 15px rgba(160,160,255,0.5); }
  100% { transform: translateY(0) scale(0.95); box-shadow: 0 0 30px 8px rgba(160,160,255,0.3); }
}
@keyframes pj-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes pj-lightning {
  0%, 100% { opacity: 0; }
  10% { opacity: 1; }
  15% { opacity: 0.8; }
  20% { opacity: 0; }
  90% { opacity: 0; }
  95% { opacity: 0.6; }
  98% { opacity: 0; }
}
@keyframes pj-eagle {
  0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(0.95); }
  100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); }
}
@keyframes pj-wing-left {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pj-wing-right {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pj-jupiter {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes pj-thunderbolt {
  0%, 100% { opacity: 0.3; transform: scaleY(0.8); filter: drop-shadow(0 0 10px #aabbff); }
  10% { opacity: 1; transform: scaleY(1.1); filter: drop-shadow(0 0 30px #ffffff); }
  15% { opacity: 0.8; transform: scaleY(1); filter: drop-shadow(0 0 20px #aabbff); }
  20% { opacity: 0.3; transform: scaleY(0.8); filter: drop-shadow(0 0 10px #aabbff); }
  90% { opacity: 0.3; }
  95% { opacity: 0.7; transform: scaleY(1); filter: drop-shadow(0 0 25px #ffffff); }
  100% { opacity: 0.3; }
}
@keyframes pj-apparition {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-2px); }
  50% { transform: rotate(5deg) translateY(-4px); }
  75% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-garden-queen-enters { 
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #b8860b 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); 
}
.scn-garden-queen-enters .sky { 
  position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%); animation: gq-sky 10s ease-in-out infinite alternate; 
}
.scn-garden-queen-enters .garden-wall { 
  position:absolute; bottom:35%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #deb887 0%, #8b4513 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,.3); animation: gq-wall 8s ease-in-out infinite alternate; 
}
.scn-garden-queen-enters .path { 
  position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50%/100% 100% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,.2); animation: gq-path 12s ease-in-out infinite alternate; 
}
.scn-garden-queen-enters .queen { 
  position:absolute; bottom:28%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #9370DB 0%, #6a0dad 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gq-queen 5s ease-in-out infinite; 
}
.scn-garden-queen-enters .posthumus { 
  position:absolute; bottom:28%; left:45%; width:28px; height:58px; background: linear-gradient(180deg, #4682B4 0%, #2f4f4f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gq-posthumus 5s ease-in-out infinite 0.5s; 
}
.scn-garden-queen-enters .imogen { 
  position:absolute; bottom:28%; left:60%; width:26px; height:56px; background: linear-gradient(180deg, #f4a460 0%, #8b4513 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gq-imogen 5s ease-in-out infinite 1s; 
}
.scn-garden-queen-enters .shadow-tree { 
  position:absolute; bottom:35%; right:15%; width:40px; height:90px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: gq-tree 20s linear infinite alternate; 
}
@keyframes gq-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes gq-wall { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gq-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes gq-queen { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes gq-posthumus { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(-10px) translateY(0) rotate(1deg); } 75% { transform: translateX(-5px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes gq-imogen { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes gq-tree { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(0) scaleY(1.02); } 100% { transform: rotate(3deg) scaleY(1); } }

.scn-garden-posthumus-leave { 
  background: linear-gradient(180deg, #f0e68c 0%, #b8860b 100%), radial-gradient(ellipse at 70% 0%, #fff8dc 0%, transparent 70%); 
}
.scn-garden-posthumus-leave .sky { 
  position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%); animation: gp-sky 15s ease-in-out infinite alternate; 
}
.scn-garden-posthumus-leave .garden-wall { 
  position:absolute; bottom:35%; left:5%; width:90%; height:30%; background: linear-gradient(180deg, #deb887 0%, #8b4513 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,.3); animation: gp-wall 10s ease-in-out infinite alternate; 
}
.scn-garden-posthumus-leave .path { 
  position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50%/100% 100% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,.2); animation: gp-path 14s ease-in-out infinite alternate; 
}
.scn-garden-posthumus-leave .posthumus-leaving { 
  position:absolute; bottom:28%; left:70%; width:28px; height:58px; background: linear-gradient(180deg, #4682B4 0%, #2f4f4f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gp-posthumus 6s ease-in-out infinite; 
}
.scn-garden-posthumus-leave .imogen-standing { 
  position:absolute; bottom:28%; left:30%; width:24px; height:54px; background: linear-gradient(180deg, #f4a460 0%, #8b4513 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gp-imogen 5s ease-in-out infinite 0.5s; 
}
.scn-garden-posthumus-leave .garden-bench { 
  position:absolute; bottom:32%; left:40%; width:40px; height:10px; background: linear-gradient(180deg, #3e2723 0%, #1b0f0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 5px rgba(0,0,0,.3); animation: gp-bench 8s ease-in-out infinite alternate; 
}
.scn-garden-posthumus-leave .flower-bed { 
  position:absolute; bottom:25%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #ff69b4 0%, #c71585 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px rgba(255,105,180,.5); animation: gp-flowers 4s ease-in-out infinite; 
}
@keyframes gp-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes gp-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gp-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes gp-posthumus { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(-10px) translateY(0) rotate(0); } 75% { transform: translateX(-15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-20px) translateY(0) rotate(0); } }
@keyframes gp-imogen { 0% { transform: translateX(0) translateY(0) rotate(0) scaleY(1); } 33% { transform: translateX(2px) translateY(-1px) rotate(3deg) scaleY(1.02); } 66% { transform: translateX(-2px) translateY(-1px) rotate(-3deg) scaleY(1); } 100% { transform: translateX(0) translateY(0) rotate(0) scaleY(1); } }
@keyframes gp-bench { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.02) rotate(1deg); } 100% { transform: scaleX(1) rotate(0); } }
@keyframes gp-flowers { 0% { transform: scale(1) rotate(0); } 25% { transform: scale(1.05) rotate(5deg); } 50% { transform: scale(1) rotate(0); } 75% { transform: scale(1.05) rotate(-5deg); } 100% { transform: scale(1) rotate(0); } }

.scn-garden-gentlemen-talk { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%); }
.scn-garden-gentlemen-talk .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%); animation: ggt-sky 10s ease-in-out infinite alternate; }
.scn-garden-gentlemen-talk .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #556b2f 0%, #8fbc8f 100%); border-radius: 20% 20% 0 0; animation: ggt-ground 30s ease-in-out infinite alternate; }
.scn-garden-gentlemen-talk .hedge { position:absolute; bottom:30%; left:10%; width:30%; height:20%; background: linear-gradient(180deg, #2e4e1e 0%, #3a6b2a 100%); border-radius: 40% 30% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.3); animation: ggt-sway-hedge 8s ease-in-out infinite; }
.scn-garden-gentlemen-talk .statue { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #a9a9a9 0%, #808080 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 5px 10px rgba(0,0,0,.4); animation: ggt-statue 20s ease-in-out infinite; }
.scn-garden-gentlemen-talk .gent-a { position:absolute; bottom:25%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ggt-talk-a 6s ease-in-out infinite; }
.scn-garden-gentlemen-talk .gent-b { position:absolute; bottom:25%; left:52%; width:16px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ggt-talk-b 6s ease-in-out infinite 0.5s; }
.scn-garden-gentlemen-talk .tree { position:absolute; top:5%; right:5%; width:60px; height:80px; background: linear-gradient(180deg, #3a6b2a 0%, #1a3b1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(5px); opacity:0.6; animation: ggt-sway-tree 12s ease-in-out infinite; }
.scn-garden-gentlemen-talk .sun { position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #fff5d0 0%, #f0c040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px #f0c040; animation: ggt-pulse-sun 4s ease-in-out infinite alternate; }
@keyframes ggt-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ggt-ground { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:1 } }
@keyframes ggt-sway-hedge { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes ggt-statue { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ggt-talk-a { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ggt-talk-b { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ggt-sway-tree { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ggt-pulse-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }

.scn-item-king-babe-protected { background: linear-gradient(180deg, #6b4226 0%, #4a2a1a 100%), radial-gradient(ellipse at 50% 30%, #9a6a4a 0%, transparent 70%); }
.scn-item-king-babe-protected .wall { position:absolute; inset:0; background: linear-gradient(135deg, #8b5a3a 0%, #6b4226 100%); animation: kbp-wall 60s linear infinite; }
.scn-item-king-babe-protected .window { position:absolute; top:10%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse, #d4b896 0%, #f0d8b0 60%, transparent 80%); border: 10px solid #4a2a1a; box-shadow: inset 0 0 40px rgba(255,215,150,0.5); animation: kbp-light-in 8s ease-in-out infinite alternate; }
.scn-item-king-babe-protected .curtain-l { position:absolute; top:10%; left:30%; width:10%; height:60%; background: linear-gradient(180deg, #7a2a1a 0%, #5a1a0a 100%); border-radius: 0 10% 10% 0; filter: blur(1px); animation: kbp-flutter-l 6s ease-in-out infinite; }
.scn-item-king-babe-protected .curtain-r { position:absolute; top:10%; right:30%; width:10%; height:60%; background: linear-gradient(180deg, #7a2a1a 0%, #5a1a0a 100%); border-radius: 10% 0 0 10%; filter: blur(1px); animation: kbp-flutter-r 6s ease-in-out infinite 0.5s; }
.scn-item-king-babe-protected .throne { position:absolute; bottom:15%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: kbp-throne 10s ease-in-out infinite; }
.scn-item-king-babe-protected .king { position:absolute; bottom:20%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: kbp-breathe-king 4s ease-in-out infinite; }
.scn-item-king-babe-protected .babe { position:absolute; bottom:25%; left:48%; width:14px; height:20px; background: linear-gradient(180deg, #c8a882 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px #f0d8b0; animation: kbp-glow-babe 2s ease-in-out infinite alternate; }
.scn-item-king-babe-protected .glow { position:absolute; bottom:20%; left:38%; width:30%; height:50%; background: radial-gradient(ellipse, #f0d8b0 0%, transparent 70%); opacity:0.3; animation: kbp-pulse-glow 5s ease-in-out infinite alternate; }
@keyframes kbp-wall { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:1 } }
@keyframes kbp-light-in { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(0.95); } }
@keyframes kbp-flutter-l { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kbp-flutter-r { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kbp-throne { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes kbp-breathe-king { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes kbp-glow-babe { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes kbp-pulse-glow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.4; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

.scn-prison-jupiter-responds {
  background: 
    linear-gradient(180deg, #0b0e1a 0%, #141b38 30%, #1e2840 60%, #2a3550 100%),
    radial-gradient(ellipse at 80% 30%, #4a5a7a 0%, transparent 70%),
    linear-gradient(180deg, rgba(100,130,180,0.2) 0%, transparent 100%);
}
.scn-prison-jupiter-responds .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,15,30,0.6) 0%, rgba(20,28,56,0.8) 50%, rgba(30,40,64,1) 100%); animation: pj-storm 12s ease-in-out infinite alternate; }
.scn-prison-jupiter-responds .moon { position:absolute; top:8%; right:15%; width:50px; height:50px; background: radial-gradient(circle at 60% 30%, #c0d0e0 0%, #90a0c0 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,180,210,0.4); animation: pj-moon 8s ease-in-out infinite; }
.scn-prison-jupiter-responds .lightning { position:absolute; width:3px; height:60px; background: linear-gradient(180deg, #d0e0ff 0%, #80a0ff 60%, transparent 100%); border-radius:2px; filter: drop-shadow(0 0 8px #8090ff); }
.scn-prison-jupiter-responds .bolt1 { top:12%; left:30%; transform: rotate(-15deg) skewX(10deg); animation: pj-flash 3s ease-in-out infinite; }
.scn-prison-jupiter-responds .bolt2 { top:18%; left:65%; transform: rotate(10deg) skewX(-20deg); animation: pj-flash 4s ease-in-out infinite 1.5s; }
.scn-prison-jupiter-responds .jupiter { position:absolute; bottom:40%; left:45%; width:36px; height:70px; transform: translateX(-50%) rotate(5deg); background: linear-gradient(180deg, #1a1e2a 0%, #0a0d14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pj-descend 10s ease-in-out infinite; }
.scn-prison-jupiter-responds .eagle { position:absolute; bottom:38%; left:44%; width:90px; height:60px; transform: translateX(-50%); background: linear-gradient(135deg, #2a2e3a 0%, #0a0e14 100%); border-radius: 60% 40% 30% 50% / 50% 50% 40% 60%; box-shadow: -10px -10px 20px rgba(0,0,0,0.6); animation: pj-soar 8s ease-in-out infinite alternate; }
.scn-prison-jupiter-responds .eagle::after { content:''; position:absolute; top:10px; left:10px; width:20px; height:20px; background: #0a0d14; border-radius: 50% 50% 0 0; transform: rotate(-20deg); }
.scn-prison-jupiter-responds .thunderbolt { position:absolute; bottom:45%; left:48%; width:8px; height:60px; background: linear-gradient(180deg, transparent 0%, #f0e040 30%, #d0b020 60%, transparent 100%); clip-path: polygon(50% 0%, 0% 50%, 50% 100%, 100% 50%); animation: pj-throw 6s ease-in-out infinite; }
.scn-prison-jupiter-responds .apparition { position:absolute; bottom:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a3040 0%, #101520 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; }
.scn-prison-jupiter-responds .app1 { left:30%; animation: pj-kneel 2s ease-in-out infinite; }
.scn-prison-jupiter-responds .app2 { left:60%; animation: pj-kneel 2.5s ease-in-out infinite 0.8s; }
.scn-prison-jupiter-responds .cloud { position:absolute; background: linear-gradient(180deg, rgba(60,80,100,0.4) 0%, rgba(30,45,65,0.2) 100%); border-radius:50%; filter: blur(8px); }
.scn-prison-jupiter-responds .layer1 { top:10%; left:20%; width:120px; height:60px; animation: pj-drift 30s linear infinite; }
.scn-prison-jupiter-responds .layer2 { top:25%; right:10%; width:90px; height:40px; animation: pj-drift 40s linear infinite reverse; }

@keyframes pj-storm {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes pj-moon {
  0%,100% { transform: translate(0,0) scale(1); opacity:0.8; }
  50% { transform: translate(3px, -2px) scale(1.02); opacity:1; }
}
@keyframes pj-flash {
  0%,90%,100% { opacity:0; }
  92% { opacity:1; }
  95% { opacity:1; }
  97% { opacity:0; }
}
@keyframes pj-descend {
  0% { transform: translateX(-50%) translateY(-10px) rotate(5deg) scale(0.9); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg) scale(1); }
  100% { transform: translateX(-50%) translateY(-5px) rotate(3deg) scale(0.95); }
}
@keyframes pj-soar {
  0% { transform: translateX(-50%) rotate(-3deg) scale(0.95); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(1); }
}
@keyframes pj-throw {
  0% { transform: translate(0,0) rotate(0deg); opacity:0; }
  25% { transform: translate(10px,-20px) rotate(15deg); opacity:1; }
  50% { transform: translate(20px,-40px) rotate(30deg); opacity:0.8; }
  75% { transform: translate(30px,-60px) rotate(45deg); opacity:0; }
  100% { transform: translate(40px,-80px) rotate(60deg); opacity:0; }
}
@keyframes pj-kneel {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(1px) rotate(0deg); }
}
@keyframes pj-drift {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

.scn-garden-posthumus-leave {
  background: linear-gradient(180deg, #f5e3c3 0%, #d4c4a8 30%, #a8b8d0 60%, #6a7b9b 100%), radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-garden-posthumus-leave .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8d8f0 0%, #f0e8c0 70%, transparent 100%);
  animation: gpl-sky 12s ease-in-out infinite alternate;
}
.scn-garden-posthumus-leave .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 50%, #3a4a2a 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: gpl-ground 8s ease-in-out infinite;
}
.scn-garden-posthumus-leave .wall {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(135deg, #b8a898 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 4px;
  transform: perspective(800px) rotateX(10deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gpl-wall 10s ease-in-out infinite;
}
.scn-garden-posthumus-leave .tree {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 10% 10% 20% 20% / 80% 80% 20% 20%;
}
.scn-garden-posthumus-leave .tree::before {
  content: ''; position: absolute; top: -40px; left: -30px; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, #2a5a1a 50%, transparent 70%);
  border-radius: 50%;
  animation: gpl-tree 7s ease-in-out infinite alternate;
}
.scn-garden-posthumus-leave .figure-a {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpl-figurea 3s ease-in-out infinite;
}
.scn-garden-posthumus-leave .figure-b {
  position: absolute; bottom: 25%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gpl-figureb 4s ease-in-out infinite;
}
.scn-garden-posthumus-leave .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 20px;
  background: rgba(0,0,0,0.15);
  filter: blur(8px);
  border-radius: 50%;
  animation: gpl-shadow 6s ease-in-out infinite;
}
.scn-garden-posthumus-leave .flower {
  position: absolute; bottom: 15%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #7a2a1a 70%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200,85,61,0.4);
  animation: gpl-flower 4s ease-in-out infinite;
}
/* keyframes */
@keyframes gpl-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes gpl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gpl-wall { 0% { box-shadow: 0 4px 12px rgba(0,0,0,0.3); } 50% { box-shadow: 0 8px 24px rgba(0,0,0,0.5); } 100% { box-shadow: 0 4px 12px rgba(0,0,0,0.3); } }
@keyframes gpl-tree { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes gpl-figurea { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes gpl-figureb { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes gpl-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(0.9); } 100% { opacity: 0.2; transform: scaleX(1); } }
@keyframes gpl-flower { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg) scale(1.2); } 100% { transform: rotate(0deg); } }

.scn-garden-gentlemen-talk {
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 60%, #F5DEB3 100%),
              radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-garden-gentlemen-talk .sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFE4B5 100%);
  animation: gg-sky 20s ease-in-out infinite alternate;
}
.scn-garden-gentlemen-talk .sun {
  position:absolute; top:8%; left:55%; width:40px; height:40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,.6);
  animation: gg-sun 6s ease-in-out infinite;
}
.scn-garden-gentlemen-talk .hedge {
  position:absolute; bottom:30%; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #4a7c59 0%, #2e5a3a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.3);
  animation: gg-hedge 8s ease-in-out infinite alternate;
}
.scn-garden-gentlemen-talk .tree {
  position:absolute; bottom:35%; left:20%; width:30px; height:60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.3);
  animation: gg-tree 12s ease-in-out infinite;
}
.scn-garden-gentlemen-talk .path {
  position:absolute; bottom:5%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 100%);
  border-radius: 40% 40% 0 0;
}
.scn-garden-gentlemen-talk .figure {
  position:absolute; bottom:20%; width:20px; height:50px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
}
.scn-garden-gentlemen-talk .figure-a {
  left:35%;
  animation: gg-figure-a 4s ease-in-out infinite;
}
.scn-garden-gentlemen-talk .figure-b {
  left:55%;
  animation: gg-figure-b 4s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes gg-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes gg-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(255,215,0,.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 70px 25px rgba(255,215,0,.7); }
  100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,215,0,.6); }
}
@keyframes gg-hedge {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes gg-tree {
  0% { transform: rotate(-1deg) scaleX(1); }
  50% { transform: rotate(1deg) scaleX(1.02); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes gg-figure-a {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes gg-figure-b {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}

.scn-item-king-babe-protected {
  background:
    linear-gradient(180deg, #d4a373 0%, #b07d4e 50%, #8a5a2b 100%),
    radial-gradient(ellipse at 20% 40%, rgba(255,230,150,0.25) 0%, transparent 60%);
}

.scn-item-king-babe-protected .kbp-ceiling {
  position: absolute; inset: 0 0 75% 0;
  background: linear-gradient(180deg, #c09060 0%, #a06c3a 100%);
  border-radius: 0 0 40% 40%;
  animation: kbp-ceiling 12s ease-in-out infinite alternate;
}

.scn-item-king-babe-protected .kbp-window {
  position: absolute; top: 20%; left: 12%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #87ceeb 0%, #fff8dc 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 30px rgba(255,230,150,0.2);
  animation: kbp-window 8s ease-in-out infinite;
}

.scn-item-king-babe-protected .kbp-lightbeam {
  position: absolute; top: 20%; left: 12%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,180,0.3) 0%, rgba(255,220,130,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  filter: blur(8px);
  animation: kbp-lightbeam 6s ease-in-out infinite alternate;
}

.scn-item-king-babe-protected .kbp-tapestry {
  position: absolute; top: 15%; right: 8%; width: 22%; height: 50%;
  background: linear-gradient(90deg, #c08040 0%, #a06020 20%, #b07030 50%, #a06020 80%, #c08040 100%);
  border-radius: 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: kbp-tapestry 15s ease-in-out infinite alternate;
}

.scn-item-king-babe-protected .kbp-bed {
  position: absolute; bottom: 10%; left: 5%; width: 55%; height: 35%;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 40%, #5c2e0e 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: kbp-bed 9s ease-in-out infinite;
}

.scn-item-king-babe-protected .kbp-king {
  position: absolute; bottom: 14%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #4a2e1b 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: kbp-king 5s ease-in-out infinite;
}

.scn-item-king-babe-protected .kbp-baby {
  position: absolute; bottom: 32%; left: 30%; width: 10%; height: 10%;
  background: radial-gradient(circle, #e8c39e 0%, #c09060 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(232,195,158,0.6), 0 0 60px 15px rgba(200,150,100,0.3);
  animation: kbp-baby 4s ease-in-out infinite;
}

.scn-item-king-babe-protected .kbp-dust1,
.scn-item-king-babe-protected .kbp-dust2 {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,240,200,0.8) 0%, rgba(255,240,200,0) 100%);
  border-radius: 50%;
  filter: blur(2px);
}

.scn-item-king-babe-protected .kbp-dust1 {
  top: 30%; left: 20%;
  animation: kbp-dust 18s linear infinite;
  animation-delay: 0s;
}

.scn-item-king-babe-protected .kbp-dust2 {
  top: 40%; left: 25%;
  animation: kbp-dust 22s linear infinite;
  animation-delay: 5s;
}

@keyframes kbp-ceiling {
  0%   { opacity: 0.85; transform: scaleY(1); }
  50%  { opacity: 1;    transform: scaleY(1.02); }
  100% { opacity: 0.9;  transform: scaleY(0.98); }
}

@keyframes kbp-window {
  0%   { box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 30px rgba(255,230,150,0.2); }
  50%  { box-shadow: inset 0 0 30px rgba(255,255,200,0.6), 0 0 50px rgba(255,230,150,0.4); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.4), 0 0 30px rgba(255,230,150,0.2); }
}

@keyframes kbp-lightbeam {
  0%   { opacity: 0.5; transform: skewX(-2deg) scaleX(1); }
  50%  { opacity: 0.9; transform: skewX(0deg)  scaleX(1.05); }
  100% { opacity: 0.6; transform: skewX(2deg) scaleX(0.95); }
}

@keyframes kbp-tapestry {
  0%   { transform: rotate(0deg) translateY(0); }
  50%  { transform: rotate(0.5deg) translateY(-2px); }
  100% { transform: rotate(-0.5deg) translateY(0); }
}

@keyframes kbp-bed {
  0%   { transform: translateY(0) scaleX(1); }
  50%  { transform: translateY(-3px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}

@keyframes kbp-king {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes kbp-baby {
  0%   { transform: translateY(0) scale(1); opacity: 0.9; }
  50%  { transform: translateY(-3px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}

@keyframes kbp-dust {
  0%   { transform: translate(0, 0) scale(0.8); opacity: 0.5; }
  50%  { transform: translate(15px, -20px) scale(1.2); opacity: 1; }
  100% { transform: translate(30px, -40px) scale(0.9); opacity: 0; }
}

.scn-garden-queen-enters {
  background:
    radial-gradient(ellipse at 30% 20%, #F4D03F 0%, transparent 40%),
    linear-gradient(180deg, #5B9BD5 0%, #87CEEB 55%, #2E7D32 55%, #1B5E20 100%);
}

.scn-garden-queen-enters .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%);
  animation: gqe-sky 20s ease-in-out infinite alternate;
}

.scn-garden-queen-enters .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #4CAF50 0%, #2E7D32 50%, #1B5E20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}

.scn-garden-queen-enters .gate {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 70px;
  height: 100px;
  background: linear-gradient(180deg, #9E9E9E 0%, #616161 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: gqe-gate 8s ease-in-out infinite alternate;
}

.scn-garden-queen-enters .queen {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 22px;
  height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gqe-queen 8s ease-in-out forwards;
  animation-delay: 0.5s;
}
.scn-garden-queen-enters .queen::after {
  content: '';
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #FFD700 0%, #B8860B 100%);
  border-radius: 0 0 50% 50%;
}

.scn-garden-queen-enters .posthumus {
  position: absolute;
  bottom: 26%;
  left: 60%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gqe-posthumus 8s ease-in-out forwards;
  animation-delay: 1.5s;
}

.scn-garden-queen-enters .imogen {
  position: absolute;
  bottom: 27%;
  left: 70%;
  width: 18px;
  height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gqe-imogen 8s ease-in-out forwards;
  animation-delay: 2.5s;
}

.scn-garden-queen-enters .shadows {
  position: absolute;
  bottom: 24%;
  left: 45%;
  width: 80px;
  height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform-origin: left center;
  animation: gqe-shadow 8s ease-in-out forwards;
  animation-delay: 0.5s;
}

.scn-garden-queen-enters .rays {
  position: absolute;
  top: 0;
  left: -10%;
  width: 120%;
  height: 200%;
  background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 60%);
  transform: rotate(-35deg);
  transform-origin: 30% 20%;
  animation: gqe-rays 14s ease-in-out infinite alternate;
}

@keyframes gqe-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes gqe-gate {
  0% { box-shadow: 0 0 15px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 0 30px rgba(0,0,0,0.6); }
  100% { box-shadow: 0 0 15px rgba(0,0,0,0.3); }
}

@keyframes gqe-queen {
  0% { transform: translateX(100px) translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translateX(30px) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 1; }
}

@keyframes gqe-posthumus {
  0% { transform: translateX(80px) translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translateX(25px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 1; }
}

@keyframes gqe-imogen {
  0% { transform: translateX(90px) translateY(0) rotate(0deg); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translateX(20px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 1; }
}

@keyframes gqe-shadow {
  0% { transform: translateX(100px) scaleX(1); opacity: 0; }
  20% { opacity: 0.6; }
  50% { transform: translateX(30px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(1); opacity: 0.6; }
}

@keyframes gqe-rays {
  0% { transform: rotate(-40deg) scale(1); opacity: 0.2; }
  50% { transform: rotate(-30deg) scale(1.05); opacity: 0.5; }
  100% { transform: rotate(-35deg) scale(1); opacity: 0.3; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bloom-a { position: absolute; pointer-events: none; }
.bloom-b { position: absolute; pointer-events: none; }
.glimmer { position: absolute; pointer-events: none; }
.sun-hard { position: absolute; pointer-events: none; }
.tree-a { position: absolute; pointer-events: none; }
.tree-b { position: absolute; pointer-events: none; }
.tree-shadow { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-reunion-and-exposure {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9b28a 50%, #a6896a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,230,180,0.3) 0%, transparent 60%);
}

.scn-reunion-and-exposure .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4be94 0%, #b89f78 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}

.scn-reunion-and-exposure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5d3e 0%, #5c442d 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
}

.scn-reunion-and-exposure .window {
  position: absolute; top: 8%; left: 18%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #fffaec 0%, #ffe7b0 70%, #cc9944 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 20px rgba(255,230,150,0.5), 0 0 40px rgba(255,220,100,0.2);
  animation: re-window 8s ease-in-out infinite alternate;
}

.scn-reunion-and-exposure .figure-posthumus {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #6b4d3a 0%, #3f2b1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-10%) rotate(-5deg);
  animation: re-posthumus 4s ease-in-out infinite;
}

.scn-reunion-and-exposure .figure-imogen {
  position: absolute; bottom: 24%; left: 52%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #7a5a42 0%, #4a3424 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: translateX(10%) rotate(3deg);
  animation: re-imogen 5s ease-in-out infinite;
}

.scn-reunion-and-exposure .figure-pisanio {
  position: absolute; bottom: 28%; left: 30%; width: 9%; height: 36%;
  background: linear-gradient(180deg, #5a4030 0%, #322018 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform: translateX(-20%) skewY(-2deg);
  animation: re-pisanio 6s ease-in-out infinite;
}

.scn-reunion-and-exposure .potion {
  position: absolute; bottom: 12%; left: 42%; width: 3%; height: 6%;
  background: radial-gradient(circle, #c8553d 30%, #a0461a 70%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 12px 3px rgba(200,85,61,0.5);
  animation: re-potion 3s ease-in-out infinite alternate;
}

.scn-reunion-and-exposure .lightbeam {
  position: absolute; top: 10%; left: 22%; width: 14%; height: 50%;
  background: linear-gradient(180deg, rgba(255,245,200,0.4) 0%, rgba(255,220,150,0.1) 100%);
  filter: blur(12px);
  animation: re-beam 10s ease-in-out infinite alternate;
}

@keyframes re-window {
  0%   { opacity: 0.8; transform: scaleX(1); }
  50%  { opacity: 1;   transform: scaleX(1.02); box-shadow: inset 0 0 30px rgba(255,230,150,0.7), 0 0 60px rgba(255,220,100,0.3); }
  100% { opacity: 0.9; transform: scaleX(0.98); }
}

@keyframes re-posthumus {
  0%   { transform: translateX(-10%) rotate(-5deg) translateY(0); }
  50%  { transform: translateX(-10%) rotate(-3deg) translateY(-2px); }
  100% { transform: translateX(-10%) rotate(-5deg) translateY(0); }
}

@keyframes re-imogen {
  0%   { transform: translateX(10%) rotate(3deg) translateY(0); }
  25%  { transform: translateX(8%) rotate(2deg) translateY(-3px); }
  75%  { transform: translateX(12%) rotate(4deg) translateY(-1px); }
  100% { transform: translateX(10%) rotate(3deg) translateY(0); }
}

@keyframes re-pisanio {
  0%   { transform: translateX(-20%) skewY(-2deg) translateY(0); }
  50%  { transform: translateX(-18%) skewY(-1deg) translateY(-2px); }
  100% { transform: translateX(-20%) skewY(-2deg) translateY(0); }
}

@keyframes re-potion {
  0%   { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); }
  100% { opacity: 1;   box-shadow: 0 0 20px 6px rgba(200,85,61,0.7); }
}

@keyframes re-beam {
  0%   { opacity: 0.2; transform: scaleY(0.9) rotate(-1deg); }
  100% { opacity: 0.5; transform: scaleY(1.1) rotate(1deg); }
}

/* ---- scene 2 ---- */

.scn-prophecy-fulfilled-peace {
  background: linear-gradient(180deg, #e0e9f0 0%, #c0d0e0 40%, #a0b8cc 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,250,230,0.4) 0%, transparent 60%);
}

.scn-prophecy-fulfilled-peace .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 0%, #d4dee8 0%, #b8c6d4 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}

.scn-prophecy-fulfilled-peace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9aaea4 0%, #7a8f82 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}

.scn-prophecy-fulfilled-peace .cedar-trunk {
  position: absolute; bottom: 35%; left: 50%; width: 6%; height: 40%;
  background: linear-gradient(90deg, #6d5a3a 20%, #8b7450 50%, #5d4a2e 80%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pr-cedar 30s ease-in-out infinite;
}

.scn-prophecy-fulfilled-peace .soothsayer {
  position: absolute; bottom: 18%; left: 36%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a5a4a 0%, #1e3027 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-30%) skewX(1deg);
  animation: pr-soothsayer 6s ease-in-out infinite;
}

.scn-prophecy-fulfilled-peace .branch-left {
  position: absolute; bottom: 55%; left: 36%; width: 16%; height: 4%;
  background: linear-gradient(180deg, #5b7a4a 0%, #3c5a2e 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-40deg);
  animation: pr-branch 12s ease-in-out infinite alternate;
}

.scn-prophecy-fulfilled-peace .branch-right {
  position: absolute; bottom: 55%; left: 54%; width: 16%; height: 4%;
  background: linear-gradient(180deg, #5b7a4a 0%, #3c5a2e 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(40deg);
  animation: pr-branch 14s ease-in-out infinite alternate;
}

.scn-prophecy-fulfilled-peace .scroll {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 14%;
  background: radial-gradient(ellipse at 50% 30%, #ede0c0 0%, #c8b894 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px 2px rgba(200,180,120,0.6);
  animation: pr-scroll 10s ease-in-out infinite alternate;
}

.scn-prophecy-fulfilled-peace .dote-particle {
  position: absolute; top: 12%; left: 20%; width: 1.5%; height: 1.5%;
  background: rgba(255,250,230,0.7);
  border-radius: 50%;
  filter: blur(1px);
  animation: pr-dote 20s linear infinite;
}

.scn-prophecy-fulfilled-peace .dote-particle.two {
  left: 70%; top: 8%; width: 1%; height: 1%;
  animation-duration: 28s;
  animation-delay: -5s;
}

@keyframes pr-cedar {
  0%   { transform: translateX(-50%) scaleY(1); }
  50%  { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}

@keyframes pr-soothsayer {
  0%   { transform: translateX(-30%) skewX(1deg) translateY(0); }
  50%  { transform: translateX(-30%) skewX(0deg) translateY(-4px); }
  100% { transform: translateX(-30%) skewX(1deg) translateY(0); }
}

@keyframes pr-branch {
  0%   { transform: rotate(-40deg) scaleY(1); }
  50%  { transform: rotate(-38deg) scaleY(1.06); }
  100% { transform: rotate(-42deg) scaleY(0.94); }
}

@keyframes pr-scroll {
  0%   { transform: rotate(0deg) translateX(0); box-shadow: 0 0 12px 2px rgba(200,180,120,0.4); }
  100% { transform: rotate(2deg) translateX(2px); box-shadow: 0 0 20px 6px rgba(200,180,120,0.8); }
}

@keyframes pr-dote {
  0%   { transform: translateY(0) translateX(0) scale(0.5); opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateY(80vh) translateX(-20px) scale(0.8); opacity: 0; }
}

/* combined selectors for dote-particle.two */
.scn-prophecy-fulfilled-peace .dote-particle.two {
  animation-name: pr-dote-two;
}

@keyframes pr-dote-two {
  0%   { transform: translateY(0) translateX(0) scale(0.6); opacity: 0; }
  20%  { opacity: 0.8; }
  80%  { opacity: 0.8; }
  100% { transform: translateY(75vh) translateX(30px) scale(0.3); opacity: 0; }
}

.scn-clash-with-cloten {
  background:
    radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a2a 0%, #2a1a0a 50%, #1a0a00 100%);
}
.scn-clash-with-cloten .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  animation: cc-bg 12s ease-in-out infinite alternate;
}
.scn-clash-with-cloten .torch-glow {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 30px;
  transform: translate(-50%, -50%) scale(2);
  background: radial-gradient(circle, #c08030 0%, #805020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(192,128,48,0.4);
  animation: cc-torch 3s ease-in-out infinite alternate;
}
.scn-clash-with-cloten .wall-left {
  position: absolute; left: 0; top: 10%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-right: 4px solid #3a2a1a;
  transform: perspective(800px) rotateY(10deg);
}
.scn-clash-with-cloten .wall-right {
  position: absolute; right: 0; top: 10%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-left: 4px solid #3a2a1a;
  transform: perspective(800px) rotateY(-10deg);
}
.scn-clash-with-cloten .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-figleft 4s ease-in-out infinite;
}
.scn-clash-with-cloten .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-figright 4s ease-in-out infinite;
}
.scn-clash-with-cloten .sword-left {
  position: absolute; bottom: 55%; left: 33%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08070 0%, #605040 100%);
  transform: rotate(-20deg);
  animation: cc-swordl 2s ease-in-out infinite alternate;
}
.scn-clash-with-cloten .sword-right {
  position: absolute; bottom: 55%; right: 33%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #a08070 0%, #605040 100%);
  transform: rotate(20deg);
  animation: cc-swordr 2s ease-in-out infinite alternate;
}
@keyframes cc-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cc-torch { 0% { transform: translate(-50%, -50%) scale(1.8) rotate(-3deg) } 50% { transform: translate(-50%, -50%) scale(2.2) rotate(3deg) } 100% { transform: translate(-50%, -50%) scale(1.9) rotate(0) } }
@keyframes cc-figleft { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cc-figright { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cc-swordl { 0% { transform: rotate(-25deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes cc-swordr { 0% { transform: rotate(25deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(1.1) } 100% { transform: rotate(20deg) scaleY(1) } }

.scn-queen-plot-and-boasting {
  background:
    radial-gradient(ellipse at 70% 40%, #1a1a2a 0%, #0a0a1a 60%),
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-queen-plot-and-boasting .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  animation: qp-bg 18s ease-in-out infinite alternate;
}
.scn-queen-plot-and-boasting .candle-glow {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #d09040 0%, #a06020 50%, transparent 80%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 0 40px 20px rgba(160,96,32,0.5);
  transform: rotate(-5deg);
  animation: qp-candle 3s ease-in-out infinite alternate;
}
.scn-queen-plot-and-boasting .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-queen-plot-and-boasting .queen-figure {
  position: absolute; bottom: 22%; left: 30%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qp-queen 6s ease-in-out infinite;
}
.scn-queen-plot-and-boasting .cloten-figure {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qp-cloten 6s ease-in-out infinite reverse;
}
.scn-queen-plot-and-boasting .shadow-queen {
  position: absolute; bottom: 15%; left: 28%; width: 40px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: qp-shadowq 3s ease-in-out infinite;
}
.scn-queen-plot-and-boasting .shadow-cloten {
  position: absolute; bottom: 15%; right: 23%; width: 44px; height: 22px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: qp-shadowc 3s ease-in-out infinite 1.5s;
}
.scn-queen-plot-and-boasting .parchment {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c0a080 0%, #a08060 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  animation: qp-parchment 10s ease-in-out infinite;
}
@keyframes qp-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes qp-candle { 0% { transform: rotate(-7deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.2) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes qp-queen { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes qp-cloten { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes qp-shadowq { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes qp-shadowc { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.2) scaleY(0.8) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes qp-parchment { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }

.scn-iachimo-belittles-posthumus {
  background:
    radial-gradient(ellipse at 50% 30%, #d0c8b0 0%, #a09880 60%),
    linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%);
}
.scn-iachimo-belittles-posthumus .bg-sunlit {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 100%);
  animation: ib-bg 20s ease-in-out infinite alternate;
}
.scn-iachimo-belittles-posthumus .window {
  position: absolute; top: 20%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #e0d8c0 0%, #a09880 100%);
  border: 6px solid #8a7a60;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(160,152,128,0.3);
}
.scn-iachimo-belittles-posthumus .column-left {
  position: absolute; left: 20%; top: 10%; width: 12px; height: 80%;
  background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
}
.scn-iachimo-belittles-posthumus .column-right {
  position: absolute; right: 20%; top: 10%; width: 12px; height: 80%;
  background: linear-gradient(180deg, #c0b8a0 0%, #a09880 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-iachimo-belittles-posthumus .iachimo-figure {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ib-iachimo 5s ease-in-out infinite;
}
.scn-iachimo-belittles-posthumus .philario-figure {
  position: absolute; bottom: 18%; right: 30%; width: 42px; height: 88px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ib-philario 5s ease-in-out infinite reverse;
}
.scn-iachimo-belittles-posthumus .table-wine {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
@keyframes ib-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ib-iachimo { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ib-philario { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-item-ring-and-wager {
  background:
    radial-gradient(ellipse at 50% 60%, #c8b898 0%, #a09070 60%),
    linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
}
.scn-item-ring-and-wager .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 100%);
  animation: rw-bg 15s ease-in-out infinite alternate;
}
.scn-item-ring-and-wager .hand-left {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c0a890 0%, #a08870 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: rw-handl 4s ease-in-out infinite;
}
.scn-item-ring-and-wager .hand-right {
  position: absolute; bottom: 30%; right: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c0a890 0%, #a08870 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: rw-handr 4s ease-in-out infinite;
}
.scn-item-ring-and-wager .ring {
  position: absolute; bottom: 48%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d0a040 0%, #b08030 50%, #906020 100%);
  border-radius: 50%;
  border: 3px solid #b08030;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 0 20px 6px rgba(176,128,48,0.3);
  animation: rw-ring 5s ease-in-out infinite;
}
.scn-item-ring-and-wager .table-edge {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6px;
  background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%);
  border-radius: 2px;
}
.scn-item-ring-and-wager .background-shapes {
  position: absolute; top: 10%; left: 10%; width: 30px; height: 30px;
  background: rgba(160,144,112,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: rw-shape 30s linear infinite;
}
@keyframes rw-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rw-handl { 0% { transform: rotate(-12deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes rw-handr { 0% { transform: rotate(12deg) scale(1) } 50% { transform: rotate(8deg) scale(1.05) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes rw-ring { 0% { transform: translateX(-50%) rotate(-12deg) scale(1) } 50% { transform: translateX(-50%) rotate(-8deg) scale(1.1) } 100% { transform: translateX(-50%) rotate(-10deg) scale(1) } }
@keyframes rw-shape { 0% { transform: translateX(0) } 100% { transform: translateX(80vw) } }

/* scene: item-bracelet-stolen (dark moonlit bedchamber) */
.scn-item-bracelet-stolen {
  background: linear-gradient(180deg, #12122e 0%, #1e1e3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 30% 20%, #3a3a5e 0%, transparent 80%);
}
.scn-item-bracelet-stolen .moonlight {
  position:absolute; inset:0; background: radial-gradient(ellipse at 70% 10%, rgba(200,220,255,0.12) 0%, transparent 70%); animation: ibs-moonlight 12s ease-in-out infinite alternate;
}
.scn-item-bracelet-stolen .wall-shadow {
  position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, #0b0b1e 100%); animation: ibs-shadow 8s ease-in-out infinite alternate;
}
.scn-item-bracelet-stolen .window-frame {
  position:absolute; top:8%; right:12%; width:60px; height:90px; border:4px solid #2a2a44; background: linear-gradient(180deg, #2c2c50 0%, #1a1a3a 100%); border-radius:6% 6% 4% 4%; box-shadow: inset 0 0 20px #0a0a1a; transform:skewY(-2deg);
}
.scn-item-bracelet-stolen .bed {
  position:absolute; bottom:22%; left:10%; right:30%; height:45%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:30% 10% 10% 30% / 60% 40% 40% 60%; box-shadow: 0 -12px 30px rgba(0,0,0,0.6); animation: ibs-bed 6s ease-in-out infinite;
}
.scn-item-bracelet-stolen .trunk {
  position:absolute; bottom:12%; left:55%; width:70px; height:50px; background: linear-gradient(135deg, #3a2a1a, #1a0e0a); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 20px #000; transform: perspective(40px) rotateX(5deg); animation: ibs-trunk 10s ease-in-out infinite;
}
.scn-item-bracelet-stolen .tapestry {
  position:absolute; top:18%; left:10%; width:80px; height:110px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 50%, #1a0a1a 100%); border-radius:4% 4% 0 0 / 10% 10% 0 0; box-shadow: inset 0 0 15px #0a0a1a; transform:skewX(3deg); opacity:0.7;
}
.scn-item-bracelet-stolen .figure-profile {
  position:absolute; bottom:24%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #0e0e1e 0%, #05050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-4deg); animation: ibs-figure 4s ease-in-out infinite;
}
.scn-item-bracelet-stolen .ceiling-line {
  position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1e1e3a 0%, transparent 100%); box-shadow: 0 4px 20px #0a0a1a;
}
.scn-item-bracelet-stolen .dust-motes {
  position:absolute; top:30%; left:5%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,200,255,0.2) 0%, transparent 100%); filter: blur(4px); animation: ibs-dust 30s linear infinite;
}
@keyframes ibs-moonlight { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:0.9; transform:scale(1.02) } 100% { opacity:0.7; transform:scale(0.98) } }
@keyframes ibs-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ibs-bed { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes ibs-trunk { 0%,100% { transform: perspective(40px) rotateX(5deg) translateY(0) } 50% { transform: perspective(40px) rotateX(7deg) translateY(-1px) } }
@keyframes ibs-figure { 0% { transform:rotate(-4deg) translateY(0) } 25% { transform:rotate(-2deg) translateY(-1px) } 50% { transform:rotate(-5deg) translateY(0) } 75% { transform:rotate(-3deg) translateY(1px) } 100% { transform:rotate(-4deg) translateY(0) } }
@keyframes ibs-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3 } 25% { transform: translateY(-30px) translateX(10px) scale(1.5); opacity:0.6 } 50% { transform: translateY(-60px) translateX(0) scale(0.8); opacity:0.2 } 75% { transform: translateY(-90px) translateX(-10px) scale(1.2); opacity:0.5 } 100% { transform: translateY(-120px) translateX(0) scale(1); opacity:0.3 } }

/* scene: iachimo-observes-mole (dark moonlit close-up) */
.scn-iachimo-observes-mole {
  background: linear-gradient(180deg, #14142e 0%, #1e1e44 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2e2e5a 0%, transparent 70%);
}
.scn-iachimo-observes-mole .dark-room {
  position:absolute; inset:0; background: radial-gradient(circle at 80% 20%, rgba(180,200,255,0.1) 0%, transparent 70%); animation: iom-dark 10s ease-in-out infinite alternate;
}
.scn-iachimo-observes-mole .moonbeam {
  position:absolute; top:10%; left:40%; width:80px; height:150px; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%); transform:skewX(-8deg); filter: blur(6px); animation: iom-beam 8s ease-in-out infinite alternate;
}
.scn-iachimo-observes-mole .sleeping-figure {
  position:absolute; bottom:25%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #0e0e1e 0%, #060610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(8deg); animation: iom-sleep 5s ease-in-out infinite;
}
.scn-iachimo-observes-mole .book-open {
  position:absolute; bottom:25%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%); border-radius:4% 4% 10% 10% / 20% 20% 30% 30%; transform: rotate(-15deg); box-shadow: 0 2px 8px #000; animation: iom-book 6s ease-in-out infinite;
}
.scn-iachimo-observes-mole .bracelet-stealth {
  position:absolute; bottom:32%; left:42%; width:8px; height:8px; background: radial-gradient(circle, #c8a060 0%, #8a6030 70%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(200,160,96,0.6); animation: iom-bracelet 4s ease-in-out infinite;
}
.scn-iachimo-observes-mole .trunk-lid {
  position:absolute; bottom:10%; right:15%; width:70px; height:12px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0600 100%); border-radius:30% 30% 0 0; transform:rotate(-4deg); box-shadow: 0 4px 12px #000; animation: iom-lid 12s ease-in-out infinite alternate;
}
.scn-iachimo-observes-mole .curtain-drape {
  position:absolute; top:5%; right:0; width:40px; height:100%; background: linear-gradient(180deg, #1e1e3e 0%, #0a0a1a 100%); border-radius:0 0 0 40%; filter: blur(2px); transform:skewY(5deg); opacity:0.8;
}
@keyframes iom-dark { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes iom-beam { 0% { opacity:0.3; transform:skewX(-8deg) scaleY(1) } 50% { opacity:0.5; transform:skewX(-6deg) scaleY(1.1) } 100% { opacity:0.2; transform:skewX(-10deg) scaleY(0.9) } }
@keyframes iom-sleep { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } }
@keyframes iom-book { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) scale(1.05) } }
@keyframes iom-bracelet { 0% { opacity:0.2; transform:translateY(0) } 25% { opacity:0.8; transform:translateY(-2px) } 50% { opacity:1; transform:translateY(-4px) } 75% { opacity:0.5; transform:translateY(-2px) } 100% { opacity:0.2; transform:translateY(0) } }
@keyframes iom-lid { 0% { transform:rotate(-4deg) } 50% { transform:rotate(-2deg) } 100% { transform:rotate(-6deg) } }

/* scene: imogen-rejects-cloten (sunlit tense confrontation) */
.scn-imogen-rejects-cloten {
  background: linear-gradient(180deg, #f8e8c8 0%, #d4b88a 50%, #b8986a 100%), radial-gradient(ellipse at 60% 0%, #fff8e0 0%, transparent 70%);
}
.scn-imogen-rejects-cloten .sun-glow {
  position:absolute; top:0; left:30%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,120,0.3) 0%, transparent 100%); animation: irc-sun 6s ease-in-out infinite alternate;
}
.scn-imogen-rejects-cloten .pavilion {
  position:absolute; top:10%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius:40% 40% 40% 40% / 80% 80% 20% 20%; box-shadow: 0 10px 40px rgba(0,0,0,0.1); transform:perspective(100px) rotateX(5deg);
}
.scn-imogen-rejects-cloten .figure-imogen {
  position:absolute; bottom:20%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(2deg); animation: irc-imogen 3s ease-in-out infinite;
}
.scn-imogen-rejects-cloten .figure-cloten {
  position:absolute; bottom:20%; right:30%; width:28px; height:58px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: irc-cloten 2.5s ease-in-out infinite;
}
.scn-imogen-rejects-cloten .ground-shadows {
  position:absolute; bottom:8%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%); border-radius:30% 30% 0 0; animation: irc-shadows 5s ease-in-out infinite alternate;
}
.scn-imogen-rejects-cloten .banner-snap {
  position:absolute; top:5%; right:20%; width:12px; height:40px; background: linear-gradient(180deg, #b86a4a 0%, #6e2a1a 100%); transform:rotate(10deg); clip-path: polygon(0 0,100% 10%,100% 90%,0 100%); animation: irc-banner 1.5s ease-in-out infinite;
}
.scn-imogen-rejects-cloten .spark-dust {
  position:absolute; top:40%; left:45%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 100%); filter: blur(6px); animation: irc-spark 3s ease-in-out infinite;
}
.scn-imogen-rejects-cloten .fence-rail {
  position:absolute; bottom:15%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #8a6a3a 20%, #6a4a2a 50%, #8a6a3a 80%, transparent 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
@keyframes irc-sun { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes irc-imogen { 0%,100% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-2px) } }
@keyframes irc-cloten { 0%,100% { transform:rotate(-5deg) translateY(0) } 25% { transform:rotate(-2deg) translateY(-3px) } 50% { transform:rotate(-7deg) translateY(-1px) } 75% { transform:rotate(-3deg) translateY(2px) } }
@keyframes irc-shadows { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes irc-banner { 0%,100% { transform:rotate(10deg) } 50% { transform:rotate(18deg) } }
@keyframes irc-spark { 0% { opacity:0; transform:scale(0.5) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0; transform:scale(0.5) } }

/* scene: iachimo-returns-triumphant (bright interior, tense) */
.scn-iachimo-returns-triumphant {
  background: linear-gradient(180deg, #e8d4b0 0%, #c4aa80 50%, #a08060 100%), radial-gradient(ellipse at 40% 20%, #f8e8c8 0%, transparent 80%);
}
.scn-iachimo-returns-triumphant .hall-interior {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(180,140,100,0.2) 0%, transparent 100%); animation: irt-hall 10s ease-in-out infinite alternate;
}
.scn-iachimo-returns-triumphant .brazier {
  position:absolute; bottom:25%; left:20%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 40%, #ffa040 0%, #c06020 60%, #2a1000 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 0 40px 10px rgba(255,160,64,0.4); animation: irt-brazier 2s ease-in-out infinite alternate;
}
.scn-iachimo-returns-triumphant .table-map {
  position:absolute; bottom:15%; left:35%; right:15%; height:25%; background: linear-gradient(180deg, #8a6a44 0%, #5a3a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.3); transform:perspective(60px) rotateX(8deg);
}
.scn-iachimo-returns-triumphant .figure-posthumus {
  position:absolute; bottom:22%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a44 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-2deg); animation: irt-posthumus 3s ease-in-out infinite;
}
.scn-iachimo-returns-triumphant .figure-philario {
  position:absolute; bottom:22%; right:25%; width:24px; height:56px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform:rotate(4deg); animation: irt-philario 3.5s ease-in-out infinite;
}
.scn-iachimo-returns-triumphant .war-banner {
  position:absolute; top:8%; left:50%; width:16px; height:50px; background: linear-gradient(180deg, #a04030 0%, #601810 100%); transform:rotate(4deg); clip-path: polygon(0 0,100% 5%,100% 95%,0 100%); animation: irt-banner 4s ease-in-out infinite alternate;
}
.scn-iachimo-returns-triumphant .column-flank {
  position:absolute; top:0; left:8%; width:20px; height:100%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:10% 10% 0 0; box-shadow: 4px 0 20px rgba(0,0,0,0.2); transform:skewX(-3deg);
}
@keyframes irt-hall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes irt-brazier { 0% { box-shadow: 0 0 30px 6px rgba(255,160,64,0.3); transform:scale(1) } 50% { box-shadow: 0 0 50px 14px rgba(255,160,64,0.6); transform:scale(1.05) } 100% { box-shadow: 0 0 35px 8px rgba(255,160,64,0.4); transform:scale(0.98) } }
@keyframes irt-posthumus { 0%,100% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-4deg) translateY(-2px) } }
@keyframes irt-philario { 0%,100% { transform:rotate(4deg) translateY(0) } 25% { transform:rotate(6deg) translateY(-1px) } 50% { transform:rotate(2deg) translateY(-3px) } 75% { transform:rotate(5deg) translateY(1px) } }
@keyframes irt-banner { 0% { transform:rotate(4deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(2deg) } }

/* ---------------- scene: item-sleeping-potion (tag: sp) ---------------- */
.scn-item-sleeping-potion {
  background:
    linear-gradient(135deg, #0b0d1a 0%, #1a1428 30%, #2b2038 60%, #0d0b15 100%),
    radial-gradient(ellipse at 70% 40%, #2a1f3a 0%, transparent 60%);
}
.scn-item-sleeping-potion .room-dark {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0f0e1a 0%, #19102a 50%, #0a0812 100%);
}
.scn-item-sleeping-potion .table {
  position: absolute; bottom: 12%; left: 50%; width: 160px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-item-sleeping-potion .potion-bottle {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4e6b5c 0%, #2d463a 100%);
  border-radius: 30% 30% 20% 20% / 20% 20% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5), 0 0 12px rgba(70,140,110,.6);
  animation: sp-bottle 6s ease-in-out infinite;
}
.scn-item-sleeping-potion .potion-glow {
  position: absolute; bottom: 26%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(100,200,150,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: sp-glow 4s ease-in-out infinite alternate;
}
.scn-item-sleeping-potion .shadow-hand {
  position: absolute; bottom: 14%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1422 0%, #0d0a12 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(-15deg);
  animation: sp-hand 3s ease-in-out infinite;
}
.scn-item-sleeping-potion .shadow-queen {
  position: absolute; bottom: 10%; right: 15%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #2a1f30 0%, #120c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-queen 8s ease-in-out infinite alternate;
}
.scn-item-sleeping-potion .drapery {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f30 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
}
.scn-item-sleeping-potion .dust {
  position: absolute; top: 20%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,200,220,.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: sp-dust 20s linear infinite;
}
@keyframes sp-bottle {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes sp-glow {
  0% { opacity: .4; transform: translateX(-50%) scale(1); }
  50% { opacity: .8; transform: translateX(-50%) scale(1.2); }
  100% { opacity: .5; transform: translateX(-50%) scale(0.9); }
}
@keyframes sp-hand {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sp-queen {
  0% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes sp-dust {
  0% { transform: translateX(0) translateY(0); opacity: .3; }
  33% { transform: translateX(20px) translateY(-10px); opacity: .5; }
  66% { transform: translateX(-10px) translateY(5px); opacity: .2; }
  100% { transform: translateX(0) translateY(0); opacity: .3; }
}

/* ---------------- scene: iachimo-at-court (tag: ic) ---------------- */
.scn-iachimo-at-court {
  background:
    linear-gradient(135deg, #f5e6d0 0%, #e8d4b8 30%, #d4bfa0 60%, #f0e2c8 100%),
    radial-gradient(ellipse at 80% 20%, #fff6e0 0%, transparent 50%);
}
.scn-iachimo-at-court .court-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fdf6e8 0%, #e8d4b8 60%, #d4b898 100%);
}
.scn-iachimo-at-court .throne {
  position: absolute; bottom: 8%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89a70 0%, #8a6e4a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.3);
}
.scn-iachimo-at-court .figure-imogen {
  position: absolute; bottom: 10%; left: 38%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #c09a7a 0%, #a07858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-imogen 6s ease-in-out infinite alternate;
}
.scn-iachimo-at-court .figure-iachimo {
  position: absolute; bottom: 10%; right: 30%; width: 45px; height: 95px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ic-iachimo 4s ease-in-out infinite;
}
.scn-iachimo-at-court .letter {
  position: absolute; bottom: 32%; left: 45%; width: 22px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: ic-letter 3s ease-in-out infinite alternate;
}
.scn-iachimo-at-court .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(80,60,40,.3) 0%, transparent 100%);
}
.scn-iachimo-at-court .chandelier {
  position: absolute; top: 4%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #b08050 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,.4);
  animation: ic-chandelier 5s ease-in-out infinite alternate;
}
.scn-iachimo-at-court .light-ray {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,.15) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(6px);
  animation: ic-lightray 8s ease-in-out infinite;
}
@keyframes ic-imogen {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ic-iachimo {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ic-letter {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ic-chandelier {
  0% { transform: translateX(-50%) scale(1); opacity: .9; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98); opacity: .85; }
}
@keyframes ic-lightray {
  0% { opacity: .3; }
  50% { opacity: .7; }
  100% { opacity: .4; }
}

/* ---------------- scene: trunk-deception-plot (tag: td) ---------------- */
.scn-trunk-deception-plot {
  background:
    linear-gradient(135deg, #12101a 0%, #1a1825 40%, #0e0c14 80%, #181520 100%),
    radial-gradient(ellipse at 30% 60%, #25203a 0%, transparent 70%);
}
.scn-trunk-deception-plot .chamber-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a1622 0%, #0f0d16 100%);
}
.scn-trunk-deception-plot .trunk-body {
  position: absolute; bottom: 6%; left: 50%; width: 90px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8% 8% 5% 5%;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
}
.scn-trunk-deception-plot .trunk-lid {
  position: absolute; bottom: 18%; left: 50%; width: 92px; height: 18px;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: bottom right;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: td-lid 10s ease-in-out infinite;
}
.scn-trunk-deception-plot .figure-crouch {
  position: absolute; bottom: 8%; left: 50%; width: 50px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1f30 0%, #120c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: td-crouch 5s ease-in-out infinite alternate;
}
.scn-trunk-deception-plot .candle {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c09050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 4px rgba(255,200,100,.6);
}
.scn-trunk-deception-plot .candle-glow {
  position: absolute; bottom: 38%; left: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,100,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: td-glow 2s ease-in-out infinite alternate;
}
.scn-trunk-deception-plot .shadow-on-wall {
  position: absolute; bottom: 0; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #1a1622 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  opacity: .6;
  animation: td-shadow 8s ease-in-out infinite alternate;
}
.scn-trunk-deception-plot .keyhole-light {
  position: absolute; bottom: 28%; left: 52%; width: 4px; height: 6px;
  background: rgba(255,220,150,.5);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,.3);
  animation: td-keyhole 3s ease-in-out infinite;
}
@keyframes td-lid {
  0% { transform: translateX(-50%) rotate(5deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(5deg); }
}
@keyframes td-crouch {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes td-glow {
  0% { opacity: .5; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.3); }
}
@keyframes td-shadow {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(0.9); }
}
@keyframes td-keyhole {
  0% { opacity: .4; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}

/* ---------------- scene: cloten-mockery-and-threats (tag: cm) ---------------- */
.scn-cloten-mockery-and-threats {
  background:
    linear-gradient(135deg, #3a2e22 0%, #4a3a28 30%, #5a4a32 60%, #2a1e12 100%),
    radial-gradient(ellipse at 60% 40%, #6a5a42 0%, transparent 60%);
}
.scn-cloten-mockery-and-threats .hall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
}
.scn-cloten-mockery-and-threats .table {
  position: absolute; bottom: 12%; left: 50%; width: 180px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
  animation: cm-table 8s ease-in-out infinite;
}
.scn-cloten-mockery-and-threats .figure-cloten {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cm-cloten 2s ease-in-out infinite alternate;
}
.scn-cloten-mockery-and-threats .figure-lord-left {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: cm-lord-l 3s ease-in-out infinite alternate;
}
.scn-cloten-mockery-and-threats .figure-lord-right {
  position: absolute; bottom: 10%; right: 22%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #5a3a6a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: cm-lord-r 3.5s ease-in-out infinite alternate;
}
.scn-cloten-mockery-and-threats .wine-cup {
  position: absolute; bottom: 20%; left: 45%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #b08050 0%, #6a4a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: cm-cup 5s ease-in-out infinite;
}
.scn-cloten-mockery-and-threats .spilled-wine {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #702243 0%, transparent 100%);
  border-radius: 50%;
  opacity: .6;
  animation: cm-wine 7s ease-in-out infinite alternate;
}
.scn-cloten-mockery-and-threats .shadow-mock {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
}
@keyframes cm-table {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes cm-cloten {
  0% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(-4px); }
}
@keyframes cm-lord-l {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes cm-lord-r {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes cm-cup {
  0% { transform: rotate(0); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(0); }
}
@keyframes cm-wine {
  0% { transform: translateX(0); opacity: .3; }
  100% { transform: translateX(10px); opacity: .7; }
}

/* garden-palace-discussion – tense, sunlit */
.scn-garden-palace-discussion {
  background: linear-gradient(180deg, #d4e0f0 0%, #f0e8c0 40%, #c0b080 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 70%);
}
.scn-garden-palace-discussion .sky { position:absolute; inset:0; background: linear-gradient(180deg, #b8d0e8 0%, #d8dcc0 100%); animation: gpd-sky 12s ease-in-out infinite alternate; }
.scn-garden-palace-discussion .sun { position:absolute; top:8%; left:65%; width:80px; height:80px; background: radial-gradient(circle, #ffecb0 0%, #f0c880 60%, transparent 80%); border-radius:50%; animation: gpd-sun 8s ease-in-out infinite; }
.scn-garden-palace-discussion .palace-col { position:absolute; top:0; left:30%; width:40px; height:100%; background: linear-gradient(180deg, #a89878 0%, #887860 40%, #706050 100%); border-radius:4px; box-shadow: 6px 0 12px rgba(0,0,0,.2); animation: gpd-col 15s ease-in-out infinite; }
.scn-garden-palace-discussion .garden-bush { position:absolute; bottom:20%; left:10%; width:180px; height:60px; background: radial-gradient(ellipse at 30% 50%, #4a6a3a 0%, #2a4a2a 100%); border-radius:50%; filter: blur(2px); animation: gpd-bush 9s ease-in-out infinite alternate; }
.scn-garden-palace-discussion .figure-left { position:absolute; bottom:28%; left:22%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gpd-fig-l 5s ease-in-out infinite; }
.scn-garden-palace-discussion .figure-right { position:absolute; bottom:28%; left:38%; width:20px; height:48px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gpd-fig-r 5s ease-in-out infinite 0.3s; }
.scn-garden-palace-discussion .path { position:absolute; bottom:18%; left:0; right:0; height:12%; background: linear-gradient(180deg, #b8a880 0%, #988860 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: gpd-path 20s linear infinite; }
.scn-garden-palace-discussion .shadow-leaf { position:absolute; top:20%; left:40%; width:30px; height:30px; background: radial-gradient(circle at 40% 30%, rgba(0,0,0,.15) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: gpd-leaf 7s ease-in-out infinite; }
@keyframes gpd-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gpd-sun { 0%,100% { transform: translate(0,0) scale(1); box-shadow: 0 0 40px 20px #f0c880; } 50% { transform: translate(3px,-3px) scale(1.05); box-shadow: 0 0 60px 30px #f0d090; } }
@keyframes gpd-col { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } }
@keyframes gpd-bush { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gpd-fig-l { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } }
@keyframes gpd-fig-r { 0%,100% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(-7px) rotate(1deg); } 75% { transform: translateX(-11px) rotate(-1deg); } }
@keyframes gpd-path { 0% { background-position: 0 0; } 100% { background-position: 50px 0; } }
@keyframes gpd-leaf { 0% { transform: translate(0,0) rotate(0deg); opacity:0.5; } 50% { transform: translate(10px,5px) rotate(20deg); opacity:0.8; } 100% { transform: translate(0,0) rotate(0deg); opacity:0.5; } }

/* posthumus-noble-lineage – calm, dim-interior */
.scn-posthumus-noble-lineage {
  background: linear-gradient(180deg, #2c2a24 0%, #3a342c 40%, #4a4238 100%), radial-gradient(ellipse at 40% 60%, #5a4e3a 0%, transparent 70%);
}
.scn-posthumus-noble-lineage .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a3228 0%, #4a3e32 50%, #3a3228 100%); animation: pnl-wall 20s ease-in-out infinite; }
.scn-posthumus-noble-lineage .window-dull { position:absolute; top:12%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #5a6a5a 0%, #2a3a2a 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: pnl-win 12s ease-in-out infinite alternate; }
.scn-posthumus-noble-lineage .bookshelf { position:absolute; left:8%; top:15%; width:90px; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: pnl-shelf 8s ease-in-out infinite; }
.scn-posthumus-noble-lineage .desk { position:absolute; bottom:18%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: pnl-desk 6s ease-in-out infinite; }
.scn-posthumus-noble-lineage .candle { position:absolute; bottom:28%; left:42%; width:8px; height:16px; background: linear-gradient(180deg, #e8d8a0 0%, #b8a070 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px #d0b880, 0 0 24px 8px rgba(208,184,128,.3); animation: pnl-candle 4s ease-in-out infinite; }
.scn-posthumus-noble-lineage .figure-young { position:absolute; bottom:16%; left:36%; width:22px; height:56px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pnl-fig 5s ease-in-out infinite; }
.scn-posthumus-noble-lineage .scroll { position:absolute; bottom:20%; left:48%; width:30px; height:10px; background: linear-gradient(180deg, #c8b890 0%, #a89878 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-10deg); animation: pnl-scroll 7s ease-in-out infinite; }
@keyframes pnl-wall { 0%,100% { background-size: 100% 100%; } 50% { background-size: 102% 102%; } }
@keyframes pnl-win { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes pnl-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pnl-desk { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } }
@keyframes pnl-candle { 0%,100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 12px 4px #d0b880; } 50% { transform: scaleY(1.05) rotate(2deg); box-shadow: 0 0 18px 6px #e8d8a0; } }
@keyframes pnl-fig { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes pnl-scroll { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } }

/* queen-dissembling-courtesy – tense, dim-interior */
.scn-queen-dissembling-courtesy {
  background: linear-gradient(180deg, #1a1816 0%, #2a2420 40%, #3a3028 100%), radial-gradient(ellipse at 50% 60%, #4a3a2e 0%, transparent 70%);
}
.scn-queen-dissembling-courtesy .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a221e 0%, #3a2e26 50%, #2a221e 100%); animation: qdc-wall 15s ease-in-out infinite; }
.scn-queen-dissembling-courtesy .fireplace { position:absolute; bottom:20%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-queen-dissembling-courtesy .fire-glow { position:absolute; bottom:36%; left:35%; right:35%; height:20%; background: radial-gradient(ellipse at 50% 0%, #e08040 0%, #a06030 40%, transparent 80%); border-radius:50%; filter: blur(8px); animation: qdc-glow 3s ease-in-out infinite alternate; }
.scn-queen-dissembling-courtesy .queen-sil { position:absolute; right:20%; bottom:14%; width:28px; height:70px; background: linear-gradient(180deg, #2a2824 0%, #1a1816 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qdc-queen 6s ease-in-out infinite; }
.scn-queen-dissembling-courtesy .imogen-sil { position:absolute; left:22%; bottom:14%; width:22px; height:60px; background: linear-gradient(180deg, #2a2824 0%, #1a1816 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: qdc-imogen 5s ease-in-out infinite 0.2s; }
.scn-queen-dissembling-courtesy .posthumus-sil { position:absolute; left:42%; bottom:16%; width:24px; height:64px; background: linear-gradient(180deg, #2a2824 0%, #1a1816 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qdc-posth 5s ease-in-out infinite 0.7s; }
.scn-queen-dissembling-courtesy .table-letter { position:absolute; bottom:22%; left:38%; width:40px; height:6px; background: linear-gradient(180deg, #c8b090 0%, #a88870 100%); border-radius: 2px; transform: rotate(-5deg); animation: qdc-letter 8s ease-in-out infinite; }
.scn-queen-dissembling-courtesy .veil { position:absolute; top:30%; right:25%; width:40px; height:60px; background: linear-gradient(180deg, rgba(200,180,160,0.2) 0%, rgba(180,160,140,0.1) 100%); filter: blur(3px); border-radius: 40% 40% 20% 20%; animation: qdc-veil 10s ease-in-out infinite; }
@keyframes qdc-wall { 0%,100% { background-size: 100% 100%; } 50% { background-size: 103% 103%; } }
@keyframes qdc-glow { 0% { opacity:0.3; box-shadow: 0 0 20px 10px #e08040; } 100% { opacity:0.7; box-shadow: 0 0 40px 20px #d07030; } }
@keyframes qdc-queen { 0%,100% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(2deg); } }
@keyframes qdc-imogen { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-1px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } }
@keyframes qdc-posth { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes qdc-letter { 0%,100% { transform: rotate(-5deg) translateX(0); opacity:0.6; } 50% { transform: rotate(-3deg) translateX(2px); opacity:1; } }
@keyframes qdc-veil { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } }

/* farewell-and-wrath – tense, dim-interior */
.scn-farewell-and-wrath {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #3a2822 100%), radial-gradient(ellipse at 50% 50%, #4a3228 0%, transparent 70%);
}
.scn-farewell-and-wrath .dark-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1a1410 100%); animation: faw-wall 14s ease-in-out infinite; }
.scn-farewell-and-wrath .doorway { position:absolute; top:20%; left:60%; width:60px; height:80%; background: linear-gradient(180deg, #0a0806 0%, #1a140e 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: faw-door 12s ease-in-out infinite; }
.scn-farewell-and-wrath .embrace-left { position:absolute; left:25%; bottom:20%; width:24px; height:62px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: faw-embrace-l 4s ease-in-out infinite; }
.scn-farewell-and-wrath .embrace-right { position:absolute; left:38%; bottom:20%; width:24px; height:66px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: faw-embrace-r 4s ease-in-out infinite 0.15s; }
.scn-farewell-and-wrath .king-sil { position:absolute; right:15%; bottom:18%; width:30px; height:72px; background: linear-gradient(180deg, #2a2824 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: faw-king 5s ease-in-out infinite 0.8s; }
.scn-farewell-and-wrath .torn-scroll { position:absolute; bottom:26%; left:32%; width:36px; height:8px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 2px; transform: rotate(15deg); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); animation: faw-scroll 6s ease-in-out infinite; }
.scn-farewell-and-wrath .shadow-bolt { position:absolute; top:10%; left:50%; width:4px; height:80px; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0) 100%); transform: rotate(20deg); filter: blur(3px); animation: faw-bolt 9s ease-in-out infinite; }
@keyframes faw-wall { 0%,100% { background-size: 100% 100%; } 50% { background-size: 104% 104%; } }
@keyframes faw-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }
@keyframes faw-embrace-l { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-3deg); } }
@keyframes faw-embrace-r { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4px) rotate(3deg); } }
@keyframes faw-king { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes faw-scroll { 0%,100% { transform: rotate(15deg) translateX(0); opacity:0.7; } 50% { transform: rotate(18deg) translateX(-2px); opacity:1; } }
@keyframes faw-bolt { 0%,100% { transform: rotate(20deg) scaleY(1); opacity:0.2; } 50% { transform: rotate(25deg) scaleY(1.1); opacity:0.5; } }

/* Scene 1: cymbeline-mourns-war-approaches */
.scn-cymbeline-mourns-war-approaches {
  background: 
    linear-gradient(180deg, #1a1520 0%, #2a1e2a 40%, #3a2a3a 100%),
    radial-gradient(ellipse at 50% 20%, #2a1e2a 30%, transparent 70%);
}
.scn-cymbeline-mourns-war-approaches .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a1e2a 0%, #3a2a3a 50%, #1a1520 100%);
  opacity: 0.6;
  animation: cmw-wall 12s ease-in-out infinite alternate;
}
.scn-cymbeline-mourns-war-approaches .window {
  position: absolute; top: 10%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1e2a 100%);
  border: 3px solid #3a2a3a; border-radius: 4px;
  box-shadow: inset 0 0 30px #6a5a6a;
  animation: cmw-window 8s ease-in-out infinite alternate;
}
.scn-cymbeline-mourns-war-approaches .throne {
  position: absolute; bottom: 15%; left: 35%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cmw-throne 6s ease-in-out infinite;
}
.scn-cymbeline-mourns-war-approaches .king {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmw-king 4s ease-in-out infinite;
}
.scn-cymbeline-mourns-war-approaches .pisanio {
  position: absolute; bottom: 18%; right: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cmw-pisanio 5s ease-in-out infinite alternate;
}
.scn-cymbeline-mourns-war-approaches .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cmw-table 7s ease-in-out infinite;
}
.scn-cymbeline-mourns-war-approaches .map {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cmw-map 10s ease-in-out infinite alternate;
}
.scn-cymbeline-mourns-war-approaches .shadow-figure {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: cmw-shadow 9s ease-in-out infinite;
}
@keyframes cmw-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes cmw-window { 0% { box-shadow: inset 0 0 20px #6a5a6a; } 50% { box-shadow: inset 0 0 40px #8a7a8a; } 100% { box-shadow: inset 0 0 25px #6a5a6a; } }
@keyframes cmw-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cmw-king { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(0,-2px) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-1deg); } }
@keyframes cmw-pisanio { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cmw-table { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cmw-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-7deg) scale(0.98); } }
@keyframes cmw-shadow { 0%,100% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(8px); opacity: 0.5; } }

/* Scene 2: posthumus-disguised-fights */
.scn-posthumus-disguised-fights {
  background: 
    linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 40%, #2a3a3a 100%),
    radial-gradient(ellipse at 30% 40%, #4a5a5a 20%, transparent 60%);
}
.scn-posthumus-disguised-fights .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 50%, transparent 100%);
  animation: pdf-sky 15s ease-in-out infinite alternate;
}
.scn-posthumus-disguised-fights .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: pdf-ground 10s ease-in-out infinite alternate;
}
.scn-posthumus-disguised-fights .posthumus {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pdf-posthumus 1.6s ease-in-out infinite;
}
.scn-posthumus-disguised-fights .roman {
  position: absolute; bottom: 25%; right: 35%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pdf-roman 2.4s ease-in-out infinite;
}
.scn-posthumus-disguised-fights .briton {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pdf-briton 1.8s ease-in-out infinite;
}
.scn-posthumus-disguised-fights .shield {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  transform: rotate(10deg);
  animation: pdf-shield 1.8s ease-in-out infinite alternate;
}
.scn-posthumus-disguised-fights .spear {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: pdf-spear 2s ease-in-out infinite;
}
.scn-posthumus-disguised-fights .dust {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(90,100,80,0.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: pdf-dust 3s ease-in-out infinite alternate;
}
@keyframes pdf-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes pdf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pdf-posthumus { 0%,100% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(4px) rotate(3deg) scale(1.05); } 50% { transform: translateX(-2px) rotate(-2deg) scale(0.95); } 75% { transform: translateX(6px) rotate(4deg) scale(1.02); } }
@keyframes pdf-roman { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(1deg); } }
@keyframes pdf-briton { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5px) rotate(3deg); } 80% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes pdf-shield { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(8deg) scale(0.95); } }
@keyframes pdf-spear { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-20deg); } }
@keyframes pdf-dust { 0% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.5; transform: translateY(-5px) scale(1.2); } 100% { opacity: 0.3; transform: translateY(-2px) scale(0.9); } }

/* Scene 3: posthumus-vision-jupiter */
.scn-posthumus-vision-jupiter {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 30%, #2a3a5a 10%, transparent 60%);
}
.scn-posthumus-vision-jupiter .prison-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 18px, #1a1a2a 18px, #1a1a2a 20px);
  opacity: 0.5;
  animation: pvj-bars 20s linear infinite;
}
.scn-posthumus-vision-jupiter .moonlight {
  position: absolute; top: 0; left: 20%; bottom: 0; width: 40%;
  background: linear-gradient(180deg, rgba(100,140,200,0.1) 0%, rgba(100,140,200,0.05) 50%, transparent 100%);
  filter: blur(8px);
  animation: pvj-moonlight 12s ease-in-out infinite alternate;
}
.scn-posthumus-vision-jupiter .family-group {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 40%, rgba(200,200,255,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: pvj-family 8s ease-in-out infinite alternate;
}
.scn-posthumus-vision-jupiter .jupiter-eagle {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,230,200,0.6) 0%, transparent 60%),
              radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.4) 0%, transparent 50%);
  border-radius: 50%;
  animation: pvj-eagle 15s ease-in-out infinite alternate;
}
.scn-posthumus-vision-jupiter .book {
  position: absolute; bottom: 5%; left: 45%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(200,180,100,0.5);
  animation: pvj-book 6s ease-in-out infinite;
}
.scn-posthumus-vision-jupiter .glow-orb {
  position: absolute; top: 30%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, rgba(255,220,180,0.2) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pvj-glow 4s ease-in-out infinite alternate;
}
.scn-posthumus-vision-jupiter .sparkle {
  position: absolute; top: 15%; left: 50%; width: 6px; height: 6px;
  background: rgba(255,240,200,0.9);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(255,240,200,0.7);
  animation: pvj-sparkle 3s ease-in-out infinite;
}
@keyframes pvj-bars { 0% { transform: translateY(0); } 100% { transform: translateY(20px); } }
@keyframes pvj-moonlight { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes pvj-family { 0%,100% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-5px) scale(1.05); opacity: 0.8; } }
@keyframes pvj-eagle { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-8px) scale(1.1); opacity: 0.8; } 100% { transform: translateY(3px) scale(0.95); opacity: 0.6; } }
@keyframes pvj-book { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes pvj-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.4); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }
@keyframes pvj-sparkle { 0%,100% { opacity: 0.2; } 50% { opacity: 1; } }

/* Scene 4: cymbeline-grants-boon-to-fidele */
.scn-cymbeline-grants-boon-to-fidele {
  background: 
    linear-gradient(180deg, #d4c8b0 0%, #c0b098 30%, #a09078 100%),
    radial-gradient(ellipse at 50% 0%, #e8dcc4 20%, transparent 60%);
}
.scn-cymbeline-grants-boon-to-fidele .window-light {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: cgb-window 10s ease-in-out infinite alternate;
}
.scn-cymbeline-grants-boon-to-fidele .court-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a890 0%, #c8b8a0 50%, #a89880 100%);
  opacity: 0.5;
  animation: cgb-wall 15s ease-in-out infinite alternate;
}
.scn-cymbeline-grants-boon-to-fidele .throne {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10px 10px 5px 5px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: cgb-throne 6s ease-in-out infinite;
}
.scn-cymbeline-grants-boon-to-fidele .king {
  position: absolute; bottom: 25%; left: 33%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cgb-king 4s ease-in-out infinite alternate;
}
.scn-cymbeline-grants-boon-to-fidele .fidele {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cgb-fidele 5s ease-in-out infinite alternate;
}
.scn-cymbeline-grants-boon-to-fidele .courtier {
  position: absolute; bottom: 20%; left: 60%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cgb-courtier 7s ease-in-out infinite;
}
.scn-cymbeline-grants-boon-to-fidele .boon-glow {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,220,150,0.8) 0%, transparent 70%);
  filter: blur(8px);
  animation: cgb-boon 3s ease-in-out infinite alternate;
}
.scn-cymbeline-grants-boon-to-fidele .step {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cgb-step 8s ease-in-out infinite;
}
@keyframes cgb-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes cgb-wall { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes cgb-throne { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cgb-king { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes cgb-fidele { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes cgb-courtier { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cgb-boon { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes cgb-step { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }

.scn-cloten-pursues-posthumus-clothes {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e16 0%, transparent 70%);
}
.scn-cloten-pursues-posthumus-clothes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2818, #4a3228, #3a2818);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: clot-wall 12s ease-in-out infinite alternate;
}
.scn-cloten-pursues-posthumus-clothes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12, #1f1410);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.8);
}
.scn-cloten-pursues-posthumus-clothes .mirror {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 0 12px rgba(100,80,60,0.4);
  animation: clot-mirror 6s ease-in-out infinite alternate;
}
.scn-cloten-pursues-posthumus-clothes .mannequin {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1e12);
  border-radius: 20% 20% 12% 12% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: clot-mannequin 10s ease-in-out infinite;
}
.scn-cloten-pursues-posthumus-clothes .garment {
  position: absolute; bottom: 34%; left: 34%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #6a5038, #3a2a1a);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: clot-garment 8s ease-in-out infinite alternate;
}
.scn-cloten-pursues-posthumus-clothes .candle {
  position: absolute; bottom: 20%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c8a070, #8a6030);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 8px #d09050, 0 0 48px 16px rgba(200,144,80,0.4);
  animation: clot-candle 3s ease-in-out infinite alternate;
}
.scn-cloten-pursues-posthumus-clothes .figure {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1410, #0d0a08);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: clot-figure 5s ease-in-out infinite;
}
.scn-cloten-pursues-posthumus-clothes .shadow-figure {
  position: absolute; bottom: 28%; left: 70%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6), rgba(0,0,0,0.3));
  border-radius: 50% 50% 40% 40%;
  filter: blur(6px);
  animation: clot-shadow 7s ease-in-out infinite alternate;
}
@keyframes clot-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes clot-mirror {
  0% { transform: rotate(-2deg); box-shadow: 0 0 8px rgba(100,80,60,0.3); }
  100% { transform: rotate(2deg); box-shadow: 0 0 16px rgba(100,80,60,0.6); }
}
@keyframes clot-mannequin {
  0%,100% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
}
@keyframes clot-garment {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.95; }
}
@keyframes clot-candle {
  0% { box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,144,80,0.3); }
  50% { box-shadow: 0 0 32px 10px #f0b070, 0 0 60px 20px rgba(240,176,112,0.5); }
  100% { box-shadow: 0 0 24px 8px #d09050, 0 0 48px 16px rgba(200,144,80,0.35); }
}
@keyframes clot-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes clot-shadow {
  0% { transform: translateX(-5px) scale(0.95); opacity: 0.4; }
  100% { transform: translateX(5px) scale(1.05); opacity: 0.6; }
}

.scn-imogen-at-cave-welcome {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 30%, #f5e6c8 60%, #d4b878 100%),
    radial-gradient(ellipse at 30% 20%, #f5e6c8 0%, transparent 60%);
}
.scn-imogen-at-cave-welcome .cave-wall {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%);
  border-radius: 0 40% 60% 0 / 0 30% 50% 0;
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.3);
  animation: imc-wall 14s ease-in-out infinite alternate;
}
.scn-imogen-at-cave-welcome .cave-depth {
  position: absolute; inset: 0 0 0 60%;
  background: linear-gradient(90deg, #4a3a2a, #2a1e18);
  border-radius: 30% 0 0 50% / 50% 0 0 20%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: imc-depth 12s ease-in-out infinite alternate;
}
.scn-imogen-at-cave-welcome .sun-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4), rgba(255,240,200,0.1) 60%, transparent);
  filter: blur(8px);
  animation: imc-beam 8s ease-in-out infinite alternate;
}
.scn-imogen-at-cave-welcome .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a5a, #6a5a3a);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-imogen-at-cave-welcome .imogen-figure {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: imc-imogen 6s ease-in-out infinite;
}
.scn-imogen-at-cave-welcome .brother-left {
  position: absolute; bottom: 25%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a, #2a1e12);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: imc-brother-l 8s ease-in-out infinite alternate;
}
.scn-imogen-at-cave-welcome .brother-right {
  position: absolute; bottom: 25%; left: 48%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: imc-brother-r 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-imogen-at-cave-welcome .offering-bowl {
  position: absolute; bottom: 30%; left: 34%; width: 12px; height: 8px;
  background: radial-gradient(ellipse, #c8a060, #8a6a30);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: imc-bowl 4s ease-in-out infinite alternate;
}
@keyframes imc-wall {
  0% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes imc-depth {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1.02); }
}
@keyframes imc-beam {
  0% { opacity: 0.6; transform: translateX(-5px) scaleY(0.95); }
  50% { opacity: 1; transform: translateX(0) scaleY(1.05); }
  100% { opacity: 0.7; transform: translateX(5px) scaleY(0.98); }
}
@keyframes imc-imogen {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes imc-brother-l {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(2px) rotate(2deg); }
}
@keyframes imc-brother-r {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes imc-bowl {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-2px) scale(1.05); }
}

.scn-cloten-lost-and-encounter {
  background:
    linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 40%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a7a6a 0%, transparent 60%);
}
.scn-cloten-lost-and-encounter .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  animation: clol-sky 20s ease-in-out infinite alternate;
}
.scn-cloten-lost-and-encounter .distant-trees {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a, #2a3a2a);
  border-radius: 30% 40% 0 0;
  filter: blur(3px);
  animation: clol-trees 25s ease-in-out infinite alternate;
}
.scn-cloten-lost-and-encounter .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a2a, #1a2a1a);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-cloten-lost-and-encounter .cloten-figure {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 40% 40% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: clol-cloten 4s ease-in-out infinite;
}
.scn-cloten-lost-and-encounter .guiderius-figure {
  position: absolute; bottom: 30%; left: 50%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #2a2a2a, #1a1a1a);
  border-radius: 40% 40% 35% 35% / 55% 55% 30% 30%;
  animation: clol-guide 4.5s ease-in-out infinite alternate;
}
.scn-cloten-lost-and-encounter .sword-clash {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #c8b060 0%, transparent 70%);
  filter: blur(4px);
  animation: clol-clash 1.6s ease-in-out infinite;
}
.scn-cloten-lost-and-encounter .mud-spatter {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 50%;
  filter: blur(5px);
  opacity: 0.6;
  animation: clol-mud 6s ease-in-out infinite alternate;
}
@keyframes clol-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes clol-trees {
  0% { transform: translateX(-10px); }
  100% { transform: translateX(10px); }
}
@keyframes clol-cloten {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes clol-guide {
  0% { transform: translateX(0) rotate(1deg); }
  100% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes clol-clash {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes clol-mud {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(6px) scale(0.9); }
}

.scn-imogen-deathlike-sleep {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-imogen-deathlike-sleep .forest-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a, #1a1208);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}
.scn-imogen-deathlike-sleep .body-imogen {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a, #2a1a1a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: imd-imogen 6s ease-in-out infinite alternate;
}
.scn-imogen-deathlike-sleep .body-cloten {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 45px;
  background: linear-gradient(180deg, #3a2a2a, #1a0a0a);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: imd-cloten 8s ease-in-out infinite alternate;
}
.scn-imogen-deathlike-sleep .mourn-brother-left {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: imd-mourn-l 5s ease-in-out infinite;
}
.scn-imogen-deathlike-sleep .mourn-brother-right {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: imd-mourn-r 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-imogen-deathlike-sleep .funeral-cloth {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 8px;
  background: linear-gradient(90deg, #4a3a3a, #6a5a5a, #4a3a3a);
  border-radius: 20%;
  filter: blur(2px);
  animation: imd-cloth 10s ease-in-out infinite alternate;
}
.scn-imogen-deathlike-sleep .lantern-glow {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b08050 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(176,128,80,0.5), 0 0 80px 24px rgba(176,128,80,0.2);
  animation: imd-lantern 4s ease-in-out infinite alternate;
}
@keyframes imd-imogen {
  0% { transform: rotate(-5deg) translateY(0); opacity: 0.9; }
  100% { transform: rotate(-6deg) translateY(-2px); opacity: 1; }
}
@keyframes imd-cloten {
  0% { transform: rotate(10deg) translateY(0); opacity: 0.8; }
  100% { transform: rotate(11deg) translateY(-3px); opacity: 0.9; }
}
@keyframes imd-mourn-l {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-4px) rotate(0); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes imd-mourn-r {
  0% { transform: translateY(0) rotate(3deg); }
  100% { transform: translateY(-5px) rotate(-2deg); }
}
@keyframes imd-cloth {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.8); }
}
@keyframes imd-lantern {
  0% { box-shadow: 0 0 30px 8px rgba(176,128,80,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 50px 16px rgba(176,128,80,0.7); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(176,128,80,0.5); opacity: 0.8; }
}

/* Scene: posthumus-rage-and-letter (prl) */
.scn-posthumus-rage-and-letter {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%), radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, transparent 70%);
}
.scn-posthumus-rage-and-letter .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a26 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-posthumus-rage-and-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1c1c28 0%, #0e0e18 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-posthumus-rage-and-letter .table {
  position: absolute; bottom: 27%; left: 40%; width: 90px; height: 18px;
  background: linear-gradient(180deg, #3c2a1e 0%, #1c120a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: prl-table 6s ease-in-out infinite alternate;
}
.scn-posthumus-rage-and-letter .letter {
  position: absolute; bottom: 31%; left: 43%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #d4b896 0%, #b8966c 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: prl-letter 3s ease-in-out infinite alternate;
}
.scn-posthumus-rage-and-letter .posthumus {
  position: absolute; bottom: 22%; left: 32%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prl-rage 1.5s ease-in-out infinite;
}
.scn-posthumus-rage-and-letter .iachimo {
  position: absolute; bottom: 22%; right: 34%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0c0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prl-retreat 4s ease-in-out infinite alternate;
}
.scn-posthumus-rage-and-letter .candle {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #c08040 60%, transparent 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 4px #c08040, 0 0 40px 10px rgba(192,128,64,.3);
  animation: prl-flicker 2s ease-in-out infinite alternate;
}
.scn-posthumus-rage-and-letter .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: prl-shadow 7s ease-in-out infinite alternate;
}
@keyframes prl-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes prl-letter {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(8deg) scale(1.05); }
  100% { transform: rotate(4deg) scale(1); }
}
@keyframes prl-rage {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-4deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes prl-retreat {
  0% { transform: translateX(0) scaleX(1); opacity: .9; }
  50% { transform: translateX(5px) scaleX(.95); opacity: .8; }
  100% { transform: translateX(10px) scaleX(.9); opacity: .7; }
}
@keyframes prl-flicker {
  0% { box-shadow: 0 0 15px 2px #c08040; opacity: .8; }
  50% { box-shadow: 0 0 25px 6px #e0a060; opacity: 1; }
  100% { box-shadow: 0 0 18px 3px #c08040; opacity: .85; }
}
@keyframes prl-shadow {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}

/* Scene: tribute-refused-war (trw) */
.scn-tribute-refused-war {
  background: linear-gradient(180deg, #b0c4ff 0%, #d4af37 60%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-tribute-refused-war .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d0ff 0%, #b8c8f0 40%, transparent 100%);
}
.scn-tribute-refused-war .column-left, .scn-tribute-refused-war .column-right {
  position: absolute; bottom: 20%; width: 18px; height: 100px;
  background: linear-gradient(180deg, #f5f5f0 0%, #d4d4c8 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,.2);
}
.scn-tribute-refused-war .column-left { left: 15%; }
.scn-tribute-refused-war .column-right { right: 15%; }
.scn-tribute-refused-war .throne {
  position: absolute; bottom: 25%; left: 40%; width: 70px; height: 60px;
  background: linear-gradient(135deg, #d4af37 0%, #b3842b 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-tribute-refused-war .cymbeline {
  position: absolute; bottom: 32%; left: 42%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1c1a1e 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.5);
  animation: trw-seat 9s ease-in-out infinite alternate;
}
.scn-tribute-refused-war .cloten {
  position: absolute; bottom: 20%; left: 25%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 40% 40% 50% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: trw-step-fwd 4s ease-in-out infinite;
}
.scn-tribute-refused-war .lucius {
  position: absolute; bottom: 20%; right: 28%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trw-step-bck 5s ease-in-out infinite;
}
.scn-tribute-refused-war .banner {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #c8553d 0%, #a04530 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: trw-sway 3s ease-in-out infinite alternate;
}
.scn-tribute-refused-war .shadow-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,.15) 0%, transparent 40%, rgba(0,0,0,.1) 100%);
  animation: trw-shadow 8s ease-in-out infinite alternate;
}
@keyframes trw-seat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes trw-step-fwd {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(2deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(18px) rotate(1deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes trw-step-bck {
  0% { transform: translateX(0); opacity: 1; }
  50% { transform: translateX(-8px); opacity: .9; }
  100% { transform: translateX(-16px); opacity: .8; }
}
@keyframes trw-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes trw-shadow {
  0% { opacity: .3; }
  50% { opacity: .5; }
  100% { opacity: .2; }
}

/* Scene: cave-family-in-wales (cfw) */
.scn-cave-family-in-wales {
  background: linear-gradient(180deg, #c8a882 0%, #a07850 70%), radial-gradient(ellipse at 30% 30%, #eed8b0 0%, transparent 60%);
}
.scn-cave-family-in-wales .cave-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #a07850 0%, #7a5a3a 100%);
  border-radius: 40% 20% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
}
.scn-cave-family-in-wales .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-cave-family-in-wales .belarius {
  position: absolute; bottom: 10%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfw-sit 8s ease-in-out infinite alternate;
}
.scn-cave-family-in-wales .son-left {
  position: absolute; bottom: 10%; left: 28%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfw-fidget 5s ease-in-out infinite;
}
.scn-cave-family-in-wales .son-right {
  position: absolute; bottom: 10%; right: 28%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfw-fidget 5s ease-in-out infinite reverse;
  animation-delay: 1s;
}
.scn-cave-family-in-wales .imogen {
  position: absolute; bottom: 10%; right: 40%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfw-arrive 6s ease-in-out infinite alternate;
}
.scn-cave-family-in-wales .entrance-light {
  position: absolute; top: 5%; right: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffffd0 0%, #eed8b0 40%, transparent 100%);
  filter: blur(8px);
  animation: cfw-light 12s ease-in-out infinite alternate;
}
.scn-cave-family-in-wales .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(240,220,180,.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,220,180,.3);
  animation: cfw-float 18s linear infinite;
}
@keyframes cfw-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cfw-fidget {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cfw-arrive {
  0% { transform: translateX(30px) scaleX(.95); opacity: .6; }
  50% { transform: translateX(0) scaleX(1); opacity: 1; }
  100% { transform: translateX(-5px) scaleX(1); opacity: .9; }
}
@keyframes cfw-light {
  0% { opacity: .7; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .8; transform: scale(1); }
}
@keyframes cfw-float {
  0% { transform: translate(0, 0); opacity: .6; }
  25% { transform: translate(10px, -15px); opacity: .8; }
  50% { transform: translate(20px, -30px); opacity: .4; }
  75% { transform: translate(30px, -45px); opacity: .6; }
  100% { transform: translate(40px, -60px); opacity: 0; }
}

/* Scene: pisanio-gives-box (pgp) */
.scn-pisanio-gives-box {
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 70%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 60%);
}
.scn-pisanio-gives-box .overcast-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%);
}
.scn-pisanio-gives-box .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-pisanio-gives-box .imogen-figure {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgp-tremble 3s ease-in-out infinite alternate;
}
.scn-pisanio-gives-box .pisanio-figure {
  position: absolute; bottom: 20%; left: 52%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgp-hand 4s ease-in-out infinite alternate;
}
.scn-pisanio-gives-box .box {
  position: absolute; bottom: 32%; left: 47%; width: 20px; height: 16px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pgp-pulse 2s ease-in-out infinite alternate;
}
.scn-pisanio-gives-box .tree {
  position: absolute; bottom: 25%; left: 10%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-pisanio-gives-box .cloud-a {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 16px;
  background: radial-gradient(ellipse, rgba(180,190,200,.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: pgp-drift 40s linear infinite;
}
.scn-pisanio-gives-box .cloud-b {
  position: absolute; top: 18%; right: 30%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(180,190,200,.4) 0%, transparent 100%);
  filter: blur(5px);
  animation: pgp-drift 50s linear infinite reverse;
}
@keyframes pgp-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(3deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pgp-hand {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-4px) scaleX(.95); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes pgp-pulse {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(5deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes pgp-drift {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(-30px); }
}
/* end per-scene blocks */
