/* 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-hippolyte-arrives { background: linear-gradient(180deg, #f5e8c8 0%, #d4c4a0 30%, #b0a080 60%, #8a7a5a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-hippolyte-arrives .ha-room { position: absolute; inset: 0; background: linear-gradient(135deg, #e8dccc 0%, #c4b8a4 100%); z-index: 0; }
.scn-hippolyte-arrives .ha-wall-left { position: absolute; left: 0; top: 0; bottom: 0; width: 30%; background: linear-gradient(90deg, #8a7a5a 0%, #c4b8a4 100%); border-right: 2px solid #6a5a3a; z-index: 1; }
.scn-hippolyte-arrives .ha-doorway { position: absolute; bottom: 25%; left: 15%; width: 20%; height: 50%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); z-index: 1; }
.scn-hippolyte-arrives .ha-window { position: absolute; right: 10%; top: 15%; width: 25%; height: 40%; background: linear-gradient(135deg, #a0d8ef 0%, #c0e8f8 50%, #e0f0ff 100%); border: 4px solid #6a5a3a; border-radius: 4px; background-size: 200% 100%; animation: ha-sky 30s linear infinite; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); z-index: 1; }
.scn-hippolyte-arrives .ha-chandelier { position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 20%; height: 10%; background: radial-gradient(circle, #ffd700 0%, #b8860b 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px #b8860b; z-index: 2; animation: ha-chandelier-sway 6s ease-in-out infinite alternate; }
.scn-hippolyte-arrives .ha-figure-in { position: absolute; bottom: 25%; left: 18%; width: 8%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index: 2; animation: ha-walk 8s ease-in-out infinite; }
.scn-hippolyte-arrives .ha-figure-seat { position: absolute; bottom: 25%; right: 30%; width: 10%; height: 35%; background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; z-index: 1; animation: ha-seat-breathing 5s ease-in-out infinite; }
@keyframes ha-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes ha-chandelier-sway { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(4deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ha-walk { 0% { transform: translateX(-100%) translateY(0) rotate(0deg); } 30% { transform: translateX(0) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20%) translateY(0) rotate(0deg); } 70% { transform: translateX(20%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20%) translateY(0) rotate(0deg); } }
@keyframes ha-seat-breathing { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }

/* vauxhall-incident */

.scn-portrait-arrangement {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e32 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5e 0%, transparent 70%);
}
.scn-portrait-arrangement .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2a40 0%, #1a1a30 100%); animation: pa-wall 20s ease-in-out infinite alternate; }
.scn-portrait-arrangement .desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-portrait-arrangement .portrait-frame { position:absolute; bottom:40%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); border: 2px solid #4a3a2a; }
.scn-portrait-arrangement .portrait-glow { position:absolute; bottom:42%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #b08040 50%, transparent 80%); border-radius: 2px; animation: pa-glow 3s ease-in-out infinite alternate; }
.scn-portrait-arrangement .figure-shadow { position:absolute; bottom:28%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, rgba(20,20,30,.8) 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pa-figure 6s ease-in-out infinite; }
.scn-portrait-arrangement .candle-light { position:absolute; bottom:10%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #ffd680 0%, #c08040 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,214,128,.5); animation: pa-candle 2s ease-in-out infinite alternate; }
@keyframes pa-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pa-glow { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:.8 } 50% { box-shadow: 0 0 40px 12px #f0c068; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08040; opacity:.85 } }
@keyframes pa-figure { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(-3px) rotate(6deg) } 50% { transform: translateX(0) rotate(4deg) } 75% { transform: translateX(3px) rotate(6deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes pa-candle { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(.95); opacity:.8 } }

.scn-gania-anxiety {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e32 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 60%);
}
.scn-gania-anxiety .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-gania-anxiety .back-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a1a30 0%, #2a2a40 50%, #1a1a30 100%); animation: ga-wall 12s ease-in-out infinite alternate; }
.scn-gania-anxiety .figure-gania { position:absolute; bottom:18%; left:50%; width:30px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ga-figure 3s ease-in-out infinite; }
.scn-gania-anxiety .letter { position:absolute; bottom:30%; left:55%; width:20px; height:16px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ga-letter 4s ease-in-out infinite; }
.scn-gania-anxiety .shadow-gania { position:absolute; bottom:0; left:40%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: ga-shadow 5s ease-in-out infinite; }
.scn-gania-anxiety .lamp-light { position:absolute; top:10%; left:20%; width:10px; height:10px; background: #ffd680; border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,214,128,.4); animation: ga-lamp 6s ease-in-out infinite alternate; }
@keyframes ga-wall { 0% { background-position:0 0 } 50% { background-position:10% 0 } 100% { background-position:0 0 } }
@keyframes ga-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(-1px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes ga-letter { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ga-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes ga-lamp { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-general-defends-nastasia {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e32 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 60%);
}
.scn-general-defends-nastasia .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #2a2a4e 0%, #1a1a2e 80%); animation: gd-bg 15s ease-in-out infinite alternate; }
.scn-general-defends-nastasia .bg-mid { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border-radius: 30% 30% 0 0; opacity:.4; }
.scn-general-defends-nastasia .figure-general { position:absolute; bottom:20%; left:45%; width:40px; height:120px; background: linear-gradient(180deg, #3a3a5e 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: gd-figure 6s ease-in-out infinite; }
.scn-general-defends-nastasia .hand-raised { position:absolute; bottom:50%; left:50%; width:12px; height:20px; background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-30deg); transform-origin: bottom center; animation: gd-hand 4s ease-in-out infinite alternate; }
.scn-general-defends-nastasia .shadow-general { position:absolute; bottom:0; left:35%; width:100px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: gd-shadow 8s ease-in-out infinite; }
.scn-general-defends-nastasia .room-corner { position:absolute; top:0; right:0; width:30%; height:40%; background: linear-gradient(135deg, transparent 40%, #2a2a3e 100%); border-radius: 0 0 0 50%; }
@keyframes gd-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gd-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gd-hand { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-40deg) } 100% { transform: rotate(-30deg) } }
@keyframes gd-shadow { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-prince-sees-portrait {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a1a0a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-prince-sees-portrait .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #5a4a2a 0%, #1a1a0a 80%); animation: ps-bg 10s ease-in-out infinite alternate; }
.scn-prince-sees-portrait .table { position:absolute; bottom:0; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-prince-sees-portrait .portrait-on-table { position:absolute; bottom:20%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); border: 2px solid #5a4a3a; animation: ps-portrait 8s ease-in-out infinite; }
.scn-prince-sees-portrait .prince-silhouette { position:absolute; bottom:18%; left:30%; width:35px; height:100px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ps-prince 6s ease-in-out infinite; }
.scn-prince-sees-portrait .glow-portrait { position:absolute; bottom:22%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #c08040 50%, transparent 80%); border-radius: 2px; animation: ps-glow 4s ease-in-out infinite alternate; }
.scn-prince-sees-portrait .shadow-prince { position:absolute; bottom:0; left:25%; width:70px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); }
@keyframes ps-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ps-portrait { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ps-prince { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(-5deg) translateY(0) } 75% { transform: rotate(-7deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ps-glow { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:.8 } 50% { box-shadow: 0 0 50px 18px #f0c068; opacity:1 } 100% { box-shadow: 0 0 30px 10px #c08040; opacity:.85 } }

/* lizaveta-final – cellar scene with sunlit window, prince figure, mouse, and dust motes */
.scn-lizaveta-final { background: linear-gradient(135deg, #5c3a1a 0%, #2e1a0a 40%, #1a0e05 100%), radial-gradient(ellipse at 30% 20%, #c89450 0%, transparent 60%); }
.scn-lizaveta-final .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8b7355 0%, #5c4a32 50%, #3a2a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-lizaveta-final .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-lizaveta-final .window { position:absolute; top:12%; left:20%; width:80px; height:60px; background: linear-gradient(135deg, #e8d0a0 0%, #c8a870 100%); border-radius:4%; border:6px solid #3a2a1a; box-shadow: 0 0 30px 10px rgba(200,168,112,.4), inset 0 0 20px rgba(255,220,160,.6); animation: lz-glow 4s ease-in-out infinite alternate; }
.scn-lizaveta-final .light-beam { position:absolute; top:18%; left:24%; width:200px; height:300px; background: linear-gradient(135deg, rgba(255,220,160,.25) 0%, rgba(255,200,120,0) 100%); transform: skewX(-20deg) rotate(5deg); filter: blur(8px); animation: lz-beam 6s ease-in-out infinite alternate; }
.scn-lizaveta-final .figure { position:absolute; bottom:30%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: lz-figure 5s ease-in-out infinite; }
.scn-lizaveta-final .mouse { position:absolute; bottom:28%; left:35%; width:14px; height:8px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40%; animation: lz-mouse 3s ease-in-out infinite; }
.scn-lizaveta-final .dust-1, .scn-lizaveta-final .dust-2, .scn-lizaveta-final .dust-3 { position:absolute; width:4px; height:4px; background: rgba(255,220,160,.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,220,160,.3); filter: blur(1px); }
.scn-lizaveta-final .dust-1 { top:25%; left:28%; animation: lz-dust 7s ease-in-out infinite; }
.scn-lizaveta-final .dust-2 { top:20%; left:32%; animation: lz-dust 9s ease-in-out infinite 2s; }
.scn-lizaveta-final .dust-3 { top:30%; left:26%; animation: lz-dust 8s ease-in-out infinite 4s; }
@keyframes lz-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,168,112,.3), inset 0 0 10px rgba(255,220,160,.4); opacity:.9 } 50% { box-shadow: 0 0 40px 15px rgba(200,168,112,.5), inset 0 0 25px rgba(255,220,160,.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(200,168,112,.35), inset 0 0 15px rgba(255,220,160,.5); opacity:.95 } }
@keyframes lz-beam { 0% { transform: skewX(-20deg) rotate(5deg) scaleX(1); opacity:.6 } 50% { transform: skewX(-18deg) rotate(6deg) scaleX(1.05); opacity:.8 } 100% { transform: skewX(-22deg) rotate(4deg) scaleX(0.95); opacity:.7 } }
@keyframes lz-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes lz-mouse { 0% { transform: translateX(0) } 25% { transform: translateX(8px) } 50% { transform: translateX(0) scaleX(-1) } 75% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes lz-dust { 0% { transform: translate(0, 0) scale(1); opacity:.3 } 50% { transform: translate(10px, -20px) scale(1.5); opacity:.7 } 100% { transform: translate(20px, -40px) scale(0.8); opacity:0 } }

/* farewell – outdoor farewell scene with lady and Evgenie under sunlit sky, trees, and clouds */
.scn-farewell { background: linear-gradient(180deg, #8fc8e8 0%, #b0d8f0 30%, #e8d8a0 70%, #c8a870 100%), radial-gradient(ellipse at 50% 100%, #e8d8a0 0%, transparent 70%); }
.scn-farewell .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d4f0 0%, #c8e4f8 60%, #e8d8a0 100%); animation: fa-sky 12s ease-in-out infinite alternate; }
.scn-farewell .horizon { position:absolute; bottom:40%; left:0; right:0; height:4%; background: linear-gradient(180deg, #d0c080 0%, #b8a060 100%); border-radius: 0; }
.scn-farewell .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8aa86a 0%, #5a7a4a 50%, #3a5a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: fa-ground 8s ease-in-out infinite alternate; }
.scn-farewell .tree-left { position:absolute; bottom:30%; left:8%; width:40px; height:140px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform-origin: bottom center; animation: fa-tree 6s ease-in-out infinite; }
.scn-farewell .tree-right { position:absolute; bottom:32%; right:12%; width:50px; height:160px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform-origin: bottom center; animation: fa-tree 8s ease-in-out infinite 2s; }
.scn-farewell .figure-lady { position:absolute; bottom:22%; left:40%; width:28px; height:60px; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: fa-lady 4s ease-in-out infinite; }
.scn-farewell .figure-evgenie { position:absolute; bottom:22%; left:52%; width:30px; height:65px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: fa-evgenie 4.5s ease-in-out infinite 1s; }
.scn-farewell .cloud-fa-1 { position:absolute; top:12%; left:15%; width:90px; height:22px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius:50%; filter: blur(8px); animation: fa-cloud1 40s linear infinite; }
.scn-farewell .cloud-fa-2 { position:absolute; top:20%; right:10%; width:70px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: fa-cloud2 50s linear infinite reverse; }
@keyframes fa-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fa-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fa-tree { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes fa-lady { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-1px) rotate(2deg) } }
@keyframes fa-evgenie { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(3deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes fa-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes fa-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* vera-brings-dinner – dim interior tense */
.scn-vera-brings-dinner {
  background: linear-gradient(180deg, #2a1e18 0%, #1f1612 40%, #0f0b09 100%),
              radial-gradient(ellipse at 30% 40%, #3d2b20 0%, transparent 60%);
}
.scn-vera-brings-dinner .dark-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1310 0%, #0d0a08 100%); }
.scn-vera-brings-dinner .table { position:absolute; bottom:8%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a3428 0%, #2f221a 100%); border-radius: 2px; box-shadow: inset 0 2px 6px rgba(0,0,0,.6); }
.scn-vera-brings-dinner .plate { position:absolute; bottom:14%; left:48%; width:16%; height:8%; background: radial-gradient(ellipse, #6b5040 0%, #4d3628 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(180,120,80,.15); }
.scn-vera-brings-dinner .lamp-glow { position:absolute; top:22%; left:38%; width:12%; height:20%; background: radial-gradient(ellipse, rgba(230,180,120,.5) 0%, rgba(180,130,80,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: vbd-glow 4s ease-in-out infinite alternate; }
.scn-vera-brings-dinner .vera-figure { position:absolute; bottom:8%; left:22%; width:14%; height:40%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 50%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: vbd-walk 6s ease-in-out infinite; }
.scn-vera-brings-dinner .vera-arm { position:absolute; bottom:24%; left:34%; width:6%; height:14%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-20deg); transform-origin: top center; animation: vbd-arm 4s ease-in-out infinite alternate; }
.scn-vera-brings-dinner .steam { position:absolute; bottom:22%; left:50%; width:8%; height:12%; background: radial-gradient(ellipse, rgba(220,180,140,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: vbd-steam 5s ease-in-out infinite; }
@keyframes vbd-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.05); } 100% { opacity:.7; transform: scale(.95); } }
@keyframes vbd-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(4%) translateY(-2%) rotate(0deg); } 60% { transform: translateX(8%) translateY(0) rotate(1deg); } 100% { transform: translateX(12%) translateY(-1%) rotate(-1deg); } }
@keyframes vbd-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes vbd-steam { 0% { opacity:.2; transform: translateY(0) scale(1); } 50% { opacity:.6; transform: translateY(-10%) scale(1.2); } 100% { opacity:.1; transform: translateY(-20%) scale(.8); } }

/* aglaya-arrives – dusk exterior tense */
.scn-aglaya-arrives {
  background: linear-gradient(180deg, #1a2238 0%, #2a3050 40%, #4a5070 70%, #6a7090 100%),
              radial-gradient(ellipse at 60% 30%, #4a5580 0%, transparent 50%);
}
.scn-aglaya-arrives .dusk-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2238 0%, #3a4868 100%); animation: aa-sky 12s ease-in-out infinite alternate; }
.scn-aglaya-arrives .horizon { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5070 0%, #2a3050 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; }
.scn-aglaya-arrives .doorway { position:absolute; bottom:25%; left:30%; width:20%; height:45%; background: #161c2a; border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-aglaya-arrives .aglaya-silhouette { position:absolute; bottom:25%; left:33%; width:14%; height:40%; background: linear-gradient(180deg, #0e121c 0%, #0a0c14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: aa-sway 6s ease-in-out infinite; }
.scn-aglaya-arrives .mantle { position:absolute; bottom:28%; left:31%; width:18%; height:30%; background: linear-gradient(180deg, #1a1f2a 0%, #0e121c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); }
.scn-aglaya-arrives .eyes-fire { position:absolute; bottom:42%; left:38%; width:4%; height:4%; background: radial-gradient(circle, #ffaa55 0%, #cc7733 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,170,85,.6); animation: aa-eyes 3s ease-in-out infinite alternate; }
.scn-aglaya-arrives .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1f2a 0%, #0e121c 100%); }
@keyframes aa-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes aa-sway { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(2%) rotate(1deg); } 60% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aa-eyes { 0% { opacity:.6; transform: scale(1); box-shadow: 0 0 15px 4px rgba(255,170,85,.5); } 50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 30px 10px rgba(255,170,85,.8); } 100% { opacity:.7; transform: scale(.9); box-shadow: 0 0 20px 6px rgba(255,170,85,.6); } }

/* aglaya-commands – dusk interior tense */
.scn-aglaya-commands {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 60%);
}
.scn-aglaya-commands .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 100%); }
.scn-aglaya-commands .window-dusk { position:absolute; top:10%; right:10%; width:20%; height:35%; background: linear-gradient(180deg, #3a4868 0%, #1a2238 100%); border-radius: 2px; border: 2px solid #4a4a5a; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-aglaya-commands .aglaya-figure { position:absolute; bottom:10%; left:30%; width:15%; height:50%; background: linear-gradient(180deg, #0e121c 0%, #0a0c14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ac-up 4s ease-in-out infinite; }
.scn-aglaya-commands .extended-arm { position:absolute; bottom:25%; left:42%; width:4%; height:20%; background: linear-gradient(180deg, #0e121c 0%, #0a0c14 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-30deg); transform-origin: top center; animation: ac-arm 3s ease-in-out infinite alternate; }
.scn-aglaya-commands .prince-silhouette { position:absolute; bottom:10%; right:20%; width:14%; height:45%; background: linear-gradient(180deg, #1a1f2a 0%, #0e121c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ac-recoil 5s ease-in-out infinite; }
.scn-aglaya-commands .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); }
.scn-aglaya-commands .tension-spark { position:absolute; bottom:45%; left:38%; width:2%; height:2%; background: radial-gradient(circle, #ffaa55 0%, #cc7733 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,170,85,.5); animation: ac-spark 2s ease-in-out infinite alternate; }
@keyframes ac-up { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3%) rotate(1deg); } 100% { transform: translateY(1%) rotate(-1deg); } }
@keyframes ac-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-35deg); } }
@keyframes ac-recoil { 0% { transform: translateX(0); } 30% { transform: translateX(-5%); } 60% { transform: translateX(2%); } 100% { transform: translateX(0); } }
@keyframes ac-spark { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.9; transform: scale(1.5); } 100% { opacity:.4; transform: scale(.8); } }

/* prince-follows – dusk street tense */
.scn-prince-follows {
  background: linear-gradient(180deg, #1a2238 0%, #2a3050 40%, #3a4868 100%),
              radial-gradient(ellipse at 30% 70%, #4a5580 0%, transparent 50%);
}
.scn-prince-follows .street-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2238 0%, #3a4868 100%); }
.scn-prince-follows .wall-left { position:absolute; top:20%; left:5%; width:10%; height:70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: 2px 0 10px rgba(0,0,0,.5); }
.scn-prince-follows .lamppost { position:absolute; bottom:30%; left:25%; width:4%; height:35%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 2px; }
.scn-prince-follows .aglaya-moving { position:absolute; bottom:20%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #0e121c 0%, #0a0c14 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pf-walk-a 8s ease-in-out infinite; }
.scn-prince-follows .prince-following { position:absolute; bottom:20%; left:55%; width:13%; height:38%; background: linear-gradient(180deg, #1a1f2a 0%, #0e121c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pf-walk-b 8s ease-in-out infinite 0.5s; }
.scn-prince-follows .shadow-long { position:absolute; bottom:0; left:30%; width:50%; height:12%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; transform: skewX(-20deg); animation: pf-shadow 8s ease-in-out infinite; }
.scn-prince-follows .dust-motes { position:absolute; top:10%; left:20%; width:60%; height:40%; background: radial-gradient(circle at 20% 30%, rgba(200,200,220,.1) 0%, transparent 30%), radial-gradient(circle at 80% 60%, rgba(200,200,220,.1) 0%, transparent 40%); animation: pf-dust 12s linear infinite; }
@keyframes pf-walk-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(10%) translateY(0) rotate(-1deg); } 75% { transform: translateX(15%) translateY(-1%) rotate(0deg); } 100% { transform: translateX(20%) translateY(0) rotate(1deg); } }
@keyframes pf-walk-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4%) translateY(-1%) rotate(-1deg); } 50% { transform: translateX(8%) translateY(0) rotate(1deg); } 75% { transform: translateX(12%) translateY(-2%) rotate(0deg); } 100% { transform: translateX(16%) translateY(0) rotate(-1deg); } }
@keyframes pf-shadow { 0% { opacity:.3; transform: skewX(-20deg) scaleX(1); } 50% { opacity:.6; transform: skewX(-20deg) scaleX(.9); } 100% { opacity:.4; transform: skewX(-20deg) scaleX(1.05); } }
@keyframes pf-dust { 0% { opacity:.1; transform: translateY(0); } 50% { opacity:.2; transform: translateY(-5%); } 100% { opacity:.1; transform: translateY(0); } }

.scn-epanchin-news { background: linear-gradient(180deg, #a0a8a0 0%, #808880 30%, #606860 100%), radial-gradient(ellipse at 50% 100%, #606860 0%, transparent 60%); }
.scn-epanchin-news .desk { position:absolute; bottom:10%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #6b5b4a 0%, #4a3a2a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: en-desk 20s ease-in-out infinite; }
.scn-epanchin-news .letter { position:absolute; bottom:16%; left:30%; width:30%; height:14%; background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%); border-radius:2px; transform:rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.15); animation: en-letter 12s ease-in-out infinite alternate; }
.scn-epanchin-news .inkwell { position:absolute; bottom:18%; left:65%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-epanchin-news .pen { position:absolute; bottom:22%; left:68%; width:6px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:50% 50% 0 0; transform:rotate(-30deg); transform-origin: bottom left; animation: en-pen 4s ease-in-out infinite alternate; }
.scn-epanchin-news .window { position:absolute; top:8%; left:25%; width:50%; height:40%; background: linear-gradient(180deg, #b0b8b0 0%, #909890 40%, #707870 100%); border:4px solid #4a4a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: en-window 30s ease-in-out infinite alternate; }
.scn-epanchin-news .curtain-left { position:absolute; top:8%; left:25%; width:10%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 40% 40% 0; filter: drop-shadow(2px 0 4px rgba(0,0,0,.2)); animation: en-curtain 25s ease-in-out infinite alternate; }
.scn-epanchin-news .curtain-right { position:absolute; top:8%; right:25%; width:10%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 0 0 40%; filter: drop-shadow(-2px 0 4px rgba(0,0,0,.2)); animation: en-curtain 25s ease-in-out infinite alternate-reverse; }
@keyframes en-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes en-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes en-pen { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-10deg); } }
@keyframes en-window { 0% { opacity:0.8; filter: blur(1px); } 50% { opacity:0.9; filter: blur(0px); } 100% { opacity:0.7; filter: blur(1px); } }
@keyframes en-curtain { 0% { width:10%; } 50% { width:12%; } 100% { width:10%; } }

.scn-aglaya-marriage { background: linear-gradient(180deg, #707870 0%, #585e58 50%, #404440 100%), radial-gradient(ellipse at 50% 0%, #808880 0%, transparent 60%); }
.scn-aglaya-marriage .window-arch { position:absolute; top:5%; left:20%; width:60%; height:60%; background: linear-gradient(180deg, #909890 0%, #707870 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; border:4px solid #4a4a4a; box-shadow: inset 0 0 30px rgba(0,0,0,.2); animation: am-window 20s ease-in-out infinite alternate; }
.scn-aglaya-marriage .couple-left { position:absolute; bottom:20%; left:30%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-10%); animation: am-fig-left 6s ease-in-out infinite; }
.scn-aglaya-marriage .couple-right { position:absolute; bottom:20%; right:30%; width:22%; height:52%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(10%); animation: am-fig-right 6s ease-in-out infinite; }
.scn-aglaya-marriage .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:0 0 20% 20%; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); }
.scn-aglaya-marriage .column-left { position:absolute; bottom:20%; left:15%; width:4%; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6px; box-shadow: inset -2px 0 6px rgba(0,0,0,.2); }
.scn-aglaya-marriage .column-right { position:absolute; bottom:20%; right:15%; width:4%; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6px; box-shadow: inset 2px 0 6px rgba(0,0,0,.2); }
@keyframes am-window { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.7; } }
@keyframes am-fig-left { 0%,100% { transform: translateX(-10%) rotate(0deg); } 50% { transform: translateX(-8%) rotate(2deg); } }
@keyframes am-fig-right { 0%,100% { transform: translateX(10%) rotate(0deg); } 50% { transform: translateX(8%) rotate(-2deg); } }

.scn-aglaya-fanaticism { background: linear-gradient(180deg, #585e58 0%, #404440 50%, #282c28 100%), radial-gradient(ellipse at 50% 100%, #404440 0%, transparent 70%); }
.scn-aglaya-fanaticism .room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #505850 0%, #303430 100%); border-radius:0 0 30% 30%/ 0 0 20% 20%; }
.scn-aglaya-fanaticism .table { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-aglaya-fanaticism .figure { position:absolute; bottom:30%; left:25%; width:20%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); animation: af-figure 8s ease-in-out infinite; }
.scn-aglaya-fanaticism .priest { position:absolute; bottom:30%; right:20%; width:18%; height:45%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: af-priest 10s ease-in-out infinite; }
.scn-aglaya-fanaticism .candle { position:absolute; bottom:35%; left:45%; width:4px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius:2px; box-shadow: 0 0 10px 2px #c0a060; animation: af-candle 4s ease-in-out infinite alternate; }
.scn-aglaya-fanaticism .glow { position:absolute; bottom:32%; left:42%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(192,160,96,.3) 0%, transparent 70%); pointer-events:none; animation: af-glow 5s ease-in-out infinite alternate; }
@keyframes af-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(3deg); } }
@keyframes af-priest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes af-candle { 0% { transform: scaleY(1); opacity:0.9; } 100% { transform: scaleY(1.1); opacity:1; } }
@keyframes af-glow { 0% { opacity:0.5; filter: blur(2px); } 100% { opacity:0.8; filter: blur(4px); } }

.scn-family-quarrel { background: linear-gradient(180deg, #787878 0%, #585858 40%, #383838 100%), radial-gradient(ellipse at 50% 50%, #606060 0%, transparent 80%); }
.scn-family-quarrel .interior { position:absolute; inset:0; background: linear-gradient(135deg, #4a4a4a 0%, #3a3a3a 50%, #2a2a2a 100%); border-radius:0 0 10% 10%; }
.scn-family-quarrel .figure-left { position:absolute; bottom:15%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: scaleX(-1); animation: fq-left 6s ease-in-out infinite; }
.scn-family-quarrel .figure-right { position:absolute; bottom:15%; right:20%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: fq-right 6s ease-in-out infinite; }
.scn-family-quarrel .door { position:absolute; bottom:0; right:5%; width:20%; height:90%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; border:2px solid #4a3a2a; box-shadow: inset 2px 0 8px rgba(0,0,0,.3); }
.scn-family-quarrel .chair { position:absolute; bottom:10%; left:45%; width:15%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; transform: rotate(5deg); animation: fq-chair 12s ease-in-out infinite alternate; }
.scn-family-quarrel .rug { position:absolute; bottom:0; left:10%; width:80%; height:15%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 70%, #3a2a1a 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; opacity:0.8; animation: fq-rug 20s ease-in-out infinite; }
@keyframes fq-left { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes fq-right { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fq-chair { 0% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes fq-rug { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene: hippolyte-leaves */
.scn-hippolyte-leaves {
  background: 
    linear-gradient(180deg, #1a1423 0%, #2c1e2d 30%, #3a253a 60%, #1e141f 100%),
    radial-gradient(ellipse at 30% 70%, #4a2a3a 0%, transparent 60%);
}
.scn-hippolyte-leaves .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e2f 0%, #1c1422 100%); }
.scn-hippolyte-leaves .door { position:absolute; left:15%; bottom:0; width:30%; height:100%; background: linear-gradient(90deg, #3c2a28 0%, #2a1a18 30%, #1c1010 100%); border-radius: 0 0 20% 20% / 0 0 5% 5%; box-shadow: inset -10px 0 20px rgba(0,0,0,0.6); }
.scn-hippolyte-leaves .figure { position:absolute; left:30%; bottom:15%; width:16%; height:50%; background: linear-gradient(180deg, #1a1218 0%, #0d080a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: hl-walk 5s ease-in-out infinite; }
.scn-hippolyte-leaves .lamp { position:absolute; right:20%; bottom:25%; width:8%; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 50% 50% 10% 10%; }
.scn-hippolyte-leaves .glow { position:absolute; right:18%; bottom:30%; width:14%; height:18%; background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, rgba(200,160,100,0.1) 60%, transparent 100%); filter: blur(8px); animation: hl-glow 3s ease-in-out infinite alternate; }
.scn-hippolyte-leaves .shadow { position:absolute; left:20%; bottom:0; width:40%; height:12%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%); }
.scn-hippolyte-leaves .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1e20 0%, #1a1214 100%); }
@keyframes hl-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(20%) rotate(-1deg); } 75% { transform: translateX(30%) translateY(-1%) rotate(2deg); } 100% { transform: translateX(40%) rotate(0deg); } }
@keyframes hl-glow { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.6; transform: scale(0.95); } }

/* Scene: hippolyte-final-warning */
.scn-hippolyte-final-warning {
  background: 
    linear-gradient(135deg, #1e141f 0%, #2a1e2a 40%, #1a121a 100%),
    radial-gradient(ellipse at 60% 40%, #3a2232 0%, transparent 70%);
}
.scn-hippolyte-final-warning .bg { position:absolute; inset:0; background: linear-gradient(180deg, #241c26 0%, #140e14 100%); }
.scn-hippolyte-final-warning .clock { position:absolute; top:10%; right:15%; width:20%; height:20%; border-radius:50%; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 60%, #1a1210 100%); border: 2px solid #4a3a2a; box-shadow: 0 0 20px rgba(0,0,0,0.8); }
.scn-hippolyte-final-warning .hand { position:absolute; top:15%; right:22%; width:2%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); transform-origin: bottom center; border-radius: 50%; animation: hf-hand 4s ease-in-out infinite; }
.scn-hippolyte-final-warning .finger { position:absolute; bottom:20%; left:40%; width:5%; height:20%; background: linear-gradient(180deg, #2a1e20 0%, #1a1214 100%); border-radius: 40% 40% 30% 30% / 20% 20% 60% 60%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(0,0,0,0.6); animation: hf-finger 3s ease-in-out infinite; }
.scn-hippolyte-final-warning .shadow { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 80%); }
.scn-hippolyte-final-warning .desk { position:absolute; bottom:15%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%); border-radius: 5% 5% 0 0; box-shadow: 0 5px 15px rgba(0,0,0,0.7); }
@keyframes hf-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-10deg); } }
@keyframes hf-finger { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(5%); } }

/* Scene: prince-queries-meeting */
.scn-prince-queries-meeting {
  background: 
    linear-gradient(180deg, #1c1422 0%, #2a1e30 40%, #1a1220 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a3e 0%, transparent 70%);
}
.scn-prince-queries-meeting .table { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a3a30 0%, #3a2a22 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.8); }
.scn-prince-queries-meeting .figure-left { position:absolute; left:12%; bottom:20%; width:18%; height:45%; background: linear-gradient(180deg, #1a1418 0%, #0e0a0c 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pq-left 6s ease-in-out infinite; }
.scn-prince-queries-meeting .figure-right { position:absolute; right:12%; bottom:20%; width:18%; height:45%; background: linear-gradient(180deg, #1a1418 0%, #0e0a0c 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pq-right 6s ease-in-out infinite; }
.scn-prince-queries-meeting .candle { position:absolute; bottom:30%; left:46%; width:3%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2e 100%); border-radius: 30% 30% 10% 10%; }
.scn-prince-queries-meeting .flame { position:absolute; bottom:38%; left:47%; width:2%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffb040 50%, transparent 100%); border-radius: 50%; animation: pq-flame 1.5s ease-in-out infinite alternate; }
.scn-prince-queries-meeting .glow { position:absolute; bottom:25%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,0.15) 0%, transparent 80%); filter: blur(10px); animation: pq-glow 4s ease-in-out infinite; }
.scn-prince-queries-meeting .shadow-left { position:absolute; left:8%; bottom:0; width:25%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); }
.scn-prince-queries-meeting .shadow-right { position:absolute; right:8%; bottom:0; width:25%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); }
@keyframes pq-left { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2%); } }
@keyframes pq-right { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2%); } }
@keyframes pq-flame { 0% { transform: scaleY(0.8) scaleX(1); opacity:0.9; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.85) scaleX(1.1); opacity:0.8; } }
@keyframes pq-glow { 0%,100% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } }

/* Scene: prince-argues-impossible */
.scn-prince-argues-impossible {
  background: 
    linear-gradient(180deg, #1a1422 0%, #2c1e30 40%, #1a1220 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a3e 0%, transparent 70%);
}
.scn-prince-argues-impossible .wall { position:absolute; inset:0; background: linear-gradient(135deg, #241e2a 0%, #181220 100%); }
.scn-prince-argues-impossible .window { position:absolute; top:10%; left:10%; width:50%; height:70%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); border: 4px solid #3a2a28; border-radius: 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-prince-argues-impossible .bars { position:absolute; top:10%; left:10%; width:50%; height:70%; background: repeating-linear-gradient(0deg, transparent, transparent 8%, #2a1a18 8%, #2a1a18 10%) , repeating-linear-gradient(90deg, transparent, transparent 8%, #2a1a18 8%, #2a1a18 10%); opacity:0.4; }
.scn-prince-argues-impossible .figure { position:absolute; left:25%; bottom:20%; width:18%; height:50%; background: linear-gradient(180deg, #1a1218 0%, #0e0a0c 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pa-figure 5s ease-in-out infinite; }
.scn-prince-argues-impossible .chair { position:absolute; left:45%; bottom:20%; width:15%; height:30%; background: linear-gradient(180deg, #4a3a30 0%, #3a2a22 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: pa-chair 7s ease-in-out infinite; }
.scn-prince-argues-impossible .curtain { position:absolute; top:10%; left:0; width:12%; height:70%; background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%); border-radius: 0 30% 30% 0; animation: pa-curtain 8s ease-in-out infinite alternate; }
.scn-prince-argues-impossible .shadow { position:absolute; bottom:0; left:20%; right:20%; height:18%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 80%); }
@keyframes pa-figure { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3%); } }
@keyframes pa-chair { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(5%); } }
@keyframes pa-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-5%); } }

.scn-general-inquires-means {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-general-inquires-means .wall-bg { position:absolute; inset:0 0 30% 0; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%); }
.scn-general-inquires-means .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-general-inquires-means .window { position:absolute; top:15%; left:35%; width:40%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border: 4px solid #4a3a2a; border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); }
.scn-general-inquires-means .curtain-left { position:absolute; top:14%; left:33%; width:8%; height:48%; background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 40% 0; animation: gi1-sway 8s ease-in-out infinite; }
.scn-general-inquires-means .curtain-right { position:absolute; top:14%; right:33%; width:8%; height:48%; background: linear-gradient(270deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 0 40%; animation: gi1-sway 8s ease-in-out infinite reverse; }
.scn-general-inquires-means .candle { position:absolute; bottom:35%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 2px; }
.scn-general-inquires-means .candle-glow { position:absolute; bottom:36%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #ffd680 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,214,128,0.5); animation: gi1-flicker 3s ease-in-out infinite alternate; }
.scn-general-inquires-means .figure-seated { position:absolute; bottom:27%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi1-breathe 5s ease-in-out infinite; }
@keyframes gi1-sway { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes gi1-flicker { 0% { opacity:0.7; transform: translateX(-50%) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.8; transform: translateX(-50%) scale(0.95); } }
@keyframes gi1-breathe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

.scn-prince-talents-debate {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 50%), radial-gradient(ellipse at 50% 100%, #e0d0b0 0%, transparent 70%);
}
.scn-prince-talents-debate .wall-sun { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #f5e6c8 0%, #e8d8b0 100%); }
.scn-prince-talents-debate .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.15); }
.scn-prince-talents-debate .window-arch { position:absolute; top:8%; left:30%; width:40%; height:55%; background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); border: 3px solid #c8b080; border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 40px rgba(255,232,192,0.3); }
.scn-prince-talents-debate .table-centre { position:absolute; bottom:20%; left:50%; width:60%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-prince-talents-debate .figure-left { position:absolute; bottom:15%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pt2-talk 6s ease-in-out infinite; }
.scn-prince-talents-debate .figure-right { position:absolute; bottom:15%; right:30%; width:20px; height:48px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pt2-talk 6s ease-in-out infinite 0.5s; }
.scn-prince-talents-debate .chair-left { position:absolute; bottom:14%; left:28%; width:24px; height:28px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4px 4px 0 0; transform: rotate(-5deg); }
.scn-prince-talents-debate .chair-right { position:absolute; bottom:14%; right:28%; width:24px; height:28px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4px 4px 0 0; transform: rotate(5deg); }
@keyframes pt2-talk { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-general-offers-help {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 50%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-general-offers-help .bg-panel { position:absolute; inset:0 10% 20% 10%; background: linear-gradient(180deg, #e8d8b0 0%, #c8b898 100%); border-radius: 8px; box-shadow: 0 0 30px rgba(0,0,0,0.1); }
.scn-general-offers-help .desk { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #b09878 0%, #907058 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-general-offers-help .letter { position:absolute; bottom:28%; left:45%; width:16%; height:12%; background: linear-gradient(135deg, #f5f0e0 0%, #e0d8c0 100%); border: 1px solid #c8b898; border-radius: 2px; transform: rotate(-8deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.15); }
.scn-general-offers-help .inkwell { position:absolute; bottom:27%; left:60%; width:12px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-general-offers-help .hand-general { position:absolute; bottom:25%; left:40%; width:14px; height:18px; background: linear-gradient(180deg, #c8a880 0%, #a88868 100%); border-radius: 50% 50% 20% 20%; transform: rotate(15deg); animation: go3-offer 4s ease-in-out infinite; }
.scn-general-offers-help .hand-prince { position:absolute; bottom:25%; right:42%; width:14px; height:18px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-10deg); animation: go3-accept 4s ease-in-out infinite 0.5s; }
.scn-general-offers-help .shadow-cast { position:absolute; bottom:18%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); border-radius: 50%; }
@keyframes go3-offer { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes go3-accept { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-prince-shows-handwriting {
  background: linear-gradient(180deg, #f5ecd8 0%, #e0d0b0 50%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
}
.scn-prince-shows-handwriting .bg-paper { position:absolute; inset:0 15% 15% 15%; background: linear-gradient(180deg, #f5f0e0 0%, #e8e0d0 100%); border-radius: 12px; box-shadow: 0 0 40px rgba(0,0,0,0.08); }
.scn-prince-shows-handwriting .desk-top { position:absolute; bottom:15%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-prince-shows-handwriting .notebook { position:absolute; bottom:22%; left:35%; width:30%; height:18%; background: linear-gradient(180deg, #fffef0 0%, #f0ecd8 100%); border: 1px solid #d0c8b0; border-radius: 4px; transform: rotate(-2deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.1); }
.scn-prince-shows-handwriting .writing-hand { position:absolute; bottom:20%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b090 0%, #b89878 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; animation: ph4-write 3s ease-in-out infinite; }
.scn-prince-shows-handwriting .pen { position:absolute; bottom:24%; left:52%; width:4px; height:16px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 2px; transform: rotate(20deg); animation: ph4-write 3s ease-in-out infinite reverse; }
.scn-prince-shows-handwriting .inkbottle { position:absolute; bottom:20%; left:68%; width:10px; height:14px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-prince-shows-handwriting .lamp { position:absolute; top:8%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 4px; }
.scn-prince-shows-handwriting .lamp-glow { position:absolute; top:6%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,224,160,0.6) 0%, transparent 70%); border-radius:50%; animation: ph4-lamp 4s ease-in-out infinite alternate; }
@keyframes ph4-write { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 30% { transform: translateX(-48%) rotate(-1deg) translateY(-1px); } 60% { transform: translateX(-52%) rotate(1deg) translateY(0); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } }
@keyframes ph4-lamp { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.6; transform: translateX(-50%) scale(0.9); } }

/* Scene: rogojin-appears - tense, dusk */
.scn-rogojin-appears {
  background:
    linear-gradient(180deg, #2c1a3a 0%, #5a3a4a 40%, #7a5a4a 70%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 90%, #6a4a3a 0%, transparent 60%);
}
.scn-rogojin-appears .sky-dusk { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4a 0%, #6a5a5a 50%, #a08060 100%); animation: ra-sky 20s ease-in-out infinite alternate; }
.scn-rogojin-appears .street { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); }
.scn-rogojin-appears .crowd-left { position:absolute; bottom:20%; left:5%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: ra-crowd 6s ease-in-out infinite; }
.scn-rogojin-appears .crowd-right { position:absolute; bottom:20%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 0 0; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: ra-crowd 7s ease-in-out infinite reverse; }
.scn-rogojin-appears .carriage { position:absolute; bottom:15%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.7); animation: ra-carriage 4s ease-in-out infinite; }
.scn-rogojin-appears .rogojin-figure { position:absolute; bottom:25%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-appear 3s ease-in-out infinite; }
.scn-rogojin-appears .lamp-glow { position:absolute; bottom:40%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #c8a050 0%, #a07030 60%, transparent 100%); box-shadow: 0 0 30px 10px #a07030; animation: ra-lamp 2s ease-in-out infinite alternate; }
@keyframes ra-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ra-crowd { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ra-carriage { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes ra-appear { 0% { opacity:0; transform: scale(0.5) } 30% { opacity:1; transform: scale(1) } 70% { opacity:1; transform: scale(1) } 100% { opacity:0; transform: scale(0.5) } }
@keyframes ra-lamp { 0% { opacity:.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

/* Scene: nastasia-flees-with-rogojin - tense, dusk */
.scn-nastasia-flees-with-rogojin {
  background:
    linear-gradient(180deg, #2a1a3a 0%, #5a3a4a 40%, #7a5a4a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 80%, #6a4a3a 0%, transparent 60%);
}
.scn-nastasia-flees-with-rogojin .sky-dusk { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a2a4a 0%, #6a5a5a 50%, #a08060 100%); animation: nf-sky 25s ease-in-out infinite alternate; }
.scn-nastasia-flees-with-rogojin .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-nastasia-flees-with-rogojin .carriage-moving { position:absolute; bottom:15%; left:40%; width:35%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 12% 12% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.7); animation: nf-carriage 2s ease-in-out infinite; }
.scn-nastasia-flees-with-rogojin .figures-embrace { position:absolute; bottom:25%; left:50%; width:14%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nf-embrace 3s ease-in-out infinite; }
.scn-nastasia-flees-with-rogojin .dust-cloud { position:absolute; bottom:10%; left:35%; width:40%; height:15%; background: rgba(180,150,120,0.3); filter: blur(8px); border-radius: 50%; animation: nf-dust 4s ease-in-out infinite; }
.scn-nastasia-flees-with-rogojin .streetlamp { position:absolute; bottom:40%; left:20%; width:6px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 0 0 6px #c0a060; animation: nf-lamp 3s ease-in-out infinite alternate; }
@keyframes nf-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes nf-carriage { 0% { transform: translateX(-20px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(1deg) } 100% { transform: translateX(-20px) rotate(-2deg) } }
@keyframes nf-embrace { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(15px) rotate(5deg) } 70% { transform: translateX(-5px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nf-dust { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.5) } 100% { opacity:.3; transform: scaleX(1) } }
@keyframes nf-lamp { 0% { box-shadow: 0 0 0 4px #c0a060; opacity:.7 } 100% { box-shadow: 0 0 0 12px #c0a060; opacity:1 } }

/* Scene: pursuit-abandoned - tense, night */
.scn-pursuit-abandoned {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-pursuit-abandoned .sky-night { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); animation: pa-sky 30s ease-in-out infinite; }
.scn-pursuit-abandoned .road-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); }
.scn-pursuit-abandoned .carriage-speeding { position:absolute; bottom:15%; left:60%; width:30%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.8); animation: pa-speed 1.5s ease-in-out infinite; }
.scn-pursuit-abandoned .carriage-stopped { position:absolute; bottom:15%; left:10%; width:30%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.8); animation: pa-stop 4s ease-in-out infinite; }
.scn-pursuit-abandoned .horses { position:absolute; bottom:20%; left:65%; width:15%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%; clip-path: polygon(0 30%, 100% 30%, 80% 100%, 20% 100%); animation: pa-horses 2s ease-in-out infinite; }
.scn-pursuit-abandoned .lamp-dim { position:absolute; bottom:40%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #5a3a1a 0%, transparent 100%); box-shadow: 0 0 20px 8px #3a2a0a; animation: pa-lamp 3s ease-in-out infinite alternate; }
@keyframes pa-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes pa-speed { 0% { transform: translateX(0) } 50% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(0) } }
@keyframes pa-stop { 0% { transform: translateX(0) } 30% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes pa-horses { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-5px) rotate(3deg) } 75% { transform: translateY(3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pa-lamp { 0% { opacity:.4; transform: scale(0.8) } 100% { opacity:.8; transform: scale(1.2) } }

/* Scene: train-station - tense, night */
.scn-train-station {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 80%);
}
.scn-train-station .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); animation: ts-sky 20s ease-in-out infinite; }
.scn-train-station .platform { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); }
.scn-train-station .train-loco { position:absolute; bottom:10%; left:20%; width:50%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-train-station .steam-cloud { position:absolute; bottom:35%; left:25%; width:40%; height:20%; background: rgba(180,180,200,0.15); filter: blur(12px); border-radius: 50%; animation: ts-steam 5s ease-in-out infinite; }
.scn-train-station .rogojin-nastasia { position:absolute; bottom:20%; left:45%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts-figures 4s ease-in-out infinite; }
.scn-train-station .girl-figure { position:absolute; bottom:20%; left:65%; width:8%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ts-girl 6s ease-in-out infinite; }
.scn-train-station .station-lamp { position:absolute; bottom:40%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 60%, transparent 100%); box-shadow: 0 0 40px 15px #4a2a1a; animation: ts-lamp 3s ease-in-out infinite alternate; }
@keyframes ts-sky { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes ts-steam { 0% { transform: translateY(0) scaleX(1); opacity:.3 } 50% { transform: translateY(-10px) scaleX(1.2); opacity:.6 } 100% { transform: translateY(0) scaleX(1); opacity:.3 } }
@keyframes ts-figures { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ts-girl { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(1) } }
@keyframes ts-lamp { 0% { opacity:.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

.scn-prince-thinks-of-rogojin {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-prince-thinks-of-rogojin .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
}
.scn-prince-thinks-of-rogojin .window {
  position: absolute; top: 18%; left: 60%; width: 60px; height: 80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 4px; box-shadow: inset 0 0 20px #0a0a1a;
}
.scn-prince-thinks-of-rogojin .table {
  position: absolute; bottom: 12%; left: 20%; width: 120px; height: 20px; background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%); border-radius: 6px; transform: perspective(200px) rotateX(10deg);
}
.scn-prince-thinks-of-rogojin .chair {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); border-radius: 4px 4px 10px 10px; transform: skewX(-2deg);
}
.scn-prince-thinks-of-rogojin .figure-sit {
  position: absolute; bottom: 16%; left: 32%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ptr-think 4s ease-in-out infinite;
}
.scn-prince-thinks-of-rogojin .candle {
  position: absolute; bottom: 22%; left: 40%; width: 6px; height: 12px; background: linear-gradient(180deg, #f0d080 0%, #b09040 100%); border-radius: 2px; box-shadow: 0 0 16px 4px #f0d080, 0 0 32px 8px rgba(240,208,128,.3); animation: ptr-candle 3s ease-in-out infinite alternate;
}
.scn-prince-thinks-of-rogojin .shadow {
  position: absolute; bottom: 0; left: 20%; width: 100px; height: 40px; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: ptr-shadow 6s ease-in-out infinite;
}
@keyframes ptr-think {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ptr-candle {
  0% { opacity: .8; box-shadow: 0 0 12px 3px #f0d080, 0 0 24px 6px rgba(240,208,128,.2); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px #f0d080, 0 0 40px 12px rgba(240,208,128,.4); }
  100% { opacity: .85; box-shadow: 0 0 14px 4px #f0d080, 0 0 28px 8px rgba(240,208,128,.3); }
}
@keyframes ptr-shadow {
  0%,100% { opacity: .3; transform: scaleX(1); }
  50% { opacity: .5; transform: scaleX(1.05); }
}

.scn-sudden-realization {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a221e 50%, #1a1412 100%),
    radial-gradient(ellipse at 30% 40%, #2a221e 0%, transparent 60%);
}
.scn-sudden-realization .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
}
.scn-sudden-realization .door {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 100px; background: linear-gradient(180deg, #3a2a24 0%, #1a1412 100%); border-radius: 4px; box-shadow: inset 4px 0 10px rgba(0,0,0,.5);
}
.scn-sudden-realization .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
}
.scn-sudden-realization .figure-start {
  position: absolute; bottom: 15%; left: 35%; width: 28px; height: 48px; background: linear-gradient(180deg, #0e0c0a 0%, #050404 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srv-start 2s ease-in-out infinite;
}
.scn-sudden-realization .light-shaft {
  position: absolute; top: 0; left: 35%; width: 80px; height: 100%; background: linear-gradient(90deg, transparent, rgba(200,180,150,.08) 30%, rgba(200,180,150,.12) 70%, transparent); transform: skewX(-20deg); animation: srv-light 5s ease-in-out infinite alternate;
}
.scn-sudden-realization .shadow-hand {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 30px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: srv-hand 3s ease-in-out infinite;
}
@keyframes srv-start {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(5deg); }
  50% { transform: translateX(0) translateY(-6px) rotate(0deg); }
  75% { transform: translateX(-5px) translateY(-3px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes srv-light {
  0% { opacity: .3; }
  100% { opacity: .7; }
}
@keyframes srv-hand {
  0%,100% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-4px); }
}

.scn-prince-rushes-out {
  background:
    linear-gradient(180deg, #14100e 0%, #201a18 40%, #14100e 100%),
    radial-gradient(ellipse at 50% 80%, #201a18 0%, transparent 70%);
}
.scn-prince-rushes-out .passage-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%);
}
.scn-prince-rushes-out .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-prince-rushes-out .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-prince-rushes-out .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0808 0%, #050404 100%); border-radius: 4px; box-shadow: inset 0 0 30px #000;
}
.scn-prince-rushes-out .figure-run {
  position: absolute; bottom: 22%; left: 42%; width: 26px; height: 45px; background: linear-gradient(180deg, #0e0c0a 0%, #050404 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: pro-run 1.5s ease-in-out infinite;
}
.scn-prince-rushes-out .shadow-run {
  position: absolute; bottom: 10%; left: 40%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); transform: skewX(-20deg); animation: pro-shadow-run 1.5s ease-in-out infinite;
}
@keyframes pro-run {
  0% { transform: translateX(0) translateY(0) skewX(-10deg); }
  25% { transform: translateX(10px) translateY(-2px) skewX(-8deg); }
  50% { transform: translateX(20px) translateY(0) skewX(-10deg); }
  75% { transform: translateX(30px) translateY(-2px) skewX(-8deg); }
  100% { transform: translateX(40px) translateY(0) skewX(-10deg); }
}
@keyframes pro-shadow-run {
  0% { opacity: .4; transform: translateX(0) skewX(-20deg); }
  50% { opacity: .2; transform: translateX(20px) skewX(-20deg); }
  100% { opacity: .4; transform: translateX(40px) skewX(-20deg); }
}

.scn-rogojin-leads {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #121026 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 60%);
}
.scn-rogojin-leads .street-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
}
.scn-rogojin-leads .lamp {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 20px; background: linear-gradient(180deg, #c0b080 0%, #807040 100%); border-radius: 2px;
}
.scn-rogojin-leads .lamp.glow {
  box-shadow: 0 0 30px 10px rgba(200,180,120,.3), 0 0 60px 20px rgba(200,180,120,.1); animation: rgl-lamp 4s ease-in-out infinite alternate;
}
.scn-rogojin-leads .prince {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 46px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: rgl-walk 3s ease-in-out infinite;
}
.scn-rogojin-leads .rogojin {
  position: absolute; bottom: 18%; left: 50%; width: 28px; height: 48px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: rgl-walk 3s ease-in-out infinite 1.5s;
}
.scn-rogojin-leads .shadow-lead {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 20px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); transform: skewX(-10deg);
}
.scn-rogojin-leads .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, rgba(20,20,40,.3) 0%, transparent 100%); filter: blur(8px); animation: rgl-mist 10s ease-in-out infinite alternate;
}
@keyframes rgl-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(200,180,120,.2), 0 0 40px 12px rgba(200,180,120,.08); }
  50% { box-shadow: 0 0 40px 14px rgba(200,180,120,.35), 0 0 80px 24px rgba(200,180,120,.15); }
  100% { box-shadow: 0 0 25px 8px rgba(200,180,120,.25), 0 0 50px 16px rgba(200,180,120,.1); }
}
@keyframes rgl-walk {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-5deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(32px) translateY(0) rotate(-5deg); }
}
@keyframes rgl-mist {
  0% { opacity: .4; transform: translateY(0); }
  50% { opacity: .6; transform: translateY(-5px); }
  100% { opacity: .3; transform: translateY(2px); }
}

/* hippolyte-dream - dark mood, dark lighting */
.scn-hippolyte-dream {
  background: linear-gradient(180deg, #0b0e1a 0%, #13182a 40%, #1a2140 100%),
              radial-gradient(ellipse at 30% 50%, #0f1528 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-hippolyte-dream .bed {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 45%;
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1a28 100%);
  border-radius: 10px;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-hippolyte-dream .pillow {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-hippolyte-dream .figure-sleeping {
  position: absolute;
  bottom: 12%;
  left: 35%;
  width: 30%;
  height: 35%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: hd-sleep 8s ease-in-out infinite;
}
.scn-hippolyte-dream .figure-standing {
  position: absolute;
  bottom: 28%;
  right: 15%;
  width: 25%;
  height: 60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hd-stand 12s ease-in-out infinite;
}
.scn-hippolyte-dream .wet-cloth {
  position: absolute;
  bottom: 50%;
  right: 20%;
  width: 30px;
  height: 20px;
  background: radial-gradient(circle at 50% 50%, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.4);
  animation: hd-cloth 5s ease-in-out infinite alternate;
}
.scn-hippolyte-dream .shadow-wall {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
}
@keyframes hd-sleep {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hd-stand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hd-cloth {
  0% { transform: rotate(10deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(20deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(10deg) scale(1); opacity: 0.7; }
}

/* hippolyte-rogojin-dream - dark mood, dark lighting */
.scn-hippolyte-rogojin-dream {
  background: linear-gradient(180deg, #0a0a14 0%, #12122a 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 60%, #0e0e22 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-hippolyte-rogojin-dream .face-silhouette {
  position: absolute;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.5);
  animation: hr-face 6s ease-in-out infinite;
}
.scn-hippolyte-rogojin-dream .hand-cloth {
  position: absolute;
  top: 25%;
  right: 30%;
  width: 40px;
  height: 30px;
  background: radial-gradient(circle, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: hr-hand-cloth 4s ease-in-out infinite alternate;
}
.scn-hippolyte-rogojin-dream .hand-arm {
  position: absolute;
  top: 35%;
  right: 35%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 30% 30%;
  transform: rotate(30deg);
  transform-origin: top center;
  animation: hr-arm 4s ease-in-out infinite alternate;
}
.scn-hippolyte-rogojin-dream .background-dark {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%);
  pointer-events: none;
}
.scn-hippolyte-rogojin-dream .breath-cloud {
  position: absolute;
  top: 25%;
  left: 35%;
  width: 20px;
  height: 10px;
  background: rgba(200,200,220,0.1);
  border-radius: 50%;
  filter: blur(3px);
  animation: hr-breath 3s ease-in-out infinite;
}
@keyframes hr-face {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes hr-hand-cloth {
  0% { transform: rotate(-25deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(5px); }
}
@keyframes hr-arm {
  0% { transform: rotate(25deg); }
  100% { transform: rotate(35deg); }
}
@keyframes hr-breath {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
  100% { opacity: 0.2; transform: scale(1); }
}

/* hippolyte-relates-arrangement - tense mood, dim-interior */
.scn-hippolyte-relates-arrangement {
  background: linear-gradient(180deg, #1c1c1c 0%, #2a2a2a 30%, #3a3a3a 100%),
              radial-gradient(ellipse at 40% 50%, #2e2e2e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-hippolyte-relates-arrangement .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-hippolyte-relates-arrangement .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-hippolyte-relates-arrangement .chair-left {
  position: absolute;
  bottom: 22%;
  left: 15%;
  width: 25%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: hra-chair-left 5s ease-in-out infinite alternate;
}
.scn-hippolyte-relates-arrangement .chair-right {
  position: absolute;
  bottom: 22%;
  right: 15%;
  width: 25%;
  height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: hra-chair-right 5s ease-in-out infinite alternate;
}
.scn-hippolyte-relates-arrangement .letter {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: hra-letter 9s ease-in-out infinite;
}
.scn-hippolyte-relates-arrangement .shadow-figures {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 65%, rgba(0,0,0,0.4) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes hra-chair-left {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(2deg); }
}
@keyframes hra-chair-right {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes hra-letter {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(0); }
}

/* hippolyte-defends - tense mood, dim-interior */
.scn-hippolyte-defends {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a34 40%, #3a3a44 100%),
              radial-gradient(ellipse at 60% 40%, #2a2a34 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-hippolyte-defends .desk {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 5px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.6);
}
.scn-hippolyte-defends .paper-scattered {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 30%;
  height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-15deg);
  animation: hdf-paper 7s ease-in-out infinite alternate;
}
.scn-hippolyte-defends .figure-writing {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hdf-figure 6s ease-in-out infinite;
}
.scn-hippolyte-defends .candle {
  position: absolute;
  bottom: 25%;
  right: 25%;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,180,100,0.3);
  animation: hdf-candle 4s ease-in-out infinite alternate;
}
.scn-hippolyte-defends .inkwell {
  position: absolute;
  bottom: 22%;
  right: 18%;
  width: 20px;
  height: 18px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-hippolyte-defends .shadow-gesture {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 40% 55%, rgba(0,0,0,0.3) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes hdf-paper {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes hdf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hdf-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.8; }
}

/* prince-insists - warm dim interior, tense */
.scn-prince-insists {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #1a120a 100%),
              radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-prince-insists .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #3a2a1a, #2a1e12 60%, #1a120a);
  animation: pi-wall 12s ease-in-out infinite alternate;
}
.scn-prince-insists .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1e12, #1a120a 80%);
}
.scn-prince-insists .table {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a, #2a1e12);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: perspective(200px) rotateX(10deg);
}
.scn-prince-insists .candle {
  position: absolute; bottom: 47%; left: 43%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8c8a0, #a08060);
  border-radius: 2px;
}
.scn-prince-insists .flame-glow {
  position: absolute; bottom: 52%; left: 43%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 30%, transparent 70%);
  border-radius: 50%;
  animation: pi-flame 1.8s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,.3);
}
.scn-prince-insists .figure {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-figure 3s ease-in-out infinite;
}
.scn-prince-insists .shadow {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 8px;
  background: rgba(0,0,0,.5);
  border-radius: 50%; filter: blur(3px);
  animation: pi-shadow 3s ease-in-out infinite;
}
@keyframes pi-wall { 0% { opacity: 1; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes pi-flame { 0% { transform: scale(1) rotate(-2deg); opacity: .9; } 50% { transform: scale(1.15) rotate(2deg); opacity: 1; } 100% { transform: scale(1) rotate(-2deg); opacity: .95; } }
@keyframes pi-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(5px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pi-shadow { 0% { transform: translateX(0) scaleX(1); opacity: .6; } 50% { transform: translateX(6px) scaleX(1.2); opacity: .8; } 100% { transform: translateX(0) scaleX(1); opacity: .6; } }

/* prince-feels-guilty - cool dim interior, dark mood */
.scn-prince-feels-guilty {
  background: linear-gradient(180deg, #121a2a 0%, #1a2238 40%, #0a0e18 100%),
              radial-gradient(ellipse at 70% 60%, #2a3a5a 0%, transparent 70%);
}
.scn-prince-feels-guilty .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(135deg, #1a2238, #121a2a 70%);
}
.scn-prince-feels-guilty .window {
  position: absolute; bottom: 50%; left: 25%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a3a5a, #1a2a4a);
  border: 4px solid #0a0e18; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,150,255,.2);
  animation: pg-window 10s ease-in-out infinite alternate;
}
.scn-prince-feels-guilty .moonlight {
  position: absolute; bottom: 50%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,200,255,.2), transparent 70%);
  filter: blur(10px);
  animation: pg-moonlight 10s ease-in-out infinite alternate;
}
.scn-prince-feels-guilty .desk {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #2a3a4a, #1a2a3a);
  border-radius: 3px; transform: perspective(300px) rotateX(15deg);
}
.scn-prince-feels-guilty .chair {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2238, #0a0e18);
  border-radius: 4px 4px 10px 10px;
}
.scn-prince-feels-guilty .figure {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0a0e18 0%, #05080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-figure 6s ease-in-out infinite;
}
.scn-prince-feels-guilty .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 10px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px);
  animation: pg-shadow 6s ease-in-out infinite;
}
@keyframes pg-window { 0% { box-shadow: inset 0 0 20px rgba(100,150,255,.2); } 50% { box-shadow: inset 0 0 40px rgba(100,150,255,.3); } 100% { box-shadow: inset 0 0 20px rgba(100,150,255,.2); } }
@keyframes pg-moonlight { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes pg-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pg-shadow { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.3); opacity: .8; } 100% { transform: scaleX(1); opacity: .6; } }

/* evgenie-leaves - warm dim, tense departure */
.scn-evgenie-leaves {
  background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 40%, #1a120a 100%),
              radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-evgenie-leaves .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e12, #1a120a);
}
.scn-evgenie-leaves .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a, #2a1e12);
}
.scn-evgenie-leaves .door {
  position: absolute; bottom: 25%; right: 15%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a, #2a1e12);
  border: 2px solid #1a120a; border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
  animation: el-door 8s ease-in-out infinite alternate;
}
.scn-evgenie-leaves .figure-leaving {
  position: absolute; bottom: 22%; right: 20%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: el-leaving 5s ease-in-out infinite;
}
.scn-evgenie-leaves .figure-seated {
  position: absolute; bottom: 23%; left: 35%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: el-seated 6s ease-in-out infinite;
}
.scn-evgenie-leaves .shadow-leaving {
  position: absolute; bottom: 16%; right: 18%; width: 35px; height: 8px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(3px);
  animation: el-shadow-l 5s ease-in-out infinite;
}
.scn-evgenie-leaves .shadow-seated {
  position: absolute; bottom: 17%; left: 33%; width: 40px; height: 8px;
  background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(3px);
  animation: el-shadow-s 6s ease-in-out infinite;
}
@keyframes el-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateX(2px); } 100% { transform: scaleX(1); } }
@keyframes el-leaving { 0% { transform: translateX(0) rotate(0deg) scale(1); } 50% { transform: translateX(-8px) rotate(5deg) scale(0.95); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes el-seated { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes el-shadow-l { 0% { transform: translateX(0) scaleX(1); opacity: .5; } 50% { transform: translateX(-8px) scaleX(0.8); opacity: .7; } 100% { transform: translateX(0) scaleX(1); opacity: .5; } }
@keyframes el-shadow-s { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.2); opacity: .8; } 100% { transform: scaleX(1); opacity: .6; } }

/* prince-asks-to-go - cool dim interior, tense writing */
.scn-prince-asks-to-go {
  background: linear-gradient(180deg, #121a2a 0%, #1a2238 40%, #0a0e18 100%),
              radial-gradient(ellipse at 30% 50%, #2a3a5a 0%, transparent 70%);
}
.scn-prince-asks-to-go .desk {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 14px;
  background: linear-gradient(180deg, #2a3a4a, #1a2a3a);
  border-radius: 4px; transform: perspective(300px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-prince-asks-to-go .paper {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%);
  border-radius: 2px; transform: rotate(-3deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pa-paper 4s ease-in-out infinite;
}
.scn-prince-asks-to-go .pen {
  position: absolute; bottom: 38%; left: 33%; width: 2px; height: 20px;
  background: linear-gradient(180deg, #1a2238, #0a0e18);
  transform: rotate(30deg); transform-origin: bottom left;
  animation: pa-pen 4s ease-in-out infinite;
}
.scn-prince-asks-to-go .lamp {
  position: absolute; bottom: 45%; left: 65%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a3a4a, #1a2a3a);
  border-radius: 2px;
}
.scn-prince-asks-to-go .glow {
  position: absolute; bottom: 50%; left: 63%; width: 30px; height: 30px;
  background: radial-gradient(circle, #a0c0e0 0%, #6080b0 40%, transparent 80%);
  border-radius: 50%;
  animation: pa-glow 2.5s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 15px #6080b0, 0 0 80px 30px rgba(96,128,176,.3);
}
.scn-prince-asks-to-go .figure {
  position: absolute; bottom: 26%; left: 40%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0a0e18 0%, #05080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 3s ease-in-out infinite;
}
.scn-prince-asks-to-go .chair {
  position: absolute; bottom: 25%; left: 48%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #1a2238, #0a0e18);
  border-radius: 5px 5px 10px 10px;
  transform: perspective(200px) rotateX(5deg);
  animation: pa-chair 3s ease-in-out infinite;
}
@keyframes pa-paper { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pa-pen { 0% { transform: rotate(30deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(30deg); } }
@keyframes pa-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .7; transform: scale(1); } }
@keyframes pa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pa-chair { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(8deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(5deg) translateY(0); } }

.scn-eve-of-wedding { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1e1e32 100%), radial-gradient(ellipse at 50% 80%, #3a3a5e 0%, transparent 70%); }
.scn-eve-of-wedding .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a44 0%, #1e1e32 100%); }
.scn-eve-of-wedding .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1820 0%, #0e0c12 100%); }
.scn-eve-of-wedding .window  { position:absolute; top:15%; left:25%; width:40%; height:50%; background: #2a3a5a; border: 4px solid #3a3a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(100,140,180,0.3); }
.scn-eve-of-wedding .moonlight { position:absolute; top:15%; left:25%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 30%, rgba(180,200,230,0.15) 0%, transparent 70%); animation: eow-moon 12s ease-in-out infinite alternate; }
.scn-eve-of-wedding .figure-silhouette { position:absolute; bottom:30%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a0f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 -4px 20px rgba(0,0,0,0.4); animation: eow-sit 8s ease-in-out infinite; }
.scn-eve-of-wedding .table   { position:absolute; bottom:25%; left:35%; width:80px; height:20px; background: linear-gradient(180deg, #3a3028 0%, #2a221c 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-eve-of-wedding .candle  { position:absolute; bottom:36%; left:48%; width:6px; height:18px; background: linear-gradient(180deg, #e8d8b0 0%, #b8a880 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(200,180,140,0.3); }
.scn-eve-of-wedding .candle-glow { position:absolute; bottom:38%; left:48%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, transparent 70%); border-radius: 50%; animation: eow-flicker 3s ease-in-out infinite alternate; }
@keyframes eow-moon { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes eow-sit { 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 eow-flicker { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.85); opacity:0.6 } }

.scn-nastasia-cheerful-earlier { background: linear-gradient(180deg, #3a2820 0%, #5a4030 50%, #4a3020 100%), radial-gradient(ellipse at 50% 90%, #7a5a40 0%, transparent 70%); }
.scn-nastasia-cheerful-earlier .bg-warm { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3020 0%, #3a2820 100%); }
.scn-nastasia-cheerful-earlier .floor-wood { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2820 0%, #2a1a10 100%); }
.scn-nastasia-cheerful-earlier .table-round { position:absolute; bottom:20%; left:35%; width:100px; height:40px; background: radial-gradient(ellipse at 50% 20%, #6a5040 0%, #4a3828 100%); border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-nastasia-cheerful-earlier .chair-left { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: nce-sway 6s ease-in-out infinite alternate; }
.scn-nastasia-cheerful-earlier .chair-right { position:absolute; bottom:20%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: nce-sway 6s ease-in-out infinite alternate-reverse; }
.scn-nastasia-cheerful-earlier .candle-1 { position:absolute; bottom:32%; left:45%; width:8px; height:24px; background: linear-gradient(180deg, #f0d8b0 0%, #c8b090 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,180,140,0.3); }
.scn-nastasia-cheerful-earlier .candle-2 { position:absolute; bottom:32%; right:45%; width:8px; height:24px; background: linear-gradient(180deg, #f0d8b0 0%, #c8b090 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,180,140,0.3); }
.scn-nastasia-cheerful-earlier .flame-1 { position:absolute; bottom:38%; left:45.5%; width:12px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, #f0a060 50%, transparent 100%); border-radius: 50%; animation: nce-dance 2s ease-in-out infinite alternate; }
.scn-nastasia-cheerful-earlier .flame-2 { position:absolute; bottom:38%; right:45.5%; width:12px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, #f0a060 50%, transparent 100%); border-radius: 50%; animation: nce-dance 2s ease-in-out infinite alternate-reverse; }
@keyframes nce-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes nce-dance { 0% { transform: translateY(0) scale(1) rotate(-5deg) } 50% { transform: translateY(-3px) scale(1.1) rotate(5deg) } 100% { transform: translateY(0) scale(0.95) rotate(-3deg) } }

.scn-nastasia-melancholy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a2a44 0%, transparent 70%); }
.scn-nastasia-melancholy .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); }
.scn-nastasia-melancholy .window { position:absolute; top:10%; left:20%; width:50%; height:55%; background: #1e2a3e; border: 4px solid #2a3a4a; border-radius: 6px; box-shadow: inset 0 0 40px rgba(50,70,90,0.4); }
.scn-nastasia-melancholy .moonbeam { position:absolute; top:10%; left:20%; width:50%; height:55%; background: radial-gradient(ellipse at 50% 20%, rgba(160,180,220,0.12) 0%, transparent 70%); animation: nm-beam 14s ease-in-out infinite alternate; }
.scn-nastasia-melancholy .figure-sitting { position:absolute; bottom:30%; left:35%; width:60px; height:90px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 -6px 30px rgba(0,0,0,0.5); animation: nm-bow 10s ease-in-out infinite; }
.scn-nastasia-melancholy .chair { position:absolute; bottom:28%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-nastasia-melancholy .desk { position:absolute; bottom:30%; right:20%; width:70px; height:25px; background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-nastasia-melancholy .inkwell { position:absolute; bottom:38%; right:30%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 6px rgba(100,100,140,0.2); animation: nm-ink 6s ease-in-out infinite alternate; }
@keyframes nm-beam { 0% { opacity:0.4; transform: scaleY(0.8) } 50% { opacity:0.8; transform: scaleY(1) } 100% { opacity:0.3; transform: scaleY(0.7) } }
@keyframes nm-bow { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(3px) rotate(0deg) } }
@keyframes nm-ink { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.1) } 100% { transform: translateY(0) scale(0.9) } }

.scn-prince-avoids-questions { background: linear-gradient(180deg, #2a2a30 0%, #3a3a44 50%, #2a2a30 100%), radial-gradient(ellipse at 50% 60%, #4a4a54 0%, transparent 70%); }
.scn-prince-avoids-questions .bg-soft { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3a44 0%, #2a2a30 100%); }
.scn-prince-avoids-questions .wall-panel { position:absolute; top:5%; left:10%; width:80%; height:70%; border: 2px solid #4a4a54; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); }
.scn-prince-avoids-questions .table-low { position:absolute; bottom:18%; left:30%; width:120px; height:30px; background: linear-gradient(180deg, #5a5048 0%, #3a3028 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-prince-avoids-questions .figure-left { position:absolute; bottom:20%; left:22%; width:40px; height:70px; background: linear-gradient(180deg, #3a3a42 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: paq-turn 12s ease-in-out infinite; }
.scn-prince-avoids-questions .figure-right { position:absolute; bottom:20%; right:22%; width:40px; height:70px; background: linear-gradient(180deg, #3a3a42 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: paq-turn 12s ease-in-out infinite reverse; }
.scn-prince-avoids-questions .lamp { position:absolute; top:15%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a09078 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px rgba(200,180,140,0.3); }
.scn-prince-avoids-questions .lamp-glow { position:absolute; top:10%; left:40%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 20%, rgba(200,180,140,0.15) 0%, transparent 70%); animation: paq-glow 8s ease-in-out infinite alternate; }
.scn-prince-avoids-questions .tea-cup { position:absolute; bottom:22%; width:16px; height:18px; background: radial-gradient(ellipse at 50% 30%, #a0a0a8 0%, #606068 100%); border-radius: 40% 40% 30% 30%; }
.scn-prince-avoids-questions .left-cup { left:35%; }
.scn-prince-avoids-questions .right-cup { right:35%; }
@keyframes paq-turn { 0%,100% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-5deg) translateX(-2px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(5deg) translateX(2px) } }
@keyframes paq-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.85) } }

.scn-doctor-visits {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #d4b878 40%, #b8925a 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-doctor-visits .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 100%);
  animation: dv-wall 12s ease-in-out infinite alternate;
}
.scn-doctor-visits .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #b0d8f0 0%, #80b8e0 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  animation: dv-window 8s ease-in-out infinite alternate;
}
.scn-doctor-visits .chair {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a4a2e 0%, #3a2210 100%);
  border-radius: 20% 20% 5% 5%;
  transform: rotate(-2deg);
  animation: dv-chair 10s ease-in-out infinite;
}
.scn-doctor-visits .prince {
  position: absolute; bottom: 20%; left: 32%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: dv-prince 5s ease-in-out infinite;
}
.scn-doctor-visits .doctor {
  position: absolute; bottom: 20%; left: 55%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform: rotate(5deg);
  animation: dv-doctor 6s ease-in-out infinite;
}
.scn-doctor-visits .sunbeam {
  position: absolute; top: 5%; left: 62%; width: 15%; height: 70%;
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: dv-sunbeam 15s ease-in-out infinite alternate;
}
@keyframes dv-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dv-window { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes dv-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes dv-prince { 0% { transform: translate(0,0) rotate(-2deg); } 30% { transform: translate(3px,-2px) rotate(0deg); } 70% { transform: translate(-2px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes dv-doctor { 0% { transform: rotate(5deg) translate(0,0); } 40% { transform: rotate(3deg) translate(2px,-1px); } 80% { transform: rotate(6deg) translate(-1px,1px); } 100% { transform: rotate(5deg) translate(0,0); } }
@keyframes dv-sunbeam { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(0.8); } }

.scn-doctor-interested {
  background:
    linear-gradient(135deg, #f0dbb0 0%, #c8a87a 50%, #a07850 100%),
    radial-gradient(circle at 30% 60%, #fff8e8 0%, transparent 60%);
}
.scn-doctor-interested .bg-mid {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a078 100%);
  animation: di-bg 20s ease-in-out infinite alternate;
}
.scn-doctor-interested .table {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a1a00 100%);
  border-radius: 10% 10% 5% 5%;
  animation: di-table 12s ease-in-out infinite;
}
.scn-doctor-interested .prince-hands {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #b89878 0%, #7a5a3a 100%);
  border-radius: 30% 30% 40% 40%;
  animation: di-hands 4s ease-in-out infinite alternate;
}
.scn-doctor-interested .doctor-lean {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  transform: rotate(8deg);
  animation: di-doctor 6s ease-in-out infinite;
}
.scn-doctor-interested .cup {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #e0c8b0 0%, #b89878 100%);
  border-radius: 20% 20% 5% 5%;
  animation: di-cup 8s ease-in-out infinite alternate;
}
.scn-doctor-interested .steam {
  position: absolute; bottom: 55%; left: 51%; width: 10px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: di-steam 3s ease-in-out infinite;
}
@keyframes di-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes di-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes di-hands { 0% { transform: translate(0) scale(1); } 50% { transform: translate(4px,-3px) scale(0.95); } 100% { transform: translate(-2px,2px) scale(1.05); } }
@keyframes di-doctor { 0% { transform: rotate(8deg) translateX(0); } 30% { transform: rotate(6deg) translateX(3px); } 70% { transform: rotate(10deg) translateX(-2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes di-cup { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes di-steam { 0% { opacity:0.4; transform: translateY(0) scaleX(1); } 50% { opacity:0.8; transform: translateY(-10px) scaleX(1.5); } 100% { opacity:0.1; transform: translateY(-20px) scaleX(0.8); } }

.scn-doctor-opinion {
  background:
    linear-gradient(180deg, #2a2018 0%, #1a1410 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-doctor-opinion .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  animation: do-bg 15s ease-in-out infinite alternate;
}
.scn-doctor-opinion .lamp {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8a040 0%, #6a4a10 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  animation: do-lamp 8s ease-in-out infinite alternate;
}
.scn-doctor-opinion .lamp-glow {
  position: absolute; bottom: 40%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,160,60,0.4) 0%, transparent 70%);
  filter: blur(20px);
  animation: do-glow 5s ease-in-out infinite;
}
.scn-doctor-opinion .lebedeff {
  position: absolute; bottom: 20%; left: 35%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 25% 25%;
  transform: rotate(-3deg);
  animation: do-lebedeff 7s ease-in-out infinite;
}
.scn-doctor-opinion .doctor-shadow {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0604 100%);
  border-radius: 45% 45% 20% 20% / 55% 55% 15% 15%;
  transform: rotate(4deg);
  animation: do-doctor 9s ease-in-out infinite;
}
.scn-doctor-opinion .door {
  position: absolute; right: 15%; bottom: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: do-door 15s ease-in-out infinite alternate;
}
@keyframes do-bg { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes do-lamp { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes do-glow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.6; scale:1.2; } 100% { opacity:0.2; scale:0.8; } }
@keyframes do-lebedeff { 0% { transform: rotate(-3deg) translate(0,0); } 40% { transform: rotate(-1deg) translate(3px,-2px); } 80% { transform: rotate(-4deg) translate(-2px,1px); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes do-doctor { 0% { transform: rotate(4deg) translate(0,0); } 30% { transform: rotate(2deg) translate(-2px,-1px); } 70% { transform: rotate(6deg) translate(1px,2px); } 100% { transform: rotate(4deg) translate(0,0); } }
@keyframes do-door { 0% { transform: scaleX(1); opacity:0.9; } 50% { transform: scaleX(0.98); opacity:0.7; } 100% { transform: scaleX(1.02); opacity:0.85; } }

.scn-hippolyte-alerts {
  background:
    linear-gradient(180deg, #1a1418 0%, #0c080a 40%, #040204 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a1e 0%, transparent 70%);
}
.scn-hippolyte-alerts .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1418 0%, #0c080a 100%);
  animation: ha-bg 20s ease-in-out infinite alternate;
}
.scn-hippolyte-alerts .bed {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #3a2a2c 0%, #1a0e10 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: ha-bed 12s ease-in-out infinite;
}
.scn-hippolyte-alerts .hippolyte {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a30 0%, #2a1a12 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  transform: rotate(-5deg);
  animation: ha-hippolyte 4s ease-in-out infinite;
}
.scn-hippolyte-alerts .prince-stand {
  position: absolute; bottom: 15%; right: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a24 0%, #1a0e0a 100%);
  border-radius: 45% 45% 20% 20% / 55% 55% 10% 10%;
  animation: ha-prince 6s ease-in-out infinite alternate;
}
.scn-hippolyte-alerts .pillow {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #6a4a40 0%, #3a2218 100%);
  border-radius: 40% 40% 30% 30%;
  animation: ha-pillow 8s ease-in-out infinite alternate;
}
.scn-hippolyte-alerts .candle {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c0a0 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ha-candle 5s ease-in-out infinite;
}
.scn-hippolyte-alerts .candle-glow {
  position: absolute; bottom: 42%; left: 25%; width: 60px; height: 60px;
  transform: translate(-28px, 10px);
  background: radial-gradient(circle, rgba(240,200,120,0.5) 0%, transparent 70%);
  filter: blur(15px);
  animation: ha-glow 3s ease-in-out infinite alternate;
}
@keyframes ha-bg { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes ha-bed { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ha-hippolyte { 0% { transform: rotate(-5deg) translate(0,0); } 25% { transform: rotate(-2deg) translate(4px,-2px); } 50% { transform: rotate(-7deg) translate(-2px,1px); } 75% { transform: rotate(-3deg) translate(2px,-1px); } 100% { transform: rotate(-5deg) translate(0,0); } }
@keyframes ha-prince { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-3px,-2px) rotate(2deg); } 100% { transform: translate(2px,1px) rotate(-1deg); } }
@keyframes ha-pillow { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(0.95) translate(2px,-1px); } 100% { transform: scale(1.02) translate(-1px,1px); } }
@keyframes ha-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.9); } }
@keyframes ha-glow { 0% { opacity:0.3; scale:1; } 50% { opacity:0.7; scale:1.3; } 100% { opacity:0.2; scale:0.8; } }

.scn-no-candle { background: linear-gradient(135deg, #0a0a12 0%, #15152a 40%, #0e0e1a 100%), radial-gradient(ellipse at 70% 50%, #1c1c3a 0%, transparent 60%); }
.scn-no-candle .room-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #12121f 0%, #08080e 100%); }
.scn-no-candle .room-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d16 100%); }
.scn-no-candle .window-frame { position:absolute; top:20%; left:60%; width:30%; height:40%; border:4px solid #1e1e30; border-radius:4px; background: transparent; box-shadow: inset 0 0 20px rgba(26,26,50,0.8); }
.scn-no-candle .moonlight { position:absolute; top:22%; left:62%; width:26%; height:36%; background: radial-gradient(ellipse, rgba(180,200,255,0.08) 0%, transparent 70%); animation: nc-glow 8s ease-in-out infinite alternate; }
.scn-no-candle .chair { position:absolute; bottom:25%; left:30%; width:20px; height:30px; background: #1f1f30; border-radius:4px 4px 10px 10px; box-shadow: 2px 0 6px rgba(0,0,0,0.6); animation: nc-sway 6s ease-in-out infinite; }
.scn-no-candle .shadow { position:absolute; bottom:10%; left:20%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: nc-fade 12s ease-in-out infinite alternate; }
@keyframes nc-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }
@keyframes nc-sway { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(1deg) translateX(1px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes nc-fade { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-arrangement { background: linear-gradient(120deg, #0f0f1a 0%, #1a1a2e 40%, #0a0a14 100%), radial-gradient(ellipse at 40% 80%, #2a2a44 0%, transparent 60%); }
.scn-arrangement .back-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #18182a 0%, #0d0d18 100%); }
.scn-arrangement .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #201f2e 0%, #12121c 100%); }
.scn-arrangement .curtain-left { position:absolute; top:5%; left:5%; width:20%; height:90%; background: linear-gradient(180deg, #1e1e30 0%, #111122 60%); border-radius: 60% 0 0 60% / 40% 0 0 40%; box-shadow: 4px 0 12px rgba(0,0,0,0.5); animation: ar-sway 10s ease-in-out infinite alternate; }
.scn-arrangement .cushion-a { position:absolute; bottom:12%; left:25%; width:30%; height:10%; background: linear-gradient(135deg, #2a2a44 0%, #1a1a2e 100%); border-radius: 20% 40% 30% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ar-settle 6s ease-in-out infinite; }
.scn-arrangement .cushion-b { position:absolute; bottom:10%; left:40%; width:25%; height:8%; background: linear-gradient(135deg, #24243a 0%, #151525 100%); border-radius: 30% 20% 40% 30%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: ar-settle 8s ease-in-out infinite reverse; }
.scn-arrangement .cushion-c { position:absolute; bottom:14%; left:55%; width:20%; height:12%; background: linear-gradient(135deg, #2e2e4a 0%, #1c1c30 100%); border-radius: 50% 30% 40% 50%; box-shadow: 0 5px 10px rgba(0,0,0,0.4); animation: ar-settle 7s ease-in-out infinite; animation-delay: -2s; }
.scn-arrangement .dim-light { position:absolute; top:10%; left:50%; width:30%; height:40%; background: radial-gradient(ellipse, rgba(150,160,200,0.04) 0%, transparent 70%); animation: ar-flicker 12s ease-in-out infinite alternate; }
@keyframes ar-sway { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes ar-settle { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-2px) scale(1.02); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes ar-flicker { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-pact { background: linear-gradient(180deg, #0a0a12 0%, #12121e 50%, #08080e 100%), radial-gradient(ellipse at 50% 60%, #1a1a30 0%, transparent 70%); }
.scn-pact .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #16162a 0%, transparent 60%); }
.scn-pact .floor-plank { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d16 100%); }
.scn-pact .figure-left { position:absolute; bottom:15%; left:25%; width:14%; height:45%; background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-nod 5s ease-in-out infinite; }
.scn-pact .figure-right { position:absolute; bottom:15%; right:25%; width:14%; height:45%; background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-nod 5s ease-in-out infinite reverse; animation-delay: 0.5s; }
.scn-pact .hand-clasp { position:absolute; bottom:28%; left:46%; width:8%; height:6%; background: #2a2a44; border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.6); animation: pa-clasp 3s ease-in-out infinite alternate; }
.scn-pact .shadow-pool { position:absolute; bottom:5%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: pa-pool 10s ease-in-out infinite alternate; }
@keyframes pa-nod { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-3deg) translateY(-2px); } 60% { transform: rotate(3deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pa-clasp { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes pa-pool { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }

.scn-smell { background: linear-gradient(135deg, #0a0a10 0%, #13131e 50%, #0a0a10 100%), radial-gradient(ellipse at 30% 70%, #1c1c2a 0%, transparent 60%); }
.scn-smell .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a28 0%, #0d0d14 100%); }
.scn-smell .covered-body { position:absolute; bottom:8%; left:20%; width:60%; height:55%; background: linear-gradient(180deg, #1c1c2e 0%, #11111e 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-smell .sheet-folds { position:absolute; bottom:15%; left:25%; width:50%; height:40%; background: radial-gradient(ellipse at 50% 50%, #22223a 0%, #141420 70%); border-radius: 30% 60% 30% 60%; filter: blur(2px); animation: sm-breathe 12s ease-in-out infinite alternate; }
.scn-smell .jar.one { position:absolute; bottom:5%; left:18%; width:7%; height:14%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-smell .jar.two { position:absolute; bottom:8%; left:30%; width:6%; height:12%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.5); animation: sm-jar 8s ease-in-out infinite; }
.scn-smell .jar.three { position:absolute; bottom:3%; left:55%; width:7%; height:15%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-smell .jar.four { position:absolute; bottom:10%; right:20%; width:6%; height:11%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.5); animation: sm-jar 8s ease-in-out infinite reverse; }
.scn-smell .vapor { position:absolute; top:10%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(180,200,220,0.03) 0%, transparent 70%); filter: blur(6px); animation: sm-vapor 15s ease-in-out infinite alternate; }
@keyframes sm-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sm-jar { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes sm-vapor { 0% { opacity:0.1; transform: translateY(0) scale(1); } 50% { opacity:0.5; transform: translateY(-10px) scale(1.2); } 100% { opacity:0.2; transform: translateY(0) scale(1); } }

/* nastasia-amazed */
.scn-nastasia-amazed {
  background: linear-gradient(135deg, #2a1e1a 0%, #3a2a22 50%, #1e1410 100%),
              radial-gradient(ellipse at 70% 30%, #5a3e2a 0%, transparent 60%);
}
.scn-nastasia-amazed .wall-left {
  position:absolute; left:0; top:0; bottom:0; width:40%;
  background: linear-gradient(180deg, #2a1e1a, #1a1210);
  box-shadow: inset -8px 0 12px rgba(0,0,0,.5);
}
.scn-nastasia-amazed .wall-right {
  position:absolute; right:0; top:0; bottom:0; width:40%;
  background: linear-gradient(180deg, #2a1e1a, #1a1210);
  box-shadow: inset 8px 0 12px rgba(0,0,0,.5);
}
.scn-nastasia-amazed .window {
  position:absolute; left:35%; top:20%; width:30%; height:50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1e10 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #6a5a4a;
}
.scn-nastasia-amazed .figure.profile {
  position:absolute; left:50%; bottom:15%; width:80px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,.6);
  animation: naa-breath 4s ease-in-out infinite;
}
.scn-nastasia-amazed .light-ray {
  position:absolute; left:40%; top:20%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: naa-sway 10s ease-in-out infinite alternate;
}
.scn-nastasia-amazed .dust.specks {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 40%, rgba(200,180,140,.05) 0%, transparent 50%);
  animation: naa-flare 6s ease-in-out infinite;
}
.scn-nastasia-amazed .shadow-floor {
  position:absolute; bottom:0; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
@keyframes naa-breath { 0%{transform:translateX(-50%) scaleY(1)} 50%{transform:translateX(-50%) scaleY(1.02)} 100%{transform:translateX(-50%) scaleY(1)} }
@keyframes naa-sway { 0%{transform:skewX(-5deg) translateX(0)} 50%{transform:skewX(0deg) translateX(2px)} 100%{transform:skewX(-5deg) translateX(0)} }
@keyframes naa-flare { 0%{opacity:.3} 50%{opacity:.6} 100%{opacity:.3} }

/* prince-suffers */
.scn-prince-suffers {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #121010 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 80%);
}
.scn-prince-suffers .bg-dark {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 20%, #2a1e18 0%, #121010 70%);
}
.scn-prince-suffers .lamp {
  position:absolute; top:10%; left:50%; width:20px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #c8a860 0%, #a08030 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px #a08030, 0 0 60px 20px rgba(160,128,48,.2);
  animation: psu-flicker 2s ease-in-out infinite alternate;
}
.scn-prince-suffers .light-cone {
  position:absolute; top:15%; left:40%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(200,180,120,.1) 0%, transparent 100%);
  transform: rotate(-5deg);
  animation: psu-sway 8s ease-in-out infinite;
}
.scn-prince-suffers .figure.seated {
  position:absolute; bottom:15%; left:50%; width:100px; height:140px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 60% 60% 40% 40% / 40% 40% 50% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: psu-sit 6s ease-in-out infinite;
}
.scn-prince-suffers .head-bowed {
  position:absolute; bottom:35%; left:50%; width:30px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #1a1210 0%, #0a0808 100%);
  border-radius: 50%;
  animation: psu-bow 4s ease-in-out infinite alternate;
}
.scn-prince-suffers .shadows {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
.scn-prince-suffers .particles {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 20%, rgba(200,180,120,.03) 0%, transparent 70%);
  animation: psu-drift 12s linear infinite;
}
@keyframes psu-flicker { 0%{opacity:.8;transform:translateX(-50%) scaleY(1)} 50%{opacity:1;transform:translateX(-50%) scaleY(1.05)} 100%{opacity:.9;transform:translateX(-50%) scaleY(1)} }
@keyframes psu-sway { 0%{transform:rotate(-5deg) scaleX(1)} 50%{transform:rotate(0deg) scaleX(1.1)} 100%{transform:rotate(-5deg) scaleX(1)} }
@keyframes psu-sit { 0%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-3px)} 100%{transform:translateX(-50%) translateY(0)} }
@keyframes psu-bow { 0%{transform:translateX(-50%) rotate(0)} 50%{transform:translateX(-50%) rotate(-10deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes psu-drift { 0%{background-position:0 0} 100%{background-position:0 100%} }

/* aglaya-taunts */
.scn-aglaya-taunts {
  background: linear-gradient(180deg, #2a1e18 0%, #3a2a1e 50%, #1a1410 100%),
              radial-gradient(ellipse at 30% 50%, #4a3222 0%, transparent 60%);
}
.scn-aglaya-taunts .room-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a1410 100%);
}
.scn-aglaya-taunts .window-sill {
  position:absolute; top:50%; right:10%; width:80px; height:40px;
  background: linear-gradient(180deg, #4a3222, #2a1e18);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: agt-pulse 5s ease-in-out infinite;
}
.scn-aglaya-taunts .figure.left-pointing {
  position:absolute; bottom:15%; left:20%; width:70px; height:130px;
  background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  box-shadow: 4px 0 8px rgba(0,0,0,.6);
  animation: agt-point 3s ease-in-out infinite;
}
.scn-aglaya-taunts .figure.right-recoiling {
  position:absolute; bottom:15%; right:20%; width:65px; height:120px;
  background: linear-gradient(225deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 40% 50% 40% 30% / 50% 60% 40% 50%;
  box-shadow: -4px 0 8px rgba(0,0,0,.6);
  animation: agt-recoil 4s ease-in-out infinite;
}
.scn-aglaya-taunts .shadow-cast {
  position:absolute; bottom:0; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  border-radius: 40% 40% 0 0;
  animation: agt-shadow 6s ease-in-out infinite alternate;
}
.scn-aglaya-taunts .dust-float {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 60%, rgba(200,180,140,.03) 0%, transparent 70%);
  animation: agt-drift 15s linear infinite;
}
.scn-aglaya-taunts .floor-line {
  position:absolute; bottom:0; left:0; right:0; height:2px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 50%, transparent 100%);
}
@keyframes agt-point { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(10px) rotate(-5deg)} 50%{transform:translateX(0) rotate(0)} 75%{transform:translateX(-5px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes agt-recoil { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(-15px) scaleX(.9)} 100%{transform:translateX(0) scaleX(1)} }
@keyframes agt-pulse { 0%{box-shadow:0 -4px 8px rgba(0,0,0,.5)} 50%{box-shadow:0 -4px 12px rgba(0,0,0,.7)} 100%{box-shadow:0 -4px 8px rgba(0,0,0,.5)} }
@keyframes agt-shadow { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.6} }
@keyframes agt-drift { 0%{background-position:0 0;opacity:.2} 50%{background-position:50% 0;opacity:.4} 100%{background-position:100% 0;opacity:.2} }

/* aglaya-continues-taunt */
.scn-aglaya-continues-taunt {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e18 50%, #121010 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a22 0%, transparent 70%);
}
.scn-aglaya-continues-taunt .bg-deeper {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 30%, #1a1412 0%, #0a0808 100%);
}
.scn-aglaya-continues-taunt .arch-door {
  position:absolute; left:50%; top:0; width:40%; height:100%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-aglaya-continues-taunt .figure.left-turned {
  position:absolute; bottom:20%; left:20%; width:60px; height:110px;
  background: linear-gradient(90deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 30% 50% 50% 30% / 50% 60% 60% 50%;
  box-shadow: 2px 0 8px rgba(0,0,0,.6);
  animation: act-turn 5s ease-in-out infinite alternate;
}
.scn-aglaya-continues-taunt .figure.right-standing {
  position:absolute; bottom:20%; right:25%; width:55px; height:125px;
  background: linear-gradient(270deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  box-shadow: -2px 0 8px rgba(0,0,0,.6);
  animation: act-stand 6s ease-in-out infinite;
}
.scn-aglaya-continues-taunt .table {
  position:absolute; bottom:15%; left:40%; width:20%; height:10px;
  background: linear-gradient(180deg, #4a3222, #2a1e18);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-aglaya-continues-taunt .candle {
  position:absolute; bottom:25%; left:45%; width:8px; height:16px;
  background: linear-gradient(180deg, #c8a860, #a08030);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 4px rgba(200,168,96,.3);
  animation: act-flicker 2.5s ease-in-out infinite alternate;
}
.scn-aglaya-continues-taunt .candle-glow {
  position:absolute; bottom:25%; left:45%; width:30px; height:30px;
  transform:translate(-50%,-50%);
  background: radial-gradient(circle, rgba(200,168,96,.2) 0%, transparent 70%);
  animation: act-glow 4s ease-in-out infinite alternate;
}
.scn-aglaya-continues-taunt .shadows {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes act-turn { 0%{transform:rotate(0) scaleX(1)} 50%{transform:rotate(-10deg) scaleX(.95)} 100%{transform:rotate(0) scaleX(1)} }
@keyframes act-stand { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes act-flicker { 0%{opacity:.8;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:.9;transform:scaleY(1)} }
@keyframes act-glow { 0%{opacity:.3;transform:translate(-50%,-50%) scale(1)} 50%{opacity:.6;transform:translate(-50%,-50%) scale(1.2)} 100%{opacity:.3;transform:translate(-50%,-50%) scale(1)} }

/* aglaya-accuses */
.scn-aglaya-accuses {
  background: linear-gradient(135deg, #1a1210 0%, #2a1e18 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-aglaya-accuses .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  animation: aac-room 12s ease-in-out infinite alternate;
}
.scn-aglaya-accuses .wall-shadow {
  position: absolute; inset: 0 30% 0 0; background: linear-gradient(90deg, rgba(10,8,6,.7) 0%, transparent 100%);
  animation: aac-shadow 9s ease-in-out infinite;
}
.scn-aglaya-accuses .table {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 4% 4% 10% 10%; box-shadow: 0 -6px 10px rgba(0,0,0,.6);
}
.scn-aglaya-accuses .candle {
  position: absolute; bottom: 28%; left: 38%; width: 4px; height: 16px;
  background: #eeddcc; border-radius: 30% 30% 0 0; box-shadow: 0 0 20px 6px #c8a878, 0 0 40px 12px rgba(200,168,120,.3);
  animation: aac-candle 4s ease-in-out infinite alternate;
}
.scn-aglaya-accuses .figure-a {
  position: absolute; bottom: 20%; left: 18%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: aac-figA 6s ease-in-out infinite;
}
.scn-aglaya-accuses .figure-b {
  position: absolute; bottom: 20%; left: 60%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #1e1612 0%, #0c0806 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center; animation: aac-figB 8s ease-in-out infinite alternate;
}
.scn-aglaya-accuses .rug {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #3a2a20 0%, #4a3a2a 20%, #3a2a20 80%, #2a1e18 100%);
  border-radius: 30% 30% 10% 10%; filter: blur(4px);
  animation: aac-rug 15s linear infinite;
}
@keyframes aac-room { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes aac-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes aac-candle { 0% { opacity: .8; box-shadow: 0 0 15px 4px #c8a878 } 50% { opacity: 1; box-shadow: 0 0 28px 8px #dbb888 } 100% { opacity: .85; box-shadow: 0 0 18px 5px #c8a878 } }
@keyframes aac-figA { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aac-figB { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(2px) rotate(-1deg) } }
@keyframes aac-rug { 0% { background-position: 0% 0% } 50% { background-position: 20% 0% } 100% { background-position: 0% 0% } }

/* aglaya-hautily */
.scn-aglaya-hautily {
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 60%, #1a1412 100%),
              radial-gradient(ellipse at 40% 50%, #2a1e1a 0%, transparent 50%);
}
.scn-aglaya-hautily .dark-panel {
  position: absolute; inset: 10% 20%; background: #120e0c; border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: aha-panel 15s ease-in-out infinite alternate;
}
.scn-aglaya-hautily .window-frame {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border: 2px solid #3a2a20; border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-aglaya-hautily .seated-figure {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 30% 30%;
  transform-origin: bottom center; animation: aha-seat 7s ease-in-out infinite;
}
.scn-aglaya-hautily .standing-figure {
  position: absolute; bottom: 18%; left: 55%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #1e1612 0%, #080604 100%);
  border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center; animation: aha-stand 10s ease-in-out infinite alternate;
}
.scn-aglaya-hautily .lamp-glow {
  position: absolute; top: 30%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8a878 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #b89868;
  animation: aha-lamp 3s ease-in-out infinite alternate;
}
.scn-aglaya-hautily .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  filter: blur(2px); animation: aha-curtain 20s linear infinite;
}
@keyframes aha-panel { 0% { opacity: .7; transform: scale(1) } 50% { opacity: .85; transform: scale(1.02) } 100% { opacity: .75; transform: scale(.98) } }
@keyframes aha-seat { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-1deg) } }
@keyframes aha-stand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(3px) rotate(-2deg) } }
@keyframes aha-lamp { 0% { opacity: .5; box-shadow: 0 0 20px 5px #b89868 } 50% { opacity: .9; box-shadow: 0 0 50px 15px #dbb888 } 100% { opacity: .6; box-shadow: 0 0 25px 8px #b89868 } }
@keyframes aha-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

/* prince-observes */
.scn-prince-observes {
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 50%, #0c0806 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 70%);
}
.scn-prince-observes .archway {
  position: absolute; top: 0; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, transparent 60%, #1a1210 60%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
  animation: pob-arch 20s ease-in-out infinite alternate;
}
.scn-prince-observes .distant-table {
  position: absolute; top: 40%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(90deg, #2a1e18 0%, #1a1410 50%, #2a1e18 100%);
  border-radius: 20%; filter: blur(2px);
  animation: pob-table 14s ease-in-out infinite;
}
.scn-prince-observes .distant-figures {
  position: absolute; top: 38%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(90deg, transparent 10%, #1a1210 25%, #140e0c 50%, #1a1210 75%, transparent 90%);
  border-radius: 30%; filter: blur(3px);
  animation: pob-figs 18s ease-in-out infinite alternate;
}
.scn-prince-observes .foreground-pillar {
  position: absolute; bottom: 0; left: 5%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #2a1e18 0%, #0e0a08 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.5);
  animation: pob-pillar 8s ease-in-out infinite;
}
.scn-prince-observes .prince-silhouette {
  position: absolute; bottom: 5%; left: 12%; width: 28px; height: 70px;
  background: #0c0806; border-radius: 30% 30% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.8);
  animation: pob-prince 5s ease-in-out infinite;
}
.scn-prince-observes .candle-flare {
  position: absolute; top: 30%; left: 45%; width: 6px; height: 18px;
  background: radial-gradient(ellipse at 50% 100%, #ffddaa 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #c8a878;
  animation: pob-flare 3s ease-in-out infinite alternate;
}
@keyframes pob-arch { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(1.02) } 100% { opacity: .65; transform: scaleY(.98) } }
@keyframes pob-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pob-figs { 0% { opacity: .3; transform: translateY(0) } 50% { opacity: .5; transform: translateY(-3px) } 100% { opacity: .35; transform: translateY(1px) } }
@keyframes pob-pillar { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes pob-prince { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes pob-flare { 0% { opacity: .6; box-shadow: 0 0 15px 3px #c8a878 } 50% { opacity: 1; box-shadow: 0 0 40px 12px #eec88a } 100% { opacity: .7; box-shadow: 0 0 20px 5px #c8a878 } }

/* essence-of-contempt */
.scn-essence-of-contempt {
  background: linear-gradient(180deg, #0c0806 0%, #0a0604 50%, #080403 100%),
              radial-gradient(ellipse at 50% 50%, #1a1210 0%, transparent 70%);
}
.scn-essence-of-contempt .void-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0e0a08 0%, #060403 100%);
  animation: eoc-void 20s ease-in-out infinite alternate;
}
.scn-essence-of-contempt .profile-left {
  position: absolute; bottom: 20%; left: 15%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 30% 20% 50% / 60% 40% 30% 60%;
  transform-origin: bottom right; animation: eoc-left 8s ease-in-out infinite;
}
.scn-essence-of-contempt .profile-right {
  position: absolute; bottom: 20%; right: 15%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1412 0%, #080403 100%);
  border-radius: 30% 50% 50% 20% / 40% 60% 60% 30%;
  transform-origin: bottom left; animation: eoc-right 8s ease-in-out infinite alternate;
}
.scn-essence-of-contempt .contempt-line {
  position: absolute; top: 40%; left: 30%; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #3a2a20 30%, #4a3a2a 50%, #3a2a20 70%, transparent 100%);
  filter: blur(1px); animation: eoc-line 5s ease-in-out infinite;
}
.scn-essence-of-contempt .shadow-drape {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: eoc-drape 12s ease-in-out infinite alternate;
}
.scn-essence-of-contempt .glint {
  position: absolute; top: 30%; left: 48%; width: 4px; height: 4px;
  background: radial-gradient(circle, #e0c0a0 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,160,120,.2);
  animation: eoc-glint 3s ease-in-out infinite alternate;
}
@keyframes eoc-void { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .55 } }
@keyframes eoc-left { 0% { transform: rotate(0) translateX(0) } 30% { transform: rotate(-3deg) translateX(-4px) } 60% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes eoc-right { 0% { transform: rotate(0) translateX(0) } 30% { transform: rotate(3deg) translateX(4px) } 60% { transform: rotate(-1deg) translateX(-2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes eoc-line { 0% { opacity: .2; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(.95) } }
@keyframes eoc-drape { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .35 } }
@keyframes eoc-glint { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .8; transform: scale(1.5) } 100% { opacity: .3; transform: scale(1) } }

/* Scene: rogojin-house-faith - dim interior, tense */
.scn-rogojin-house-faith {
  background: 
    radial-gradient(ellipse at 50% 50%, #2a1e1e 0%, #0f0b0b 100%) padding-box,
    linear-gradient(180deg, #1c1414 0%, #0a0707 100%) border-box;
}
.scn-rogojin-house-faith .room-wall {
  position: absolute; inset: 5% 10% 10% 8%;
  background: linear-gradient(135deg, #2e1f1b 0%, #1a0e0c 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-rogojin-house-faith .picture-frame {
  position: absolute; top: 18%; left: 55%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2218 100%);
  border: 6px solid #2d1c12;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.9);
}
.scn-rogojin-house-faith .picture-canvas {
  position: absolute; top: 23%; left: 58%; width: 30%; height: 45%;
  background: 
    radial-gradient(circle at 50% 40%, #6b5040 0%, #2d1d18 40%, #0a0505 70%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px #0a0505;
  animation: rhf-pulse 4s ease-in-out infinite alternate;
}
.scn-rogojin-house-faith .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 22%; height: 55%;
  background: 
    linear-gradient(180deg, #1f1210 0%, #0b0605 50%, #1a0d0b 100%);
  border-radius: 40% 35% 30% 30% / 60% 55% 45% 45%;
  transform-origin: bottom center;
  animation: rhf-turn 8s ease-in-out infinite;
}
.scn-rogojin-house-faith .candle-taper {
  position: absolute; bottom: 14%; left: 66%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #d4b078 0%, #7a5535 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-rogojin-house-faith .candle-glow {
  position: absolute; bottom: 32%; left: 66%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffcc66 0%, #d48a30 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d48a30, 0 0 40px 12px rgba(200,120,40,.5);
  animation: rhf-glow 3s ease-in-out infinite alternate;
}
.scn-rogojin-house-faith .shadow-slice {
  position: absolute; top: 0; left: 70%; width: 30%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.7) 100%);
  pointer-events: none;
}

@keyframes rhf-pulse {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.02); }
  100% { opacity: .6; transform: scale(.98); }
}
@keyframes rhf-turn {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(-3px) rotate(2deg); }
  60% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rhf-glow {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: .7; transform: scale(.9); }
}

/* Scene: prince-hotel-return - sunlit, tense */
.scn-prince-hotel-return {
  background: 
    linear-gradient(180deg, #cde0ff 0%, #b8cce0 60%, #9bb0c8 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 70%);
}
.scn-prince-hotel-return .sky-wash {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b4cae0 0%, transparent 100%);
  animation: phr-sky 6s ease-in-out infinite alternate;
}
.scn-prince-hotel-return .hotel-facade {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c9b894 40%, #a88d66 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 8px 0 20px rgba(0,0,0,.3), -8px 0 20px rgba(0,0,0,.2);
}
.scn-prince-hotel-return .hotel-sign {
  position: absolute; bottom: 60%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #d4b878 0%, #b09860 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: phr-sway 5s ease-in-out infinite;
}
.scn-prince-hotel-return .entrance-door {
  position: absolute; bottom: 10%; left: 45%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #6f543c 0%, #4f3828 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
}
.scn-prince-hotel-return .card-left {
  position: absolute; bottom: 22%; left: 48%; width: 6%; height: 8%;
  background: #f0ead0;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
  animation: phr-card 4s ease-in-out infinite;
}
.scn-prince-hotel-return .shadow-stripe {
  position: absolute; bottom: 0; left: 30%; width: 2%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: phr-stripe 10s linear infinite;
}
.scn-prince-hotel-return .dust-mote {
  position: absolute; top: 20%; left: 70%; width: 1%; height: 1%;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 4px #ffe0b0;
  animation: phr-dust 15s linear infinite;
}

@keyframes phr-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes phr-sway {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes phr-card {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes phr-stripe {
  0% { transform: translateY(0); }
  50% { transform: translateY(5px); }
  100% { transform: translateY(0); }
}
@keyframes phr-dust {
  0% { transform: translate(0, 0) scale(1); opacity: .2; }
  50% { transform: translate(-10px, -8px) scale(1.5); opacity: .6; }
  100% { transform: translate(10px, -5px) scale(.8); opacity: .1; }
}

/* Scene: prince-street-wandering - sunlit, tense */
.scn-prince-street-wandering {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #dac8a0 40%, #b8a07a 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-prince-street-wandering .bridge-arch {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 55%;
  background: linear-gradient(180deg, #8a7a64 0%, #5c4e3c 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-prince-street-wandering .river-reflection {
  position: absolute; top: 50%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8a9ab0 0%, #5c6a80 100%);
  opacity: .6;
  animation: psw-water 4s ease-in-out infinite alternate;
}
.scn-prince-street-wandering .shop-window {
  position: absolute; bottom: 35%; left: 60%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #d0c090 0%, #a89068 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: psw-glimmer 6s ease-in-out infinite;
}
.scn-prince-street-wandering .passing-figure {
  position: absolute; bottom: 12%; left: -15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2c22 0%, #1a1008 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  animation: psw-walk 12s linear infinite;
}
.scn-prince-street-wandering .street-lamp {
  position: absolute; bottom: 45%; left: 25%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-prince-street-wandering .puddle-shimmer {
  position: absolute; bottom: 8%; left: 30%; width: 18%; height: 6%;
  background: linear-gradient(90deg, #5c6a80, #8a9ab0, #5c6a80);
  border-radius: 50%;
  opacity: .5;
  animation: psw-shimmer 3s ease-in-out infinite alternate;
}

@keyframes psw-water {
  0% { transform: skewX(0); }
  100% { transform: skewX(10deg); }
}
@keyframes psw-glimmer {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes psw-walk {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(115vw) rotate(1deg); }
  100% { transform: translateX(230vw) rotate(-1deg); }
}
@keyframes psw-shimmer {
  0% { opacity: .3; transform: scaleY(1); }
  100% { opacity: .7; transform: scaleY(1.5); }
}

/* Scene: prince-epileptic-reflection - calm, sunlit */
.scn-prince-epileptic-reflection {
  background: 
    linear-gradient(180deg, #fdf4e0 0%, #e8dcc4 40%, #c8b89a 100%),
    radial-gradient(ellipse at 30% 40%, #fffbf0 0%, transparent 70%);
}
.scn-prince-epileptic-reflection .window-frame {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 85%;
  background: linear-gradient(135deg, #c0a880 0%, #a08860 100%);
  border: 8px solid #705838;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
}
.scn-prince-epileptic-reflection .light-beam {
  position: absolute; top: 8%; left: 25%; width: 2%; height: 75%;
  background: linear-gradient(180deg, rgba(255,240,200,.7) 0%, transparent 80%);
  border-radius: 50%;
  transform: rotate(-15deg);
  animation: per-beam 12s ease-in-out infinite alternate;
}
.scn-prince-epileptic-reflection .dust-particles {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: transparent;
  pointer-events: none;
  animation: per-dust 20s linear infinite;
}
.scn-prince-epileptic-reflection .dust-particles::before,
.scn-prince-epileptic-reflection .dust-particles::after {
  content: '';
  position: absolute;
  width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffe0b0;
  animation: per-dust2 15s ease-in-out infinite alternate;
}
.scn-prince-epileptic-reflection .table-sill {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #b09878 0%, #8a7054 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.3);
}
.scn-prince-epileptic-reflection .book-spine {
  position: absolute; bottom: 12%; left: 45%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #8b6844 0%, #5c4028 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 0 4px rgba(0,0,0,.4);
}
.scn-prince-epileptic-reflection .quiet-shadow {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: radial-gradient(ellipse at 60% 40%, rgba(0,0,0,.05) 0%, transparent 70%);
  pointer-events: none;
}

@keyframes per-beam {
  0% { opacity: .3; transform: rotate(-18deg) translateY(0); }
  50% { opacity: .8; transform: rotate(-12deg) translateY(-10px); }
  100% { opacity: .4; transform: rotate(-15deg) translateY(5px); }
}
@keyframes per-dust {
  0% { transform: translate(0, 0); }
  50% { transform: translate(5px, -8px); }
  100% { transform: translate(-3px, 3px); }
}
@keyframes per-dust2 {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(10px, -15px) scale(1.8); }
}

/* Scene 1: lebedev-house-argument */
.scn-lebedev-house-argument { background: linear-gradient(180deg, #2a1b1b 0%, #1a1111 50%, #0d0808 100%), radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 80%); }
.scn-lebedev-house-argument .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1111 100%); }
.scn-lebedev-house-argument .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1111 0%, #0d0808 100%); }
.scn-lebedev-house-argument .lamp { position:absolute; bottom:40%; left:50%; width:12px; height:24px; transform:translate(-50%,-50%); background: linear-gradient(180deg, #6b5b4b 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; }
.scn-lebedev-house-argument .glow { position:absolute; bottom:40%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e8c88a 0%, #c89a5a 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,154,90,.4); animation: lha-glow 3s ease-in-out infinite alternate; }
.scn-lebedev-house-argument .figure-left { position:absolute; bottom:30%; left:28%; width:30px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-left 4s ease-in-out infinite; }
.scn-lebedev-house-argument .figure-right { position:absolute; bottom:30%; right:28%; width:30px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lha-right 3.8s ease-in-out infinite; }
.scn-lebedev-house-argument .shadow { position:absolute; bottom:0; left:20%; right:20%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); filter: blur(4px); }
@keyframes lha-glow { 0% { opacity:.7; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,-50%) scale(.95); } }
@keyframes lha-left { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(0) rotate(5deg); } 75% { transform: translateX(-5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes lha-right { 0% { transform: translateX(0) rotate(5deg); } 25% { transform: translateX(-5px) rotate(0deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(5deg); } }

/* Scene 2: lebedev-house-arbitration */
.scn-lebedev-house-arbitration { background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 50%, #0d0808 100%), radial-gradient(ellipse at 50% 20%, #3a2e2e 0%, transparent 90%); }
.scn-lebedev-house-arbitration .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #352525 0%, #1a1212 100%); }
.scn-lebedev-house-arbitration .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1212 0%, #0d0808 100%); }
.scn-lebedev-house-arbitration .table { position:absolute; bottom:30%; left:20%; right:20%; height:6px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px; }
.scn-lebedev-house-arbitration .lamp { position:absolute; bottom:40%; left:50%; width:10px; height:20px; transform:translate(-50%,-50%); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10%; }
.scn-lebedev-house-arbitration .glow { position:absolute; bottom:40%; left:50%; width:50px; height:50px; transform:translate(-50%,-50%); background: radial-gradient(circle, #e0b878 0%, #c09858 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(192,152,88,.3); animation: lhb-glow 4s ease-in-out infinite alternate; }
.scn-lebedev-house-arbitration .father { position:absolute; bottom:32%; left:20%; width:28px; height:65px; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-lebedev-house-arbitration .prince { position:absolute; bottom:32%; left:50%; width:28px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhb-prince 5s ease-in-out infinite; }
.scn-lebedev-house-arbitration .daughter { position:absolute; bottom:32%; right:22%; width:22px; height:55px; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhb-daughter 6s ease-in-out infinite; }
@keyframes lhb-glow { 0% { opacity:.6; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.15); } 100% { opacity:.7; transform:translate(-50%,-50%) scale(.9); } }
@keyframes lhb-prince { 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 lhb-daughter { 0% { transform: translateY(0); } 33% { transform: translateY(-2px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }

/* Scene 3: lebedev-house-nephew-story */
.scn-lebedev-house-nephew-story { background: linear-gradient(180deg, #1e1414 0%, #120c0c 50%, #080404 100%), radial-gradient(ellipse at 50% 30%, #2a1e1e 0%, transparent 80%); }
.scn-lebedev-house-nephew-story .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1a1a 0%, #120c0c 100%); }
.scn-lebedev-house-nephew-story .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #120c0c 0%, #080404 100%); }
.scn-lebedev-house-nephew-story .chair { position:absolute; bottom:20%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 10% 10% 30% 30%; }
.scn-lebedev-house-nephew-story .nephew { position:absolute; bottom:38%; left:38%; width:28px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhn-nephew 3.5s ease-in-out infinite; }
.scn-lebedev-house-nephew-story .candle { position:absolute; bottom:40%; left:58%; width:8px; height:18px; background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%); border-radius: 20% 20% 10% 10%; }
.scn-lebedev-house-nephew-story .candle-glow { position:absolute; bottom:42%; left:58%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #f0d090 0%, #d0a060 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(208,160,96,.4); animation: lhn-candle 2.5s ease-in-out infinite alternate; }
.scn-lebedev-house-nephew-story .cards { position:absolute; bottom:28%; left:45%; width:20px; height:16px; background: linear-gradient(45deg, #4a3a2a 25%, #6a5a4a 50%, #4a3a2a 75%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.5); transform: rotate(-15deg); animation: lhn-cards 6s ease-in-out infinite; }
@keyframes lhn-nephew { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhn-candle { 0% { opacity:.6; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.2); } 100% { opacity:.7; transform:translate(-50%,-50%) scale(.9); } }
@keyframes lhn-cards { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }

/* Scene 4: lebedev-house-prince-remonstrates */
.scn-lebedev-house-prince-remonstrates { background: linear-gradient(180deg, #1a1414 0%, #0f0a0a 50%, #050202 100%), radial-gradient(ellipse at 30% 40%, #2a1e1e 0%, transparent 80%); }
.scn-lebedev-house-prince-remonstrates .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); }
.scn-lebedev-house-prince-remonstrates .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0f0a0a 0%, #050202 100%); }
.scn-lebedev-house-prince-remonstrates .window { position:absolute; top:10%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-lebedev-house-prince-remonstrates .curtain { position:absolute; top:10%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, rgba(20,10,10,.6) 0%, rgba(10,5,5,.8) 100%); filter: blur(2px); animation: lhp-curtain 8s ease-in-out infinite alternate; }
.scn-lebedev-house-prince-remonstrates .prince-silhouette { position:absolute; bottom:28%; left:25%; width:35px; height:75px; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhp-prince 3.2s ease-in-out infinite; }
.scn-lebedev-house-prince-remonstrates .other-silhouette { position:absolute; bottom:28%; right:25%; width:35px; height:75px; background: linear-gradient(180deg, #0a0505 0%, #050202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lhp-other 3.6s ease-in-out infinite; }
.scn-lebedev-house-prince-remonstrates .lamp { position:absolute; bottom:40%; left:10%; width:10px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; }
.scn-lebedev-house-prince-remonstrates .glow { position:absolute; bottom:40%; left:10%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #d0b080 0%, #b09060 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(176,144,96,.3); animation: lhp-glow 4s ease-in-out infinite alternate; }
@keyframes lhp-curtain { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes lhp-prince { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(4deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lhp-other { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-4deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(8px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lhp-glow { 0% { opacity:.5; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } 100% { opacity:.6; transform:translate(-50%,-50%) scale(.9); } }

/* silence */
.scn-silence { background: linear-gradient(180deg, #1e1722 0%, #2a1f2e 40%, #14111a 70%), radial-gradient(ellipse at 50% 60%, #3a2e4a 0%, transparent 70%); }
.scn-silence .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #241d2a 0%, #1a151f 100%); }
.scn-silence .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e1722 0%, #0e0b12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-silence .lampshade { position:absolute; top:22%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b08a5a 0%, #7a5c3a 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); border-radius: 5px 5px 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: s-lamp 5s ease-in-out infinite; }
.scn-silence .glow { position:absolute; top:28%; left:50%; width:120px; height:120px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,120,0.3) 0%, rgba(255,200,120,0.05) 60%, transparent 100%); border-radius: 50%; animation: s-pulse 3s ease-in-out infinite alternate; }
.scn-silence .figure-left { position:absolute; bottom:28%; left:28%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: s-sway-left 6s ease-in-out infinite; box-shadow: 0 0 8px rgba(0,0,0,0.5); }
.scn-silence .figure-right { position:absolute; bottom:28%; right:28%; width:24px; height:56px; background: linear-gradient(180deg, #2a242a 0%, #1a141a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: s-sway-right 6s ease-in-out infinite; box-shadow: 0 0 8px rgba(0,0,0,0.5); }
.scn-silence .table { position:absolute; bottom:30%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-silence .candle { position:absolute; bottom:30%; left:50%; width:6px; height:16px; transform:translate(-50%,-100%); background: linear-gradient(0deg, #8a7a6a 0%, #eaddca 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 6px 2px rgba(255,220,160,0.3); animation: s-candle-glow 3s ease-in-out infinite alternate; }
@keyframes s-lamp { 0%,100% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg); } }
@keyframes s-pulse { 0% { opacity:0.3; transform:translate(-50%,-50%) scale(0.95); } 100% { opacity:0.6; transform:translate(-50%,-50%) scale(1.05); } }
@keyframes s-sway-left { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(-2px) rotate(1.5deg); } }
@keyframes s-sway-right { 0%,100% { transform:translateX(0) rotate(1deg); } 50% { transform:translateX(2px) rotate(-1.5deg); } }
@keyframes s-candle-glow { 0% { box-shadow:0 0 4px 1px rgba(255,220,160,0.2); } 100% { box-shadow:0 0 10px 4px rgba(255,220,160,0.4); } }

/* aglaya-confused-but-fearless */
.scn-aglaya-confused-but-fearless { background: linear-gradient(180deg, #2a2232 0%, #1e1727 40%, #14101e 70%), radial-gradient(ellipse at 30% 70%, #3a2e4a 0%, transparent 70%); }
.scn-aglaya-confused-but-fearless .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2232 0%, #1e1727 100%); }
.scn-aglaya-confused-but-fearless .archway { position:absolute; top:10%; left:15%; width:70%; height:50%; background: linear-gradient(180deg, #3a2e4a 0%, #1e1727 100%); border-radius: 40% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-aglaya-confused-but-fearless .sofa { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: acf-breath 8s ease-in-out infinite; }
.scn-aglaya-confused-but-fearless .figure-enter { position:absolute; bottom:20%; left:22%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: acf-enter 4s ease-in-out infinite; }
.scn-aglaya-confused-but-fearless .figure-stand { position:absolute; bottom:20%; right:25%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: acf-stand 6s ease-in-out infinite; }
.scn-aglaya-confused-but-fearless .lamp-light { position:absolute; top:30%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,120,0.25) 0%, rgba(255,200,120,0.05) 60%, transparent 100%); border-radius: 50%; animation: acf-glow 3s ease-in-out infinite alternate; }
.scn-aglaya-confused-but-fearless .shadow { position:absolute; bottom:0; left:10%; width:60%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%); animation: acf-shadow-drift 10s linear infinite; }
@keyframes acf-breath { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } }
@keyframes acf-enter { 0%,100% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(3px) rotate(1deg); } }
@keyframes acf-stand { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-2px) rotate(-1deg); } }
@keyframes acf-glow { 0% { opacity:0.2; transform:scale(0.95); } 100% { opacity:0.4; transform:scale(1.05); } }
@keyframes acf-shadow-drift { 0% { transform:translateX(-5px); } 50% { transform:translateX(5px); } 100% { transform:translateX(-5px); } }

/* aglaya-fidgets */
.scn-aglaya-fidgets { background: linear-gradient(180deg, #2a2232 0%, #1e1727 40%, #14101e 70%), radial-gradient(ellipse at 60% 50%, #3a2e4a 0%, transparent 70%); }
.scn-aglaya-fidgets .wall-texture { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #2a2232 0%, #1e1727 100%); }
.scn-aglaya-fidgets .sofa-back { position:absolute; bottom:10%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); }
.scn-aglaya-fidgets .cushion { position:absolute; bottom:18%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: af-squirm 5s ease-in-out infinite; }
.scn-aglaya-fidgets .figure-seated { position:absolute; bottom:18%; left:40%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: af-shift 6s ease-in-out infinite; }
.scn-aglaya-fidgets .hand-left { position:absolute; bottom:22%; left:36%; width:6px; height:14px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; transform-origin: top; animation: af-hand-left 4s ease-in-out infinite; }
.scn-aglaya-fidgets .hand-right { position:absolute; bottom:22%; right:34%; width:6px; height:14px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; transform-origin: top; animation: af-hand-right 4s ease-in-out infinite; }
.scn-aglaya-fidgets .fabric-folds { position:absolute; bottom:15%; left:38%; width:30%; height:12%; background: linear-gradient(180deg, rgba(74,58,74,0.5) 0%, transparent 100%); border-radius: 30%; animation: af-folds 7s ease-in-out infinite; }
@keyframes af-squirm { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.03); } }
@keyframes af-shift { 0%,100% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(4px) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-2deg); } 75% { transform:translateX(6px) rotate(0deg); } }
@keyframes af-hand-left { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(-15deg); } }
@keyframes af-hand-right { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(15deg); } }
@keyframes af-folds { 0%,100% { opacity:0.2; } 50% { opacity:0.6; } }

/* woman-understands-woman */
.scn-woman-understands-woman { background: linear-gradient(180deg, #2a2232 0%, #1e1727 40%, #14101e 70%), radial-gradient(ellipse at 50% 50%, #3a2e4a 0%, transparent 70%); }
.scn-woman-understands-woman .backdrop { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #2a2232 0%, #1e1727 100%); }
.scn-woman-understands-woman .floor-line { position:absolute; bottom:25%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #4a3a5a 20%, #4a3a5a 80%, transparent 100%); }
.scn-woman-understands-woman .figure-her { position:absolute; bottom:20%; left:30%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: wuw-her 6s ease-in-out infinite; }
.scn-woman-understands-woman .figure-me { position:absolute; bottom:20%; right:30%; width:22px; height:55px; background: linear-gradient(180deg, #2a242a 0%, #1a141a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: wuw-me 6s ease-in-out infinite; }
.scn-woman-understands-woman .gaze-line { position:absolute; top:30%; left:30%; right:30%; height:2px; background: linear-gradient(90deg, rgba(200,180,220,0.1) 0%, rgba(200,180,220,0.4) 50%, rgba(200,180,220,0.1) 100%); animation: wuw-gaze 4s ease-in-out infinite alternate; }
.scn-woman-understands-woman .tension-spark { position:absolute; top:40%; left:50%; width:4px; height:4px; background: radial-gradient(circle, rgba(255,220,160,0.8) 0%, transparent 100%); border-radius: 50%; animation: wuw-spark 2s ease-in-out infinite; }
.scn-woman-understands-woman .shadow-pool { position:absolute; bottom:0; left:20%; width:60%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-woman-understands-woman .glass-bead { position:absolute; top:35%; left:49%; width:6px; height:6px; background: radial-gradient(circle, rgba(220,200,255,0.6) 0%, transparent 100%); border-radius: 50%; animation: wuw-bead 3s ease-in-out infinite; }
@keyframes wuw-her { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1.5deg); } }
@keyframes wuw-me { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-2px) rotate(-1.5deg); } }
@keyframes wuw-gaze { 0% { opacity:0.1; transform:scaleX(0.8); } 100% { opacity:0.6; transform:scaleX(1); } }
@keyframes wuw-spark { 0%,100% { opacity:0; transform:scale(0.5); } 50% { opacity:1; transform:scale(2); } }
@keyframes wuw-bead { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-3px) scale(1.5); } }

/* scene prince-fears-face */
.scn-prince-fears-face {
  background: linear-gradient(180deg, #1e1a2a 0%, #2a2230 40%, #14101a 100%), radial-gradient(ellipse at 50% 60%, #2a2230 0%, transparent 70%);
}
.scn-prince-fears-face .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2230 0%, #1e1a2a 100%);
  animation: pf-wall 12s ease-in-out infinite alternate;
}
.scn-prince-fears-face .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #14101a 0%, #0e0b12 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-prince-fears-face .portrait-frame {
  position: absolute; bottom: 40%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: pf-frame 8s ease-in-out infinite;
}
.scn-prince-fears-face .portrait-glow {
  position: absolute; bottom: 44%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #8a5a3a 0%, #4a2a1a 70%);
  border-radius: 2px;
  box-shadow: 0 0 24px 8px rgba(80,40,20,.6), 0 0 48px 16px rgba(80,40,20,.3);
  animation: pf-glow 3.5s ease-in-out infinite alternate;
}
.scn-prince-fears-face .figure-sitting {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figure 6s ease-in-out infinite;
}
.scn-prince-fears-face .shadow-shape {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: pf-shadow 6s ease-in-out infinite alternate;
}
.scn-prince-fears-face .candle {
  position: absolute; bottom: 35%; left: 35%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-prince-fears-face .candle-flame {
  position: absolute; bottom: 59%; left: 35.8%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, #703010 80%);
  border-radius: 50%;
  box-shadow: 0 2px 12px 6px #ffa040, 0 0 20px 10px rgba(255,160,64,.4);
  animation: pf-flame 1.2s ease-in-out infinite alternate;
}
@keyframes pf-wall { 0%,100% { opacity: .9 } 50% { opacity: .7 } }
@keyframes pf-frame { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes pf-glow { 0% { opacity: .7; box-shadow: 0 0 20px 6px #4a2a1a, 0 0 40px 12px rgba(74,42,26,.3) } 100% { opacity: 1; box-shadow: 0 0 32px 12px #8a5a3a, 0 0 60px 20px rgba(138,90,58,.4) } }
@keyframes pf-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } }
@keyframes pf-shadow { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }
@keyframes pf-flame { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-1px) } 100% { transform: scale(.95) translateY(1px) } }

/* scene prince-explains-fear */
.scn-prince-explains-fear {
  background: linear-gradient(180deg, #18141c 0%, #201c28 40%, #120e14 100%), radial-gradient(ellipse at 30% 50%, #201c28 0%, transparent 60%);
}
.scn-prince-explains-fear .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #201c28 0%, #18141c 100%);
  animation: pe-wall 15s ease-in-out infinite alternate;
}
.scn-prince-explains-fear .window-arch {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  border: 2px solid #2a2a38;
}
.scn-prince-explains-fear .moonlight {
  position: absolute; bottom: 35%; left: 20%; width: 56px; height: 86px;
  background: radial-gradient(circle at 50% 30%, rgba(180,200,220,.15) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  animation: pe-moon 12s ease-in-out infinite alternate;
}
.scn-prince-explains-fear .portrait-on-wall {
  position: absolute; bottom: 45%; right: 25%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 2px 2px 10px rgba(0,0,0,.5);
  animation: pe-portrait 9s ease-in-out infinite;
}
.scn-prince-explains-fear .figure-standing {
  position: absolute; bottom: 25%; left: 45%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #1e1a24 0%, #120e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 5s ease-in-out infinite;
}
.scn-prince-explains-fear .raised-hand {
  position: absolute; bottom: 65%; left: 48%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: pe-hand 3s ease-in-out infinite alternate;
}
.scn-prince-explains-fear .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: pe-floor 8s ease-in-out infinite alternate;
}
.scn-prince-explains-fear .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,200,220,.03) 0%, transparent 80%);
  filter: blur(2px);
  animation: pe-dust 20s linear infinite;
}
@keyframes pe-wall { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes pe-moon { 0% { opacity: .3 } 100% { opacity: .7 } }
@keyframes pe-portrait { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pe-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 70% { transform: translateX(6px) translateY(0) rotate(0) } }
@keyframes pe-hand { 0% { transform: rotate(-30deg) } 100% { transform: rotate(-45deg) } }
@keyframes pe-floor { 0% { opacity: .4 } 100% { opacity: .7 } }
@keyframes pe-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

/* scene evgenie-incredulous */
.scn-evgenie-incredulous {
  background: linear-gradient(180deg, #1c1822 0%, #2a2634 50%, #14101a 100%), radial-gradient(ellipse at 50% 70%, #2a2634 0%, transparent 60%);
}
.scn-evgenie-incredulous .paneling {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2230 0%, #221e2a 50%, #2a2230 100%);
  background-size: 60px 100%;
  box-shadow: inset 0 30px 50px rgba(0,0,0,.5);
  animation: ei-panel 20s ease-in-out infinite alternate;
}
.scn-evgenie-incredulous .table-oval {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30px;
  background: radial-gradient(ellipse, #3a2a1a 0%, #1e140c 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: ei-table 10s ease-in-out infinite;
}
.scn-evgenie-incredulous .candelabra {
  position: absolute; bottom: 38%; left: 50%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(0,0,0,.4);
}
.scn-evgenie-incredulous .wax-drip {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 10px;
  background: #8a7050;
  border-radius: 2px;
  animation: ei-wax 4s ease-in-out infinite;
}
.scn-evgenie-incredulous .figure-evgenie {
  position: absolute; bottom: 28%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ei-evgenie 6s ease-in-out infinite;
}
.scn-evgenie-incredulous .figure-prince {
  position: absolute; bottom: 28%; right: 25%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ei-prince 7s ease-in-out infinite;
}
.scn-evgenie-incredulous .shadow-cast {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: ei-shadow 8s ease-in-out infinite alternate;
}
@keyframes ei-panel { 0%,100% { background-position: 0 0 } 50% { background-position: 30px 0 } }
@keyframes ei-table { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes ei-wax { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ei-evgenie { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-2deg) } 70% { transform: translateX(-6px) rotate(0) } }
@keyframes ei-prince { 0%,100% { transform: translateX(0) rotate(0) } 40% { transform: translateX(4px) rotate(2deg) } 80% { transform: translateX(8px) rotate(0) } }
@keyframes ei-shadow { 0% { opacity: .5 } 100% { opacity: .8 } }

/* scene prince-loves-both */
.scn-prince-loves-both {
  background: linear-gradient(180deg, #1a1620 0%, #282230 40%, #120e14 100%), radial-gradient(ellipse at 50% 40%, #282230 0%, transparent 60%);
}
.scn-prince-loves-both .backdrop {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #282230 0%, #1a1620 100%);
  animation: pl-backdrop 18s ease-in-out infinite alternate;
}
.scn-prince-loves-both .window-slit {
  position: absolute; bottom: 40%; left: 10%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
}
.scn-prince-loves-both .figure-aglaya {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-aglaya 6s ease-in-out infinite;
}
.scn-prince-loves-both .figure-nastasya {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 78px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1220 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-nastasya 7s ease-in-out infinite;
}
.scn-prince-loves-both .overlap-shape {
  position: absolute; bottom: 40%; left: 38%; right: 38%; height: 10px;
  background: radial-gradient(ellipse, rgba(160,120,80,.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: pl-overlap 10s ease-in-out infinite alternate;
}
.scn-prince-loves-both .glow-mist {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 60px;
  background: radial-gradient(ellipse, rgba(200,180,160,.08) 0%, transparent 100%);
  filter: blur(16px);
  animation: pl-mist 12s ease-in-out infinite alternate;
}
.scn-prince-loves-both .floor-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a3a4a 50%, transparent 100%);
  animation: pl-floor 8s ease-in-out infinite alternate;
}
.scn-prince-loves-both .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: pl-vignette 14s ease-in-out infinite alternate;
}
@keyframes pl-backdrop { 0%,100% { opacity: .7 } 50% { opacity: .9 } }
@keyframes pl-aglaya { 0%,100% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(-4px) rotate(1deg) } 70% { transform: translateX(-8px) rotate(-1deg) } }
@keyframes pl-nastasya { 0%,100% { transform: translateX(0) rotate(1deg) } 40% { transform: translateX(4px) rotate(-1deg) } 80% { transform: translateX(8px) rotate(1deg) } }
@keyframes pl-overlap { 0% { opacity: .2 } 100% { opacity: .5 } }
@keyframes pl-mist { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }
@keyframes pl-floor { 0% { opacity: .3 } 100% { opacity: .6 } }
@keyframes pl-vignette { 0% { opacity: .6 } 100% { opacity: .9 } }

/* evgenie-argues */
.scn-evgenie-argues {
  background: linear-gradient(180deg, #2b1e16 0%, #1a120d 50%, #0f0a07 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1f 0%, transparent 70%);
}
.scn-evgenie-argues .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1f 0%, #2b1e16 100%); }
.scn-evgenie-argues .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-evgenie-argues .lamp { position:absolute; bottom:35%; left:15%; width:14px; height:30px; background: radial-gradient(circle at 50% 20%, #ffd280 0%, #b08040 70%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 25px rgba(176,128,64,.4); animation: ea-lamp 3s ease-in-out infinite alternate; }
.scn-evgenie-argues .figure-evgenie { position:absolute; bottom:20%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ea-figure 5s ease-in-out infinite; }
.scn-evgenie-argues .arm-raising { position:absolute; bottom:55%; left:42%; width:12px; height:40px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left; animation: ea-arm 2s ease-in-out infinite alternate; }
.scn-evgenie-argues .figure-listener { position:absolute; bottom:18%; left:55%; width:36px; height:70px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ea-listener 8s ease-in-out infinite; }
.scn-evgenie-argues .shadow { position:absolute; bottom:0; width:50px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); }
.scn-evgenie-argues .evgenie-shadow { left:33%; width:45px; animation: ea-shadow 5s ease-in-out infinite; }
.scn-evgenie-argues .listener-shadow { left:53%; width:40px; animation: ea-shadow 8s ease-in-out infinite reverse; }
@keyframes ea-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.8; transform: scaleY(0.95) } }
@keyframes ea-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ea-arm { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-5px) } 100% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes ea-listener { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-2px) scale(0.98) } 50% { transform: translateX(0) scale(1) } 75% { transform: translateX(1px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes ea-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }

/* evgenie-psychology */
.scn-evgenie-psychology {
  background: linear-gradient(180deg, #2b1e16 0%, #1a120d 50%, #0f0a07 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1f 0%, transparent 60%);
}
.scn-evgenie-psychology .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1f 0%, #2b1e16 100%); }
.scn-evgenie-psychology .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-evgenie-psychology .lamp { position:absolute; bottom:40%; left:10%; width:16px; height:34px; background: radial-gradient(circle at 50% 20%, #ffd280 0%, #b08040 70%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 25px rgba(176,128,64,.4); animation: ep-lamp 3s ease-in-out infinite alternate; }
.scn-evgenie-psychology .figure-evgenie { position:absolute; bottom:20%; left:40%; width:40px; height:80px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ep-figure 6s ease-in-out infinite; }
.scn-evgenie-psychology .hand-gesturing { position:absolute; bottom:50%; left:48%; width:14px; height:20px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: ep-hand 2.5s ease-in-out infinite alternate; }
.scn-evgenie-psychology .book { position:absolute; bottom:30%; left:55%; width:24px; height:18px; background: linear-gradient(135deg, #3a2a1f 0%, #1a120d 100%); border-radius: 2px; transform: rotate(10deg); animation: ep-book 9s ease-in-out infinite; }
.scn-evgenie-psychology .shadow { position:absolute; bottom:0; width:50px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); }
.scn-evgenie-psychology .figure-shadow { left:38%; width:45px; animation: ep-shadow 6s ease-in-out infinite; }
.scn-evgenie-psychology .book-shadow { left:53%; width:30px; height:8px; animation: ep-shadow-book 9s ease-in-out infinite; }
@keyframes ep-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(0.95) } }
@keyframes ep-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ep-hand { 0% { transform: rotate(-10deg) translateY(0) scale(1) } 50% { transform: rotate(20deg) translateY(-6px) scale(1.05) } 100% { transform: rotate(5deg) translateY(-2px) scale(1) } }
@keyframes ep-book { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(14deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes ep-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.08) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes ep-shadow-book { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.2; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(1) } }

/* evgenie-accuses-of-lie */
.scn-evgenie-accuses-of-lie {
  background: linear-gradient(180deg, #2b1e16 0%, #1a120d 50%, #0f0a07 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1f 0%, transparent 70%);
}
.scn-evgenie-accuses-of-lie .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1f 0%, #2b1e16 100%); }
.scn-evgenie-accuses-of-lie .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-evgenie-accuses-of-lie .lamp { position:absolute; bottom:38%; left:20%; width:14px; height:30px; background: radial-gradient(circle at 50% 20%, #ffd280 0%, #b08040 70%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 25px rgba(176,128,64,.4); animation: eao-lamp 3.5s ease-in-out infinite alternate; }
.scn-evgenie-accuses-of-lie .figure-accuser { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: eao-accuser 4s ease-in-out infinite; }
.scn-evgenie-accuses-of-lie .arm-pointing { position:absolute; bottom:55%; left:36%; width:12px; height:35px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left; animation: eao-arm 1.8s ease-in-out infinite alternate; }
.scn-evgenie-accuses-of-lie .figure-accused { position:absolute; bottom:18%; left:55%; width:38px; height:72px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: eao-accused 6s ease-in-out infinite; }
.scn-evgenie-accuses-of-lie .shadow { position:absolute; bottom:0; width:50px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); }
.scn-evgenie-accuses-of-lie .accuser-shadow { left:28%; width:44px; animation: eao-shadow 4s ease-in-out infinite; }
.scn-evgenie-accuses-of-lie .accused-shadow { left:53%; width:42px; animation: eao-shadow 6s ease-in-out infinite reverse; }
@keyframes eao-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.06) } 100% { opacity:.8; transform: scaleY(0.95) } }
@keyframes eao-accuser { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes eao-arm { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(35deg) translateY(-4px) } 100% { transform: rotate(-15deg) translateY(-2px) } }
@keyframes eao-accused { 0% { transform: translateX(0) scale(1) } 30% { transform: translateX(-3px) scale(0.97) } 60% { transform: translateX(0) scale(1) } 100% { transform: translateX(1px) scale(1.02) } }
@keyframes eao-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.15) } 100% { opacity:.5; transform: scaleX(1) } }

/* evgenie-criticizes-principle */
.scn-evgenie-criticizes-principle {
  background: linear-gradient(180deg, #2b1e16 0%, #1a120d 50%, #0f0a07 100%),
              radial-gradient(ellipse at 50% 65%, #3a2a1f 0%, transparent 60%);
}
.scn-evgenie-criticizes-principle .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1f 0%, #2b1e16 100%); }
.scn-evgenie-criticizes-principle .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.6); }
.scn-evgenie-criticizes-principle .lamp { position:absolute; bottom:50%; left:12%; width:14px; height:30px; background: radial-gradient(circle at 50% 20%, #ffd280 0%, #b08040 70%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 25px rgba(176,128,64,.4); animation: ecp-lamp 3s ease-in-out infinite alternate; }
.scn-evgenie-criticizes-principle .desk { position:absolute; bottom:10%; left:30%; width:120px; height:30px; background: linear-gradient(180deg, #3a2a1f 0%, #1a120d 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ecp-desk 7s ease-in-out infinite; }
.scn-evgenie-criticizes-principle .figure-evgenie { position:absolute; bottom:30%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ecp-figure 5s ease-in-out infinite; }
.scn-evgenie-criticizes-principle .hand-emphasizing { position:absolute; bottom:55%; left:44%; width:14px; height:22px; background: linear-gradient(180deg, #1a120d 0%, #0f0a07 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom left; animation: ecp-hand 2.2s ease-in-out infinite alternate; }
.scn-evgenie-criticizes-principle .papers { position:absolute; bottom:30%; left:50%; width:30px; height:22px; background: linear-gradient(135deg, #4a3a2a 0%, #2b1e16 100%); border-radius: 2px; transform: rotate(5deg); animation: ecp-papers 11s ease-in-out infinite; }
.scn-evgenie-criticizes-principle .shadow { position:absolute; bottom:0; width:50px; height:10px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); }
.scn-evgenie-criticizes-principle .desk-shadow { left:25%; width:130px; height:14px; bottom:8%; background: rgba(0,0,0,.4); animation: ecp-shadow-desk 7s ease-in-out infinite; }
@keyframes ecp-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.07) } 100% { opacity:.8; transform: scaleY(0.95) } }
@keyframes ecp-desk { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes ecp-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ecp-hand { 0% { transform: rotate(-12deg) translateY(0) scale(1) } 50% { transform: rotate(18deg) translateY(-5px) scale(1.03) } 100% { transform: rotate(5deg) translateY(-2px) scale(1) } }
@keyframes ecp-papers { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ecp-shadow-desk { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(1.05) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-verdict { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%); }

.scn-verdict .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-verdict .bars   { position:absolute; top:0; bottom:40%; left:20%; right:20%; background: repeating-linear-gradient(0deg, #5a5a4a 0px, #5a5a4a 4px, transparent 4px, transparent 14px); opacity:.6; animation: vd-bars 6s ease-in-out infinite; }
.scn-verdict .window { position:absolute; top:10%; left:25%; width:50%; height:35%; background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: vd-window 10s ease-in-out infinite alternate; }
.scn-verdict .figure { position:absolute; bottom:15%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: vd-figure 8s ease-in-out infinite; }
.scn-verdict .chain  { position:absolute; bottom:30%; left:40%; width:40px; height:4px; background: #4a4a5a; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: vd-chain 4s ease-in-out infinite; }
.scn-verdict .shadow { position:absolute; bottom:12%; left:40%; width:50px; height:10px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(4px); animation: vd-shadow 8s ease-in-out infinite; }

@keyframes vd-bars { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.02); } 100% { opacity:.5; transform: scaleY(1); } }
@keyframes vd-window { 0% { opacity:.6; transform: translateY(0); } 50% { opacity:.8; transform: translateY(-2px); } 100% { opacity:.6; transform: translateY(0); } }
@keyframes vd-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes vd-chain { 0% { transform: translateX(0) translateY(0); opacity:.5; } 50% { transform: translateX(2px) translateY(3px); opacity:.8; } 100% { transform: translateX(0) translateY(0); opacity:.5; } }
@keyframes vd-shadow { 0% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.15); opacity:.4; } 100% { transform: scaleX(1); opacity:.3; } }

/* mother's memory */
.scn-mothers-memory { background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 40%, #5a4a4a 0%, transparent 70%); }

.scn-mothers-memory .room      { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); }
.scn-mothers-memory .window    { position:absolute; top:15%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #7a6a6a 0%, #9a8a8a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: mm-window 12s ease-in-out infinite alternate; }
.scn-mothers-memory .armchair  { position:absolute; bottom:20%; right:10%; width:80px; height:50px; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: mm-chair 8s ease-in-out infinite; }
.scn-mothers-memory .figure    { position:absolute; bottom:28%; right:20%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom; animation: mm-figure 10s ease-in-out infinite; }
.scn-mothers-memory .photo     { position:absolute; top:30%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: mm-photo 15s ease-in-out infinite; }
.scn-mothers-memory .dust      { position:absolute; top:10%; left:40%; width:20px; height:20px; background: rgba(200,200,200,.15); border-radius:50%; filter: blur(8px); animation: mm-dust 20s linear infinite; }

@keyframes mm-window { 0% { opacity:.5; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.01); } 100% { opacity:.5; transform: scaleY(1); } }
@keyframes mm-chair   { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mm-figure  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mm-photo   { 0% { opacity:.6; transform: translateX(0) scale(1); } 50% { opacity:.8; transform: translateX(1px) scale(1.02); } 100% { opacity:.6; transform: translateX(0) scale(1); } }
@keyframes mm-dust    { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0; } 50% { transform: translateY(-10px) translateX(5px) scale(1.5); opacity:.3; } 100% { transform: translateY(0) translateX(0) scale(1); opacity:0; } }

/* hippolyte death */
.scn-hippolyte-death { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 70%); }

.scn-hippolyte-death .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-hippolyte-death .bed    { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: hd-bed 8s ease-in-out infinite; }
.scn-hippolyte-death .figure { position:absolute; bottom:20%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom; animation: hd-figure 6s ease-in-out infinite; }
.scn-hippolyte-death .candle { position:absolute; top:25%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; animation: hd-candle 5s ease-in-out infinite; }
.scn-hippolyte-death .flame  { position:absolute; top:22%; left:52%; width:6px; height:8px; background: radial-gradient(circle, #ffd070 0%, #c08040 70%); border-radius:50%; box-shadow: 0 0 12px 4px #c08040, 0 0 24px 8px rgba(192,128,64,.4); animation: hd-flame 2s ease-in-out infinite; }
.scn-hippolyte-death .shadow { position:absolute; bottom:12%; left:30%; width:80px; height:10px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); animation: hd-shadow 8s ease-in-out infinite; }

@keyframes hd-bed     { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hd-figure  { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hd-candle  { 0% { transform: scaleY(1) translateX(0); opacity:.8; } 50% { transform: scaleY(1.02) translateX(1px); opacity:.9; } 100% { transform: scaleY(1) translateX(0); opacity:.8; } }
@keyframes hd-flame   { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-2px) scale(1.15); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes hd-shadow  { 0% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.1); opacity:.4; } 100% { transform: scaleX(1); opacity:.3; } }

/* prince sent to switzerland */
.scn-prince-sent-to-switzerland { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%), radial-gradient(ellipse at 50% 30%, #5a6a6a 0%, transparent 70%); }

.scn-prince-sent-to-switzerland .platform { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius:0 0 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-prince-sent-to-switzerland .train    { position:absolute; bottom:18%; left:5%; width:70%; height:35%; background: linear-gradient(135deg, #4a5a5a 0%, #3a4a4a 100%); border-radius:4% 8% 4% 4% / 10% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: ps-train 12s ease-in-out infinite; }
.scn-prince-sent-to-switzerland .figure   { position:absolute; bottom:22%; right:15%; width:28px; height:55px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom; animation: ps-figure 8s ease-in-out infinite; }
.scn-prince-sent-to-switzerland .luggage  { position:absolute; bottom:18%; right:30%; width:30px; height:20px; background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ps-luggage 6s ease-in-out infinite; }
.scn-prince-sent-to-switzerland .track    { position:absolute; bottom:14%; left:0; right:0; height:4px; background: repeating-linear-gradient(90deg, #4a5a4a 0px, #4a5a4a 6px, transparent 6px, transparent 16px); opacity:.6; animation: ps-track 10s linear infinite; }
.scn-prince-sent-to-switzerland .steam    { position:absolute; top:20%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,200,200,.2) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ps-steam 15s ease-in-out infinite; }

@keyframes ps-train  { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes ps-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ps-luggage { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(1px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ps-track  { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes ps-steam  { 0% { transform: translateY(0) scale(1); opacity:.2; } 50% { transform: translateY(-10px) scale(1.5); opacity:.4; } 100% { transform: translateY(0) scale(1); opacity:.2; } }

.scn-lebedev-house-nephew-defends {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-lebedev-house-nephew-defends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-lebedev-house-nephew-defends .wall {
  position: absolute; inset: 20% 0 20% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-lebedev-house-nephew-defends .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: nd-table 6s ease-in-out infinite;
}
@keyframes nd-table {
  0%,100% { transform: translateY(0); }
  25% { transform: translateY(-1px); }
  75% { transform: translateY(1px); }
}
.scn-lebedev-house-nephew-defends .nephew {
  position: absolute; bottom: 20%; left: 38%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-nephew 4s ease-in-out infinite;
}
@keyframes nd-nephew {
  0%,100% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(-2deg); }
  60% { transform: translateX(-2px) rotate(2deg); }
}
.scn-lebedev-house-nephew-defends .lamp {
  position: absolute; bottom: 40%; left: 45%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 0 20px 8px #cc8844;
  animation: nd-lamp 2s ease-in-out infinite alternate;
}
@keyframes nd-lamp {
  0% { box-shadow: 0 0 15px 4px #cc8844; opacity: 0.8; }
  50% { box-shadow: 0 0 25px 10px #eeaa66; opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #cc8844; opacity: 0.85; }
}
.scn-lebedev-house-nephew-defends .shadow-wall {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 35%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: nd-shadow 6s ease-in-out infinite;
}
@keyframes nd-shadow {
  0%,100% { transform: translateX(0) scale(1); }
  25% { transform: translateX(10px) scale(1.05); }
  75% { transform: translateX(-5px) scale(0.95); }
}
.scn-lebedev-house-nephew-defends .chair {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: nd-chair 5s ease-in-out infinite;
}
@keyframes nd-chair {
  0%,100% { transform: rotate(0); }
  40% { transform: rotate(2deg); }
  80% { transform: rotate(-1deg); }
}

.scn-lebedev-house-accusations {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 70%);
}
.scn-lebedev-house-accusations .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-lebedev-house-accusations .wall-dark {
  position: absolute; inset: 25% 0 25% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-lebedev-house-accusations .bed {
  position: absolute; bottom: 25%; left: 10%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ac-bed 12s ease-in-out infinite;
}
@keyframes ac-bed {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
.scn-lebedev-house-accusations .sofa {
  position: absolute; bottom: 25%; right: 10%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-lebedev-house-accusations .creeping-figure {
  position: absolute; bottom: 25%; left: 40%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-creep 6s ease-in-out infinite;
}
@keyframes ac-creep {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(20px) scaleY(0.95); }
  50% { transform: translateX(40px) scaleY(1); }
  75% { transform: translateX(20px) scaleY(1.05); }
  100% { transform: translateX(0) scaleY(1); }
}
.scn-lebedev-house-accusations .shadow-floor {
  position: absolute; bottom: 25%; left: 38%; width: 15%; height: 5%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: ac-shadow 6s ease-in-out infinite;
}
@keyframes ac-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  25% { transform: translateX(20px) scale(0.9); opacity: 0.3; }
  50% { transform: translateX(40px) scale(1.1); opacity: 0.5; }
  75% { transform: translateX(20px) scale(1); opacity: 0.4; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}
.scn-lebedev-house-accusations .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 75%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 0 40%;
  animation: ac-curtain 15s ease-in-out infinite alternate;
}
@keyframes ac-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}

.scn-lebedev-house-lebedeff-defends {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-lebedev-house-lebedeff-defends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-lebedev-house-lebedeff-defends .wall {
  position: absolute; inset: 20% 0 20% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
}
.scn-lebedev-house-lebedeff-defends .desk {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 10%;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ld-desk 8s ease-in-out infinite;
}
@keyframes ld-desk {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  75% { transform: translateY(1px) rotate(-0.5deg); }
}
.scn-lebedev-house-lebedeff-defends .lebedeff {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-figure 3s ease-in-out infinite;
}
@keyframes ld-figure {
  0%,100% { transform: translateX(0) rotate(0) scale(1); }
  20% { transform: translateX(5px) rotate(3deg) scale(1.02); }
  40% { transform: translateX(-3px) rotate(-2deg) scale(0.98); }
  60% { transform: translateX(2px) rotate(1deg) scale(1.01); }
}
.scn-lebedev-house-lebedeff-defends .chair {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ld-chair 4s ease-in-out infinite;
}
@keyframes ld-chair {
  0%,100% { transform: rotate(0); }
  30% { transform: rotate(2deg); }
  70% { transform: rotate(-1deg); }
}
.scn-lebedev-house-lebedeff-defends .candlestick {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20%;
}
.scn-lebedev-house-lebedeff-defends .flame {
  position: absolute; bottom: 42%; left: 48%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffcc44 0%, #cc6622 50%, #331100 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffaa44, 0 0 40px 12px rgba(255,170,68,0.4);
  animation: ld-flame 1.5s ease-in-out infinite alternate;
}
@keyframes ld-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.2) translateY(-4px); opacity: 1; }
  100% { transform: scale(0.9) translateY(2px); opacity: 0.85; }
}

.scn-lebedev-house-lebedeff-prayer {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0000 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-lebedev-house-lebedeff-prayer .floor-calm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
}
.scn-lebedev-house-lebedeff-prayer .wall-calm {
  position: absolute; inset: 20% 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-lebedev-house-lebedeff-prayer .icon {
  position: absolute; bottom: 40%; left: 43%; width: 8%; height: 20%;
  background: linear-gradient(90deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20%;
  box-shadow: 0 0 15px 4px #cc9944;
  animation: lp-icon 10s ease-in-out infinite;
}
@keyframes lp-icon {
  0%,100% { box-shadow: 0 0 12px 3px #cc9944; opacity: 0.8; }
  50% { box-shadow: 0 0 20px 6px #ddbb66; opacity: 1; }
}
.scn-lebedev-house-lebedeff-prayer .kneeling-figure {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lp-kneel 6s ease-in-out infinite;
}
@keyframes lp-kneel {
  0%,100% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
.scn-lebedev-house-lebedeff-prayer .candle {
  position: absolute; bottom: 20%; left: 55%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20%;
  animation: lp-candle 4s ease-in-out infinite;
}
@keyframes lp-candle {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
}
.scn-lebedev-house-lebedeff-prayer .glow {
  position: absolute; bottom: 30%; left: 50%; width: 20%; height: 30%;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, rgba(255,200,100,0.05) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lp-glow 8s ease-in-out infinite alternate;
}
@keyframes lp-glow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.6; transform: scale(1.1); }
}

.scn-gania-enters {
  background:
    linear-gradient(135deg, #1a1a2a 0%, #2a2a3e 50%, #1f1f30 100%),
    radial-gradient(ellipse at 40% 60%, #3a2a2a 0%, transparent 60%);
}

.scn-gania-enters .wall-left {
  position: absolute;
  left: 0;
  top: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
  animation: ge-wallpulse 6s ease-in-out infinite alternate;
}

.scn-gania-enters .wall-right {
  position: absolute;
  right: 0;
  top: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.5);
}

.scn-gania-enters .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 25%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}

.scn-gania-enters .door {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 18%;
  height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ge-door 10s ease-in-out infinite;
}

.scn-gania-enters .figure-gavrila {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 12%;
  height: 45%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-walk 4s ease-in-out infinite;
}

.scn-gania-enters .shadow {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 22%;
  height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: ge-shadow 4s ease-in-out infinite;
}

.scn-gania-enters .lamp {
  position: absolute;
  top: 10%;
  right: 25%;
  width: 6%;
  height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(255,208,128,0.3);
  animation: ge-lampflicker 3s ease-in-out infinite alternate;
}

.scn-gania-enters .lamp-glow {
  position: absolute;
  top: 8%;
  right: 22%;
  width: 12%;
  height: 20%;
  background: radial-gradient(ellipse, rgba(255,208,128,0.15) 0%, transparent 70%);
  animation: ge-lampglow 3s ease-in-out infinite alternate;
}

@keyframes ge-wallpulse {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}

@keyframes ge-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
}

@keyframes ge-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3%) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(6%) translateY(0) rotate(0deg); }
  75% { transform: translateX(9%) translateY(-2%) rotate(-2deg); }
  100% { transform: translateX(12%) translateY(0) rotate(0deg); }
}

@keyframes ge-shadow {
  0%, 100% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.1) translateX(5%); opacity: 0.8; }
}

@keyframes ge-lampflicker {
  0% { box-shadow: 0 0 15px 5px rgba(255,208,128,0.2); }
  50% { box-shadow: 0 0 25px 12px rgba(255,208,128,0.5); }
  100% { box-shadow: 0 0 18px 6px rgba(255,208,128,0.3); }
}

@keyframes ge-lampglow {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}

/* ------- scene: prince-continues-talking ------- */
.scn-prince-continues-talking {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 60% 50%, #3a3a4a 0%, transparent 60%);
}

.scn-prince-continues-talking .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 100%);
}

.scn-prince-continues-talking .chair {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 20%;
  height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.4);
}

.scn-prince-continues-talking .prince-seated {
  position: absolute;
  bottom: 18%;
  left: 33%;
  width: 14%;
  height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pct-sway 6s ease-in-out infinite;
}

.scn-prince-continues-talking .table {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 25%;
  height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
}

.scn-prince-continues-talking .vase {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
}

.scn-prince-continues-talking .curtain {
  position: absolute;
  top: 0;
  right: 0;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 0 50%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: pct-curtain 15s ease-in-out infinite alternate;
}

.scn-prince-continues-talking .candle {
  position: absolute;
  bottom: 22%;
  left: 72%;
  width: 2%;
  height: 8%;
  background: linear-gradient(180deg, #ffe0a0 0%, #b08040 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 0 10px 2px rgba(255,224,160,0.4);
  animation: pct-candle 4s ease-in-out infinite alternate;
}

.scn-prince-continues-talking .candle-glow {
  position: absolute;
  bottom: 18%;
  left: 68%;
  width: 10%;
  height: 16%;
  background: radial-gradient(ellipse, rgba(255,224,160,0.2) 0%, transparent 70%);
  animation: pct-candleglow 4s ease-in-out infinite alternate;
}

@keyframes pct-sway {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}

@keyframes pct-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.95); }
}

@keyframes pct-candle {
  0%, 100% { box-shadow: 0 0 8px 1px rgba(255,224,160,0.3); }
  50% { box-shadow: 0 0 16px 4px rgba(255,224,160,0.6); }
}

@keyframes pct-candleglow {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

/* ------- scene: prince-on-russia ------- */
.scn-prince-on-russia {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 70%, #1a2a2a 100%),
    radial-gradient(ellipse at 80% 40%, #4a5a6a 0%, transparent 50%);
}

.scn-prince-on-russia .window-frame {
  position: absolute;
  left: 15%;
  top: 10%;
  width: 70%;
  height: 80%;
  border: 12px solid #3a3a2a;
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  background: transparent;
}

.scn-prince-on-russia .glass {
  position: absolute;
  left: 17%;
  top: 12%;
  width: 66%;
  height: 76%;
  background: linear-gradient(135deg, rgba(80,100,120,0.3) 0%, rgba(40,60,80,0.1) 100%);
  filter: blur(2px);
  animation: por-glass 12s ease-in-out infinite alternate;
}

.scn-prince-on-russia .sill {
  position: absolute;
  bottom: 8%;
  left: 15%;
  width: 70%;
  height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}

.scn-prince-on-russia .prince-standing {
  position: absolute;
  bottom: 15%;
  left: 45%;
  width: 12%;
  height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: por-turn 8s ease-in-out infinite;
}

.scn-prince-on-russia .breath-frost {
  position: absolute;
  bottom: 45%;
  left: 42%;
  width: 18%;
  height: 12%;
  background: radial-gradient(ellipse, rgba(200,220,240,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: por-frost 6s ease-in-out infinite;
}

.scn-prince-on-russia .lamp-outside {
  position: absolute;
  top: 20%;
  right: 10%;
  width: 8%;
  height: 12%;
  background: radial-gradient(circle, #ffe080 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,224,128,0.5);
  animation: por-lamp 5s ease-in-out infinite alternate;
}

.scn-prince-on-russia .shadow-interior {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: por-shadow 20s ease-in-out infinite alternate;
}

@keyframes por-glass {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

@keyframes por-turn {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(-2%); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(3deg) translateX(2%); }
  100% { transform: rotate(0deg) translateX(0); }
}

@keyframes por-frost {
  0% { opacity: 0; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.8); }
}

@keyframes por-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.3); }
  50% { box-shadow: 0 0 40px 20px rgba(255,224,128,0.7); }
  100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.4); }
}

@keyframes por-shadow {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

/* ------- scene: prince-on-execution ------- */
.scn-prince-on-execution {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}

.scn-prince-on-execution .sky-dim {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: poe-sky 20s ease-in-out infinite alternate;
}

.scn-prince-on-execution .crowd-back {
  position: absolute;
  bottom: 10%;
  left: -10%;
  width: 120%;
  height: 60%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 20px, #2a2a2a 20px, #2a2a2a 40px);
  mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 70%);
  animation: poe-crowd 8s ease-in-out infinite alternate;
}

.scn-prince-on-execution .scaffold {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.6);
}

.scn-prince-on-execution .figure-condemned {
  position: absolute;
  bottom: 12%;
  left: 45%;
  width: 10%;
  height: 40%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: poe-kneel 10s ease-in-out infinite;
}

.scn-prince-on-execution .executioner {
  position: absolute;
  bottom: 12%;
  right: 30%;
  width: 12%;
  height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: poe-raise 12s ease-in-out infinite;
}

.scn-prince-on-execution .blade {
  position: absolute;
  bottom: 50%;
  right: 33%;
  width: 6%;
  height: 20%;
  background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: poe-fall 12s ease-in-out infinite;
}

.scn-prince-on-execution .drum {
  position: absolute;
  bottom: 5%;
  left: 15%;
  width: 10%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: poe-drum 1.5s ease-in-out infinite;
}

.scn-prince-on-execution .shadow-pool {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.8) 100%);
  filter: blur(5px);
}

@keyframes poe-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

@keyframes poe-crowd {
  0% { transform: translateX(0); opacity: 0.7; }
  50% { transform: translateX(-5px); opacity: 0.9; }
  100% { transform: translateX(0); opacity: 0.7; }
}

@keyframes poe-kneel {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5%) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-5%) rotate(-2deg); }
}

@keyframes poe-raise {
  0% { transform: scaleX(-1) translateY(0); }
  20% { transform: scaleX(-1) translateY(-10%); }
  40% { transform: scaleX(-1) translateY(0); }
  60% { transform: scaleX(-1) translateY(-10%); }
  80% { transform: scaleX(-1) translateY(0); }
  100% { transform: scaleX(-1) translateY(-10%); }
}

@keyframes poe-fall {
  0% { transform: rotate(0deg); }
  10% { transform: rotate(5deg); }
  20% { transform: rotate(0deg); }
  30% { transform: rotate(5deg); }
  40% { transform: rotate(0deg); }
  50% { transform: rotate(30deg); }
  60% { transform: rotate(0deg); }
  70% { transform: rotate(5deg); }
  80% { transform: rotate(0deg); }
  90% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}

@keyframes poe-drum {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}

.scn-prince-questions-nastasia {
  background:
    linear-gradient(180deg, #1a1115 0%, #2a1a1e 30%, #1e1216 60%, #0f090c 100%),
    radial-gradient(ellipse at 60% 40%, #3a2528 0%, transparent 70%);
}
.scn-prince-questions-nastasia .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a1115 100%);
}
.scn-prince-questions-nastasia .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1115 0%, #0f090c 100%);
}
.scn-prince-questions-nastasia .bed {
  position: absolute; bottom: 15%; left: 10%; width: 60%; height: 30%;
  background: linear-gradient(150deg, #3a2528 0%, #1e1216 100%);
  border-radius: 12% 12% 6% 6%; box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: pqn-bed 8s ease-in-out infinite alternate;
}
.scn-prince-questions-nastasia .figure-prince {
  position: absolute; bottom: 20%; left: 22%; width: 24%; height: 18%;
  background: linear-gradient(180deg, #2a1a1e 0%, #0f090c 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-5deg); transform-origin: 50% 80%;
  animation: pqn-fever 5s ease-in-out infinite alternate;
}
.scn-prince-questions-nastasia .doorway {
  position: absolute; bottom: 20%; right: 12%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #0f090c 0%, #1a1115 50%, #0f090c 100%);
  border-radius: 40% 40% 4% 4% / 60% 60% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-prince-questions-nastasia .figure-nastasia {
  position: absolute; bottom: 22%; right: 18%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1115 0%, #0f090c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1); opacity: .7;
  animation: pqn-approach 12s ease-in-out infinite alternate;
}
.scn-prince-questions-nastasia .window {
  position: absolute; top: 10%; left: 8%; width: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, #1a1115 70%);
  border: 3px solid #0f090c; border-radius: 4%;
  box-shadow: 0 0 20px rgba(74,58,58,.3);
  animation: pqn-window 6s ease-in-out infinite alternate;
}
.scn-prince-questions-nastasia .fever-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(42,26,30,.3) 0%, transparent 70%);
  filter: blur(8px); pointer-events: none;
  animation: pqn-haze 7s ease-in-out infinite alternate;
}
@keyframes pqn-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pqn-fever { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pqn-approach { 0% { transform: scaleX(-1) translateX(0); opacity: .5 } 50% { transform: scaleX(-1) translateX(-8px); opacity: .8 } 100% { transform: scaleX(-1) translateX(0); opacity: .5 } }
@keyframes pqn-window { 0% { opacity: .4; box-shadow: 0 0 10px rgba(74,58,58,.2) } 50% { opacity: .8; box-shadow: 0 0 30px rgba(74,58,58,.5) } 100% { opacity: .4; box-shadow: 0 0 10px rgba(74,58,58,.2) } }
@keyframes pqn-haze { 0% { opacity: .3; filter: blur(6px) } 50% { opacity: .6; filter: blur(12px) } 100% { opacity: .3; filter: blur(6px) } }

.scn-prince-tormented {
  background:
    linear-gradient(90deg, #0f090c 0%, #1a1115 30%, #0f090c 70%, #0a0608 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a1e 0%, transparent 80%);
}
.scn-prince-tormented .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0608 0%, #0f090c 100%);
}
.scn-prince-tormented .shadow-thread {
  position: absolute; top: 0; left: 50%; width: 2px; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #3a2528 30%, #6a4548 50%, #3a2528 70%, transparent 100%);
  transform: translateX(-50%);
  animation: pto-thread 4s ease-in-out infinite alternate;
}
.scn-prince-tormented .figure-prince {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #1a1115 0%, #0f090c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pto-cower 3s ease-in-out infinite alternate;
}
.scn-prince-tormented .figure-woman {
  position: absolute; bottom: 20%; right: 25%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a1115 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: pto-loom 8s ease-in-out infinite alternate;
}
.scn-prince-tormented .ripple {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(106,69,72,.1) 0%, transparent 70%);
  filter: blur(4px); animation: pto-ripple 5s ease-in-out infinite alternate;
}
.scn-prince-tormented .light-stab {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(106,69,72,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: pto-stab 6s ease-in-out infinite alternate;
}
@keyframes pto-thread { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.8) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } }
@keyframes pto-cower { 0% { transform: translateY(0) rotate(0deg) scaleX(1) } 50% { transform: translateY(-4px) rotate(5deg) scaleX(0.95) } 100% { transform: translateY(0) rotate(0deg) scaleX(1) } }
@keyframes pto-loom { 0% { transform: translate(0,0) scale(1); opacity: .6 } 50% { transform: translate(-10px, -5px) scale(1.05); opacity: .9 } 100% { transform: translate(0,0) scale(1); opacity: .6 } }
@keyframes pto-ripple { 0% { transform: scale(1); opacity: .2 } 50% { transform: scale(1.1); opacity: .4 } 100% { transform: scale(1); opacity: .2 } }
@keyframes pto-stab { 0% { opacity: .2; transform: translateX(0) } 50% { opacity: .6; transform: translateX(4px) } 100% { opacity: .2; transform: translateX(0) } }

.scn-prince-fears-woman {
  background:
    linear-gradient(135deg, #0f090c 0%, #1a1115 40%, #0f090c 100%),
    radial-gradient(ellipse at 70% 50%, #2a1a1e 0%, transparent 70%);
}
.scn-prince-fears-woman .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0608 0%, #0f090c 100%);
}
.scn-prince-fears-woman .figure-prince {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 32%;
  background: linear-gradient(180deg, #1a1115 0%, #0f090c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pfw-cringe 4s ease-in-out infinite alternate;
}
.scn-prince-fears-woman .figure-woman {
  position: absolute; bottom: 20%; right: 10%; width: 22%; height: 42%;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a1115 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: pfw-advance 9s ease-in-out infinite alternate;
}
.scn-prince-fears-woman .shadow-arms {
  position: absolute; bottom: 25%; right: 14%; width: 30%; height: 20%;
  background: linear-gradient(270deg, #1a1115 0%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(3px);
  animation: pfw-arms 5s ease-in-out infinite alternate;
}
.scn-prince-fears-woman .fear-fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, rgba(42,26,30,.2) 0%, transparent 70%);
  filter: blur(10px); pointer-events: none;
  animation: pfw-fog 8s ease-in-out infinite alternate;
}
.scn-prince-fears-woman .light-flicker {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(106,69,72,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: pfw-flicker 2s ease-in-out infinite alternate;
}
@keyframes pfw-cringe { 0% { transform: translateX(0) rotate(0deg) scale(1) } 50% { transform: translateX(-5px) rotate(8deg) scale(0.95) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes pfw-advance { 0% { transform: translateX(0) scale(1); opacity: .5 } 50% { transform: translateX(-15px) scale(1.08); opacity: .85 } 100% { transform: translateX(0) scale(1); opacity: .5 } }
@keyframes pfw-arms { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pfw-fog { 0% { opacity: .2; filter: blur(8px) } 50% { opacity: .5; filter: blur(16px) } 100% { opacity: .2; filter: blur(8px) } }
@keyframes pfw-flicker { 0% { opacity: .1; transform: scale(1) } 50% { opacity: .4; transform: scale(1.2) } 100% { opacity: .1; transform: scale(1) } }

.scn-prince-remembers-eyes {
  background:
    linear-gradient(180deg, #0a0608 0%, #0f090c 40%, #1a1115 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a1e 0%, transparent 80%);
}
.scn-prince-remembers-eyes .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0608 0%, #0f090c 100%);
}
.scn-prince-remembers-eyes .eyes {
  position: absolute; top: 30%; left: 50%; width: 20%; height: 12%;
  transform: translate(-50%, -50%);
  background:
    radial-gradient(ellipse at 30% 50%, #6a4548 0%, #8a6568 30%, transparent 50%),
    radial-gradient(ellipse at 70% 50%, #6a4548 0%, #8a6568 30%, transparent 50%);
  filter: blur(1px);
  animation: pre-eyes 6s ease-in-out infinite alternate;
}
.scn-prince-remembers-eyes .eye-glow {
  position: absolute; top: 30%; left: 50%; width: 30%; height: 20%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(106,69,72,.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: pre-glow 5s ease-in-out infinite alternate;
}
.scn-prince-remembers-eyes .memory-shapes {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 60%, rgba(42,26,30,.15) 0%, transparent 40%),
    radial-gradient(circle at 80% 40%, rgba(42,26,30,.1) 0%, transparent 40%);
  filter: blur(6px);
  animation: pre-shapes 12s ease-in-out infinite alternate;
}
.scn-prince-remembers-eyes .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, #0a0608 100%);
  pointer-events: none;
}
.scn-prince-remembers-eyes .eye-echo {
  position: absolute; top: 30%; left: 50%; width: 15%; height: 8%;
  transform: translate(-50%, -50%);
  background:
    radial-gradient(ellipse at 30% 50%, rgba(138,101,104,.2) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 50%, rgba(138,101,104,.2) 0%, transparent 50%);
  filter: blur(3px);
  animation: pre-echo 8s ease-in-out infinite alternate;
}
@keyframes pre-eyes { 0% { transform: translate(-50%, -50%) scale(1); opacity: .5 } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: .9 } 100% { transform: translate(-50%, -50%) scale(1); opacity: .5 } }
@keyframes pre-glow { 0% { transform: translate(-50%, -50%) scale(1); opacity: .3 } 50% { transform: translate(-50%, -50%) scale(1.2); opacity: .6 } 100% { transform: translate(-50%, -50%) scale(1); opacity: .3 } }
@keyframes pre-shapes { 0% { opacity: .1; transform: scale(1) } 50% { opacity: .3; transform: scale(1.05) } 100% { opacity: .1; transform: scale(1) } }
@keyframes pre-echo { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: .2 } 50% { transform: translate(-50%, -50%) scale(1.3); opacity: .5 } 100% { transform: translate(-50%, -50%) scale(0.8); opacity: .2 } }

.scn-nastasia-independence { background: linear-gradient(135deg, #2e1e1a 0%, #4a3528 50%, #6b4f3a 100%), radial-gradient(ellipse at 40% 20%, #8a6a50 0%, transparent 70%); }
.scn-nastasia-independence .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2518 0%, #2a1a10 100%); animation: ni-wall 12s ease-in-out infinite alternate; }
.scn-nastasia-independence .window { position:absolute; top:10%; left:20%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 50%, #b89060 0%, #7a5a3a 70%); border:3px solid #4a2a1a; border-radius:4%; box-shadow: 0 0 20px 6px rgba(184,144,96,.3); animation: ni-window 8s ease-in-out infinite alternate; }
.scn-nastasia-independence .chair  { position:absolute; bottom:30%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2518 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-2deg); box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-nastasia-independence .figure { position:absolute; bottom:28%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-figure 6s ease-in-out infinite; }
.scn-nastasia-independence .lamp   { position:absolute; top:12%; right:18%; width:20px; height:30px; background: radial-gradient(circle, #d4a060 0%, #a07030 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #d4a060, 0 0 60px 20px rgba(212,160,96,.3); animation: ni-lamp 5s ease-in-out infinite alternate; }
.scn-nastasia-independence .shadow { position:absolute; bottom:25%; left:30%; width:50px; height:20px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(4px); animation: ni-shadow 6s ease-in-out infinite; }
@keyframes ni-wall   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ni-window { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.8; transform: scale(1.02) } 100% { opacity:.7; transform: scale(1) } }
@keyframes ni-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes ni-lamp   { 0% { opacity:.7; box-shadow:0 0 20px 5px #d4a060 } 50% { opacity:1; box-shadow:0 0 40px 15px #d4a060 } 100% { opacity:.8; box-shadow:0 0 25px 8px #d4a060 } }
@keyframes ni-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-totski-epanchin-plot { background: linear-gradient(180deg, #1a1210 0%, #2a1e18 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 100%, #3a2218 0%, transparent 60%); }
.scn-totski-epanchin-plot .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:80% 80% 0 0 / 20% 20% 0 0; }
.scn-totski-epanchin-plot .wall  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1814 0%, #1a0e0a 100%); animation: te-wall 4s ease-in-out infinite alternate; }
.scn-totski-epanchin-plot .table { position:absolute; bottom:28%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius:10px; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-totski-epanchin-plot .figure-left  { position:absolute; bottom:30%; left:32%; width:45px; height:75px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-figure-l 2.5s ease-in-out infinite; }
.scn-totski-epanchin-plot .figure-right { position:absolute; bottom:30%; left:56%; width:45px; height:75px; background: linear-gradient(180deg, #2a1e1a 0%, #12100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: te-figure-r 2.8s ease-in-out infinite; }
.scn-totski-epanchin-plot .lamp  { position:absolute; top:20%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #b08040 0%, #805020 60%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #b08040, 0 0 50px 12px rgba(176,128,64,.4); animation: te-lamp 2s ease-in-out infinite alternate; }
.scn-totski-epanchin-plot .shadow-left  { position:absolute; bottom:25%; left:28%; width:40px; height:12px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(6px); animation: te-shadow 2.5s ease-in-out infinite; }
.scn-totski-epanchin-plot .shadow-right { position:absolute; bottom:25%; right:28%; width:40px; height:12px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(6px); animation: te-shadow 2.8s ease-in-out infinite reverse; }
@keyframes te-wall   { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes te-figure-l { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes te-figure-r { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes te-lamp   { 0% { opacity:.7; box-shadow:0 0 20px 4px #b08040 } 50% { opacity:1; box-shadow:0 0 40px 12px #b08040 } 100% { opacity:.75; box-shadow:0 0 25px 6px #b08040 } }
@keyframes te-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(1) } }

.scn-epanchin-appeal { background: linear-gradient(180deg, #1a1818 0%, #2a2220 50%, #1a1210 100%), radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%); }
.scn-epanchin-appeal .wall  { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a201e 0%, #1a1412 100%); animation: ea-wall 5s ease-in-out infinite alternate; }
.scn-epanchin-appeal .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius:60% 40% 0 0 / 10% 15% 0 0; }
.scn-epanchin-appeal .figure { position:absolute; bottom:30%; left:40%; width:55px; height:85px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ea-figure 3s ease-in-out infinite; }
.scn-epanchin-appeal .arm   { position:absolute; bottom:42%; left:58%; width:30px; height:10px; background: #1a1a1a; border-radius: 30% 30% 10% 10%; transform-origin: 0% 50%; animation: ea-arm 2.5s ease-in-out infinite alternate; }
.scn-epanchin-appeal .shadow{ position:absolute; bottom:25%; left:35%; width:70px; height:20px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); animation: ea-shadow 3s ease-in-out infinite; }
.scn-epanchin-appeal .lamp  { position:absolute; top:10%; right:15%; width:18px; height:28px; background: radial-gradient(circle, #c8a060 0%, #986840 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #c8a060, 0 0 60px 20px rgba(200,160,96,.3); animation: ea-lamp 4s ease-in-out infinite alternate; }
.scn-epanchin-appeal .desk  { position:absolute; bottom:32%; left:20%; width:100px; height:50px; background: linear-gradient(180deg, #4a3228 0%, #2a1e18 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(200px) rotateX(10deg); animation: ea-desk 8s ease-in-out infinite; }
@keyframes ea-wall  { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.72 } }
@keyframes ea-figure{ 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(-4px) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ea-arm   { 0% { transform: rotate(-30deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-30deg) } }
@keyframes ea-shadow{ 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes ea-lamp  { 0% { opacity:.75; box-shadow:0 0 20px 5px #c8a060 } 50% { opacity:.95; box-shadow:0 0 40px 15px #c8a060 } 100% { opacity:.8; box-shadow:0 0 25px 8px #c8a060 } }
@keyframes ea-desk  { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px) } }

.scn-nastasia-accepts-proposal { background: linear-gradient(135deg, #2a1e1a 0%, #3a2a22 50%, #4a382e 100%), radial-gradient(ellipse at 60% 40%, #5a4232 0%, transparent 60%); }
.scn-nastasia-accepts-proposal .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); animation: na-wall 15s ease-in-out infinite alternate; }
.scn-nastasia-accepts-proposal .window { position:absolute; top:8%; left:15%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #a08060 0%, #70503a 70%); border:4px solid #3a2018; border-radius:5%; box-shadow: 0 0 20px 6px rgba(160,128,96,.3); animation: na-window 10s ease-in-out infinite alternate; }
.scn-nastasia-accepts-proposal .couch  { position:absolute; bottom:28%; left:30%; width:140px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #3a281e 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-1deg); box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-nastasia-accepts-proposal .figure-left  { position:absolute; bottom:30%; left:35%; width:45px; height:75px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-l 7s ease-in-out infinite; }
.scn-nastasia-accepts-proposal .figure-right { position:absolute; bottom:30%; left:50%; width:45px; height:75px; background: linear-gradient(180deg, #2a1e1a 0%, #14100e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na-figure-r 7.5s ease-in-out infinite; }
.scn-nastasia-accepts-proposal .lamp  { position:absolute; top:15%; right:20%; width:16px; height:24px; background: radial-gradient(circle, #d4a060 0%, #a07030 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #d4a060, 0 0 60px 20px rgba(212,160,96,.3); animation: na-lamp 6s ease-in-out infinite alternate; }
.scn-nastasia-accepts-proposal .light { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(212,160,96,.1) 0%, transparent 70%); animation: na-light 8s ease-in-out infinite alternate; }
@keyframes na-wall   { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes na-window { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.01) } 100% { opacity:.75; transform: scale(1) } }
@keyframes na-figure-l { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes na-figure-r { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes na-lamp   { 0% { opacity:.7; box-shadow:0 0 20px 4px #d4a060 } 50% { opacity:.95; box-shadow:0 0 40px 12px #d4a060 } 100% { opacity:.8; box-shadow:0 0 25px 6px #d4a060 } }
@keyframes na-light  { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

.scn-aglaya-continues {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 40%, #3a3a5a 0%, transparent 70%);
}
.scn-aglaya-continues .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2c2c3c 0%, #1e1e2e 50%, #14141e 100%);
  border-bottom: 2px solid #3a3a4a;
  animation: ag1-wall 12s ease-in-out infinite alternate;
}
.scn-aglaya-continues .window {
  position:absolute; top:12%; left:10%; width:30%; height:45%;
  background: radial-gradient(ellipse at 50% 30%, #4a4a6a 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: ag1-window 8s ease-in-out infinite;
}
.scn-aglaya-continues .lamp {
  position:absolute; bottom:30%; left:55%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 30%, #c08840 0%, #905820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 30px 8px rgba(192,136,64,0.4);
  animation: ag1-lamp 4s ease-in-out infinite alternate;
}
.scn-aglaya-continues .table {
  position:absolute; bottom:15%; left:40%; width:35%; height:8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-aglaya-continues .figure-left {
  position:absolute; bottom:18%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag1-fig-left 6s ease-in-out infinite;
}
.scn-aglaya-continues .figure-right {
  position:absolute; bottom:16%; left:65%; width:24px; height:55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag1-fig-right 7s ease-in-out infinite alternate;
}
.scn-aglaya-continues .shadow {
  position:absolute; bottom:8%; left:30%; width:50%; height:12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: ag1-shadow 10s ease-in-out infinite;
}
@keyframes ag1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ag1-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes ag1-lamp { 0% { box-shadow: 0 0 20px 4px rgba(192,136,64,0.3); transform: scale(1); } 50% { box-shadow: 0 0 40px 12px rgba(192,136,64,0.6); transform: scale(1.02); } 100% { box-shadow: 0 0 25px 6px rgba(192,136,64,0.4); transform: scale(0.98); } }
@keyframes ag1-fig-left { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ag1-fig-right { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ag1-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-aglaya-satisfaction {
  background:
    linear-gradient(180deg, #1e1e30 0%, #2a2a3e 40%, #16162a 100%),
    radial-gradient(ellipse at 40% 50%, #3a3a5a 0%, transparent 75%);
}
.scn-aglaya-satisfaction .backdrop {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #2c2c40 0%, #1c1c2e 50%, #101020 100%);
  border-bottom: 2px solid #3a3a50;
  animation: ag2-backdrop 14s ease-in-out infinite alternate;
}
.scn-aglaya-satisfaction .desk {
  position:absolute; bottom:18%; left:25%; width:60%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.5);
}
.scn-aglaya-satisfaction .candle {
  position:absolute; bottom:28%; left:55%; width:12px; height:40px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 25px 6px rgba(200,160,80,0.5);
  animation: ag2-candle 3s ease-in-out infinite alternate;
}
.scn-aglaya-satisfaction .hand-waving {
  position:absolute; bottom:22%; left:48%; width:30px; height:45px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag2-hand 4s ease-in-out infinite;
}
.scn-aglaya-satisfaction .face-profile {
  position:absolute; bottom:33%; left:50%; width:25px; height:35px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ag2-face 6s ease-in-out infinite alternate;
}
.scn-aglaya-satisfaction .chair-shadow {
  position:absolute; bottom:8%; left:35%; width:35%; height:15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: ag2-shadow 8s ease-in-out infinite;
}
@keyframes ag2-backdrop { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ag2-candle { 0% { transform: scale(1) ; box-shadow: 0 0 20px 4px rgba(200,160,80,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 30px 8px rgba(200,160,80,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 22px 5px rgba(200,160,80,0.5); } }
@keyframes ag2-hand { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(8px) rotate(15deg); } 66% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ag2-face { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes ag2-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-aglaya-refers-to-letter {
  background:
    linear-gradient(180deg, #1a1a28 0%, #26263a 40%, #12122a 100%),
    radial-gradient(ellipse at 60% 40%, #3a3a5a 0%, transparent 80%);
}
.scn-aglaya-refers-to-letter .bg-room {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-bottom: 1px solid #2a2a44;
  animation: ag3-room 10s ease-in-out infinite alternate;
}
.scn-aglaya-refers-to-letter .letter {
  position:absolute; bottom:25%; left:45%; width:40px; height:50px;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a60 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px 3px rgba(180,160,120,0.3);
  transform: rotate(-5deg);
  animation: ag3-letter 5s ease-in-out infinite alternate;
}
.scn-aglaya-refers-to-letter .hand-holding {
  position:absolute; bottom:22%; left:42%; width:25px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag3-hand 4s ease-in-out infinite;
}
.scn-aglaya-refers-to-letter .figure-standing {
  position:absolute; bottom:15%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag3-figure 8s ease-in-out infinite alternate;
}
.scn-aglaya-refers-to-letter .lamp-glow {
  position:absolute; bottom:35%; left:70%; width:18px; height:25px;
  background: radial-gradient(circle at 50% 30%, #d0a060 0%, #a07030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 0 40px 12px rgba(200,160,80,0.5);
  animation: ag3-lamp 3.5s ease-in-out infinite alternate;
}
.scn-aglaya-refers-to-letter .shelf {
  position:absolute; bottom:50%; left:10%; width:20%; height:4%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes ag3-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes ag3-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes ag3-hand { 0% { transform: rotate(0); } 33% { transform: rotate(5deg); } 66% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }
@keyframes ag3-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ag3-lamp { 0% { box-shadow: 0 0 30px 6px rgba(200,160,80,0.4); transform: scale(1); } 50% { box-shadow: 0 0 50px 16px rgba(200,160,80,0.7); transform: scale(1.03); } 100% { box-shadow: 0 0 35px 8px rgba(200,160,80,0.5); transform: scale(0.97); } }

.scn-aglaya-confesses-love {
  background:
    linear-gradient(180deg, #1c1c2e 0%, #2a2a40 40%, #14142a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-aglaya-confesses-love .wall-dark {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #22223a 0%, #12122a 50%, #0a0a1a 100%);
  border-bottom: 1px solid #3a3a52;
  animation: ag4-wall 16s ease-in-out infinite alternate;
}
.scn-aglaya-confesses-love .table {
  position:absolute; bottom:15%; left:35%; width:40%; height:8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-aglaya-confesses-love .candle-double {
  position:absolute; bottom:23%; left:48%; width:16px; height:45px;
  background: linear-gradient(180deg, #c8a060 0%, #906830 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.4);
  animation: ag4-candle 3s ease-in-out infinite alternate;
}
.scn-aglaya-confesses-love .figure-sitting {
  position:absolute; bottom:18%; left:30%; width:30px; height:45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag4-sit 7s ease-in-out infinite;
}
.scn-aglaya-confesses-love .figure-kneeling {
  position:absolute; bottom:12%; left:55%; width:25px; height:40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag4-kneel 6s ease-in-out infinite alternate;
}
.scn-aglaya-confesses-love .shadow-floor {
  position:absolute; bottom:5%; left:20%; width:65%; height:15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(10px);
  animation: ag4-shadow 12s ease-in-out infinite alternate;
}
@keyframes ag4-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes ag4-candle { 0% { transform: scale(1); box-shadow: 0 0 20px 4px rgba(200,160,80,0.3); } 50% { transform: scale(1.06); box-shadow: 0 0 45px 14px rgba(200,160,80,0.6); } 100% { transform: scale(0.94); box-shadow: 0 0 25px 6px rgba(200,160,80,0.4); } }
@keyframes ag4-sit { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ag4-kneel { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ag4-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

/* rogojin-house-portrait-again */
.scn-rogojin-house-portrait-again {
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 30%, #2a1f3e 70%, #1a1228 100%),
              radial-gradient(ellipse at 30% 50%, #2a1f3e 0%, transparent 60%);
}
.scn-rogojin-house-portrait-again .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3e 0%, #2a1f3e 60%, #1a1228 100%); animation: rhp-wall 20s ease-in-out infinite; opacity: 0.9;
}
.scn-rogojin-house-portrait-again .portrait-frame {
  position: absolute; top: 15%; left: 40%; width: 25%; height: 40%; background: linear-gradient(135deg, #4a3a2a, #2a1a0a); border: 4px solid #6a4a2a; border-radius: 4%; box-shadow: 0 0 20px 5px rgba(0,0,0,0.6); animation: rhp-frame 12s ease-in-out infinite; transform-origin: top center;
}
.scn-rogojin-house-portrait-again .portrait-head {
  position: absolute; top: 20%; left: 43%; width: 18%; height: 24%; background: radial-gradient(ellipse at 50% 60%, #d4c0a0 0%, #a08060 50%, #604020 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.4); animation: rhp-head 8s ease-in-out infinite; transform-origin: bottom center;
}
.scn-rogojin-house-portrait-again .figure-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 50%; background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, transparent 100%); border-radius: 40% 40% 0 0; filter: blur(5px); animation: rhp-shadow 15s ease-in-out infinite alternate;
}
.scn-rogojin-house-portrait-again .candle-glow {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius: 50%; animation: rhp-candle-glow 4s ease-in-out infinite alternate;
}
.scn-rogojin-house-portrait-again .candle {
  position: absolute; bottom: 15%; right: 22%; width: 6px; height: 20px; background: linear-gradient(180deg, #ffd080, #c08040); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 10px 2px rgba(255,200,100,0.3); animation: rhp-candle 4s ease-in-out infinite alternate;
}
@keyframes rhp-wall { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes rhp-frame { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(0.5deg) } }
@keyframes rhp-head { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(1.01) } }
@keyframes rhp-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes rhp-candle-glow { 0%,100% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 0.9; transform: scale(1.3) } }
@keyframes rhp-candle { 0%,100% { transform: scaleY(0.95); opacity: 0.8 } 50% { transform: scaleY(1.1); opacity: 1 } }

/* rogojin-house-mother */
.scn-rogojin-house-mother {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 60%);
}
.scn-rogojin-house-mother .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); animation: rhm-room 25s ease-in-out infinite; opacity: 0.9;
}
.scn-rogojin-house-mother .mother-chair {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 30%; background: linear-gradient(180deg, #6a4a2a, #4a2a0a); border-radius: 10% 10% 5% 5%; box-shadow: 0 5px 15px rgba(0,0,0,0.5); animation: rhm-chair 18s ease-in-out infinite; transform-origin: bottom center;
}
.scn-rogojin-house-mother .mother-figure {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 40%; background: linear-gradient(180deg, #a08070, #705040); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -15px 20px rgba(0,0,0,0.3); animation: rhm-mother 12s ease-in-out infinite;
}
.scn-rogojin-house-mother .daughter-figure {
  position: absolute; bottom: 18%; right: 30%; width: 18%; height: 38%; background: linear-gradient(180deg, #c0a090, #907060); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.2); animation: rhm-daughter 12s ease-in-out infinite reverse;
}
.scn-rogojin-house-mother .hearth-glow {
  position: absolute; bottom: 10%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(255,150,50,0.5) 0%, transparent 70%); border-radius: 50%; transform: translateX(-50%); animation: rhm-hearth-glow 5s ease-in-out infinite alternate;
}
.scn-rogojin-house-mother .hearth-light {
  position: absolute; bottom: 5%; left: 45%; width: 10%; height: 15%; background: linear-gradient(180deg, #ff8040, #b04010); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,120,40,0.3); animation: rhm-hearth 5s ease-in-out infinite alternate;
}
@keyframes rhm-room { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes rhm-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes rhm-mother { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes rhm-daughter { 0%,100% { transform: translateY(0) scale(1) rotate(0deg) } 50% { transform: translateY(-2px) scale(1.01) rotate(0.5deg) } }
@keyframes rhm-hearth-glow { 0%,100% { opacity: 0.5; transform: scale(0.8) translateX(-50%) } 50% { opacity: 0.9; transform: scale(1.2) translateX(-50%) } }
@keyframes rhm-hearth { 0%,100% { transform: scaleY(0.9); opacity: 0.7 } 50% { transform: scaleY(1.2); opacity: 1 } }

/* rogojin-house-consolation */
.scn-rogojin-house-consolation {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 30%, #4a3a2a 0%, transparent 50%);
}
.scn-rogojin-house-consolation .wall-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); animation: rhc-wall 20s ease-in-out infinite; opacity: 0.85;
}
.scn-rogojin-house-consolation .window-frame {
  position: absolute; top: 10%; right: 5%; width: 35%; height: 45%; background: linear-gradient(180deg, #6a4a3a, #3a2a1a); border: 6px solid #5a3a2a; border-radius: 2%; box-shadow: 0 0 10px rgba(0,0,0,0.7);
}
.scn-rogojin-house-consolation .window-light {
  position: absolute; top: 12%; right: 8%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.3) 0%, transparent 70%); border-radius: 2%; filter: blur(5px); animation: rhc-window-light 14s ease-in-out infinite alternate;
}
.scn-rogojin-house-consolation .figure-left {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 45%; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3); animation: rhc-left 16s ease-in-out infinite; transform-origin: bottom center;
}
.scn-rogojin-house-consolation .figure-right {
  position: absolute; bottom: 10%; right: 20%; width: 20%; height: 45%; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3); animation: rhc-right 16s ease-in-out infinite reverse; transform-origin: bottom center;
}
.scn-rogojin-house-consolation .embrace-arm {
  position: absolute; bottom: 30%; left: 32%; width: 8%; height: 12%; background: linear-gradient(180deg, #6a5a4a, #4a3a2a); border-radius: 50% 50% 20% 20%; transform: rotate(30deg); transform-origin: bottom left; animation: rhc-arm 10s ease-in-out infinite alternate;
}
.scn-rogojin-house-consolation .dust-mote {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px; background: rgba(255,230,180,0.6); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,230,180,0.3); animation: rhc-mote 20s linear infinite;
}
@keyframes rhc-wall { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes rhc-window-light { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }
@keyframes rhc-left { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes rhc-right { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes rhc-arm { 0% { transform: rotate(25deg) scale(1) } 50% { transform: rotate(35deg) scale(1.05) } 100% { transform: rotate(28deg) scale(1) } }
@keyframes rhc-mote { 0% { transform: translate(0, 0) } 25% { transform: translate(10px, -15px) } 50% { transform: translate(20px, -5px) } 75% { transform: translate(30px, -20px) } 100% { transform: translate(40px, -10px) } }

/* rogojin-house-knife */
.scn-rogojin-house-knife {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #2a2a3e 70%, #0d0d1a 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 60%);
}
.scn-rogojin-house-knife .table-top {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 2%; box-shadow: 0 5px 20px rgba(0,0,0,0.5); animation: rhk-table 30s ease-in-out infinite;
}
.scn-rogojin-house-knife .table-leg {
  position: absolute; bottom: 0; left: 20%; width: 8%; height: 25%; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius: 5%; box-shadow: 0 0 5px rgba(0,0,0,0.5);
}
.scn-rogojin-house-knife .knife-blade {
  position: absolute; bottom: 30%; left: 40%; width: 8%; height: 30%; background: linear-gradient(180deg, #d0d0d0, #a0a0b0 40%, #606070); border-radius: 5% 5% 20% 20%; transform: rotate(5deg); transform-origin: bottom center; box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: rhk-blade 6s ease-in-out infinite alternate;
}
.scn-rogojin-house-knife .knife-handle {
  position: absolute; bottom: 20%; left: 40.5%; width: 7%; height: 10%; background: linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: rhk-handle 6s ease-in-out infinite alternate;
}
.scn-rogojin-house-knife .hand {
  position: absolute; bottom: 25%; left: 36%; width: 12%; height: 14%; background: linear-gradient(180deg, #c0a080, #a08060); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: inset 0 -5px 8px rgba(0,0,0,0.2); animation: rhk-hand 8s ease-in-out infinite alternate;
}
.scn-rogojin-house-knife .sharp-reflection {
  position: absolute; bottom: 35%; left: 43%; width: 3%; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1)); border-radius: 50%; filter: blur(2px); animation: rhk-reflection 4s ease-in-out infinite alternate;
}
@keyframes rhk-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes rhk-blade { 0% { transform: rotate(4deg) scale(1) } 50% { transform: rotate(6deg) scale(1.02) } 100% { transform: rotate(4.5deg) scale(1) } }
@keyframes rhk-handle { 0%,100% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } }
@keyframes rhk-hand { 0% { transform: rotate(12deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(14deg) translateY(0) } }
@keyframes rhk-reflection { 0%,100% { opacity: 0.3 } 50% { opacity: 0.7 } }

/* Scene: again-at-rogojins */
.scn-again-at-rogojins {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #b8a88a 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 70% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-again-at-rogojins .ar-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #b0a080 0%, #c8b898 40%, #b0a080 80%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.15);
  animation: ar-wall-pulse 6s ease-in-out infinite alternate;
}
.scn-again-at-rogojins .ar-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-again-at-rogojins .ar-door {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ar-door-shake 3s ease-in-out infinite;
}
.scn-again-at-rogojins .ar-shadow-door {
  position: absolute; bottom: 35%; left: calc(50% + 10px); width: 80px; height: 120px;
  background: rgba(0,0,0,0.15); border-radius: 4px;
  filter: blur(8px);
  animation: ar-shadow-move 4s ease-in-out infinite;
}
.scn-again-at-rogojins .ar-figure {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-figure-turn 5s ease-in-out infinite;
}
.scn-again-at-rogojins .ar-light-shaft {
  position: absolute; top: 10%; left: 55%; width: 80px; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: ar-light-flicker 2s ease-in-out infinite alternate;
}
.scn-again-at-rogojins .ar-dust {
  position: absolute; top: 20%; left: 30%; width: 100%; height: 80%;
  background: radial-gradient(circle, rgba(255,240,200,0.1) 0%, transparent 80%);
  filter: blur(8px);
  animation: ar-dust-drift 12s linear infinite;
}
@keyframes ar-wall-pulse { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ar-door-shake { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 30% { transform: translateX(-50%) rotate(1deg); } 60% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ar-shadow-move { 0%, 100% { transform: translateX(0); opacity: 0.8; } 50% { transform: translateX(-8px); opacity: 0.4; } }
@keyframes ar-figure-turn { 0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(5deg) scale(1.02); } 70% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ar-light-flicker { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ar-dust-drift { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-10px) translateX(20px); } 100% { transform: translateY(0) translateX(0); } }

/* Scene: porter-lies */
.scn-porter-lies {
  background:
    linear-gradient(180deg, #c8b89a 0%, #a89878 40%, #887858 100%),
    radial-gradient(ellipse at 30% 80%, #e8d8b8 0%, transparent 70%);
}
.scn-porter-lies .pl-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #d0d8e0 100%);
  animation: pl-sky-breathe 8s ease-in-out infinite alternate;
}
.scn-porter-lies .pl-facade {
  position: absolute; bottom: 25%; left: 10%; right: 20%; height: 45%;
  background: linear-gradient(180deg, #98907a 0%, #786850 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-porter-lies .pl-doorway {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: pl-door-darken 6s ease-in-out infinite alternate;
}
.scn-porter-lies .pl-porter {
  position: absolute; bottom: 32%; left: 33%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-porter-lean 4s ease-in-out infinite;
}
.scn-porter-lies .pl-prince {
  position: absolute; bottom: 30%; left: 23%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-prince-fidget 5s ease-in-out infinite;
}
.scn-porter-lies .pl-sun-patch {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 40px;
  background: rgba(255,240,200,0.2); filter: blur(15px);
  border-radius: 50%;
  animation: pl-sun-move 12s linear infinite alternate;
}
.scn-porter-lies .pl-shadow {
  position: absolute; bottom: 28%; left: 20%; width: 80px; height: 10px;
  background: rgba(0,0,0,0.15); filter: blur(6px);
  border-radius: 50%;
  animation: pl-shadow-stretch 4s ease-in-out infinite;
}
@keyframes pl-sky-breathe { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pl-door-darken { 0% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); } 50% { box-shadow: 0 8px 20px rgba(0,0,0,0.6); } 100% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); } }
@keyframes pl-porter-lean { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(3deg) translateX(2px); } 70% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes pl-prince-fidget { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-2deg) scale(1.01); } 50% { transform: rotate(2deg) scale(0.99); } 75% { transform: rotate(-1deg) scale(1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes pl-sun-move { 0% { transform: translateX(-20px); opacity: 0.6; } 50% { transform: translateX(20px); opacity: 1; } 100% { transform: translateX(-20px); opacity: 0.6; } }
@keyframes pl-shadow-stretch { 0%, 100% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.3); opacity: 0.4; } }

/* Scene: german-lady-no-help */
.scn-german-lady-no-help {
  background:
    linear-gradient(180deg, #c0b8a0 0%, #a89878 50%, #8a7a5a 100%),
    radial-gradient(ellipse at 60% 100%, #d8c8a8 0%, transparent 70%);
}
.scn-german-lady-no-help .gl-house {
  position: absolute; bottom: 20%; left: 10%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #a89878 0%, #887858 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15);
}
.scn-german-lady-no-help .gl-window {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #d0c8b8 0%, #b8a890 100%);
  border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: gl-window-shine 3s ease-in-out infinite alternate;
}
.scn-german-lady-no-help .gl-door {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-german-lady-no-help .gl-figure {
  position: absolute; bottom: 18%; left: 28%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-figure-run 4s ease-in-out infinite;
}
.scn-german-lady-no-help .gl-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
.scn-german-lady-no-help .gl-lamp-post {
  position: absolute; bottom: 18%; left: 60%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  animation: gl-lamp-sway 5s ease-in-out infinite;
}
.scn-german-lady-no-help .gl-shadow {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 8px;
  background: rgba(0,0,0,0.2); filter: blur(4px);
  border-radius: 50%;
  animation: gl-shadow-move 4s ease-in-out infinite;
}
@keyframes gl-window-shine { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.2); } 50% { box-shadow: 0 8px 20px rgba(200,180,140,0.4); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.2); } }
@keyframes gl-figure-run { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(5deg); } 50% { transform: translateX(-20px) rotate(0deg); } 75% { transform: translateX(-10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gl-lamp-sway { 0%, 100% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 70% { transform: rotate(-2deg); } }
@keyframes gl-shadow-move { 0%, 100% { transform: translateX(0); opacity: 0.7; } 50% { transform: translateX(-15px); opacity: 0.4; } }

/* Scene: prince-check-in-hotel */
.scn-prince-check-in-hotel {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 30% 70%, #4a4a5e 0%, transparent 70%);
}
.scn-prince-check-in-hotel .pc-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: pc-wall-darken 8s ease-in-out infinite alternate;
}
.scn-prince-check-in-hotel .pc-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%);
  border-radius: 40% 40% 0 0 / 15% 15% 0 0;
}
.scn-prince-check-in-hotel .pc-window {
  position: absolute; bottom: 45%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(100,100,150,0.3);
  animation: pc-window-glow 4s ease-in-out infinite alternate;
}
.scn-prince-check-in-hotel .pc-lamp {
  position: absolute; bottom: 50%; left: 60%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.3);
  animation: pc-lamp-flicker 2s ease-in-out infinite;
}
.scn-prince-check-in-hotel .pc-bed {
  position: absolute; bottom: 25%; left: 10%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.4);
  animation: pc-bed-breathe 6s ease-in-out infinite;
}
.scn-prince-check-in-hotel .pc-figure {
  position: absolute; bottom: 22%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure-sit 5s ease-in-out infinite;
}
.scn-prince-check-in-hotel .pc-shadow {
  position: absolute; bottom: 18%; left: 12%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.3); filter: blur(6px);
  border-radius: 50%;
  animation: pc-shadow-sway 4s ease-in-out infinite;
}
.scn-prince-check-in-hotel .pc-light-cone {
  position: absolute; top: 30%; left: 50%; width: 120px; height: 70%;
  background: linear-gradient(180deg, rgba(255,200,100,0.1) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: pc-light-sway 3s ease-in-out infinite alternate;
}
@keyframes pc-wall-darken { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pc-window-glow { 0% { box-shadow: 0 0 20px rgba(100,100,150,0.3); } 50% { box-shadow: 0 0 40px rgba(120,120,180,0.5); } 100% { box-shadow: 0 0 20px rgba(100,100,150,0.3); } }
@keyframes pc-lamp-flicker { 0% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.3); } 30% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.5); } 70% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.2); } 100% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.3); } }
@keyframes pc-bed-breathe { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pc-figure-sit { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pc-shadow-sway { 0%, 100% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.4); opacity: 0.4; } }
@keyframes pc-light-sway { 0% { transform: rotate(-3deg); opacity: 0.6; } 50% { transform: rotate(3deg); opacity: 1; } 100% { transform: rotate(-3deg); opacity: 0.6; } }

/* hippolyte-teases */
.scn-hippolyte-teases {
  background:
    linear-gradient(180deg, #1a1410 0%, #2b2018 30%, #3d2c22 60%, #2a1f17 100%),
    radial-gradient(ellipse at 30% 60%, #4a3528 0%, transparent 70%);
}
.scn-hippolyte-teases .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2c22 0%, #2a1f17 100%); }
.scn-hippolyte-teases .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1611 0%, #0f0b08 100%); }
.scn-hippolyte-teases .table { position:absolute; bottom:20%; left:20%; width:45%; height:8%; background: linear-gradient(180deg, #4a3528 0%, #2e2018 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-hippolyte-teases .candle { position:absolute; bottom:28%; left:40%; width:6px; height:20px; background: linear-gradient(180deg, #f2d5a0 0%, #c8965a 100%); border-radius: 3px 3px 1px 1px; transform: rotate(2deg); }
.scn-hippolyte-teases .candle-glow { position:absolute; bottom:30%; left:38%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,.5) 0%, rgba(255,160,50,.2) 40%, transparent 70%); border-radius:50%; filter: blur(6px); animation: ht-glow 3s ease-in-out infinite alternate; }
.scn-hippolyte-teases .figure-1 { position:absolute; bottom:22%; left:60%; width:40px; height:90px; background: linear-gradient(180deg, #1c1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-fig1 5s ease-in-out infinite; }
.scn-hippolyte-teases .figure-2 { position:absolute; bottom:22%; left:10%; width:36px; height:85px; background: linear-gradient(180deg, #1a120e 0%, #080605 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-fig2 4s ease-in-out infinite; }
.scn-hippolyte-teases .shadow-1 { position:absolute; bottom:20%; left:55%; width:60px; height:20px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: ht-shad1 5s ease-in-out infinite; }
.scn-hippolyte-teases .shadow-2 { position:absolute; bottom:20%; left:5%; width:55px; height:18px; background: rgba(0,0,0,.35); border-radius:50%; filter: blur(4px); animation: ht-shad2 4s ease-in-out infinite; }

@keyframes ht-glow {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:.9; transform: scale(1.1); }
  100% { opacity:.7; transform: scale(1.05); }
}
@keyframes ht-fig1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ht-fig2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ht-shad1 {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.2) translateX(-5px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes ht-shad2 {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.15) translateX(6px); }
  100% { transform: scaleX(1) translateX(0); }
}

/* prince-denies-knowledge */
.scn-prince-denies-knowledge {
  background:
    linear-gradient(180deg, #14101a 0%, #1f1a2b 30%, #2c2440 60%, #1a1528 100%),
    radial-gradient(ellipse at 70% 50%, #3a2f50 0%, transparent 70%);
}
.scn-prince-denies-knowledge .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2238 0%, #1a1525 100%); }
.scn-prince-denies-knowledge .window { position:absolute; top:12%; right:8%; width:80px; height:100px; background: linear-gradient(180deg, #3a4060 0%, #1e2640 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 20px rgba(100,120,200,.2); }
.scn-prince-denies-knowledge .moonlight { position:absolute; top:12%; left:70%; width:100px; height:100px; background: radial-gradient(ellipse, rgba(180,200,255,.15) 0%, transparent 70%); filter: blur(12px); animation: pk-moon 15s ease-in-out infinite alternate; }
.scn-prince-denies-knowledge .chair { position:absolute; bottom:20%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #302840 0%, #1c1528 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; animation: pk-chair 6s ease-in-out infinite; }
.scn-prince-denies-knowledge .desk { position:absolute; bottom:22%; left:15%; width:70%; height:6%; background: linear-gradient(180deg, #302840 0%, #1c1528 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-prince-denies-knowledge .lamp { position:absolute; bottom:30%; left:30%; width:8px; height:18px; background: linear-gradient(180deg, #f0d8a0 0%, #c09860 100%); border-radius: 2px; transform: rotate(-5deg); animation: pk-lamp 4s ease-in-out infinite alternate; }
.scn-prince-denies-knowledge .prince { position:absolute; bottom:22%; left:40%; width:32px; height:80px; background: linear-gradient(180deg, #1a1528 0%, #0c0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pk-prince 5s ease-in-out infinite; }
.scn-prince-denies-knowledge .gesture { position:absolute; bottom:50%; left:45%; width:8px; height:24px; background: linear-gradient(180deg, #1a1528 0%, #0c0a14 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pk-gesture 2.5s ease-in-out infinite; }

@keyframes pk-moon {
  0% { opacity:.3; transform: translateX(0) scale(1); }
  50% { opacity:.6; transform: translateX(10px) scale(1.1); }
  100% { opacity:.4; transform: translateX(-5px) scale(.95); }
}
@keyframes pk-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pk-lamp {
  0% { opacity:.7; transform: rotate(-5deg) scaleY(1); }
  50% { opacity:1; transform: rotate(0deg) scaleY(1.05); }
  100% { opacity:.8; transform: rotate(-5deg) scaleY(1); }
}
@keyframes pk-prince {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pk-gesture {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-4px); }
  100% { transform: rotate(-30deg) translateY(0); }
}

/* hippolyte-persists */
.scn-hippolyte-persists {
  background:
    linear-gradient(90deg, #0f0d12 0%, #1f1a26 25%, #2d2538 50%, #1f1a26 75%, #0f0d12 100%),
    radial-gradient(ellipse at 50% 30%, #3a2f4a 0%, transparent 70%);
}
.scn-hippolyte-persists .wall-left { position:absolute; inset:0 50% 0 0; background: linear-gradient(180deg, #2a2235 0%, #16121c 100%); }
.scn-hippolyte-persists .wall-right { position:absolute; inset:0 0 0 50%; background: linear-gradient(180deg, #2a2235 0%, #16121c 100%); }
.scn-hippolyte-persists .carpet { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1c1625 0%, #0f0b14 100%); }
.scn-hippolyte-persists .table { position:absolute; bottom:22%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #3d2f4a 0%, #241c30 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-hippolyte-persists .candelabra { position:absolute; bottom:30%; left:45%; width:12px; height:24px; background: linear-gradient(180deg, #b89860 0%, #806040 100%); border-radius: 2px; transform: rotate(3deg); }
.scn-hippolyte-persists .figure-left { position:absolute; bottom:20%; left:30%; width:34px; height:82px; background: linear-gradient(180deg, #1a1422 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-fig-left 6s ease-in-out infinite; }
.scn-hippolyte-persists .figure-right { position:absolute; bottom:20%; right:25%; width:38px; height:86px; background: linear-gradient(180deg, #1c1628 0%, #0c0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-fig-right 5s ease-in-out infinite; }
.scn-hippolyte-persists .cast-shadow { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: rgba(0,0,0,.3); filter: blur(8px); animation: hp-shadow 8s ease-in-out infinite; }

@keyframes hp-fig-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-fig-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hp-shadow {
  0% { opacity:.4; transform: scaleX(1); }
  50% { opacity:.6; transform: scaleX(1.1); }
  100% { opacity:.4; transform: scaleX(1); }
}

/* hippolyte-warns */
.scn-hippolyte-warns {
  background:
    linear-gradient(180deg, #050308 0%, #0f0a14 30%, #1a1220 60%, #0a0710 100%),
    radial-gradient(ellipse at 50% 70%, #2a1f30 0%, transparent 80%);
}
.scn-hippolyte-warns .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 40%, #0f0b14 0%, #030105 100%); animation: hw-dark 12s ease-in-out infinite alternate; }
.scn-hippolyte-warns .curtain { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a1425 0%, #0c0815 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: hw-curtain 8s ease-in-out infinite; }
.scn-hippolyte-warns .candle { position:absolute; bottom:20%; left:60%; width:8px; height:22px; background: linear-gradient(180deg, #e8c880 0%, #c09850 100%); border-radius: 2px; transform: rotate(-4deg); }
.scn-hippolyte-warns .flame { position:absolute; bottom:42%; left:58%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,100,.8) 0%, rgba(255,150,50,.3) 40%, transparent 70%); border-radius:50%; filter: blur(4px); animation: hw-flame 2s ease-in-out infinite alternate; }
.scn-hippolyte-warns .profile { position:absolute; bottom:22%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a1425 0%, #08040d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw-profile 6s ease-in-out infinite; }
.scn-hippolyte-warns .hand { position:absolute; bottom:35%; left:35%; width:16px; height:24px; background: linear-gradient(180deg, #1a1425 0%, #0c0815 100%); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; transform-origin: bottom center; animation: hw-hand 3s ease-in-out infinite; }
.scn-hippolyte-warns .table-edge { position:absolute; bottom:20%; left:10%; width:80%; height:4%; background: linear-gradient(180deg, #2a1f30 0%, #140e1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-hippolyte-warns .drape-shadow { position:absolute; top:60%; left:10%; width:40%; height:30%; background: rgba(0,0,0,.4); filter: blur(10px); animation: hw-drape 10s ease-in-out infinite alternate; }

@keyframes hw-dark {
  0% { opacity:.5; }
  50% { opacity:.8; }
  100% { opacity:.6; }
}
@keyframes hw-curtain {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hw-flame {
  0% { transform: scale(1); opacity:.7; }
  50% { transform: scale(1.15); opacity:1; }
  100% { transform: scale(.95); opacity:.8; }
}
@keyframes hw-profile {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hw-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes hw-drape {
  0% { transform: scaleX(1) translateX(0); opacity:.3; }
  50% { transform: scaleX(1.1) translateX(5px); opacity:.5; }
  100% { transform: scaleX(1) translateX(0); opacity:.3; }
}

.scn\-train-journey-introduction {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 30% 50%, rgba(180,160,130,.15) 0%, transparent 70%);
}
.scn\-train-journey-introduction .window {
  position: absolute; top: 5%; right: 5%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #c8c0a8 0%, #a09880 30%, #807060 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: tj1-window 8s ease-in-out infinite alternate;
}
.scn\-train-journey-introduction .seat {
  position: absolute; bottom: 15%; left: 8%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a0e 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: tj1-seat 12s ease-in-out infinite;
}
.scn\-train-journey-introduction .lamp {
  position: absolute; top: 8%; left: 45%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #b09050 100%);
  border-radius: 20% 20% 50% 50%; box-shadow: 0 0 30px 8px rgba(255,224,128,.4), 0 0 60px 16px rgba(255,200,100,.2);
  animation: tj1-lamp 3s ease-in-out infinite alternate;
}
.scn\-train-journey-introduction .mist {
  position: absolute; top: 5%; right: 5%; width: 40%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,190,170,.3) 0%, transparent 70%);
  filter: blur(8px); border-radius: 4px;
  animation: tj1-mist 20s linear infinite;
}
.scn\-train-journey-introduction .figure {
  position: absolute; bottom: 20%; left: 40%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tj1-figure 4s ease-in-out infinite;
}
.scn\-train-journey-introduction .track {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 0 0 20px 20px;
  animation: tj1-track 6s linear infinite;
}
@keyframes tj1-window { 0% { opacity:.85; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.9; filter:brightness(.95) } }
@keyframes tj1-seat { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tj1-lamp { 0% { transform: scale(1); opacity:.85 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.98); opacity:.9 } }
@keyframes tj1-mist { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } 100% { transform: translateX(10px) scale(.95) } }
@keyframes tj1-figure { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(2deg) translateX(4px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes tj1-track { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn\-train-contrast-appearance {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 70% 30%, rgba(180,160,130,.1) 0%, transparent 70%);
}
.scn\-train-contrast-appearance .head {
  position: absolute; top: 20%; left: 35%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: tj2-head 5s ease-in-out infinite alternate;
}
.scn\-train-contrast-appearance .hair {
  position: absolute; top: 18%; left: 33%; width: 24%; height: 14%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: tj2-hair 3s ease-in-out infinite;
}
.scn\-train-contrast-appearance .eye {
  position: absolute; top: 28%; left: 46%; width: 4%; height: 6%;
  background: radial-gradient(circle, #b0b0b0 0%, #505050 100%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(150,150,150,.6);
  animation: tj2-eye 2s ease-in-out infinite alternate;
}
.scn\-train-contrast-appearance .shoulder {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: tj2-shoulder 6s ease-in-out infinite;
}
.scn\-train-contrast-appearance .neck {
  position: absolute; top: 44%; left: 42%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20%;
}
.scn\-train-contrast-appearance .backlight {
  position: absolute; top: 15%; right: 10%; width: 35%; height: 55%;
  background: radial-gradient(ellipse at 50% 30%, rgba(220,210,190,.2) 0%, transparent 70%);
  filter: blur(12px);
  animation: tj2-backlight 10s linear infinite;
}
@keyframes tj2-head { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(3deg) scale(.98) } }
@keyframes tj2-hair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes tj2-eye { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(.8); opacity:.8 } }
@keyframes tj2-shoulder { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes tj2-backlight { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }

.scn\-train-muishkin-appearance {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 30% 60%, rgba(200,190,170,.1) 0%, transparent 70%);
}
.scn\-train-muishkin-appearance .head {
  position: absolute; top: 22%; right: 32%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  animation: tj3-head 6s ease-in-out infinite alternate;
}
.scn\-train-muishkin-appearance .hair {
  position: absolute; top: 20%; right: 30%; width: 22%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #c8c0b0 0%, #e0d8c8 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: tj3-hair 4s ease-in-out infinite;
}
.scn\-train-muishkin-appearance .eye {
  position: absolute; top: 30%; right: 40%; width: 4%; height: 6%;
  background: radial-gradient(circle, #6080b0 0%, #304060 100%);
  border-radius: 50%; box-shadow: 0 0 8px 2px rgba(60,80,120,.5);
  animation: tj3-eye 3s ease-in-out infinite alternate;
}
.scn\-train-muishkin-appearance .cloak {
  position: absolute; bottom: 18%; right: 25%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: tj3-cloak 8s ease-in-out infinite;
}
.scn\-train-muishkin-appearance .window-light {
  position: absolute; top: 10%; left: 8%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(200,190,170,.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: tj3-window-light 12s linear infinite;
}
.scn\-train-muishkin-appearance .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: tj3-shadow 5s ease-in-out infinite alternate;
}
@keyframes tj3-head { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.01) } 100% { transform: rotate(-2deg) scale(.99) } }
@keyframes tj3-hair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes tj3-eye { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }
@keyframes tj3-cloak { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tj3-window-light { 0% { opacity:.3; transform:translateX(0) } 50% { opacity:.6; transform:translateX(-10px) } 100% { opacity:.2; transform:translateX(5px) } }
@keyframes tj3-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.9) } }

.scn\-train-conversation-begins {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 30%, rgba(180,170,150,.12) 0%, transparent 70%);
}
.scn\-train-conversation-begins .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tj4-figure-left 6s ease-in-out infinite alternate;
}
.scn\-train-conversation-begins .figure-right {
  position: absolute; bottom: 20%; right: 15%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tj4-figure-right 6s ease-in-out infinite alternate;
}
.scn\-train-conversation-begins .compartment {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 70%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn\-train-conversation-begins .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #c8c0a8 0%, #a09880 50%, #807060 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: tj4-window 10s ease-in-out infinite alternate;
}
.scn\-train-conversation-begins .lamp {
  position: absolute; top: 5%; left: 46%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #b09050 100%);
  border-radius: 20% 20% 50% 50%; box-shadow: 0 0 24px 6px rgba(255,224,128,.4);
  animation: tj4-lamp 3s ease-in-out infinite alternate;
}
.scn\-train-conversation-begins .hand-left {
  position: absolute; bottom: 30%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom left;
  animation: tj4-hand-left 4s ease-in-out infinite;
}
@keyframes tj4-figure-left { 0% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(4deg) } }
@keyframes tj4-figure-right { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-4deg) } }
@keyframes tj4-window { 0% { opacity:.85; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.08) } 100% { opacity:.9; filter:brightness(.95) } }
@keyframes tj4-lamp { 0% { transform: scale(1); opacity:.85 } 50% { transform: scale(1.06); opacity:1 } 100% { transform: scale(.98); opacity:.9 } }
@keyframes tj4-hand-left { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(10deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-item-cards { background: linear-gradient(180deg, #0a0a14 0%, #151525 40%, #1a1a30 100%), radial-gradient(ellipse at 28% 60%, #2a2030 0%, transparent 70%); }
.scn-item-cards .table { position:absolute; bottom:20%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #1e1a16 0%, #0e0c0a 100%); border-radius:2% 2% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.7); }
.scn-item-cards .candle { position:absolute; bottom:60%; left:25%; width:8px; height:60px; background: linear-gradient(180deg, #e8d4a0 0%, #b09060 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(200,160,80,.4), 0 0 40px 12px rgba(200,160,80,.2); animation: ic-candle 3s ease-in-out infinite alternate; }
.scn-item-cards .candle::before { content:''; position:absolute; top:-12px; left:50%; transform:translateX(-50%); width:12px; height:14px; background: radial-gradient(circle, #ffcc66 0%, #e09030 40%, transparent 70%); border-radius:50%; animation: ic-flame 1s ease-in-out infinite alternate; }
.scn-item-cards .cards-left { position:absolute; bottom:48%; left:30%; width:50px; height:70px; background: linear-gradient(135deg, #2c2820 0%, #1a1610 100%); border-radius:4px; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: ic-slide 6s ease-in-out infinite; }
.scn-item-cards .cards-right { position:absolute; bottom:46%; right:30%; width:50px; height:70px; background: linear-gradient(135deg, #2c2820 0%, #1a1610 100%); border-radius:4px; transform: rotate(8deg); box-shadow: -2px 2px 6px rgba(0,0,0,.5); animation: ic-slide-rev 6s ease-in-out infinite; }
.scn-item-cards .hand-prince { position:absolute; bottom:44%; left:26%; width:40px; height:30px; background: linear-gradient(180deg, #2a2826 0%, #1a1816 100%); border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom left; animation: ic-reaching 8s ease-in-out infinite; }
.scn-item-cards .hand-rogojin { position:absolute; bottom:42%; right:22%; width:40px; height:30px; background: linear-gradient(180deg, #2a2826 0%, #1a1816 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; transform-origin: bottom right; animation: ic-withdraw 8s ease-in-out infinite; }
.scn-item-cards .shadow-shape { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes ic-candle { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.85; transform: scaleY(.98) } }
@keyframes ic-flame { 0% { transform: translateX(-50%) scaleX(1) scaleY(1) } 50% { transform: translateX(-50%) scaleX(1.1) scaleY(1.3) } 100% { transform: translateX(-50%) scaleX(.95) scaleY(.9) } }
@keyframes ic-slide { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-4px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ic-slide-rev { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-4px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes ic-reaching { 0% { transform: scale(.9) translate(0,0) } 50% { transform: scale(1) translate(8px, -2px) } 100% { transform: scale(.9) translate(0,0) } }
@keyframes ic-withdraw { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(.9) translate(-6px, -2px) } 100% { transform: scale(1) translate(0,0) } }

.scn-useless-cards { background: linear-gradient(180deg, #0d0d18 0%, #1a1a28 50%, #0d0d18 100%), radial-gradient(ellipse at 50% 40%, #1a1a30 0%, transparent 60%); }
.scn-useless-cards .bg-dark { position:absolute; inset:0; background: radial-gradient(circle at 30% 50%, rgba(30,25,20,.3) 0%, transparent 50%); }
.scn-useless-cards .cards-packet { position:absolute; bottom:42%; left:50%; width:60px; height:85px; transform:translateX(-50%) rotate(5deg); background: linear-gradient(135deg, #2a2620 0%, #1c1814 100%); border-radius:4px; box-shadow: 4px 4px 12px rgba(0,0,0,.7); animation: uc-slight-move 10s ease-in-out infinite; }
.scn-useless-cards .hand-extend { position:absolute; bottom:38%; left:38%; width:50px; height:60px; background: linear-gradient(180deg, #2a2826 0%, #1a1816 100%); border-radius: 50% 40% 30% 20% / 60% 50% 40% 30%; transform-origin: bottom left; animation: uc-hand-out 6s ease-in-out infinite; }
.scn-useless-cards .fingers { position:absolute; bottom:42%; left:36%; width:30px; height:20px; background: linear-gradient(180deg, #2a2826 0%, #1a1816 100%); border-radius: 30% 60% 30% 30% / 40% 60% 40% 40%; animation: uc-fingers 6s ease-in-out infinite; }
.scn-useless-cards .card-layers { position:absolute; bottom:40%; left:44%; width:55px; height:75px; background: repeating-linear-gradient(90deg, #2c2820, #2c2820 4px, #3a3228 4px, #3a3228 8px); border-radius:2px; box-shadow: 2px 2px 8px rgba(0,0,0,.5); transform: rotate(-2deg); animation: uc-flutter 4s ease-in-out infinite; }
.scn-useless-cards .light-flash { position:absolute; bottom:44%; left:50%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 70%); transform:translateX(-50%); animation: uc-glow 2s ease-in-out infinite alternate; }
@keyframes uc-slight-move { 0% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(7deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes uc-hand-out { 0% { transform: scale(.95) translate(0,0) rotate(0deg) } 50% { transform: scale(1.05) translate(10px, -4px) rotate(-5deg) } 100% { transform: scale(.95) translate(0,0) rotate(0deg) } }
@keyframes uc-fingers { 0% { transform: scale(.9) } 50% { transform: scale(1.1) rotate(-3deg) } 100% { transform: scale(.9) } }
@keyframes uc-flutter { 0% { opacity:.8; transform: rotate(-2deg) } 50% { opacity:1; transform: rotate(1deg) } 100% { opacity:.85; transform: rotate(-2deg) } }
@keyframes uc-glow { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-delirium { background: linear-gradient(180deg, #050508 0%, #101018 50%, #08080c 100%), radial-gradient(ellipse at 50% 70%, #12121a 0%, transparent 80%); }
.scn-delirium .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #101010 0%, #080808 100%); }
.scn-delirium .wall-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, transparent 30%, rgba(0,0,0,.7) 100%); }
.scn-delirium .figure-rogojin { position:absolute; bottom:18%; left:45%; width:80px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: dl-figure 8s ease-in-out infinite; }
.scn-delirium .eyes-glow { position:absolute; bottom:72%; left:48%; width:20px; height:8px; background: radial-gradient(circle, #ffcc66 0%, #e09030 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,160,80,.5), 0 0 60px 20px rgba(200,160,80,.2); animation: dl-eyes 3s ease-in-out infinite alternate; }
.scn-delirium .eyes-glow::before { content:''; position:absolute; left:-8px; top:-2px; width:8px; height:10px; background: radial-gradient(circle, #ffcc66 0%, transparent 80%); animation: dl-left-eye 3s ease-in-out infinite alternate; }
.scn-delirium .eyes-glow::after { content:''; position:absolute; right:-8px; top:-2px; width:8px; height:10px; background: radial-gradient(circle, #ffcc66 0%, transparent 80%); animation: dl-right-eye 3s ease-in-out infinite alternate; }
.scn-delirium .chair-prince { position:absolute; bottom:10%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #1a1816 0%, #0e0c0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; transform: rotate(-5deg); animation: dl-chair 12s ease-in-out infinite; }
.scn-delirium .prince-silhouette { position:absolute; bottom:22%; left:22%; width:30px; height:80px; background: linear-gradient(180deg, #0e0e0e 0%, #060606 100%); border-radius: 50% 30% 20% 20% / 60% 50% 30% 30%; animation: dl-prince-twitch 9s ease-in-out infinite; }
.scn-delirium .darkness-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.4) 100%); pointer-events:none; }
@keyframes dl-figure { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes dl-eyes { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(1) } }
@keyframes dl-left-eye { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-1px) } 100% { transform: translate(0,0) } }
@keyframes dl-right-eye { 0% { transform: translate(0,0) } 50% { transform: translate(-2px,-1px) } 100% { transform: translate(0,0) } }
@keyframes dl-chair { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes dl-prince-twitch { 0% { transform: translate(0,0) } 50% { transform: translate(4px,-2px) rotate(2deg) } 100% { transform: translate(0,0) } }

.scn-laugh { background: linear-gradient(180deg, #0a0a0f 0%, #14141e 40%, #0a0a0f 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 60%); }
.scn-laugh .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(30,20,20,.2) 0%, transparent 70%); }
.scn-laugh .face-profile { position:absolute; bottom:30%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #1c1a1a 0%, #0e0c0c 100%); border-radius: 60% 30% 40% 20% / 70% 40% 30% 30%; clip-path: inset(0 0 0 50%); /* left half of face */ animation: lf-profile 6s ease-in-out infinite; }
.scn-laugh .mouth-open { position:absolute; bottom:38%; left:52%; width:40px; height:20px; background: radial-gradient(ellipse 30% 60% at 50% 50%, #0a0a0a 0%, #1a1010 50%, transparent 80%); border-radius: 0 0 50% 50%; border: 2px solid #1c1a1a; border-top:none; transform: rotate(10deg); animation: lf-mouth 4s ease-in-out infinite; }
.scn-laugh .throat-shadow { position:absolute; bottom:43%; left:54%; width:20px; height:30px; background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); border-radius: 0 0 40% 40%; opacity:.7; animation: lf-throat 4s ease-in-out infinite; }
.scn-laugh .hand-tremble { position:absolute; bottom:20%; right:28%; width:30px; height:40px; background: linear-gradient(180deg, #1e1c1a 0%, #0e0c0a 100%); border-radius: 30% 40% 20% 20%; transform: rotate(15deg); animation: lf-tremble 2s ease-in-out infinite; }
.scn-laugh .teeth-gleam { position:absolute; bottom:40%; left:54%; width:20px; height:6px; background: linear-gradient(90deg, #3a3530 0%, #8a7a70 50%, #3a3530 100%); border-radius: 2px; transform: rotate(10deg); opacity:.4; animation: lf-gleam 4s ease-in-out infinite alternate; }
@keyframes lf-profile { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) rotate(-2deg) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes lf-mouth { 0% { transform: rotate(10deg) scaleY(1) } 30% { transform: rotate(10deg) scaleY(1.3) } 70% { transform: rotate(8deg) scaleY(1.1) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes lf-throat { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.4) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes lf-tremble { 0% { transform: rotate(15deg) translate(0,0) } 25% { transform: rotate(18deg) translate(1px,-2px) } 75% { transform: rotate(12deg) translate(-1px,1px) } 100% { transform: rotate(15deg) translate(0,0) } }
@keyframes lf-gleam { 0% { opacity:.2; transform: rotate(10deg) scaleX(.8) } 50% { opacity:.5; transform: rotate(10deg) scaleX(1.2) } 100% { opacity:.3; transform: rotate(10deg) scaleX(.9) } }

.scn-train-millionaire-heir {
  background: 
    linear-gradient(180deg, #2a3b4c 0%, #4a5a6b 20%, #1a2a3a 60%, #0a1a2a 100%),
    radial-gradient(ellipse at 30% 0%, #b0c0d0 0%, transparent 60%);
}

.scn-train-millionaire-heir .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #8a9aa8 0%, #4a5a6b 30%, transparent 100%);
  animation: tmh-dawn 15s ease-in-out infinite alternate;
}

.scn-train-millionaire-heir .train-interior {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  border-radius: 0 0 20% 20%;
}

.scn-train-millionaire-heir .window {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b0c0d0 0%, #8a9aa8 100%);
  border-radius: 10% / 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 0 30px rgba(180,200,220,0.2);
  animation: tmh-window 8s ease-in-out infinite;
}

.scn-train-millionaire-heir .seat {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 10% / 30%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}

.scn-train-millionaire-heir .figure-rogogin {
  position: absolute; bottom: 12%; left: 30%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tmh-rogogin 4s ease-in-out infinite;
}

.scn-train-millionaire-heir .figure-prince {
  position: absolute; bottom: 12%; right: 30%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tmh-prince 5s ease-in-out infinite;
}

.scn-train-millionaire-heir .clerk-hover {
  position: absolute; bottom: 15%; left: 48%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: tmh-clerk 3s ease-in-out infinite alternate;
}

.scn-train-millionaire-heir .dust-mote-1 {
  position: absolute; top: 15%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,210,220,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: tmh-dust1 12s linear infinite;
}

.scn-train-millionaire-heir .dust-mote-2 {
  position: absolute; top: 25%; left: 60%; width: 3px; height: 3px;
  background: rgba(200,210,220,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: tmh-dust2 15s linear infinite reverse;
}

@keyframes tmh-dawn { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tmh-window { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes tmh-rogogin { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-2deg); } }
@keyframes tmh-prince { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes tmh-clerk { 0% { transform: rotate(5deg) translateY(0); } 100% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes tmh-dust1 { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.5; } 100% { transform: translate(20px, -30px) scale(0.5); opacity: 0; } }
@keyframes tmh-dust2 { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.7; } 90% { opacity: 0.4; } 100% { transform: translate(-15px, -25px) scale(0.6); opacity: 0; } }

.scn-train-rogogin-escape {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #091420 100%),
    radial-gradient(ellipse at 70% 10%, #4a5a6b 0%, transparent 50%);
}

.scn-train-rogogin-escape .train-corridor {
  position: absolute; inset: 0 20% 0 20%;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  border-radius: 10% / 5%;
  transform: perspective(500px) rotateX(10deg);
  animation: tre-corridor 20s ease-in-out infinite alternate;
}

.scn-train-rogogin-escape .doorway {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%;
  background: #0a0a0a;
  border-radius: 5% / 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.5);
  animation: tre-door 10s ease-in-out infinite;
}

.scn-train-rogogin-escape .figure-running {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: skewX(-10deg);
  animation: tre-run 1s ease-in-out infinite;
}

.scn-train-rogogin-escape .shadow-streak {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 0 0 20% 20%;
  animation: tre-shadow 4s linear infinite;
}

.scn-train-rogogin-escape .lamp-glow {
  position: absolute; top: 12%; left: 15%; width: 8px; height: 20px;
  background: radial-gradient(circle, #c0a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,96,0.3);
  animation: tre-lamp 3s ease-in-out infinite alternate;
}

.scn-train-rogogin-escape .window-blur {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 25%;
  background: rgba(200,210,220,0.1);
  filter: blur(8px);
  border-radius: 10% / 20%;
  animation: tre-window 30s linear infinite;
}

@keyframes tre-corridor { 0% { transform: perspective(500px) rotateX(8deg) translateY(0); } 100% { transform: perspective(500px) rotateX(12deg) translateY(-5px); } }
@keyframes tre-door { 0%, 100% { opacity: 0.9; } 50% { opacity: 0.5; } }
@keyframes tre-run { 0%, 100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-15deg) translateY(-5px); } }
@keyframes tre-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tre-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,160,96,0.2); opacity: 0.8; } 100% { box-shadow: 0 0 40px 15px rgba(192,160,96,0.5); opacity: 1; } }
@keyframes tre-window { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }

.scn-train-rogogin-brother {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #4a5a6b 0%, transparent 60%);
}

.scn-train-rogogin-brother .compartment-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, transparent 40%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: trb-shadow 12s ease-in-out infinite alternate;
}

.scn-train-rogogin-brother .window-pane {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 10% / 15%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: trb-window 9s ease-in-out infinite;
}

.scn-train-rogogin-brother .seat-back {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.6);
}

.scn-train-rogogin-brother .figure-rogogin-b {
  position: absolute; bottom: 18%; left: 25%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: trb-rog 5s ease-in-out infinite alternate;
}

.scn-train-rogogin-brother .figure-clerk-b {
  position: absolute; bottom: 15%; left: 50%; width: 14%; height: 33%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: trb-clerk 3s ease-in-out infinite;
}

.scn-train-rogogin-brother .red-nose-glint {
  position: absolute; bottom: 38%; left: 55%; width: 6px; height: 4px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(160,70,26,0.4);
  animation: trb-nose 4s ease-in-out infinite alternate;
}

.scn-train-rogogin-brother .breath-vapour {
  position: absolute; bottom: 45%; left: 52%; width: 20px; height: 15px;
  background: rgba(200,210,220,0.1);
  filter: blur(5px);
  border-radius: 50%;
  animation: trb-breath 5s ease-out infinite;
}

@keyframes trb-shadow { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes trb-window { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes trb-rog { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes trb-clerk { 0%, 100% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } }
@keyframes trb-nose { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes trb-breath { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 100% { transform: translateY(-20px) scale(2); opacity: 0; } }

.scn-train-rogogin-nastasia {
  background: 
    linear-gradient(180deg, #0a1a2a 0%, #1a1a2a 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 40% 30%, #2a3a4a 0%, transparent 50%);
}

.scn-train-rogogin-nastasia .train-window-night {
  position: absolute; top: 5%; left: 10%; width: 50%; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 10% / 15%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 40px rgba(0,0,0,0.3);
  animation: trn-window 12s ease-in-out infinite;
}

.scn-train-rogogin-nastasia .curtain {
  position: absolute; top: 5%; left: 8%; width: 15%; height: 52%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 10% 0 0 10%;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: trn-curtain 8s ease-in-out infinite alternate;
}

.scn-train-rogogin-nastasia .portrait-frame {
  position: absolute; top: 20%; left: 35%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% / 10%;
  box-shadow: 0 0 15px rgba(0,0,0,0.7);
  animation: trn-frame 6s ease-in-out infinite;
}

.scn-train-rogogin-nastasia .portrait-silhouette {
  position: absolute; top: 22%; left: 37%; width: 16%; height: 26%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  clip-path: inset(0 round 15%);
  animation: trn-silhouette 10s ease-in-out infinite alternate;
}

.scn-train-rogogin-nastasia .figure-rogogin-c {
  position: absolute; bottom: 10%; left: 20%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: trn-rog2 4s ease-in-out infinite;
}

.scn-train-rogogin-nastasia .lamp-light {
  position: absolute; top: 15%; right: 10%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b08050 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(176,128,80,0.3);
  animation: trn-lamp 3s ease-in-out infinite alternate;
}

.scn-train-rogogin-nastasia .smoke-wisp {
  position: absolute; top: 12%; right: 12%; width: 30px; height: 20px;
  background: rgba(200,210,220,0.05);
  filter: blur(10px);
  border-radius: 50%;
  animation: trn-smoke 20s linear infinite;
}

@keyframes trn-window { 0%, 100% { opacity: 0.8; } 50% { opacity: 0.5; } }
@keyframes trn-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }
@keyframes trn-frame { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }
@keyframes trn-silhouette { 0% { opacity: 0.9; transform: scale(1); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes trn-rog2 { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes trn-lamp { 0% { box-shadow: 0 0 20px 10px rgba(176,128,80,0.2); } 100% { box-shadow: 0 0 40px 20px rgba(176,128,80,0.5); } }
@keyframes trn-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.3; } 90% { opacity: 0.1; } 100% { transform: translate(-30px, -40px) scale(3); opacity: 0; } }

.scn-guests-depart {
  background: linear-gradient(180deg, #0f1b2e 0%, #1a2d45 40%, #2c4a66 80%, #3b5f7a 100%),
              radial-gradient(ellipse at 50% 20%, #b8d4e3 0%, transparent 60%);
}
.scn-guests-depart .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #0a1423 0%, transparent 100%); animation:gd-sky 14s ease-in-out infinite alternate; }
.scn-guests-depart .moon { position:absolute; top:12%; left:70%; width:50px; height:50px; background:radial-gradient(circle, #e8f0ff 0%, #c2d6ef 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,220,250,.3); animation:gd-moon 20s ease-in-out infinite alternate; }
.scn-guests-depart .cloud { position:absolute; top:18%; width:120px; height:20px; background:linear-gradient(180deg, rgba(210,225,240,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(6px); }
.scn-guests-depart .cloud-a { left:-130px; animation:gd-drift-a 45s linear infinite; }
.scn-guests-depart .cloud-b { top:28%; width:90px; height:14px; left:100vw; animation:gd-drift-b 60s linear infinite reverse; }
.scn-guests-depart .path { position:absolute; bottom:15%; left:0; right:0; height:35%; background:linear-gradient(180deg, #2d3d4a 0%, #4a5a6a 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; }
.scn-guests-depart .fig1 { position:absolute; bottom:20%; left:30%; width:16px; height:36px; background:linear-gradient(180deg, #1a2430 0%, #0d141e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gd-walk1 4s ease-in-out infinite; }
.scn-guests-depart .fig2 { position:absolute; bottom:20%; left:40%; width:16px; height:36px; background:linear-gradient(180deg, #1a2430 0%, #0d141e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gd-walk2 4.8s ease-in-out infinite; animation-delay:-1.2s; }
.scn-guests-depart .lantern { position:absolute; bottom:24%; left:28%; width:6px; height:6px; background:#f2d78c; border-radius:50%; box-shadow: 0 0 20px 6px rgba(242,215,140,.8); animation:gd-swing 3.5s ease-in-out infinite; }
@keyframes gd-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes gd-moon    { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(.95); opacity:.8 } }
@keyframes gd-drift-a { 0% { transform:translateX(0) } 100% { transform:translateX(calc(100vw + 260px)) } }
@keyframes gd-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-200vw) } }
@keyframes gd-walk1   { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(16px) translateY(0) rotate(-2deg) } 75% { transform:translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform:translateX(32px) translateY(0) rotate(-1deg) } }
@keyframes gd-walk2   { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(7px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(14px) translateY(0) rotate(2deg) } 75% { transform:translateX(21px) translateY(-1px) rotate(-1deg) } 100% { transform:translateX(28px) translateY(0) rotate(1deg) } }
@keyframes gd-swing   { 0% { transform:translateX(0) rotate(-5deg) } 50% { transform:translateX(2px) rotate(5deg) } 100% { transform:translateX(0) rotate(-5deg) } }

.scn-lebedev-comments {
  background: linear-gradient(180deg, #1c1718 0%, #2a2224 35%, #3a3032 70%, #242021 100%),
              radial-gradient(ellipse at 50% 100%, #3a2b28 0%, transparent 80%);
}
.scn-lebedev-comments .bg-wall { position:absolute; inset:0; background:linear-gradient(90deg, #1d1819 0%, #2f2527 50%, #1d1819 100%); }
.scn-lebedev-comments .table { position:absolute; bottom:10%; left:40%; width:120px; height:40px; background:linear-gradient(180deg, #4a3e3f 0%, #2d2425 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-lebedev-comments .lamp { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background:linear-gradient(180deg, #b07a4a 0%, #7a5020 100%); border-radius:2px; box-shadow:0 0 30px 8px rgba(200,150,80,.5); animation:lc-flicker 2.5s ease-in-out infinite alternate; }
.scn-lebedev-comments .fig-left { position:absolute; bottom:15%; left:25%; width:20px; height:44px; background:linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; animation:lc-sway 6s ease-in-out infinite; }
.scn-lebedev-comments .fig-right { position:absolute; bottom:15%; left:52%; width:20px; height:44px; background:linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; animation:lc-sway 7.2s ease-in-out infinite reverse; }
.scn-lebedev-comments .shadow { position:absolute; bottom:8%; left:10%; width:200px; height:60px; background:radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 100%); filter:blur(8px); }
@keyframes lc-flicker { 0% { opacity:.7; box-shadow:0 0 20px 5px rgba(200,150,80,.3) } 30% { opacity:1; box-shadow:0 0 40px 12px rgba(220,170,90,.7) } 60% { opacity:.85; box-shadow:0 0 30px 8px rgba(210,160,85,.5) } 100% { opacity:.9; box-shadow:0 0 25px 6px rgba(200,150,80,.4) } }
@keyframes lc-sway { 0% { transform:rotate(-2deg) translateX(0) } 25% { transform:rotate(1deg) translateX(3px) } 50% { transform:rotate(2deg) translateX(0) } 75% { transform:rotate(-1deg) translateX(-2px) } 100% { transform:rotate(-2deg) translateX(0) } }

.scn-prince-alone {
  background: linear-gradient(180deg, #1a1412 0%, #2b201c 40%, #3d2f2a 80%, #4a3b34 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a24 0%, transparent 70%);
}
.scn-prince-alone .wall { position:absolute; inset:0; background:linear-gradient(90deg, #201a18 0%, #332a26 50%, #201a18 100%); }
.scn-prince-alone .window { position:absolute; top:10%; right:15%; width:70px; height:90px; background:radial-gradient(ellipse at 50% 50%, #1c3a50 0%, #0a1420 100%); border:4px solid #3a2a24; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); animation:pa-night 30s ease-in-out infinite alternate; }
.scn-prince-alone .chair { position:absolute; bottom:15%; left:30%; width:80px; height:100px; background:linear-gradient(180deg, #4a3a32 0%, #2d201c 100%); border-radius:10% 10% 5% 5%; box-shadow:0 8px 16px rgba(0,0,0,.5); }
.scn-prince-alone .prince { position:absolute; bottom:20%; left:38%; width:18px; height:42px; background:linear-gradient(180deg, #1a1412 0%, #0d0a09 100%); border-radius:50% 50% 30% 30% / 55% 55% 35% 35%; transform-origin:bottom center; animation:pa-slump 8s ease-in-out infinite; }
.scn-prince-alone .candle { position:absolute; bottom:38%; left:50%; width:6px; height:18px; background:linear-gradient(180deg, #e8c88a 0%, #b08040 100%); border-radius:2px; box-shadow:0 0 10px 2px rgba(200,150,80,.6); animation:pa-flicker 3s ease-in-out infinite; }
.scn-prince-alone .glow { position:absolute; bottom:30%; left:40%; width:120px; height:120px; background:radial-gradient(circle, rgba(200,150,80,.25) 0%, transparent 100%); filter:blur(12px); animation:pa-glowpulse 5s ease-in-out infinite alternate; }
@keyframes pa-night  { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes pa-slump  { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(-2deg) } 50% { transform:translateY(0) rotate(1deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes pa-flicker { 0% { opacity:.85; transform:scaleY(1) } 20% { opacity:1; transform:scaleY(1.02) } 40% { opacity:.9; transform:scaleY(.98) } 60% { opacity:.95; transform:scaleY(1) } 80% { opacity:.8; transform:scaleY(1.01) } 100% { opacity:.85; transform:scaleY(1) } }
@keyframes pa-glowpulse { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.1) } 100% { opacity:.5; transform:scale(.9) } }

.scn-vera-stays {
  background: linear-gradient(180deg, #1e1714 0%, #2d241f 35%, #3d332d 70%, #2b2420 100%),
              radial-gradient(ellipse at 50% 90%, #2d1f1a 0%, transparent 70%);
}
.scn-vera-stays .bg-wall { position:absolute; inset:0; background:linear-gradient(90deg, #1b1412 0%, #2e2521 50%, #1b1412 100%); }
.scn-vera-stays .sofa { position:absolute; bottom:12%; left:55%; width:100px; height:60px; background:linear-gradient(180deg, #4a3a34 0%, #2d201c 100%); border-radius:20% 20% 10% 10%; box-shadow:0 6px 18px rgba(0,0,0,.6); }
.scn-vera-stays .vera { position:absolute; bottom:18%; left:20%; width:16px; height:38px; background:linear-gradient(180deg, #2a201c 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:vs-bustle 9s ease-in-out infinite; }
.scn-vera-stays .prince-shape { position:absolute; bottom:20%; left:60%; width:18px; height:40px; background:linear-gradient(180deg, #1a1412 0%, #0d0a09 100%); border-radius:50% 50% 30% 30% / 55% 55% 35% 35%; opacity:.6; animation:vs-still 15s ease-in-out infinite; }
.scn-vera-stays .lamp { position:absolute; bottom:35%; left:30%; width:14px; height:22px; background:linear-gradient(180deg, #b08050 0%, #7a5020 100%); border-radius:2px; box-shadow:0 0 25px 6px rgba(180,130,70,.5); animation:vs-light 4s ease-in-out infinite alternate; }
.scn-vera-stays .curtain { position:absolute; top:0; left:0; width:40px; height:100%; background:linear-gradient(180deg, #2a1e1a 0%, #1c1210 100%); opacity:.7; animation:vs-drape 22s ease-in-out infinite; }
@keyframes vs-bustle { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 20% { transform:translateX(8px) translateY(-2px) rotate(2deg) } 40% { transform:translateX(16px) translateY(0) rotate(-1deg) } 60% { transform:translateX(8px) translateY(-1px) rotate(1deg) } 80% { transform:translateX(0) translateY(0) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes vs-still { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes vs-light { 0% { box-shadow:0 0 20px 4px rgba(180,130,70,.4); opacity:.8 } 50% { box-shadow:0 0 35px 10px rgba(200,150,80,.7); opacity:1 } 100% { box-shadow:0 0 25px 6px rgba(180,130,70,.5); opacity:.9 } }
@keyframes vs-drape { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.05) } 100% { transform:scaleX(1) } }

.scn-scandal-details {
  background: 
    linear-gradient(145deg, #3a3a4a 0%, #2a2a38 60%, #1c1c28 100%),
    radial-gradient(ellipse at 30% 50%, #4a4a5a 0%, transparent 70%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-scandal-details .bg-cloud {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, transparent 100%);
  opacity:0.6; animation: sdd-cloud 12s ease-in-out infinite alternate;
}
.scn-scandal-details .wall-panel {
  position: absolute; bottom:20%; left:10%; width:80%; height:50%;
  background: linear-gradient(135deg, #4a2a2a 0%, #3a1a1a 100%);
  border-radius: 12px 12px 6px 6px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: sdd-panel 9s ease-in-out infinite;
}
.scn-scandal-details .table {
  position: absolute; bottom:12%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,0.4);
}
.scn-scandal-details .letter {
  position: absolute; bottom:18%; left:35%; width:12%; height:6%;
  background: linear-gradient(135deg, #d0c8b0 0%, #b0a890 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sdd-letter 5s ease-in-out infinite;
}
.scn-scandal-details .figure-left {
  position: absolute; bottom:16%; left:25%; width:14%; height:30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1); animation: sdd-lean 4s ease-in-out infinite;
}
.scn-scandal-details .figure-right {
  position: absolute; bottom:16%; right:25%; width:14%; height:30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sdd-lean 4s ease-in-out infinite reverse;
}
.scn-scandal-details .whisper-lines {
  position: absolute; bottom:28%; left:38%; width:24%; height:16%;
  background: repeating-linear-gradient(90deg,
    rgba(200,200,200,0.2) 0px, transparent 4px,
    rgba(200,200,200,0.1) 8px, transparent 12px);
  filter: blur(3px); animation: sdd-whisper 3s ease-in-out infinite;
}
.scn-scandal-details .lamp {
  position: absolute; top:15%; right:15%; width:8%; height:20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 4px 4px; box-shadow: 0 0 20px 6px rgba(180,140,80,0.4);
  animation: sdd-lamp 4s ease-in-out infinite alternate;
}
@keyframes sdd-cloud { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }
@keyframes sdd-panel { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes sdd-letter { 0%,100%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-2deg) translateY(-2px)} }
@keyframes sdd-lean { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(3deg)} }
@keyframes sdd-whisper { 0%{opacity:0.1} 50%{opacity:0.4} 100%{opacity:0.2} }
@keyframes sdd-lamp { 0%{box-shadow:0 0 15px 4px rgba(180,140,80,0.3)} 100%{box-shadow:0 0 30px 10px rgba(180,140,80,0.6)} }

.scn-gossip-mongers {
  background: 
    linear-gradient(180deg, #4a4a5a 0%, #2e2e3e 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 30%, #5a5a6a 0%, transparent 60%);
}
.scn-gossip-mongers .wall {
  position: absolute; inset:0;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 100%);
  border-left: 2px solid #5a5a6a; border-right: 2px solid #2a2a3a;
}
.scn-gossip-mongers .window {
  position: absolute; top:10%; left:30%; width:20%; height:40%;
  background: linear-gradient(180deg, #707080 0%, #505060 100%);
  border: 4px solid #4a4a5a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: gmo-window 8s ease-in-out infinite alternate;
}
.scn-gossip-mongers .figure-a {
  position: absolute; bottom:10%; left:15%; width:18%; height:40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform: rotate(5deg); animation: gmo-head 3s ease-in-out infinite;
}
.scn-gossip-mongers .figure-b {
  position: absolute; bottom:10%; right:15%; width:18%; height:40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform: rotate(-5deg); animation: gmo-head 3s ease-in-out infinite reverse;
}
.scn-gossip-mongers .whisper-arc {
  position: absolute; bottom:30%; left:30%; width:40%; height:15%;
  background: repeating-conic-gradient(from -10deg at 50% 100%,
    rgba(200,200,200,0.1) 0deg 8deg, transparent 8deg 16deg);
  filter: blur(4px); animation: gmo-whisper 2s ease-in-out infinite;
}
.scn-gossip-mongers .speech-bubble {
  position: absolute; top:5%; left:20%; width:15%; height:10%;
  background: rgba(220,220,220,0.15);
  border-radius: 50% 50% 50% 10%; filter: blur(2px);
  animation: gmo-bubble 4s ease-in-out infinite;
}
.scn-gossip-mongers .shadow-stripe {
  position: absolute; top:0; bottom:0; left:48%; width:4%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  filter: blur(2px); animation: gmo-stripe 6s ease-in-out infinite;
}
@keyframes gmo-window { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes gmo-head { 0%,100%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(4deg) translateY(-3px)} }
@keyframes gmo-whisper { 0%{opacity:0.2;transform:scaleY(0.8)} 50%{opacity:0.5;transform:scaleY(1.2)} 100%{opacity:0.3;transform:scaleY(0.9)} }
@keyframes gmo-bubble { 0%{opacity:0} 50%{opacity:0.5} 100%{opacity:0} }
@keyframes gmo-stripe { 0%{opacity:0.4} 50%{opacity:0.8} 100%{opacity:0.5} }

.scn-details-of-story {
  background: 
    linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 50%, #1c1c2c 100%),
    radial-gradient(ellipse at 60% 40%, #4a4a5a 0%, transparent 70%);
}
.scn-details-of-story .room-bg {
  position: absolute; inset:0;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 100%);
  clip-path: polygon(20% 5%, 80% 5%, 95% 60%, 80% 95%, 20% 95%, 5% 60%);
  filter: blur(1px);
}
.scn-details-of-story .armchair {
  position: absolute; bottom:10%; left:30%; width:40%; height:45%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: dos-chair 9s ease-in-out infinite;
}
.scn-details-of-story .reader {
  position: absolute; bottom:20%; left:35%; width:30%; height:45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg); animation: dos-reader 4s ease-in-out infinite;
}
.scn-details-of-story .book {
  position: absolute; bottom:25%; left:42%; width:14%; height:8%;
  background: linear-gradient(135deg, #b0a890 0%, #908070 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-15deg); animation: dos-book 6s ease-in-out infinite;
}
.scn-details-of-story .hand {
  position: absolute; bottom:28%; left:45%; width:6%; height:10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg); animation: dos-hand 5s ease-in-out infinite alternate;
}
.scn-details-of-story .candle {
  position: absolute; top:15%; right:20%; width:4%; height:20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 10px 2px rgba(180,140,80,0.3);
}
.scn-details-of-story .glow {
  position: absolute; top:12%; right:18%; width:10%; height:10%;
  background: radial-gradient(circle, rgba(200,180,120,0.4) 0%, transparent 70%);
  border-radius: 50%; animation: dos-glow 4s ease-in-out infinite alternate;
}
@keyframes dos-chair { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
@keyframes dos-reader { 0%,100%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(0deg) translateY(-2px)} }
@keyframes dos-book { 0%,100%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-10deg) translateY(-3px)} }
@keyframes dos-hand { 0%{transform:rotate(20deg) translateY(0)} 100%{transform:rotate(25deg) translateY(-3px)} }
@keyframes dos-glow { 0%{opacity:0.6;transform:scale(0.9)} 100%{opacity:1;transform:scale(1.2)} }

.scn-vase-incident-rumour {
  background: 
    linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 80%, #7a7a8a 0%, transparent 70%);
}
.scn-vase-incident-rumour .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-vase-incident-rumour .wall {
  position: absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(90deg, #4a4a5a 0%, #5a5a6a 30%, #4a4a5a 100%);
}
.scn-vase-incident-rumour .vase {
  position: absolute; bottom:30%; left:50%; transform:translateX(-50%);
  width:16%; height:30%; border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 4px 10px rgba(255,255,255,0.1);
  animation: vir-vase 5s ease-in-out infinite;
}
.scn-vase-incident-rumour .pedestal {
  position: absolute; bottom:20%; left:46%; width:8%; height:10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  animation: vir-pedestal 5s ease-in-out infinite;
}
.scn-vase-incident-rumour .figure-slip {
  position: absolute; bottom:28%; left:30%; width:18%; height:40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(30deg); animation: vir-slip 2s ease-in-out infinite;
}
.scn-vase-incident-rumour .flying-shoe {
  position: absolute; bottom:40%; left:20%; width:6%; height:4%;
  background: #4a3a2a; border-radius: 20% 20% 40% 40%;
  transform: rotate(-45deg); animation: vir-shoe 3s ease-in-out infinite;
}
.scn-vase-incident-rumour .handkerchief {
  position: absolute; top:20%; right:25%; width:12%; height:8%;
  background: rgba(220,220,220,0.3); border-radius: 50%;
  filter: blur(2px); animation: vir-hanky 4s ease-in-out infinite;
}
.scn-vase-incident-rumour .sparkle {
  position: absolute; top:10%; left:40%; width:4%; height:4%;
  background: radial-gradient(circle, #ffff80 0%, transparent 70%);
  border-radius: 50%; animation: vir-sparkle 1.5s ease-in-out infinite;
}
@keyframes vir-vase { 0%,100%{transform:translateX(-50%) rotate(0deg)} 50%{transform:translateX(-50%) rotate(2deg)} }
@keyframes vir-pedestal { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(0.95)} }
@keyframes vir-slip { 0%,100%{transform:rotate(30deg) translateY(0)} 50%{transform:rotate(40deg) translateY(-10px)} }
@keyframes vir-shoe { 0%{transform:rotate(-45deg) translate(0,0)} 50%{transform:rotate(-60deg) translate(10px,-10px)} 100%{transform:rotate(-45deg) translate(0,0)} }
@keyframes vir-hanky { 0%{opacity:0.2;transform:scale(0.8)} 50%{opacity:0.6;transform:scale(1.2)} 100%{opacity:0.3;transform:scale(0.9)} }
@keyframes vir-sparkle { 0%,100%{opacity:0} 50%{opacity:1;transform:scale(1.5)} }

/* one block per scene id. Append to style.css. */
.scn-prince-servant-suspicion { background: linear-gradient(180deg, #2B1E16 0%, #1A110E 100%), radial-gradient(ellipse at 50% 60%, #4A3022 0%, transparent 70%); background-blend-mode: normal; }
.scn-prince-servant-suspicion .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3F2A1D 0%, #261813 100%); }
.scn-prince-servant-suspicion .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2E1F14 0%, #170D08 100%); }
.scn-prince-servant-suspicion .door { position:absolute; bottom:35%; left:40%; width:25%; height:65%; background: linear-gradient(180deg, #3E281C 0%, #1F110B 100%); border-radius: 4% 4% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,0.5); }
.scn-prince-servant-suspicion .lamp { position:absolute; bottom:50%; left:20%; width:12px; height:18px; background: linear-gradient(180deg, #C8A165 0%, #8B6D3F 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #D4B07A, 0 0 40px 12px rgba(212,176,122,0.3); animation: pss-glow 4s ease-in-out infinite alternate; }
.scn-prince-servant-suspicion .light-glow { position:absolute; bottom:35%; left:10%; width:80%; height:80%; background: radial-gradient(ellipse at 20% 60%, rgba(212,176,122,0.15) 0%, transparent 70%); pointer-events: none; animation: pss-pulse 8s ease-in-out infinite alternate; }
.scn-prince-servant-suspicion .figure-servant { position:absolute; bottom:30%; left:15%; width:16px; height:45px; background: linear-gradient(180deg, #2E221A 0%, #120C08 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pss-bow 6s ease-in-out infinite; }
.scn-prince-servant-suspicion .figure-prince { position:absolute; bottom:30%; right:20%; width:18px; height:48px; background: linear-gradient(180deg, #382B20 0%, #1A110C 100%); border-radius: 50% 50% 40% 40% / 75% 75% 35% 35%; transform-origin: bottom center; animation: pss-stand 8s ease-in-out infinite; }
.scn-prince-servant-suspicion .shadow-servant { position:absolute; bottom:30%; left:12%; width:30px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: pss-shadow 6s ease-in-out infinite; }
@keyframes pss-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes pss-pulse { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes pss-bow { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg) scaleY(0.95); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pss-stand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pss-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-prince-explains-relationship { background: linear-gradient(180deg, #2B1F15 0%, #1A100A 100%), radial-gradient(ellipse at 50% 30%, #4A3420 0%, transparent 80%); }
.scn-prince-explains-relationship .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3A281B 0%, #231810 100%); }
.scn-prince-explains-relationship .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2E1F14 0%, #160D07 100%); }
.scn-prince-explains-relationship .desk { position:absolute; bottom:38%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #4C3524 0%, #2C1C10 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-prince-explains-relationship .chair { position:absolute; bottom:30%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, #3F2B1D 0%, #1E110B 100%); border-radius: 50% 50% 30% 30%; transform: rotate(2deg); animation: per-sway 7s ease-in-out infinite alternate; }
.scn-prince-explains-relationship .lamp { position:absolute; bottom:50%; left:10%; width:10px; height:20px; background: linear-gradient(180deg, #C8A165 0%, #8B6D3F 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 15px 5px #D4B07A, 0 0 30px 10px rgba(212,176,122,0.3); animation: per-glow 4s ease-in-out infinite alternate; }
.scn-prince-explains-relationship .figure-prince { position:absolute; bottom:28%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #382B20 0%, #1A110C 100%); border-radius: 50% 50% 40% 40% / 70% 70% 35% 35%; transform-origin: bottom center; animation: per-speak 5s ease-in-out infinite; }
.scn-prince-explains-relationship .figure-listener { position:absolute; bottom:28%; right:25%; width:16px; height:42px; background: linear-gradient(180deg, #35271C 0%, #170E09 100%); border-radius: 50% 50% 40% 40% / 70% 70% 35% 35%; transform-origin: bottom center; animation: per-listen 7s ease-in-out infinite; }
.scn-prince-explains-relationship .papers { position:absolute; bottom:38%; left:35%; width:25px; height:15px; background: linear-gradient(135deg, #D4C4A8 0%, #A8916A 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: per-flutter 9s ease-in-out infinite alternate; }
@keyframes per-sway { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes per-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes per-speak { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes per-listen { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(1deg); } 66% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes per-flutter { 0% { transform: rotate(-5deg) translateY(0); opacity:0.8; } 50% { transform: rotate(3deg) translateY(-3px); opacity:1; } 100% { transform: rotate(-5deg) translateY(0); opacity:0.8; } }

.scn-prince-muishkin-relation { background: linear-gradient(180deg, #2D2217 0%, #1C110B 100%), radial-gradient(ellipse at 40% 70%, #4E3825 0%, transparent 60%); }
.scn-prince-muishkin-relation .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3C2A1D 0%, #241710 100%); }
.scn-prince-muishkin-relation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2E1F14 0%, #170D08 100%); }
.scn-prince-muishkin-relation .door { position:absolute; bottom:30%; right:10%; width:20%; height:70%; background: linear-gradient(180deg, #3E281C 0%, #1F110B 100%); border-radius: 4% 4% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,0.4); }
.scn-prince-muishkin-relation .picture-frame { position:absolute; bottom:50%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #4F3A28 0%, #2C1C10 100%); border: 3px solid #5E432E; border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-prince-muishkin-relation .fireplace { position:absolute; bottom:28%; left:50%; width:30%; height:40%; transform: translateX(-50%); background: linear-gradient(90deg, #2F1F14 0%, #4F3422 30%, #4F3422 70%, #2F1F14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6); animation: pmr-fire 6s ease-in-out infinite alternate; }
.scn-prince-muishkin-relation .figure-prince { position:absolute; bottom:25%; left:20%; width:18px; height:48px; background: linear-gradient(180deg, #382B20 0%, #1A110C 100%); border-radius: 50% 50% 40% 40% / 75% 75% 35% 35%; transform-origin: bottom center; animation: pmr-enter 9s ease-in-out infinite; }
.scn-prince-muishkin-relation .figure-secretary { position:absolute; bottom:25%; right:25%; width:16px; height:44px; background: linear-gradient(180deg, #35271C 0%, #170E09 100%); border-radius: 50% 50% 40% 40% / 70% 70% 35% 35%; transform-origin: bottom center; animation: pmr-wait 7s ease-in-out infinite; }
.scn-prince-muishkin-relation .light-glow { position:absolute; bottom:30%; left:45%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 80%, rgba(212,176,122,0.2) 0%, transparent 80%); animation: pmr-pulse 5s ease-in-out infinite alternate; }
@keyframes pmr-fire { 0% { background: linear-gradient(90deg, #2F1F14 0%, #4F3422 30%, #4F3422 70%, #2F1F14 100%); } 50% { background: linear-gradient(90deg, #3A251B 0%, #6A4630 30%, #6A4630 70%, #3A251B 100%); } 100% { background: linear-gradient(90deg, #2F1F14 0%, #4F3422 30%, #4F3422 70%, #2F1F14 100%); } }
@keyframes pmr-enter { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmr-wait { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmr-pulse { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-servant-confusion { background: linear-gradient(180deg, #261A13 0%, #170D08 100%), radial-gradient(ellipse at 60% 40%, #3F2A1D 0%, transparent 70%); }
.scn-servant-confusion .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #35251A 0%, #1E110B 100%); }
.scn-servant-confusion .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2A1C12 0%, #130B06 100%); }
.scn-servant-confusion .candle { position:absolute; bottom:50%; left:30%; width:8px; height:25px; background: linear-gradient(180deg, #E8D0A0 0%, #B8965E 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 12px 3px #F0D4A0, 0 0 24px 6px rgba(240,212,160,0.3); animation: sc-flame 3s ease-in-out infinite alternate; }
.scn-servant-confusion .light-glow { position:absolute; bottom:30%; left:20%; width:70%; height:70%; background: radial-gradient(ellipse at 30% 60%, rgba(240,212,160,0.12) 0%, transparent 70%); animation: sc-pulse 6s ease-in-out infinite alternate; }
.scn-servant-confusion .figure-servant { position:absolute; bottom:25%; left:25%; width:17px; height:44px; background: linear-gradient(180deg, #32241A 0%, #150D09 100%); border-radius: 50% 50% 40% 40% / 75% 75% 35% 35%; transform-origin: bottom center; animation: sc-turn 5s ease-in-out infinite; }
.scn-servant-confusion .servant-hand { position:absolute; bottom:38%; left:30%; width:12px; height:8px; background: linear-gradient(180deg, #38261C 0%, #1A100B 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-30deg); animation: sc-wring 4s ease-in-out infinite; }
.scn-servant-confusion .tray { position:absolute; bottom:20%; left:40%; width:50px; height:8px; background: linear-gradient(90deg, #5E4530 0%, #3D281C 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: sc-tilt 8s ease-in-out infinite alternate; }
.scn-servant-confusion .shadow-prince { position:absolute; bottom:25%; right:20%; width:20px; height:50px; background: rgba(0,0,0,0.25); border-radius: 50% 50% 40% 40% / 70% 70% 35% 35%; filter: blur(3px); transform: rotate(5deg); animation: sc-shadow 6s ease-in-out infinite alternate; }
@keyframes sc-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.15) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.7; } }
@keyframes sc-pulse { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sc-turn { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(3px) rotate(3deg); } 40% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(4px) rotate(1deg); } 80% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc-wring { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-40deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes sc-tilt { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sc-shadow { 0% { transform: rotate(5deg) scaleX(1); opacity:0.25; } 50% { transform: rotate(7deg) scaleX(1.1); opacity:0.35; } 100% { transform: rotate(5deg) scaleX(1); opacity:0.25; } }

/* Scene: train-relative-admission (calm dawn) */
.scn-train-relative-admission {
  background: linear-gradient(180deg, #7a8b9f 0%, #b0b8c4 30%, #d4c8b0 60%, #e8dcc0 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 70%);
}
.scn-train-relative-admission .compartment-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #5a6a7a 0%, #7a8b9f 40%, #6a7a8a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2); animation: tr1-bg 15s ease-in-out infinite alternate;
}
.scn-train-relative-admission .window {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #f0d8b0 0%, #c0b0a0 50%, #a0a0b0 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: tr1-dawn 12s ease-in-out infinite;
}
.scn-train-relative-admission .seat-left {
  position: absolute; bottom: 5%; left: 5%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-train-relative-admission .seat-right {
  position: absolute; bottom: 5%; right: 5%; width: 30%; height: 35%;
  background: linear-gradient(225deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-train-relative-admission .figure-sitting {
  position: absolute; bottom: 15%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tr1-sit 8s ease-in-out infinite;
}
.scn-train-relative-admission .lamp {
  position: absolute; top: 5%; right: 15%; width: 8%; height: 10%;
  background: radial-gradient(circle, #f0d060 0%, #e0b040 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #e0b040, 0 0 60px 20px rgba(224,176,64,0.4);
  animation: tr1-lamp 4s ease-in-out infinite alternate;
}
.scn-train-relative-admission .curtain {
  position: absolute; top: 5%; left: 8%; width: 5%; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px; filter: blur(1px); animation: tr1-curtain 20s ease-in-out infinite;
}
@keyframes tr1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tr1-dawn { 0% { background: linear-gradient(180deg, #f0d8b0 0%, #c0b0a0 50%, #a0a0b0 100%); } 50% { background: linear-gradient(180deg, #ffe8c0 0%, #d0c0a0 50%, #b0b0c0 100%); } 100% { background: linear-gradient(180deg, #f0d8b0 0%, #c0b0a0 50%, #a0a0b0 100%); } }
@keyframes tr1-sit { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr1-lamp { 0% { box-shadow: 0 0 20px 5px #e0b040, 0 0 40px 10px rgba(224,176,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px #f0c860, 0 0 80px 25px rgba(240,200,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #e0b040, 0 0 50px 15px rgba(224,176,64,0.4); opacity: 0.9; } }
@keyframes tr1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* Scene: train-knowledgeable-clerk (warm dawn) */
.scn-train-knowledgeable-clerk {
  background: linear-gradient(180deg, #a07050 0%, #c09070 20%, #e0b890 50%, #f0d0a0 100%),
              radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, transparent 70%);
}
.scn-train-knowledgeable-clerk .compartment-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 40%, #8a6a4a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.3); animation: tr2-bg 12s ease-in-out infinite alternate;
}
.scn-train-knowledgeable-clerk .window {
  position: absolute; top: 6%; left: 12%; width: 38%; height: 48%;
  background: linear-gradient(180deg, #ffd8a0 0%, #e0b880 50%, #c0a070 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); animation: tr2-dawn 15s ease-in-out infinite;
}
.scn-train-knowledgeable-clerk .seat-left {
  position: absolute; bottom: 5%; left: 5%; width: 32%; height: 42%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-knowledgeable-clerk .seat-right {
  position: absolute; bottom: 5%; right: 5%; width: 32%; height: 38%;
  background: linear-gradient(225deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-knowledgeable-clerk .figure-reading {
  position: absolute; bottom: 12%; left: 22%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr2-read 6s ease-in-out infinite;
}
.scn-train-knowledgeable-clerk .lamp {
  position: absolute; top: 4%; right: 12%; width: 9%; height: 12%;
  background: radial-gradient(circle, #ffd060 0%, #f0b040 60%);
  border-radius: 50%; box-shadow: 0 0 40px 12px #f0b040, 0 0 80px 25px rgba(240,176,64,0.5);
  animation: tr2-lamp 3s ease-in-out infinite alternate;
}
.scn-train-knowledgeable-clerk .teacup {
  position: absolute; bottom: 10%; right: 20%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 60%, #e0c0a0 0%, #c0a080 50%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: tr2-tea 10s ease-in-out infinite;
}
@keyframes tr2-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tr2-dawn { 0% { background: linear-gradient(180deg, #ffd8a0 0%, #e0b880 50%, #c0a070 100%); } 50% { background: linear-gradient(180deg, #ffe0b0 0%, #f0c090 50%, #d0b080 100%); } 100% { background: linear-gradient(180deg, #ffd8a0 0%, #e0b880 50%, #c0a070 100%); } }
@keyframes tr2-read { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes tr2-lamp { 0% { box-shadow: 0 0 30px 8px #f0b040, 0 0 60px 15px rgba(240,176,64,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 50px 18px #ffd060, 0 0 100px 30px rgba(255,208,96,0.6); opacity: 1; } 100% { box-shadow: 0 0 35px 10px #f0b040, 0 0 70px 20px rgba(240,176,64,0.45); opacity: 0.95; } }
@keyframes tr2-tea { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: train-introduction-prince (curious dawn) */
.scn-train-introduction-prince {
  background: linear-gradient(180deg, #8a90a0 0%, #b0b8c8 20%, #d0c8b8 50%, #e8dcc8 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 70%);
}
.scn-train-introduction-prince .compartment-bg-curious {
  position: absolute; inset: 0; background: linear-gradient(90deg, #6a7a8a 0%, #8a9aaa 40%, #7a8a9a 100%);
  box-shadow: inset 0 0 45px rgba(0,0,0,0.25); animation: tr3-bg 18s ease-in-out infinite alternate;
}
.scn-train-introduction-prince .window {
  position: absolute; top: 7%; left: 8%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b8a0 50%, #a8a8b8 100%);
  border-radius: 6px; box-shadow: inset 0 0 25px rgba(0,0,0,0.2); animation: tr3-dawn 14s ease-in-out infinite;
}
.scn-train-introduction-prince .seat-left {
  position: absolute; bottom: 4%; left: 4%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-introduction-prince .seat-right {
  position: absolute; bottom: 4%; right: 4%; width: 30%; height: 40%;
  background: linear-gradient(225deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-introduction-prince .figure-leaning {
  position: absolute; bottom: 18%; left: 18%; width: 13%; height: 33%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr3-lean 7s ease-in-out infinite;
}
.scn-train-introduction-prince .figure-other {
  position: absolute; bottom: 14%; right: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr3-other 9s ease-in-out infinite;
}
.scn-train-introduction-prince .lamp {
  position: absolute; top: 3%; right: 10%; width: 10%; height: 10%;
  background: radial-gradient(circle, #f0d070 0%, #e0b050 60%);
  border-radius: 50%; box-shadow: 0 0 35px 10px #e0b050, 0 0 70px 20px rgba(224,176,80,0.4);
  animation: tr3-lamp 3.5s ease-in-out infinite alternate;
}
@keyframes tr3-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tr3-dawn { 0% { background: linear-gradient(180deg, #e8d8b8 0%, #c8b8a0 50%, #a8a8b8 100%); } 50% { background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a8 50%, #b0b0c0 100%); } 100% { background: linear-gradient(180deg, #e8d8b8 0%, #c8b8a0 50%, #a8a8b8 100%); } }
@keyframes tr3-lean { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tr3-other { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tr3-lamp { 0% { box-shadow: 0 0 25px 6px #e0b050, 0 0 50px 12px rgba(224,176,80,0.3); opacity: 0.85; } 50% { box-shadow: 0 0 45px 15px #f0d070, 0 0 90px 25px rgba(240,208,112,0.5); opacity: 1; } 100% { box-shadow: 0 0 30px 8px #e0b050, 0 0 60px 16px rgba(224,176,80,0.4); opacity: 0.9; } }

/* Scene: train-rogogin-inquiry (dark dawn) */
.scn-train-rogogin-inquiry {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 20%, #4a4a5a 50%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%);
}
.scn-train-rogogin-inquiry .compartment-bg-dark {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5); animation: tr4-bg 20s ease-in-out infinite alternate;
}
.scn-train-rogogin-inquiry .window {
  position: absolute; top: 6%; left: 10%; width: 36%; height: 46%;
  background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 50%, #4a4a5a 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); animation: tr4-dawn 18s ease-in-out infinite;
}
.scn-train-rogogin-inquiry .seat-left-dark {
  position: absolute; bottom: 5%; left: 5%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-rogogin-inquiry .seat-right-dark {
  position: absolute; bottom: 5%; right: 5%; width: 30%; height: 38%;
  background: linear-gradient(225deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 8px 8px 0 0;
}
.scn-train-rogogin-inquiry .figure-hunched {
  position: absolute; bottom: 10%; left: 20%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #000010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr4-hunch 10s ease-in-out infinite;
}
.scn-train-rogogin-inquiry .lamp {
  position: absolute; top: 4%; right: 14%; width: 8%; height: 10%;
  background: radial-gradient(circle, #907050 0%, #604030 60%);
  border-radius: 50%; box-shadow: 0 0 15px 5px #604030, 0 0 30px 10px rgba(96,64,48,0.3);
  animation: tr4-lamp 5s ease-in-out infinite alternate;
}
.scn-train-rogogin-inquiry .shadow-stripe {
  position: absolute; top: 15%; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  animation: tr4-stripe 12s ease-in-out infinite;
}
@keyframes tr4-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tr4-dawn { 0% { background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 50%, #4a4a5a 100%); } 50% { background: linear-gradient(180deg, #7a7a8a 0%, #6a6a7a 50%, #5a5a6a 100%); } 100% { background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 50%, #4a4a5a 100%); } }
@keyframes tr4-hunch { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(3px) rotate(3deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes tr4-lamp { 0% { box-shadow: 0 0 10px 2px #604030, 0 0 20px 5px rgba(96,64,48,0.2); opacity: 0.6; } 50% { box-shadow: 0 0 20px 6px #806040, 0 0 40px 12px rgba(128,96,64,0.4); opacity: 0.9; } 100% { box-shadow: 0 0 12px 3px #604030, 0 0 25px 6px rgba(96,64,48,0.3); opacity: 0.7; } }
@keyframes tr4-stripe { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-5px); opacity: 0.5; } 100% { transform: translateY(0); opacity: 0.3; } }

/* scene: walk-to-darias (tense dusk) */
.scn-walk-to-darias {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2a50 30%, #3a2a4a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 80% 20%, #4a4a6a 0%, transparent 50%);
}
.scn-walk-to-darias .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 40%, transparent 100%);
  animation: wtd-sky 12s ease-in-out infinite alternate;
}
.scn-walk-to-darias .path {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: wtd-path 8s ease-in-out infinite;
}
.scn-walk-to-darias .tree-a {
  position: absolute; bottom: 35%; left: 12%; width: 40px; height: 80px;
  background: linear-gradient(to top, #1a1a0a, #0a0a00);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtd-tree 6s ease-in-out infinite alternate;
}
.scn-walk-to-darias .tree-b {
  position: absolute; bottom: 35%; right: 18%; width: 35px; height: 70px;
  background: linear-gradient(to top, #1a1a0a, #0a0a00);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wtd-tree 7s ease-in-out infinite alternate-reverse;
}
.scn-walk-to-darias .hedge {
  position: absolute; bottom: 35%; left: 30%; right: 40%; height: 15px;
  background: radial-gradient(ellipse, #3a3a1a 0%, #1a1a0a 100%);
  animation: wtd-hedge 10s ease-in-out infinite;
}
.scn-walk-to-darias .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wtd-walk-a 4s ease-in-out infinite;
}
.scn-walk-to-darias .figure-right {
  position: absolute; bottom: 20%; left: 40%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wtd-walk-b 4s ease-in-out 1s infinite;
}
.scn-walk-to-darias .dust {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 4px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: wtd-dust 5s ease-in-out infinite;
}
@keyframes wtd-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes wtd-path {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes wtd-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes wtd-hedge {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes wtd-walk-a {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-3deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes wtd-walk-b {
  0% { transform: translateX(0) rotate(3deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(16px) rotate(3deg); }
  75% { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes wtd-dust {
  0% { opacity: 0; transform: translateY(0) scaleX(1); }
  50% { opacity: 0.6; transform: translateY(-3px) scaleX(1.5); }
  100% { opacity: 0; transform: translateY(-6px) scaleX(2); }
}

/* scene: arrival-at-darias (tense dusk, house exterior) */
.scn-arrival-at-darias {
  background: linear-gradient(180deg, #2a2a50 0%, #3a3a5e 25%, #4a3a4a 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 70%);
}
.scn-arrival-at-darias .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #4a4a6e 40%, transparent 100%);
  animation: aad-sky 15s ease-in-out infinite alternate;
}
.scn-arrival-at-darias .house-body {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-arrival-at-darias .house-roof {
  position: absolute; bottom: 67%; left: 18%; width: 64%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(5% 100%, 50% 0%, 95% 100%);
}
.scn-arrival-at-darias .door {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #1a0a00;
  animation: aad-door 6s ease-in-out infinite alternate;
}
.scn-arrival-at-darias .carriage {
  position: absolute; bottom: 10%; right: 10%; width: 30%; height: 20%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: aad-carriage 8s ease-in-out infinite;
}
.scn-arrival-at-darias .lady-a {
  position: absolute; bottom: 15%; right: 25%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aad-lady 5s ease-in-out infinite;
}
.scn-arrival-at-darias .lady-b {
  position: absolute; bottom: 14%; right: 30%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aad-lady 5s ease-in-out 2.5s infinite;
}
.scn-arrival-at-darias .lamp {
  position: absolute; bottom: 40%; left: 42%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.4);
  animation: aad-lamp 3s ease-in-out infinite alternate;
}
@keyframes aad-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes aad-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}
@keyframes aad-carriage {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes aad-lady {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes aad-lamp {
  0% { box-shadow: 0 0 12px 3px #c09040, 0 0 24px 6px rgba(192,144,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c09040, 0 0 36px 10px rgba(192,144,64,0.35); opacity: 0.9; }
}

/* scene: rogojin-lets-in (dark interior) */
.scn-rogojin-lets-in {
  background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2a 30%, #1a1a2a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 60% 50%, #2a2a3a 0%, transparent 60%);
}
.scn-rogojin-lets-in .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-bottom: 2px solid #3a3a4a;
}
.scn-rogojin-lets-in .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-rogojin-lets-in .door-frame {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #0a0a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-rogojin-lets-in .door-panel {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 44%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: rli-door 4s ease-in-out infinite alternate;
}
.scn-rogojin-lets-in .rogojin {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rli-figure 6s ease-in-out infinite;
}
.scn-rogojin-lets-in .prince {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rli-figure 6s ease-in-out 3s infinite;
}
.scn-rogojin-lets-in .lamp-glow {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c09040, 0 0 60px 20px rgba(192,144,64,0.3);
  animation: rli-lamp 2s ease-in-out infinite alternate;
}
.scn-rogojin-lets-in .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: rli-shadow 8s ease-in-out infinite;
}
@keyframes rli-door {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50% { transform: translateX(8px); opacity: 0.7; }
}
@keyframes rli-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rli-lamp {
  0% { box-shadow: 0 0 20px 5px #c09040, 0 0 40px 10px rgba(192,144,64,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 30px rgba(255,208,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #c09040, 0 0 50px 15px rgba(192,144,64,0.3); opacity: 0.8; }
}
@keyframes rli-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 1; }
}

/* scene: nastasia-waiting (dim interior, tense) */
.scn-nastasia-waiting {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #2a2a3a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-nastasia-waiting .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-bottom: 1px solid #3a3a4a;
}
.scn-nastasia-waiting .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-nastasia-waiting .chair-left {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20%;
  animation: nw-chair 8s ease-in-out infinite;
}
.scn-nastasia-waiting .chair-right {
  position: absolute; bottom: 22%; right: 25%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20%;
  animation: nw-chair 8s ease-in-out 4s infinite;
}
.scn-nastasia-waiting .nastasia {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-figure 6s ease-in-out infinite;
}
.scn-nastasia-waiting .aglaya {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nw-figure 6s ease-in-out 3s infinite;
}
.scn-nastasia-waiting .candelabra {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0b060 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.4);
  animation: nw-candle 3s ease-in-out infinite alternate;
}
@keyframes nw-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes nw-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes nw-candle {
  0% { box-shadow: 0 0 15px 4px #c09040, 0 0 30px 8px rgba(192,144,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #e0b060, 0 0 60px 20px rgba(224,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #c09040, 0 0 40px 12px rgba(192,144,64,0.35); opacity: 0.9; }
}

.scn-epanchin-ladies-introduction {
  background: linear-gradient(135deg, #f5e6c8 0%, #e8d5b0 40%, #d9c49a 70%, #cbb28a 100%),
              radial-gradient(ellipse at 40% 30%, #fff8e7 0%, transparent 60%);
}
.scn-epanchin-ladies-introduction .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 100%); }
.scn-epanchin-ladies-introduction .window { position:absolute; top:10%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #fffbee 0%, #e6dcc0 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(255,230,180,0.4); animation: eli-window 8s ease-in-out infinite alternate; }
.scn-epanchin-ladies-introduction .curtain-left { position:absolute; top:8%; left:2%; width:8%; height:55%; background: linear-gradient(180deg, #b8936a 0%, #a07c55 100%); border-radius: 0 30% 0 0 / 0 20% 0 0; transform: skewY(2deg); animation: eli-curtain 6s ease-in-out infinite alternate; }
.scn-epanchin-ladies-introduction .curtain-right { position:absolute; top:8%; right:2%; width:8%; height:55%; background: linear-gradient(180deg, #b8936a 0%, #a07c55 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; transform: skewY(-2deg); animation: eli-curtain 6s ease-in-out -3s infinite alternate; }
.scn-epanchin-ladies-introduction .figure-a { position:absolute; bottom:20%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #c8a67a 0%, #a68458 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eli-figure 4s ease-in-out infinite; }
.scn-epanchin-ladies-introduction .figure-b { position:absolute; bottom:20%; left:45%; width:30px; height:62px; background: linear-gradient(180deg, #d4b48a 0%, #b89870 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eli-figure 4s ease-in-out -1s infinite; }
.scn-epanchin-ladies-introduction .figure-c { position:absolute; bottom:20%; left:65%; width:26px; height:58px; background: linear-gradient(180deg, #be9e72 0%, #9e7e52 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eli-figure 4s ease-in-out -2s infinite; }
.scn-epanchin-ladies-introduction .table { position:absolute; bottom:10%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #7a6030 0%, #5a4020 100%); border-radius:8px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-epanchin-ladies-introduction .vase { position:absolute; bottom:22%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: eli-vase 5s ease-in-out infinite; }
@keyframes eli-window { 0% { opacity:0.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.03) } 100% { opacity:0.85; transform:scaleY(0.98) } }
@keyframes eli-curtain { 0% { transform: translateX(0) skewY(2deg) } 50% { transform: translateX(4px) skewY(3deg) } 100% { transform: translateX(-2px) skewY(1deg) } }
@keyframes eli-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes eli-vase { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }

.scn-epanchin-lunch-preparations {
  background: linear-gradient(180deg, #f8e8c0 0%, #ecd4a0 50%, #dcc090 100%),
              radial-gradient(ellipse at 60% 20%, #fff5d0 0%, transparent 70%);
}
.scn-epanchin-lunch-preparations .lunch-room { position:absolute; inset:0; background: linear-gradient(135deg, #f0dba8 0%, #e0c890 100%); }
.scn-epanchin-lunch-preparations .table-cloth { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #fff8e0 0%, #f0e0b0 100%); border-radius:12px 12px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.1); }
.scn-epanchin-lunch-preparations .plate-1 { position:absolute; bottom:18%; left:20%; width:40px; height:8px; background: radial-gradient(circle, #f5f0e0 0%, #d0c8b0 70%, #b0a890 100%); border-radius:50%; animation: elp-plate 6s ease-in-out infinite; }
.scn-epanchin-lunch-preparations .plate-2 { position:absolute; bottom:18%; left:55%; width:40px; height:8px; background: radial-gradient(circle, #f5f0e0 0%, #d0c8b0 70%, #b0a890 100%); border-radius:50%; animation: elp-plate 6s ease-in-out -3s infinite; }
.scn-epanchin-lunch-preparations .cup-1 { position:absolute; bottom:20%; left:24%; width:14px; height:20px; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a0 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: elp-cup 4s ease-in-out infinite; }
.scn-epanchin-lunch-preparations .cup-2 { position:absolute; bottom:20%; left:59%; width:14px; height:20px; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a0 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: elp-cup 4s ease-in-out -2s infinite; }
.scn-epanchin-lunch-preparations .steam-1 { position:absolute; bottom:38%; left:26%; width:8px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: elp-steam 5s ease-in-out infinite; }
.scn-epanchin-lunch-preparations .steam-2 { position:absolute; bottom:38%; left:61%; width:8px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: elp-steam 5s ease-in-out -2.5s infinite; }
.scn-epanchin-lunch-preparations .window-light { position:absolute; top:10%; right:10%; width:20%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,0.5) 0%, transparent 100%); border-radius:4px; box-shadow: 0 0 40px rgba(255,220,150,0.2); animation: elp-light 10s ease-in-out infinite alternate; }
@keyframes elp-plate { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes elp-cup { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes elp-steam { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }
@keyframes elp-light { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(0.95) } }

.scn-epanchin-position-rise {
  background: linear-gradient(180deg, #2e2e3e 0%, #4a4a5e 30%, #7a7a8e 60%, #c0b098 100%),
              radial-gradient(ellipse at 50% 0%, #ffdfb0 0%, transparent 40%);
}
.scn-epanchin-position-rise .stair-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, #3a3a4a 100%); }
.scn-epanchin-position-rise .step-1 { position:absolute; bottom:10%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%); border-radius:4px; transform: scale(0.8); animation: epr-step 10s ease-in-out infinite; }
.scn-epanchin-position-rise .step-2 { position:absolute; bottom:22%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:4px; transform: scale(0.9); animation: epr-step 10s ease-in-out -3s infinite; }
.scn-epanchin-position-rise .step-3 { position:absolute; bottom:34%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius:4px; transform: scale(1); animation: epr-step 10s ease-in-out -6s infinite; }
.scn-epanchin-position-rise .figure { position:absolute; bottom:5%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epr-figure 5s ease-in-out infinite; }
.scn-epanchin-position-rise .light-rays { position:absolute; top:0; left:50%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 60%); transform: translateX(-50%); animation: epr-rays 8s ease-in-out infinite alternate; }
.scn-epanchin-position-rise .sparkle-1 { position:absolute; top:30%; left:60%; width:6px; height:6px; background: #ffdba0; border-radius:50%; box-shadow: 0 0 12px 2px rgba(255,219,160,0.8); animation: epr-sparkle 3s ease-in-out infinite; }
.scn-epanchin-position-rise .sparkle-2 { position:absolute; top:50%; left:30%; width:4px; height:4px; background: #ffdba0; border-radius:50%; box-shadow: 0 0 8px 1px rgba(255,219,160,0.8); animation: epr-sparkle 3s ease-in-out -1.5s infinite; }
@keyframes epr-step { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-3px) } 100% { transform: scaleY(0.97) translateY(0) } }
@keyframes epr-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-8px) rotate(1deg) } 50% { transform: translateY(-16px) rotate(-1deg) } 75% { transform: translateY(-8px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes epr-rays { 0% { opacity:0.2; transform: translateX(-50%) scaleY(1) } 50% { opacity:0.5; transform: translateX(-50%) scaleY(1.1) } 100% { opacity:0.3; transform: translateX(-50%) scaleY(0.9) } }
@keyframes epr-sparkle { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0.5) } }

.scn-aglaya-beauty {
  background: linear-gradient(135deg, #f5e6c8 0%, #ead5b0 40%, #d9c49a 70%, #cbb28a 100%),
              radial-gradient(ellipse at 60% 40%, #fff0d0 0%, transparent 60%);
}
.scn-aglaya-beauty .portrait-room { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 100%); }
.scn-aglaya-beauty .mirror-frame { position:absolute; top:20%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:8px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-aglaya-beauty .mirror-glass { position:absolute; top:22%; left:32%; width:36%; height:46%; background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc0 50%, #d0c8a0 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(255,200,150,0.3); animation: ab-glass 12s ease-in-out infinite alternate; }
.scn-aglaya-beauty .figure-profile { position:absolute; bottom:22%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius:60% 40% 50% 50% / 70% 50% 40% 40%; transform: translateX(-50%) rotate(-5deg); animation: ab-figure 6s ease-in-out infinite; }
.scn-aglaya-beauty .flower { position:absolute; bottom:30%; left:35%; width:12px; height:16px; background: radial-gradient(circle, #f0c0a0 0%, #d09070 70%); border-radius:50% 50% 40% 40%; transform: rotate(-15deg); animation: ab-flower 7s ease-in-out infinite; }
.scn-aglaya-beauty .glow-light { position:absolute; top:15%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(255,210,150,0.6) 0%, transparent 70%); animation: ab-glow 8s ease-in-out infinite alternate; }
.scn-aglaya-beauty .shadow-drape { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: ab-drape 10s ease-in-out infinite alternate; }
@keyframes ab-glass { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.02) } 100% { opacity:0.75; transform: scale(0.98) } }
@keyframes ab-figure { 0% { transform: translateX(-50%) rotate(-5deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-3deg) translateY(-4px) } 100% { transform: translateX(-50%) rotate(-6deg) translateY(0) } }
@keyframes ab-flower { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(-18deg) scale(0.95) } }
@keyframes ab-glow { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes ab-drape { 0% { opacity:0.1; transform: translateX(0) } 50% { opacity:0.3; transform: translateX(-5px) } 100% { opacity:0.15; transform: translateX(3px) } }

.scn-general-offers-position {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 40%, #c8a87a 100%),
    radial-gradient(ellipse at 50% 80%, #d4b88a 0%, transparent 70%);
}
.scn-general-offers-position .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #f0deb8 0%, #e0cca8 100%);
  animation: ofp-wall 20s ease-in-out infinite alternate;
}
.scn-general-offers-position .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #a08060 0%, #b89878 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
}
.scn-general-offers-position .desk {
  position:absolute; bottom:20%; left:25%; width:50%; height:18%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(10deg);
  animation: ofp-desk 8s ease-in-out infinite;
}
.scn-general-offers-position .inkwell {
  position:absolute; bottom:30%; left:38%; width:8%; height:10%;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ofp-ink 6s ease-in-out infinite alternate;
}
.scn-general-offers-position .paper {
  position:absolute; bottom:28%; left:44%; width:20%; height:8%;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
  animation: ofp-paper 10s ease-in-out infinite alternate;
}
.scn-general-offers-position .quill {
  position:absolute; bottom:32%; left:52%; width:6%; height:14%;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ofp-quill 3s ease-in-out infinite;
}
.scn-general-offers-position .gania-figure {
  position:absolute; bottom:18%; left:32%; width:12%; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: ofp-gania 5s ease-in-out infinite;
}
.scn-general-offers-position .window-light {
  position:absolute; top:10%; left:20%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: ofp-light 8s ease-in-out infinite alternate;
}
@keyframes ofp-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes ofp-desk { 0%,100% { transform: perspective(600px) rotateX(10deg) translateY(0) } 50% { transform: perspective(600px) rotateX(10deg) translateY(-2px) } }
@keyframes ofp-ink { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes ofp-paper { 0% { transform: perspective(400px) rotateX(5deg) translateX(0) } 100% { transform: perspective(400px) rotateX(5deg) translateX(3px) } }
@keyframes ofp-quill { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ofp-gania { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes ofp-light { 0% { opacity:0.3; scale:0.95 } 50% { opacity:0.6; scale:1.05 } 100% { opacity:0.4; scale:0.98 } }

.scn-general-final-advice {
  background:
    linear-gradient(180deg, #eddcc8 0%, #dcc5a0 40%, #b89870 100%),
    radial-gradient(ellipse at 30% 60%, #d4b88a 0%, transparent 70%);
}
.scn-general-final-advice .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #d5c0a0 100%);
  animation: fad-wall 18s ease-in-out infinite alternate;
}
.scn-general-final-advice .room-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #9a8060 0%, #b09070 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.15);
}
.scn-general-final-advice .sofa {
  position:absolute; bottom:20%; left:30%; width:40%; height:25%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: fad-sofa 12s ease-in-out infinite;
}
.scn-general-final-advice .lamp {
  position:absolute; bottom:22%; left:55%; width:6%; height:18%;
  background: linear-gradient(180deg, #b09060 0%, #8a7040 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-general-final-advice .lamp-glow {
  position:absolute; bottom:28%; left:53%; width:10%; height:12%;
  background: radial-gradient(circle, #f5d090 0%, #e8b060 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fad-glow 3s ease-in-out infinite alternate;
}
.scn-general-final-advice .figure-sitting {
  position:absolute; bottom:22%; left:44%; width:10%; height:22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: fad-figure 6s ease-in-out infinite;
}
.scn-general-final-advice .bookshelf {
  position:absolute; bottom:20%; left:10%; width:15%; height:45%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-general-final-advice .curtain {
  position:absolute; top:5%; right:5%; width:20%; height:60%;
  background: linear-gradient(90deg, rgba(180,140,100,0.6) 0%, rgba(160,120,80,0.4) 100%);
  border-radius: 10% 10% 0 0;
  filter: blur(2px);
  animation: fad-curtain 20s ease-in-out infinite alternate;
}
@keyframes fad-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes fad-sofa { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fad-glow { 0% { opacity:0.7; scale:0.9 } 50% { opacity:1; scale:1.1 } 100% { opacity:0.8; scale:0.95 } }
@keyframes fad-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } }
@keyframes fad-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }

.scn-gania-smokes-with-prince {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2a2a40 50%, #1e1e30 100%),
    radial-gradient(ellipse at 70% 30%, #2a2a44 0%, transparent 70%);
}
.scn-gania-smokes-with-prince .dark-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #12121e 0%, #1a1a2a 100%);
  animation: gsp-wall 30s ease-in-out infinite alternate;
}
.scn-gania-smokes-with-prince .desk-shadow {
  position:absolute; bottom:20%; left:30%; width:50%; height:12%;
  background: linear-gradient(180deg, #0a0a12 0%, #14141a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.6);
}
.scn-gania-smokes-with-prince .chair-gania {
  position:absolute; bottom:20%; left:35%; width:12%; height:30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: gsp-chair 5s ease-in-out infinite;
}
.scn-gania-smokes-with-prince .cigarette-glow {
  position:absolute; bottom:32%; left:40%; width:4%; height:4%;
  background: radial-gradient(circle, #ff8040 0%, #d04020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,100,40,0.6);
  animation: gsp-glow 1.5s ease-in-out infinite alternate;
}
.scn-gania-smokes-with-prince .smoke-drift {
  position:absolute; bottom:36%; left:38%; width:8%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: gsp-smoke 6s linear infinite;
}
.scn-gania-smokes-with-prince .prince-silhouette {
  position:absolute; bottom:22%; right:28%; width:10%; height:28%;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: gsp-prince 8s ease-in-out infinite;
}
.scn-gania-smokes-with-prince .moonlight {
  position:absolute; top:5%; right:10%; width:20%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,230,0.2) 0%, transparent 70%);
  filter: blur(15px);
  animation: gsp-moon 15s ease-in-out infinite alternate;
}
@keyframes gsp-wall { 0%,100% { opacity:0.7 } 50% { opacity:0.85 } }
@keyframes gsp-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes gsp-glow { 0% { opacity:0.6; scale:0.8 } 50% { opacity:1; scale:1.2 } 100% { opacity:0.7; scale:0.9 } }
@keyframes gsp-smoke { 0% { transform: translateY(0) scaleX(1); opacity:0.4 } 50% { transform: translateY(-20px) scaleX(1.5); opacity:0.1 } 100% { transform: translateY(-40px) scaleX(2); opacity:0 } }
@keyframes gsp-prince { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes gsp-moon { 0% { opacity:0.1; scale:0.9 } 50% { opacity:0.3; scale:1.1 } 100% { opacity:0.15; scale:0.95 } }

.scn-gania-provocative-questions {
  background:
    linear-gradient(135deg, #141420 0%, #242430 50%, #1a1a24 100%),
    radial-gradient(ellipse at 50% 50%, #1e1e2e 0%, transparent 70%);
}
.scn-gania-provocative-questions .backdrop {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #101018 0%, #18182a 100%);
  animation: gpq-back 40s ease-in-out infinite alternate;
}
.scn-gania-provocative-questions .gania-silhouette {
  position:absolute; bottom:20%; left:25%; width:16%; height:40%;
  background: linear-gradient(180deg, #0a0a12 0%, #020208 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(0,0,0,0.7);
  animation: gpq-gania 3s ease-in-out infinite;
}
.scn-gania-provocative-questions .prince-silhouette {
  position:absolute; bottom:22%; right:25%; width:14%; height:36%;
  background: linear-gradient(180deg, #0e0e1a 0%, #04040c 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: gpq-prince 4s ease-in-out infinite;
}
.scn-gania-provocative-questions .table-edge {
  position:absolute; bottom:30%; left:40%; width:20%; height:4%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-gania-provocative-questions .eye-glow-left {
  position:absolute; bottom:42%; left:31%; width:2%; height:2%;
  background: radial-gradient(circle, #70a0d0 0%, #406080 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gpq-eye-l 2s ease-in-out infinite alternate;
}
.scn-gania-provocative-questions .eye-glow-right {
  position:absolute; bottom:44%; right:32%; width:2%; height:2%;
  background: radial-gradient(circle, #70a0d0 0%, #406080 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gpq-eye-r 2.5s ease-in-out infinite alternate;
}
.scn-gania-provocative-questions .tension-pulse {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 50%, rgba(100,80,60,0.05) 0%, transparent 70%);
  animation: gpq-pulse 4s ease-in-out infinite;
}
@keyframes gpq-back { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes gpq-gania { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes gpq-prince { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } }
@keyframes gpq-eye-l { 0% { opacity:0.2; scale:0.8 } 100% { opacity:0.8; scale:1.2 } }
@keyframes gpq-eye-r { 0% { opacity:0.8; scale:1.2 } 100% { opacity:0.2; scale:0.8 } }
@keyframes gpq-pulse { 0%,100% { opacity:0.3; scale:0.95 } 50% { opacity:0.6; scale:1.05 } }

/* Scene: can't move */
.scn-cant-move {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%, #2a2a3e 100%), radial-gradient(ellipse at 30% 80%, #1a2a3e 0%, transparent 70%);
}
.scn-cant-move .floor {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e16 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-cant-move .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #12121e 0%, #1a1a2a 100%);
}
.scn-cant-move .window {
  position: absolute; top: 15%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(80,120,200,0.3);
  animation: cm-window 12s ease-in-out infinite alternate;
}
.scn-cant-move .figure {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cm-figure 6s ease-in-out infinite;
}
.scn-cant-move .shadow {
  position: absolute; bottom: 28%; left: 30%; width: 80px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: cm-shadow 6s ease-in-out infinite;
}
.scn-cant-move .moonlight {
  position: absolute; top: 10%; left: 55%; width: 20px; height: 120px;
  background: linear-gradient(180deg, rgba(180,200,255,0.15) 0%, transparent 100%);
  transform: rotate(-10deg);
  filter: blur(4px);
  animation: cm-moonlight 8s ease-in-out infinite alternate;
}
.scn-cant-move .dust {
  position: absolute; top: 20%; left: 20%; width: 2px; height: 2px;
  background: rgba(200,220,255,0.4);
  border-radius: 50%;
  box-shadow: 20px 30px 0 0 rgba(200,220,255,0.3), 40px 10px 0 0 rgba(200,220,255,0.2), 60px 50px 0 0 rgba(200,220,255,0.1);
  animation: cm-dust 20s linear infinite;
}
@keyframes cm-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(80,120,200,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(80,120,200,0.5); }
  100% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(80,120,200,0.3); }
}
@keyframes cm-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cm-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(0.9) translateX(-5px); opacity: 0.7; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
}
@keyframes cm-moonlight {
  0% { opacity: 0.1; transform: rotate(-10deg) scaleY(0.8); }
  50% { opacity: 0.4; transform: rotate(-8deg) scaleY(1); }
  100% { opacity: 0.2; transform: rotate(-12deg) scaleY(0.9); }
}
@keyframes cm-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  50% { transform: translateY(-30px) scale(1.5); opacity: 0.6; }
  100% { transform: translateY(-60px) scale(1); opacity: 0.1; }
}

/* Scene: bed-making */
.scn-bed-making {
  background: linear-gradient(180deg, #0f0f1e 0%, #1a1a30 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 80%);
}
.scn-bed-making .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12122a 0%, #0a0a18 100%);
}
.scn-bed-making .bed1 {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #181828 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.7), 0 5px 20px rgba(0,0,0,.5);
  animation: bm-bed1 10s ease-in-out infinite alternate;
}
.scn-bed-making .bed2 {
  position: absolute; bottom: 20%; right: 10%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #181828 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.7), 0 5px 20px rgba(0,0,0,.5);
  animation: bm-bed2 12s ease-in-out infinite alternate;
}
.scn-bed-making .figure {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 20% 30% 40% / 50% 30% 40% 40%;
  transform-origin: bottom center;
  animation: bm-figure 4s ease-in-out infinite;
}
.scn-bed-making .lamp {
  position: absolute; bottom: 55%; left: 50%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ffd480 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,150,80,0.4);
  animation: bm-lamp 3s ease-in-out infinite alternate;
}
.scn-bed-making .shadow {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: bm-shadow 8s ease-in-out infinite;
}
.scn-bed-making .pillow1 {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bm-pillow 6s ease-in-out infinite alternate;
}
.scn-bed-making .pillow2 {
  position: absolute; bottom: 28%; right: 15%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: bm-pillow 6s ease-in-out infinite alternate-reverse;
}
@keyframes bm-bed1 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(-1px) scale(1); }
}
@keyframes bm-bed2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(1px) scale(1); }
}
@keyframes bm-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(5px) translateY(-5px) rotate(8deg); }
  60% { transform: translateX(10px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bm-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(200,150,80,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,150,80,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,150,80,0.4); }
}
@keyframes bm-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(0.85); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}
@keyframes bm-pillow {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.9); }
  100% { transform: translateY(1px) scaleY(1); }
}

/* Scene: lying down */
.scn-lying-down {
  background: linear-gradient(180deg, #0a0a14 0%, #151528 50%, #1e1e30 100%), radial-gradient(ellipse at 40% 60%, #1a1a2a 0%, transparent 70%);
}
.scn-lying-down .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0f0f20 0%, #05050e 100%);
}
.scn-lying-down .bed {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 10px 10px 6px 6px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8), 0 10px 40px rgba(0,0,0,.6);
  animation: ld-bed 14s ease-in-out infinite alternate;
}
.scn-lying-down .figure {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ld-figure 5s ease-in-out infinite;
}
.scn-lying-down .blanket {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  animation: ld-blanket 8s ease-in-out infinite alternate;
}
.scn-lying-down .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #1e1a2e 0%, #0e0a1e 100%);
  border-radius: 0 0 0 40px;
  transform-origin: right center;
  animation: ld-curtain 10s ease-in-out infinite;
}
.scn-lying-down .candle {
  position: absolute; bottom: 45%; left: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd4a0 0%, #c08050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px rgba(200,150,80,0.5);
  animation: ld-candle 4s ease-in-out infinite alternate;
}
.scn-lying-down .glow {
  position: absolute; bottom: 40%; left: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: ld-glow 4s ease-in-out infinite alternate;
}
@keyframes ld-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(-1px); }
}
@keyframes ld-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ld-blanket {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(2px) scaleY(0.95); opacity: 0.9; }
  100% { transform: translateY(1px) scaleY(1); opacity: 0.85; }
}
@keyframes ld-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1); }
}
@keyframes ld-candle {
  0% { opacity: 0.6; transform: translateY(0) scaleY(1); }
  50% { opacity: 0.9; transform: translateY(-1px) scaleY(1.1); }
  100% { opacity: 0.7; transform: translateY(1px) scaleY(0.95); }
}
@keyframes ld-glow {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.4; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

/* Scene: flowers idea */
.scn-flowers-idea {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a30 100%), radial-gradient(ellipse at 30% 20%, #1a2a3e 0%, transparent 70%);
}
.scn-flowers-idea .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0e20 0%, #060612 100%);
}
.scn-flowers-idea .window {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 50%;
  background: linear-gradient(135deg, #1e2e4a 0%, #0e1e3a 100%);
  border: 3px solid #2a2a3a;
  border-radius: 10px 10px 20px 20px;
  box-shadow: inset 0 0 40px rgba(60,100,180,0.3);
  animation: fi-window 15s ease-in-out infinite alternate;
}
.scn-flowers-idea .shelf {
  position: absolute; top: 40%; left: 20%; width: 60%; height: 6px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1818 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-flowers-idea .pot1 {
  position: absolute; top: 28%; left: 28%; width: 12%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: fi-pot 8s ease-in-out infinite alternate;
}
.scn-flowers-idea .pot2 {
  position: absolute; top: 28%; right: 28%; width: 12%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: fi-pot 8s ease-in-out infinite alternate-reverse;
}
.scn-flowers-idea .flower1 {
  position: absolute; top: 20%; left: 32%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fi-flower1 6s ease-in-out infinite;
}
.scn-flowers-idea .flower2 {
  position: absolute; top: 18%; right: 34%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fi-flower2 7s ease-in-out infinite;
}
.scn-flowers-idea .moonbeam {
  position: absolute; top: 5%; left: 30%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(180,200,255,0.1) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(8px);
  animation: fi-moonbeam 20s linear infinite;
}
@keyframes fi-window {
  0% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(60,100,180,0.2); }
  50% { opacity: 0.8; box-shadow: inset 0 0 60px rgba(60,100,180,0.5); }
  100% { opacity: 0.6; box-shadow: inset 0 0 30px rgba(60,100,180,0.3); }
}
@keyframes fi-pot {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes fi-flower1 {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  25% { transform: translateY(-2px) rotate(5deg) scaleY(1.05); }
  50% { transform: translateY(1px) rotate(-3deg) scaleY(0.95); }
  75% { transform: translateY(-1px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes fi-flower2 {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  30% { transform: translateY(-3px) rotate(-4deg) scaleY(1.08); }
  60% { transform: translateY(2px) rotate(6deg) scaleY(0.9); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes fi-moonbeam {
  0% { opacity: 0; transform: rotate(-5deg) scaleY(0.8); }
  50% { opacity: 0.3; transform: rotate(-3deg) scaleY(1); }
  100% { opacity: 0.1; transform: rotate(-7deg) scaleY(0.9); }
}

/* evgenie-accuses-of-deception */
.scn-evgenie-accuses-of-deception {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e32 100%),
              radial-gradient(ellipse at 30% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-evgenie-accuses-of-deception .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%);
  animation: ead-bg 12s ease-in-out infinite alternate;
}
.scn-evgenie-accuses-of-deception .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a32 100%);
  border-radius: 0 0 8% 8%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-evgenie-accuses-of-deception .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-evgenie-accuses-of-deception .window {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 40%, #5a5a8e 0%, #2a2a5e 70%, #1a1a3e 100%);
  border: 4px solid #3a3a4e; border-radius: 4px/8px;
  box-shadow: inset 0 0 40px rgba(200,200,255,0.1), 0 0 20px rgba(200,200,255,0.05);
  animation: ead-window 8s ease-in-out infinite alternate;
}
.scn-evgenie-accuses-of-deception .table {
  position: absolute; bottom: 8%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ead-table 5s ease-in-out infinite;
}
.scn-evgenie-accuses-of-deception .figure-accuser {
  position: absolute; bottom: 28%; left: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: ead-accuser 4s ease-in-out infinite alternate;
}
.scn-evgenie-accuses-of-deception .figure-accused {
  position: absolute; bottom: 26%; left: 55%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: ead-accused 3s ease-in-out infinite;
}
.scn-evgenie-accuses-of-deception .lantern {
  position: absolute; bottom: 38%; left: 25%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 60%, #d08040 0%, #804020 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 8px #b06030, 0 0 60px 15px rgba(176,96,48,0.4);
  animation: ead-lantern 4s ease-in-out infinite alternate;
}
.scn-evgenie-accuses-of-deception .shadow {
  position: absolute; bottom: 0; left: 30%; width: 150px; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: ead-shadow 8s ease-in-out infinite alternate;
}
@keyframes ead-bg { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes ead-window { 0% { opacity: 0.5; box-shadow: inset 0 0 40px rgba(200,200,255,0.1); } 100% { opacity: 0.8; box-shadow: inset 0 0 60px rgba(200,200,255,0.2); } }
@keyframes ead-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ead-accuser { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ead-accused { 0%,100% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-3px) translateY(-1px) scale(0.98); } }
@keyframes ead-lantern { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px #b06030; } 100% { opacity: 1; box-shadow: 0 0 40px 12px #d08040; } }
@keyframes ead-shadow { 0% { opacity: 0.6; transform: scaleX(0.9); } 100% { opacity: 0.8; transform: scaleX(1.1); } }

/* prince-concedes */
.scn-prince-concedes {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4e 40%, #141428 100%),
              radial-gradient(ellipse at 70% 30%, #3a3a6e 0%, transparent 60%);
}
.scn-prince-concedes .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0d1a 0%, #1a1a30 100%);
  animation: pc-bg 15s ease-in-out infinite alternate;
}
.scn-prince-concedes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-prince-concedes .doorframe {
  position: absolute; top: 0; left: 50%; width: 100px; height: 100%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 0 0 4px 4px; transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: pc-door 10s ease-in-out infinite alternate;
}
.scn-prince-concedes .figure-prince {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-prince 5s ease-in-out infinite alternate;
}
.scn-prince-concedes .figure-evgenie {
  position: absolute; bottom: 22%; right: 35%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-evgenie 4s ease-in-out infinite;
}
.scn-prince-concedes .lamp {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 60%, #d08040 0%, #804020 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px #b06030, 0 0 80px 20px rgba(176,96,48,0.3);
  animation: pc-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-concedes .shadow {
  position: absolute; bottom: 0; left: 35%; width: 200px; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(15px);
  animation: pc-shadow 10s ease-in-out infinite alternate;
}
@keyframes pc-bg { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.75 } }
@keyframes pc-door { 0% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); } 100% { opacity: 0.95; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } }
@keyframes pc-prince { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1); } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg) scale(0.98); } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1); } }
@keyframes pc-evgenie { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pc-lamp { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px #b06030; } 100% { opacity: 1; box-shadow: 0 0 50px 15px #d08040; } }
@keyframes pc-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 0.8; transform: scaleX(1.2); } }

/* evgenie-presses */
.scn-evgenie-presses {
  background: linear-gradient(180deg, #1a1a30 0%, #2a2a48 50%, #0e0e1e 100%),
              radial-gradient(ellipse at 60% 60%, #3a3a5e 0%, transparent 80%);
}
.scn-evgenie-presses .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  animation: ep-bg 10s ease-in-out infinite alternate;
}
.scn-evgenie-presses .table-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0; 
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ep-table 6s ease-in-out infinite alternate;
}
.scn-evgenie-presses .figure-evgenie {
  position: absolute; bottom: 25%; left: 30%; width: 32px; height: 75px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px rgba(0,0,0,0.3);
  animation: ep-evgenie 3s ease-in-out infinite alternate;
}
.scn-evgenie-presses .figure-prince {
  position: absolute; bottom: 22%; right: 30%; width: 28px; 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: ep-prince 5s ease-in-out infinite;
}
.scn-evgenie-presses .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 70%, #e09050 0%, #b07030 50%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 60px 20px #c08040, 0 0 120px 40px rgba(192,128,64,0.3);
  animation: ep-candle 2s ease-in-out infinite alternate;
}
.scn-evgenie-presses .shadow {
  position: absolute; bottom: 0; left: 20%; width: 180px; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(12px);
  animation: ep-shadow 7s ease-in-out infinite alternate;
}
@keyframes ep-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes ep-table { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes ep-evgenie { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateX(5px) translateY(-1px) rotate(3deg) scale(1.02); } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1); } }
@keyframes ep-prince { 0%,100% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } }
@keyframes ep-candle { 0% { opacity: 0.6; box-shadow: 0 0 40px 10px #c08040; } 100% { opacity: 1; box-shadow: 0 0 80px 25px #e09050; } }
@keyframes ep-shadow { 0% { opacity: 0.6; transform: scaleX(0.8); } 100% { opacity: 0.9; transform: scaleX(1.2); } }

/* prince-explains */
.scn-prince-explains {
  background: linear-gradient(180deg, #202038 0%, #3a3a5a 40%, #1a1a30 100%),
              radial-gradient(ellipse at 40% 20%, #4a4a72 0%, transparent 70%);
}
.scn-prince-explains .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #12121e 0%, #1e1e36 100%);
  animation: pe-bg 14s ease-in-out infinite alternate;
}
.scn-prince-explains .arch {
  position: absolute; top: 0; left: 50%; width: 120px; height: 100%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 50%, #1a1a3a 100%);
  border-radius: 50% 50% 0 0; transform: translateX(-50%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: pe-arch 12s ease-in-out infinite alternate;
}
.scn-prince-explains .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-prince-explains .figure-prince {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-prince 4s ease-in-out infinite alternate;
}
.scn-prince-explains .figure-aglaya {
  position: absolute; bottom: 18%; right: 38%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-aglaya 5s ease-in-out infinite;
}
.scn-prince-explains .window-light {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 40%, #7a7aae 0%, #3a3a6e 70%, transparent 100%);
  border-radius: 4px; border: 3px solid #4a4a5e;
  box-shadow: 0 0 40px rgba(200,200,255,0.1);
  animation: pe-window 8s ease-in-out infinite alternate;
}
.scn-prince-explains .shadow {
  position: absolute; bottom: 0; left: 30%; width: 200px; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(18px);
  animation: pe-shadow 9s ease-in-out infinite alternate;
}
@keyframes pe-bg { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes pe-arch { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); } 100% { opacity: 0.95; box-shadow: inset 0 0 40px rgba(0,0,0,0.7); } }
@keyframes pe-prince { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1); } 50% { transform: translateX(3px) translateY(-1px) rotate(2deg) scale(1.02); } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1); } }
@keyframes pe-aglaya { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } }
@keyframes pe-window { 0% { opacity: 0.4; box-shadow: 0 0 20px rgba(200,200,255,0.05); } 100% { opacity: 0.7; box-shadow: 0 0 60px rgba(200,200,255,0.15); } }
@keyframes pe-shadow { 0% { opacity: 0.5; transform: scaleY(1); } 100% { opacity: 0.8; transform: scaleY(1.3); } }

.scn-candle-question { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 60% 70%, #4a3a2a 0%, transparent 70%); }
.scn-candle-question .candle-body { position:absolute; bottom:28%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:3px; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); }
.scn-candle-question .candle-flame { position:absolute; bottom:68%; left:46.5%; width:8px; height:14px; background: radial-gradient(circle, #ffcc80 0%, #e09040 60%, #804020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #e09040, 0 0 40px 12px rgba(224,144,64,.4); animation: cq-flame 0.4s ease-in-out infinite alternate; }
.scn-candle-question .finger { position:absolute; bottom:40%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cq-finger 2s ease-in-out infinite alternate; }
.scn-candle-question .hand { position:absolute; bottom:30%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:40% 30% 20% 30% / 30% 40% 30% 20%; transform-origin: bottom right; animation: cq-hand 2s ease-in-out infinite alternate; }
.scn-candle-question .figure { position:absolute; bottom:5%; right:10%; width:60px; height:110px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,.3); animation: cq-figure 3s ease-in-out infinite; }
.scn-candle-question .glow-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 70%, rgba(255,180,60,0.15) 0%, transparent 60%); animation: cq-glow 4s ease-in-out infinite alternate; }
@keyframes cq-flame  { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8 } }
@keyframes cq-finger { 0% { transform: translateX(10px) rotate(-5deg) } 50% { transform: translateX(0) rotate(-10deg) } 100% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes cq-hand   { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(10deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(-3px) } }
@keyframes cq-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cq-glow   { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }

.scn-hippolyte-tells-prince { background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%); }
.scn-hippolyte-tells-prince .figure-left { position:absolute; bottom:20%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom left; animation: htp-left 5s ease-in-out infinite; }
.scn-hippolyte-tells-prince .figure-right { position:absolute; bottom:20%; right:20%; width:55px; height:105px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom right; animation: htp-right 4s ease-in-out infinite alternate; }
.scn-hippolyte-tells-prince .candle { position:absolute; bottom:30%; left:50%; width:18px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:3px; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); }
.scn-hippolyte-tells-prince .flame { position:absolute; bottom:66%; left:50%; width:8px; height:14px; margin-left:-4px; background: radial-gradient(circle, #ffcc80 0%, #e09040 60%, #602020 100%); border-radius:50%; box-shadow: 0 0 20px 6px #e09040, 0 0 40px 12px rgba(224,144,64,.3); animation: htp-flame 0.3s ease-in-out infinite alternate; }
.scn-hippolyte-tells-prince .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%); animation: htp-shadow-floor 6s ease-in-out infinite; }
.scn-hippolyte-tells-prince .shadow-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.2) 0%, transparent 60%); animation: htp-shadow-wall 8s ease-in-out infinite alternate; }
@keyframes htp-left  { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(5px) } 50% { transform: rotate(2deg) translateX(-5px) } 75% { transform: rotate(-1deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes htp-right { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(4deg) scaleX(0.95) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes htp-flame { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.5) } 100% { transform: scaleY(0.8) } }
@keyframes htp-shadow-floor { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes htp-shadow-wall { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.2 } }

.scn-editorial-comment { background: linear-gradient(180deg, #b8c8d8 0%, #d0d8e0 50%, #a0b0c0 100%), radial-gradient(ellipse at 50% 0%, #e0e8f0 0%, transparent 60%); }
.scn-editorial-comment .desk { position:absolute; bottom:15%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-editorial-comment .paper-stack { position:absolute; bottom:32%; left:25%; width:30%; height:12%; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a0 100%); border-radius:1px; transform:rotate(-1deg); animation: ec-paper 9s ease-in-out infinite alternate; }
.scn-editorial-comment .pen { position:absolute; bottom:40%; left:30%; width:60px; height:4px; background: linear-gradient(90deg, #4a3a2a 0%, #8a7a6a 100%); border-radius:2px; transform-origin: left center; animation: ec-pen 6s ease-in-out infinite; }
.scn-editorial-comment .window { position:absolute; top:10%; left:15%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #e0e8f0 0%, #b0c0d0 100%); border:4px solid #6a5a4a; border-radius:2%; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: ec-window 12s ease-in-out infinite alternate; }
.scn-editorial-comment .author { position:absolute; bottom:20%; left:23%; width:50px; height:90px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: ec-author 8s ease-in-out infinite; }
.scn-editorial-comment .cloud-outside { position:absolute; top:12%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: ec-cloud 30s linear infinite; }
@keyframes ec-paper  { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-0.5deg) translateY(0) } }
@keyframes ec-pen    { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(20deg) translateX(5px) } 100% { transform: rotate(5deg) translateX(-3px) } }
@keyframes ec-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(0,0,0,.1) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,.15) } 100% { opacity:0.7; box-shadow: inset 0 0 15px rgba(0,0,0,.05) } }
@keyframes ec-author { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ec-cloud  { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

.scn-evgenie-visits { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0b090 100%), radial-gradient(ellipse at 80% 50%, #fff8e0 0%, transparent 70%); }
.scn-evgenie-visits .street-bg { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09880 0%, #807060 100%); border-radius:20% 20% 0 0; }
.scn-evgenie-visits .figure-left { position:absolute; bottom:15%; left:20%; width:55px; height:110px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ev-left 2s ease-in-out infinite alternate; }
.scn-evgenie-visits .figure-right { position:absolute; bottom:15%; right:20%; width:55px; height:110px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ev-right 1.8s ease-in-out infinite alternate; }
.scn-evgenie-visits .shadow-left { position:absolute; bottom:0; left:15%; width:60px; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); transform: skewX(-10deg); animation: ev-shadow-left 2.5s ease-in-out infinite alternate; }
.scn-evgenie-visits .light-beam { position:absolute; top:0; right:10%; width:100px; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); transform: rotate(10deg); animation: ev-light 4s ease-in-out infinite alternate; }
.scn-evgenie-visits .dust-particle { position:absolute; top:30%; left:50%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 4px rgba(255,255,255,.5); animation: ev-dust 3s ease-in-out infinite; }
@keyframes ev-left  { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(-5px) } 100% { transform: rotate(5deg) translateX(3px) } }
@keyframes ev-right { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(10deg) translateX(5px) } 100% { transform: rotate(-5deg) translateX(-3px) } }
@keyframes ev-shadow-left { 0% { opacity:0.6; transform: skewX(-10deg) scaleX(1) } 50% { opacity:0.9; transform: skewX(-12deg) scaleX(1.1) } 100% { opacity:0.4; transform: skewX(-8deg) scaleX(0.9) } }
@keyframes ev-light { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.2 } }
@keyframes ev-dust { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(20px,-10px) scale(1.5); opacity:0.6 } 100% { transform: translate(40px,0) scale(0.8); opacity:0 } }

/* scene: train-arrival-station (tense dawn) */
.scn-train-arrival-station {
  background: linear-gradient(180deg, #2a1a4a 0%, #4a3a6a 40%, #8a6a5a 70%, #d0a060 100%), radial-gradient(ellipse at 50% 80%, #d0a060 0%, transparent 60%);
}
.scn-train-arrival-station .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a5a 0%, #7a5a4a 100%); opacity:.8; animation: tas-sky 12s ease-in-out infinite alternate; }
.scn-train-arrival-station .sun-glow { position:absolute; bottom:42%; left:20%; width:120px; height:120px; background: radial-gradient(circle, #ffcc80 0%, #ff9944 40%, transparent 70%); border-radius:50%; filter: blur(12px); animation: tas-sun 6s ease-in-out infinite alternate; }
.scn-train-arrival-station .platform { position:absolute; bottom:20%; 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 6px 12px rgba(0,0,0,.5); animation: tas-platform 15s ease-in-out infinite alternate; }
.scn-train-arrival-station .station-roof { position:absolute; bottom:40%; left:10%; width:80%; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: tas-roof 20s ease-in-out infinite; }
.scn-train-arrival-station .train { position:absolute; bottom:32%; left:-20%; width:60%; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 2px 6px rgba(255,255,255,.1), 0 4px 8px rgba(0,0,0,.5); animation: tas-train 8s linear infinite; }
.scn-train-arrival-station .lamp { position:absolute; bottom:26%; left:65%; width:8px; height:20px; background: #6a5a4a; border-radius: 30% 30% 10% 10%; }
.scn-train-arrival-station .lamp::after { content:''; position:absolute; top:-4px; left:-4px; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #ff9900 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: tas-lamp 2s ease-in-out infinite alternate; }
.scn-train-arrival-station .shadow-fig { position:absolute; bottom:24%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tas-fig 3s ease-in-out infinite; }
.scn-train-arrival-station .steam { position:absolute; bottom:45%; left:15%; width:40px; height:20px; background: rgba(200,180,160,.3); border-radius:50%; filter: blur(6px); }
.scn-train-arrival-station .cloud-1 { animation: tas-steam-a 4s ease-in-out infinite; }
.scn-train-arrival-station .cloud-2 { left:30%; animation: tas-steam-b 5s ease-in-out infinite 1s; }
@keyframes tas-sky       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes tas-sun       { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.1); opacity:.9 } 100% { transform: scale(.95); opacity:.7 } }
@keyframes tas-platform  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tas-roof      { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes tas-train     { 0% { transform: translateX(0) } 100% { transform: translateX(150vw) } }
@keyframes tas-lamp      { 0% { box-shadow:0 0 10px 2px #ff9900; opacity:.7 } 50% { box-shadow:0 0 20px 6px #ffcc00; opacity:1 } 100% { box-shadow:0 0 12px 3px #ff9900; opacity:.8 } }
@keyframes tas-fig       { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes tas-steam-a   { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-10px) scale(1.2); opacity:.2 } 100% { transform: translateY(2px) scale(.9); opacity:.3 } }
@keyframes tas-steam-b   { 0% { transform: translateY(2px) scale(1); opacity:.3 } 50% { transform: translateY(-8px) scale(1.3); opacity:.1 } 100% { transform: translateY(4px) scale(.8); opacity:.2 } }

/* scene: train-rogogin-invitation (warm dim interior) */
.scn-train-rogogin-invitation {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #7a4a1a 70%, #4a2a1a 100%), radial-gradient(ellipse at 40% 60%, #9a6a3a 0%, transparent 60%);
}
.scn-train-rogogin-invitation .room-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); opacity:.8; }
.scn-train-rogogin-invitation .window { position:absolute; top:10%; right:10%; width:30%; height:50%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: tri-window 12s ease-in-out infinite alternate; }
.scn-train-rogogin-invitation .table { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 60% 60% 10% 10% / 80% 80% 20% 20%; transform: perspective(600px) rotateX(20deg); box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-train-rogogin-invitation .lamp-glare { position:absolute; bottom:35%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ff9900 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,153,0,.3); animation: tri-glare 4s ease-in-out infinite alternate; }
.scn-train-rogogin-invitation .bottle { position:absolute; bottom:26%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-5deg); animation: tri-bottle 8s ease-in-out infinite; }
.scn-train-rogogin-invitation .fig-rog { position:absolute; bottom:20%; left:15%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tri-fig1 5s ease-in-out infinite; }
.scn-train-rogogin-invitation .fig-zales { position:absolute; bottom:20%; right:20%; width:22px; height:46px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tri-fig2 6s ease-in-out infinite 1s; }
.scn-train-rogogin-invitation .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(40,30,20,.6) 100%); filter: blur(8px); animation: tri-mist 20s ease-in-out infinite alternate; }
@keyframes tri-window   { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes tri-glare    { 0% { box-shadow: 0 0 30px 10px rgba(255,153,0,.3); opacity:.8 } 50% { box-shadow: 0 0 60px 20px rgba(255,153,0,.5); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(255,153,0,.35); opacity:.9 } }
@keyframes tri-bottle   { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } }
@keyframes tri-fig1     { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tri-fig2     { 0% { transform: translateY(-1px) rotate(2deg) } 25% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(2deg) } }
@keyframes tri-mist     { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* scene: train-prince-accepts (warm dim interior) */
.scn-train-prince-accepts {
  background: linear-gradient(180deg, #4a3a1a 0%, #3a2a0a 30%, #5a3a1a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #a07030 0%, transparent 60%);
}
.scn-train-prince-accepts .wall-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #5a3a1a 0%, #1a0a00 80%); }
.scn-train-prince-accepts .chair { position:absolute; bottom:15%; left:35%; width:18%; height:30%; background: linear-gradient(180deg, #3a2a0a 0%, #2a1a00 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: perspective(400px) rotateY(10deg); }
.scn-train-prince-accepts .prince-fig { position:absolute; bottom:22%; left:32%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tpa-fig1 6s ease-in-out infinite; }
.scn-train-prince-accepts .hand-ext { position:absolute; bottom:35%; left:48%; width:10px; height:14px; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform: rotate(-30deg); transform-origin: left bottom; animation: tpa-hand 4s ease-in-out infinite alternate; }
.scn-train-prince-accepts .candle { position:absolute; bottom:30%; left:55%; width:6px; height:18px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 10% 10% 20% 20%; }
.scn-train-prince-accepts .candle::after { content:''; position:absolute; top:-10px; left:-4px; width:14px; height:14px; background: radial-gradient(circle, #ffe080 0%, #ffaa00 40%, transparent 70%); border-radius:50%; filter: blur(3px); animation: tpa-candle 3s ease-in-out infinite alternate; }
.scn-train-prince-accepts .glow-halo { position:absolute; bottom:28%; left:52%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,170,0,.4) 0%, transparent 70%); border-radius:50%; filter: blur(15px); animation: tpa-glow 5s ease-in-out infinite alternate; }
.scn-train-prince-accepts .leb-fig { position:absolute; bottom:20%; right:25%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tpa-fig2 7s ease-in-out infinite; }
@keyframes tpa-fig1    { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tpa-hand    { 0% { transform: rotate(-40deg) scaleY(1) } 50% { transform: rotate(-25deg) scaleY(1.05) } 100% { transform: rotate(-30deg) scaleY(1) } }
@keyframes tpa-candle  { 0% { box-shadow:0 0 8px 2px #ffaa00; opacity:.8 } 50% { box-shadow:0 0 18px 6px #ffcc00; opacity:1 } 100% { box-shadow:0 0 10px 3px #ffaa00; opacity:.85 } }
@keyframes tpa-glow    { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.2); opacity:.5 } 100% { transform: scale(.95); opacity:.4 } }
@keyframes tpa-fig2    { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* scene: train-parting-ways (calm overcast) */
.scn-train-parting-ways {
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9a9a 70%, #9aa0a0 100%), radial-gradient(ellipse at 50% 0%, #b0c0c0 0%, transparent 60%);
}
.scn-train-parting-ways .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, #8a9a9a 100%); opacity:.6; animation: tpw-sky 20s ease-in-out infinite alternate; }
.scn-train-parting-ways .platform-edge { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); }
.scn-train-parting-ways .fig-depart { position:absolute; bottom:22%; left:30%; width:18px; height:38px; background: #2a3a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tpw-depart 10s ease-in-out infinite; }
.scn-train-parting-ways .fig-depart::after { content:''; position:absolute; top:-5px; left:0; width:100%; height:20px; background: #3a4a4a; border-radius: 50%; animation: tpw-head 4s ease-in-out infinite; }
.scn-train-parting-ways .fig-watch { position:absolute; bottom:22%; right:35%; width:16px; height:36px; background: #1a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tpw-watch 12s ease-in-out infinite; }
.scn-train-parting-ways .lamppost { position:absolute; bottom:20%; left:50%; width:4px; height:40%; background: #4a5a5a; border-radius: 10%; }
.scn-train-parting-ways .lamppost::after { content:''; position:absolute; top:-4px; left:-4px; width:12px; height:12px; background: radial-gradient(circle, #a0b0b0 0%, #708080 50%, transparent 80%); border-radius:50%; animation: tpw-lamp 6s ease-in-out infinite alternate; }
.scn-train-parting-ways .fog { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(160,170,170,.3) 50%, rgba(160,170,170,.2) 100%); filter: blur(12px); animation: tpw-fog 25s ease-in-out infinite alternate; }
@keyframes tpw-sky      { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes tpw-depart   { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-8px) rotate(-1deg) } 50% { transform: translateX(-16px) rotate(0deg) } 75% { transform: translateX(-8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tpw-head     { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tpw-watch    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tpw-lamp     { 0% { box-shadow:0 0 10px 2px #708080; opacity:.4 } 50% { box-shadow:0 0 20px 6px #90a0a0; opacity:.6 } 100% { box-shadow:0 0 12px 3px #708080; opacity:.5 } }
@keyframes tpw-fog      { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-idiot { background: linear-gradient(180deg, #16162a 0%, #2a1e2e 40%, #3a2a2e 100%), radial-gradient(ellipse at 30% 20%, #5a3a2a 0%, transparent 70%); }
.scn-idiot .room-shadow { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #0e0e1e 0%, #1a1222 60%, #221822 100%); }
.scn-idiot .window-frame { position:absolute; left:20%; top:15%; width:40%; height:50%; background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%); border: 4px solid #4a3a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-idiot .window-pane { position:absolute; left:22%; top:18%; width:36%; height:44%; background: linear-gradient(180deg, #f4d0a0 0%, #d4a373 50%, #b8845a 100%); opacity: 0.2; animation: id-faint-glow 8s ease-in-out infinite alternate; }
.scn-idiot .figure-silhouette { position:absolute; bottom:28%; left:35%; width:20%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: id-fig-sway 6s ease-in-out infinite; }
.scn-idiot .table { position:absolute; bottom:20%; left:30%; width:45%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-idiot .chair { position:absolute; bottom:15%; left:55%; width:12%; height:16%; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius: 6px 6px 2px 2px; transform: rotate(-3deg); animation: id-chair-rock 12s ease-in-out infinite; }
.scn-idiot .candle { position:absolute; bottom:30%; left:48%; width:3%; height:6%; background: linear-gradient(180deg, #ffd0a0 0%, #c08040 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 16px 6px #c08040; animation: id-candle-flicker 2s ease-in-out infinite alternate; }
@keyframes id-faint-glow { 0% { opacity: 0.15; box-shadow: 0 0 10px 5px #d4a373; } 50% { opacity: 0.3; box-shadow: 0 0 20px 10px #e0b08a; } 100% { opacity: 0.2; box-shadow: 0 0 15px 6px #c08050; } }
@keyframes id-fig-sway { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes id-chair-rock { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes id-candle-flicker { 0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 8px 3px #c08040; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 18px 8px #d09050; } 100% { transform: scaleY(0.95); opacity: 0.7; box-shadow: 0 0 12px 5px #c07030; } }

.scn-aftermath { background: linear-gradient(180deg, #f0d8b8 0%, #d4b898 40%, #a88860 100%), radial-gradient(ellipse at 50% 20%, #f0d8b8 0%, transparent 60%); }
.scn-aftermath .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8d0 0%, #f0d0a8 40%, #d0a878 100%); animation: af-sky-shift 15s ease-in-out infinite alternate; }
.scn-aftermath .sun-hint { position:absolute; top:10%; left:70%; width:15%; height:15%; background: radial-gradient(circle, #ffecb0 0%, #f0c880 60%, transparent 100%); opacity: 0.4; animation: af-sun-pulse 10s ease-in-out infinite; }
.scn-aftermath .hills-silhouette { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.3); animation: af-hills-breathe 20s ease-in-out infinite alternate; }
.scn-aftermath .house-facade { position:absolute; bottom:30%; left:25%; width:25%; height:35%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 8px 16px rgba(0,0,0,0.2); }
.scn-aftermath .chimney-smoke { position:absolute; bottom:60%; left:32%; width:8%; height:20%; background: linear-gradient(180deg, rgba(200,200,200,0.4) 0%, rgba(200,200,200,0.1) 100%); filter: blur(6px); border-radius: 40%; animation: af-smoke-rise 8s ease-out infinite; }
.scn-aftermath .path-stones { position:absolute; bottom:18%; left:20%; width:60%; height:6%; background: repeating-linear-gradient(90deg, #8a7a60 0px, #8a7a60 8px, #b8a888 8px, #b8a888 16px); border-radius: 2px; opacity: 0.5; }
.scn-aftermath .widow-figure { position:absolute; bottom:18%; left:40%; width:8%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af-walk-slow 15s linear infinite; }
.scn-aftermath .bird-silhouette { position:absolute; top:12%; left:10%; width:6%; height:4%; background: #2a2a2a; border-radius: 50% 50% 40% 40%; animation: af-bird-loop 25s linear infinite; }
@keyframes af-sky-shift { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes af-sun-pulse { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.1); opacity: 0.5; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes af-hills-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes af-smoke-rise { 0% { transform: translateY(0) scaleX(1); opacity: 0.6; } 50% { transform: translateY(-30px) scaleX(1.2); opacity: 0.3; } 100% { transform: translateY(-60px) scaleX(0.8); opacity: 0; } }
@keyframes af-walk-slow { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(-1deg); } 75% { transform: translateX(45px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes af-bird-loop { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(120vw) scaleX(-1); } 100% { transform: translateX(240vw) scaleX(1); } }

.scn-police { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #3a2a3e 100%), radial-gradient(ellipse at 80% 40%, #4a3a4a 0%, transparent 70%); }
.scn-police .corridor-wall { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); }
.scn-police .doorway { position:absolute; left:40%; top:10%; width:20%; height:80%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border: 3px solid #3a3a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
.scn-police .door-open { position:absolute; left:30%; top:15%; width:18%; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 2px; transform-origin: left center; animation: pl-door-open 3s ease-out forwards; box-shadow: 0 5px 10px rgba(0,0,0,0.5); }
.scn-police .police-officer { position:absolute; left:45%; bottom:20%; width:8%; height:35%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-officer-step 4s ease-in-out infinite; }
.scn-police .second-figure { position:absolute; right:35%; bottom:25%; width:7%; height:30%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: pl-officer-step 4s 2s ease-in-out infinite; }
.scn-police .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 20px, #3a3a4a 20px, #3a3a4a 40px); opacity: 0.4; }
.scn-police .ceiling-lamp { position:absolute; top:8%; left:45%; width:10%; height:6%; background: radial-gradient(circle, #d0c8a0 0%, #a09878 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(160,152,120,0.3); animation: pl-lamp-hum 5s ease-in-out infinite alternate; }
@keyframes pl-door-open { 0% { transform: rotateY(0deg); } 100% { transform: rotateY(-60deg); } }
@keyframes pl-officer-step { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pl-lamp-hum { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }

.scn-trial { background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 30%, #9a9aaa 0%, transparent 60%); }
.scn-trial .courtroom-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #7a7a8a 0%, #5a5a6a 50%, #7a7a8a 100%); }
.scn-trial .judge-bench { position:absolute; top:15%; left:5%; width:30%; height:55%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 10px 20px rgba(0,0,0,0.3); }
.scn-trial .judge-figure { position:absolute; top:20%; left:10%; width:15%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: tr-judge-slight 10s ease-in-out infinite; }
.scn-trial .witness-stand { position:absolute; left:55%; bottom:15%; width:12%; height:45%; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-trial .defendant-chair { position:absolute; left:40%; bottom:12%; width:10%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 6px 6px 2px 2px; transform: rotate(-2deg); }
.scn-trial .court-clerk { position:absolute; right:10%; bottom:15%; width:6%; height:25%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tr-clerk-bob 8s ease-in-out infinite; }
.scn-trial .window-light { position:absolute; top:10%; left:60%; width:20%; height:50%; background: linear-gradient(180deg, rgba(200,200,210,0.3) 0%, rgba(200,200,210,0.1) 100%); filter: blur(8px); animation: tr-window-fade 12s ease-in-out infinite alternate; }
@keyframes tr-judge-slight { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tr-clerk-bob { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes tr-window-fade { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-aglaya-message {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a3e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.7);
}
.scn-aglaya-message .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, #3a3a4e 0%, transparent 70%);
  animation: ag-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-aglaya-message .wall {
  position: absolute; inset: 10% 5% 15% 5%; background: linear-gradient(180deg, #1c1c2e 0%, #141422 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-aglaya-message .window {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border: 4px solid #2c2c3a; border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 0 2px #1a1a2a;
}
.scn-aglaya-message .door {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.8), 4px 0 8px rgba(255,200,100,.1);
}
.scn-aglaya-message .figure-message {
  position: absolute; bottom: 12%; left: 45%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-figure-slide 6s ease-in-out infinite;
}
.scn-aglaya-message .hand-note {
  position: absolute; bottom: 60%; left: 50%;
  width: 14px; height: 18px;
  background: linear-gradient(135deg, #b8a080 0%, #8c6e4a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ag-hand-tremble 2s ease-in-out infinite;
}
.scn-aglaya-message .candle {
  position: absolute; bottom: 20%; left: 20%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #d4a060 0%, #8a5a30 100%);
  border-radius: 2px 2px 0 0;
}
.scn-aglaya-message .glow-small {
  position: absolute; bottom: 22%; left: 20%;
  width: 50px; height: 50px;
  margin-left: -22px; margin-bottom: -10px;
  background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: ag-candle-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes ag-bg-pulse { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ag-figure-slide {
  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(10px) translateY(-1px) rotate(1deg) }
  100% { transform: translateX(0) translateY(0) rotate(0deg) }
}
@keyframes ag-hand-tremble {
  0% { transform: rotate(15deg) translate(0,0) }
  50% { transform: rotate(18deg) translate(1px,-1px) }
  100% { transform: rotate(13deg) translate(-1px,0) }
}
@keyframes ag-candle-flicker {
  0% { opacity:.3; transform: scale(.8) }
  50% { opacity:.7; transform: scale(1.2) }
  100% { opacity:.4; transform: scale(.9) }
}

.scn-prince-agitated {
  background: linear-gradient(180deg, #0a0a18 0%, #1a1a2e 50%, #2a2a3a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.6);
}
.scn-prince-agitated .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, #2a2a3e 0%, transparent 80%);
  animation: pr-bg-shift 10s ease-in-out infinite alternate;
}
.scn-prince-agitated .floor-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0f0f18 100%);
  border-radius: 30% 70% 0 0;
}
.scn-prince-agitated .chair {
  position: absolute; bottom: 8%; left: 20%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 10% 10% 10% 10% / 30% 30% 30% 30%;
  box-shadow: 4px 0 10px rgba(0,0,0,.5);
}
.scn-prince-agitated .figure-prince {
  position: absolute; bottom: 8%; left: 30%;
  width: 28px; height: 85px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d16 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pr-prince-shake 1.8s ease-in-out infinite;
}
.scn-prince-agitated .figure-retreat {
  position: absolute; bottom: 10%; right: 20%;
  width: 24px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: scaleX(-1);
  animation: pr-retreat-walk 5s ease-in-out infinite;
}
.scn-prince-agitated .lamp {
  position: absolute; top: 20%; left: 50%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px rgba(255,200,100,.3);
}
.scn-prince-agitated .lamp-glow {
  position: absolute; top: 18%; left: 50%;
  width: 80px; height: 80px;
  margin-left: -40px; margin-top: -40px;
  background: radial-gradient(circle, rgba(255,180,60,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: pr-lamp-pulse 3s ease-in-out infinite alternate;
}
.scn-prince-agitated .clock {
  position: absolute; top: 10%; right: 15%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #1a1a2e 30%, #2a2a3e 80%, transparent 100%);
  border-radius: 50%;
  border: 2px solid #3a3a4a;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: pr-clock-tick 1s steps(1) infinite;
}
@keyframes pr-bg-shift { 0% { opacity:.5 } 100% { opacity:.8 } }
@keyframes pr-prince-shake {
  0% { transform: rotate(-2deg) translateY(0) }
  20% { transform: rotate(3deg) translateY(-2px) }
  40% { transform: rotate(-3deg) translateY(0) }
  60% { transform: rotate(2deg) translateY(-1px) }
  80% { transform: rotate(-1deg) translateY(0) }
  100% { transform: rotate(-2deg) translateY(0) }
}
@keyframes pr-retreat-walk {
  0% { transform: scaleX(-1) translateX(0) }
  50% { transform: scaleX(-1) translateX(-30px) }
  100% { transform: scaleX(-1) translateX(0) }
}
@keyframes pr-lamp-pulse { 0% { opacity:.4; transform: scale(.8) } 100% { opacity:.8; transform: scale(1.2) } }
@keyframes pr-clock-tick { 0%,100% { opacity:1 } 50% { opacity:.6 } }

.scn-hippolyte-arrives {
  background: linear-gradient(180deg, #0e0e1a 0%, #1c1c2e 50%, #2a2a3a 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.7);
}
.scn-hippolyte-arrives .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, #2a2a3e 0%, transparent 70%);
  animation: ha-bg-dark 12s ease-in-out infinite alternate;
}
.scn-hippolyte-arrives .door-arch {
  position: absolute; bottom: 5%; left: 10%;
  width: 100px; height: 130px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0f0f1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 0 4px #1a1a2a;
}
.scn-hippolyte-arrives .figure-hippolyte {
  position: absolute; bottom: 8%; left: 25%;
  width: 32px; height: 90px;
  background: linear-gradient(180deg, #18182a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-enter-stumble 7s ease-in-out infinite;
}
.scn-hippolyte-arrives .cane {
  position: absolute; bottom: 8%; left: 20%;
  width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: ha-cane-tilt 6s ease-in-out infinite;
}
.scn-hippolyte-arrives .chair {
  position: absolute; bottom: 10%; right: 25%;
  width: 45px; height: 65px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 10% 10% 10% 10% / 30% 30% 30% 30%;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
}
.scn-hippolyte-arrives .blood-stain {
  position: absolute; bottom: 12%; left: 30%;
  width: 18px; height: 12px;
  background: radial-gradient(circle, #7a2a2a 0%, transparent 80%);
  border-radius: 50%;
  opacity: .6;
  animation: ha-blood-pulse 4s ease-in-out infinite alternate;
}
.scn-hippolyte-arrives .lamp-dim {
  position: absolute; top: 25%; left: 60%;
  width: 16px; height: 24px;
  background: linear-gradient(180deg, #c08040 0%, #6a4a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 15px rgba(255,180,60,.2);
}
.scn-hippolyte-arrives .light-pool {
  position: absolute; bottom: 5%; left: 50%;
  width: 120px; height: 40px;
  margin-left: -60px;
  background: radial-gradient(ellipse, rgba(255,200,100,.1) 0%, transparent 70%);
  border-radius: 50%;
  animation: ha-pool-flicker 2.5s ease-in-out infinite alternate;
}
@keyframes ha-bg-dark { 0% { opacity:.6 } 100% { opacity:.9 } }
@keyframes ha-enter-stumble {
  0% { transform: translateX(-20px) rotate(-5deg) }
  20% { transform: translateX(-10px) rotate(3deg) }
  40% { transform: translateX(0) rotate(-2deg) }
  60% { transform: translateX(10px) rotate(4deg) }
  80% { transform: translateX(20px) rotate(-3deg) }
  100% { transform: translateX(-20px) rotate(5deg) }
}
@keyframes ha-cane-tilt {
  0% { transform: rotate(20deg) translateX(0) }
  50% { transform: rotate(25deg) translateX(3px) }
  100% { transform: rotate(20deg) translateX(0) }
}
@keyframes ha-blood-pulse { 0% { opacity:.4; transform: scale(1) } 100% { opacity:.7; transform: scale(1.3) } }
@keyframes ha-pool-flicker { 0% { opacity:.3; transform: scale(.8) } 100% { opacity:.6; transform: scale(1.1) } }

.scn-hippolyte-speaks {
  background: linear-gradient(180deg, #0e0e1a 0%, #1c1c2e 50%, #2a2a3a 100%);
  box-shadow: inset 0 0 140px rgba(0,0,0,.7);
}
.scn-hippolyte-speaks .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%);
  animation: hs-bg-dim 10s ease-in-out infinite alternate;
}
.scn-hippolyte-speaks .window-shutters {
  position: absolute; top: 10%; right: 10%;
  width: 70px; height: 100px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 4px;
  box-shadow: -6px 0 10px rgba(0,0,0,.6);
  animation: hs-shutter-creak 8s ease-in-out infinite;
}
.scn-hippolyte-speaks .figure-hippolyte-speaking {
  position: absolute; bottom: 10%; left: 35%;
  width: 30px; height: 85px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-speak-gesture 4s ease-in-out infinite;
}
.scn-hippolyte-speaks .figure-prince-listening {
  position: absolute; bottom: 10%; right: 25%;
  width: 26px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: hs-listen-still 8s ease-in-out infinite alternate;
}
.scn-hippolyte-speaks .table {
  position: absolute; bottom: 8%; left: 45%;
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-hippolyte-speaks .candlestick {
  position: absolute; bottom: 16%; left: 48%;
  width: 8px; height: 35px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 2px 2px 0 0;
}
.scn-hippolyte-speaks .candle-flame {
  position: absolute; bottom: 40%; left: 48%;
  width: 12px; height: 12px;
  margin-left: -6px;
  background: radial-gradient(circle, #ffd080 0%, #e08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(255,200,100,.5);
  animation: hs-flame-flicker 1.2s ease-in-out infinite alternate;
}
.scn-hippolyte-speaks .wall-shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  border-radius: 20% 20% 0 0;
  animation: hs-shadow-grow 12s ease-in-out infinite alternate;
}
@keyframes hs-bg-dim { 0% { opacity:.5 } 100% { opacity:.8 } }
@keyframes hs-shutter-creak {
  0% { transform: rotate(0deg) }
  25% { transform: rotate(2deg) }
  50% { transform: rotate(-1deg) }
  75% { transform: rotate(3deg) }
  100% { transform: rotate(0deg) }
}
@keyframes hs-speak-gesture {
  0% { transform: rotate(-5deg) translateY(0) }
  30% { transform: rotate(8deg) translateY(-3px) }
  60% { transform: rotate(-3deg) translateY(0) }
  100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes hs-listen-still { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes hs-flame-flicker {
  0% { transform: scale(.9) translateY(0); opacity:.7 }
  50% { transform: scale(1.2) translateY(-2px); opacity:1 }
  100% { transform: scale(1) translateY(0); opacity:.8 }
}
@keyframes hs-shadow-grow { 0% { opacity:.3 } 100% { opacity:.6 } }

.scn-gania-meets-prince {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 100%),
    radial-gradient(ellipse at 40% 50%, #6a4a2a 0%, transparent 60%);
}
.scn-gania-meets-prince .bg-warm {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #5a3a1a 0%, #2a1a0a 100%);
  animation: gmp-bg 12s ease-in-out infinite alternate;
}
.scn-gania-meets-prince .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e05 0%, #0e0702 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-gania-meets-prince .wall-panel {
  position: absolute; top: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(90deg, #4a2a12 0%, #6a3a1a 30%, #4a2a12 70%);
  border-radius: 10px;
  opacity: .7;
  animation: gmp-panel 8s ease-in-out infinite alternate;
}
.scn-gania-meets-prince .table-wood {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #5a3018 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-gania-meets-prince .lamp-glow {
  position: absolute; bottom: 32%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.4);
  animation: gmp-lamp 3s ease-in-out infinite alternate;
}
.scn-gania-meets-prince .figure-prince {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0702 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gmp-prince 5s ease-in-out infinite;
}
.scn-gania-meets-prince .figure-gania {
  position: absolute; bottom: 20%; right: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2218 0%, #120804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gmp-gania 6s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-gania-meets-prince .curtain-left {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1a0a 80%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  filter: blur(1px);
  animation: gmp-curtain 9s ease-in-out infinite alternate;
}
.scn-gania-meets-prince .curtain-right {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1a0a 80%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  filter: blur(1px);
  animation: gmp-curtain 9s ease-in-out infinite alternate-reverse;
}

@keyframes gmp-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gmp-panel { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes gmp-lamp { 0% { box-shadow: 0 0 16px 4px #c08040; opacity:.8 } 50% { box-shadow: 0 0 30px 12px #ffd080; opacity:1 } 100% { box-shadow: 0 0 20px 6px #c08040; opacity:.9 } }
@keyframes gmp-prince { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes gmp-gania { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(-1px) translateY(-2px) rotate(2deg) } 66% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes gmp-curtain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }

/* --- Scene 2: gania-recalls-letter --- */
.scn-gania-recalls-letter {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0e05 40%, #0e0502 100%),
    radial-gradient(ellipse at 50% 70%, #3a2212 0%, transparent 70%);
}
.scn-gania-recalls-letter .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 50%, #0e0502 100%);
  animation: grl-bg 15s ease-in-out infinite alternate;
}
.scn-gania-recalls-letter .desk-top {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a180e 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-gania-recalls-letter .letter-fold {
  position: absolute; bottom: 26%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(135deg, #d4b896 0%, #b89a78 50%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: grl-letter 4s ease-in-out infinite alternate;
}
.scn-gania-recalls-letter .hand-trembling {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8a888 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: grl-hand 0.8s ease-in-out infinite;
}
.scn-gania-recalls-letter .candle-wax {
  position: absolute; bottom: 25%; left: 28%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px #f0c080;
  animation: grl-candle 4s ease-in-out infinite alternate;
}
.scn-gania-recalls-letter .shadow-gania {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a0e05 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .7;
  filter: blur(1px);
  animation: grl-shadow 6s ease-in-out infinite;
}
.scn-gania-recalls-letter .inkwell {
  position: absolute; bottom: 26%; left: 62%; width: 10px; height: 12px;
  background: #2a180e;
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: grl-inkwell 3s ease-in-out infinite alternate;
}

@keyframes grl-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes grl-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes grl-hand { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(1px, -2px) rotate(3deg) } 50% { transform: translate(-1px, -1px) rotate(-2deg) } 75% { transform: translate(2px, 0) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes grl-candle { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes grl-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes grl-inkwell { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

/* --- Scene 3: prince-enters-study --- */
.scn-prince-enters-study {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 30%, #d0b898 70%, #b8a080 100%),
    radial-gradient(ellipse at 70% 20%, #fffae8 0%, transparent 60%);
}
.scn-prince-enters-study .bg-sunlight {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fff5e0 0%, #e8d4b8 50%, #d0b898 100%);
  animation: pes-bg 18s ease-in-out infinite alternate;
}
.scn-prince-enters-study .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 12% 12% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.2);
  animation: pes-floor 20s ease-in-out infinite alternate;
}
.scn-prince-enters-study .door-arch {
  position: absolute; bottom: 20%; left: 15%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.1);
  animation: pes-door 10s ease-in-out infinite alternate;
}
.scn-prince-enters-study .study-desk {
  position: absolute; bottom: 18%; right: 15%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  transform: perspective(500px) rotateX(10deg);
}
.scn-prince-enters-study .book-stack {
  position: absolute; bottom: 28%; right: 30%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: pes-books 8s ease-in-out infinite alternate;
}
.scn-prince-enters-study .figure-prince-entry {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4028 0%, #2a180e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pes-prince-walk 6s ease-in-out infinite;
}
.scn-prince-enters-study .figure-gania-desk {
  position: absolute; bottom: 18%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pes-gania-seated 5s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-prince-enters-study .ray-of-light {
  position: absolute; top: 0; left: 40%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.35) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 55% 100%, 45% 100%);
  animation: pes-ray 15s ease-in-out infinite alternate;
}

@keyframes pes-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pes-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pes-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pes-books { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pes-prince-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(0deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes pes-gania-seated { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pes-ray { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* --- Scene 4: general-cautious-welcome --- */
.scn-general-cautious-welcome {
  background: 
    linear-gradient(180deg, #f0e6d8 0%, #e0d0b8 40%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-general-cautious-welcome .bg-bright-tense {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8d8c0 50%, #d0c0a8 100%);
  animation: gcw-bg 10s ease-in-out infinite alternate;
}
.scn-general-cautious-welcome .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.15);
  animation: gcw-floor 12s ease-in-out infinite alternate;
}
.scn-general-cautious-welcome .window-sash {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 100%);
  border: 2px solid #a08060;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.5);
  animation: gcw-window 14s ease-in-out infinite alternate;
}
.scn-general-cautious-welcome .chair-empty {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: gcw-chair 7s ease-in-out infinite alternate;
}
.scn-general-cautious-welcome .figure-general {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcw-general 5s ease-in-out infinite;
}
.scn-general-cautious-welcome .figure-prince-stand {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcw-prince-stand 6s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-general-cautious-welcome .shadow-sharp {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  filter: blur(2px);
  animation: gcw-shadow 8s ease-in-out infinite alternate;
}

@keyframes gcw-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gcw-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gcw-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,200,.4) } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,.7) } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,.4) } }
@keyframes gcw-chair { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes gcw-general { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes gcw-prince-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gcw-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-evgenie-on-nastasia {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #2a2030 40%, #1e1828 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-evgenie-on-nastasia .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a2030 0%, #1e1828 100%); animation: en1-room 12s ease-in-out infinite alternate; }
.scn-evgenie-on-nastasia .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a1218 0%, #0e0a10 100%); border-radius:0 0 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-evgenie-on-nastasia .candle-glow { position:absolute; bottom:38%; left:50%; width:40px; height:60px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 80%, #e8a040 0%, #b06020 50%, transparent 80%); box-shadow: 0 0 60px 20px #c07030, 0 0 120px 40px rgba(160,80,30,.4); animation: en1-candle 2s ease-in-out infinite alternate; }
.scn-evgenie-on-nastasia .candle-wax { position:absolute; bottom:38%; left:50%; width:10px; height:18px; transform:translateX(-50%); background:linear-gradient(180deg, #d4a060 0%, #a07040 100%); border-radius:2px 2px 4px 4px; animation: en1-flicker 0.8s ease-in-out infinite alternate; }
.scn-evgenie-on-nastasia .figure-left { position:absolute; bottom:22%; left:20%; width:40px; height:80px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en1-figure-l 4s ease-in-out infinite; }
.scn-evgenie-on-nastasia .figure-right { position:absolute; bottom:22%; right:20%; width:40px; height:80px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:scaleX(-1); transform-origin: bottom center; animation: en1-figure-r 4s ease-in-out infinite; }
.scn-evgenie-on-nastasia .shadow-left { position:absolute; bottom:22%; left:10%; width:50px; height:20px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(8px); animation: en1-shadow 4s ease-in-out infinite; }
.scn-evgenie-on-nastasia .shadow-right { position:absolute; bottom:22%; right:10%; width:50px; height:20px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(8px); animation: en1-shadow 4s ease-in-out infinite 2s; }

@keyframes en1-room { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes en1-candle { 0% { transform:translateX(-50%) scale(1); opacity:.9 } 50% { transform:translateX(-50%) scale(1.05); opacity:1 } 100% { transform:translateX(-50%) scale(.95); opacity:.85 } }
@keyframes en1-flicker { 0% { opacity:.7; transform:translateX(-50%) translateY(0) } 50% { opacity:1; transform:translateX(-50%) translateY(-1px) } 100% { opacity:.8; transform:translateX(-50%) translateY(0) } }
@keyframes en1-figure-l { 0% { transform:rotate(-2deg) translateY(0) } 30% { transform:rotate(1deg) translateY(-2px) } 60% { transform:rotate(-1deg) translateY(0) } 100% { transform:rotate(1deg) translateY(-1px) } }
@keyframes en1-figure-r { 0% { transform:scaleX(-1) rotate(2deg) translateY(0) } 30% { transform:scaleX(-1) rotate(-1deg) translateY(-3px) } 60% { transform:scaleX(-1) rotate(1deg) translateY(0) } 100% { transform:scaleX(-1) rotate(-2deg) translateY(-1px) } }
@keyframes en1-shadow { 0% { transform:scaleX(1); opacity:.5 } 50% { transform:scaleX(1.2); opacity:.7 } 100% { transform:scaleX(1); opacity:.5 } }

.scn-evgenie-continues-lecture {
  background:
    linear-gradient(180deg, #1e1a24 0%, #2a2230 50%, #1a1620 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-evgenie-continues-lecture .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a2230 0%, #1e1a24 100%); animation: en2-room 14s ease-in-out infinite alternate; }
.scn-evgenie-continues-lecture .wall-dark { position:absolute; top:0; left:0; right:0; bottom:30%; background:linear-gradient(180deg, #1a1620 0%, #1e1a24 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-evgenie-continues-lecture .mirror-frame { position:absolute; top:15%; left:55%; width:80px; height:100px; background:linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform:rotate(2deg); animation: en2-mirror 20s ease-in-out infinite; }
.scn-evgenie-continues-lecture .mirror-reflection { position:absolute; top:18%; left:57%; width:70px; height:90px; background:linear-gradient(180deg, #2a2030 0%, #1a1620 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,.1); animation: en2-reflect 6s ease-in-out infinite alternate; }
.scn-evgenie-continues-lecture .figure-speaker { position:absolute; bottom:22%; left:30%; width:50px; height:90px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); transform-origin: bottom center; animation: en2-speaker 4s ease-in-out infinite; }
.scn-evgenie-continues-lecture .figure-arm { position:absolute; bottom:55%; left:32%; width:30px; height:8px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 10% 10% / 100% 100% 10% 10%; transform:rotate(-20deg); transform-origin: 0% 50%; animation: en2-arm 3s ease-in-out infinite alternate; }
.scn-evgenie-continues-lecture .shadow-speaker { position:absolute; bottom:22%; left:20%; width:60px; height:15px; background:rgba(0,0,0,.6); border-radius:50%; filter:blur(10px); animation: en2-shad 4s ease-in-out infinite; }
.scn-evgenie-continues-lecture .lamp-glow { position:absolute; top:10%; left:20%; width:30px; height:40px; background:radial-gradient(ellipse at 50% 80%, #e0b060 0%, #b07030 50%, transparent 80%); box-shadow: 0 0 40px 15px #c08030; animation: en2-lamp 3s ease-in-out infinite alternate; }

@keyframes en2-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes en2-mirror { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(3deg) scale(.98) } }
@keyframes en2-reflect { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes en2-speaker { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(-1deg) translateY(-3px) } 50% { transform: rotate(-4deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes en2-arm { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(1.1) } 100% { transform: rotate(-25deg) scaleY(.9) } }
@keyframes en2-shad { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.3); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }
@keyframes en2-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(.95) } }

.scn-evgenie-describes-arrival {
  background:
    linear-gradient(90deg, #1a1620 0%, #2a2030 40%, #1e1828 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-evgenie-describes-arrival .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a2030 0%, #1e1828 100%); animation: en3-room 12s ease-in-out infinite alternate; }
.scn-evgenie-describes-arrival .doorway { position:absolute; right:10%; top:15%; width:100px; height:160px; background:linear-gradient(135deg, #3a2a1a 0%, #1e1410 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-evgenie-describes-arrival .door-panel { position:absolute; right:12%; top:17%; width:80px; height:140px; background:linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius:2px; box-shadow: 0 0 10px rgba(0,0,0,.6); transform-origin: left center; animation: en3-door 6s ease-in-out infinite alternate; }
.scn-evgenie-describes-arrival .figure-arriving { position:absolute; bottom:20%; right:20%; width:45px; height:85px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en3-arrive 5s ease-in-out infinite; }
.scn-evgenie-describes-arrival .figure-standing { position:absolute; bottom:22%; left:25%; width:40px; height:80px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: en3-stand 4s ease-in-out infinite; }
.scn-evgenie-describes-arrival .lantern-light { position:absolute; bottom:35%; right:30%; width:20px; height:20px; background:radial-gradient(circle, #e8a040 0%, #b06020 60%, transparent 100%); box-shadow: 0 0 30px 10px #c07030; animation: en3-lantern 2s ease-in-out infinite alternate; }
.scn-evgenie-describes-arrival .lantern-body { position:absolute; bottom:38%; right:31%; width:8px; height:12px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:2px; }
.scn-evgenie-describes-arrival .floor-shadow { position:absolute; bottom:20%; right:15%; width:70px; height:10px; background:rgba(0,0,0,.6); border-radius:50%; filter:blur(8px); animation: en3-flsh 6s ease-in-out infinite alternate; }

@keyframes en3-room { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes en3-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(.2) } 100% { transform: scaleX(1) } }
@keyframes en3-arrive { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-8px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-8px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes en3-stand { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes en3-lantern { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.9; transform: scale(.95) } }
@keyframes en3-flsh { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.5; transform: scaleX(1) } }

.scn-evgenie-summarizes {
  background:
    linear-gradient(180deg, #1e1a28 0%, #2a2235 40%, #1a1620 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-evgenie-summarizes .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a2235 0%, #1e1a28 100%); animation: en4-room 14s ease-in-out infinite alternate; }
.scn-evgenie-summarizes .wall-layer { position:absolute; top:0; left:0; right:0; bottom:25%; background:linear-gradient(90deg, #2a2235 0%, #1a1620 50%, #2a2235 100%); border-radius:0 0 40% 40% / 0 0 30% 30%; }
.scn-evgenie-summarizes .girl-figure-a { position:absolute; bottom:22%; left:15%; width:35px; height:70px; background:linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-2deg); animation: en4-girl 5s ease-in-out infinite; }
.scn-evgenie-summarizes .girl-figure-b { position:absolute; bottom:22%; left:35%; width:35px; height:70px; background:linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(1deg); animation: en4-girl 5s ease-in-out infinite 1.5s; }
.scn-evgenie-summarizes .girl-figure-c { position:absolute; bottom:22%; left:55%; width:35px; height:70px; background:linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-1deg); animation: en4-girl 5s ease-in-out infinite 3s; }
.scn-evgenie-summarizes .central-figure { position:absolute; bottom:22%; left:48%; width:45px; height:85px; background:linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:50% 50% 35% 35% / 60% 60% 35% 35%; transform:rotate(0deg); animation: en4-center 6s ease-in-out infinite; }
.scn-evgenie-summarizes .chandelier-glow { position:absolute; top:8%; left:50%; width:50px; height:30px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 50%, #e0b060 0%, #b07030 50%, transparent 80%); box-shadow: 0 0 40px 15px #c08030, 0 0 80px 30px rgba(160,80,30,.4); animation: en4-chandelier 3s ease-in-out infinite alternate; }
.scn-evgenie-summarizes .chandelier-chain { position:absolute; top:0; left:50%; width:4px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:2px; animation: en4-chain 4s ease-in-out infinite alternate; }

@keyframes en4-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes en4-girl { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-3px) } 50% { transform: rotate(1deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes en4-center { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-4px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes en4-chandelier { 0% { opacity:.7; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.05) } 100% { opacity:.8; transform:translateX(-50%) scale(.95) } }
@keyframes en4-chain { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-2deg) } }

/* scene: item-knife */
.scn-item-knife {
  background: linear-gradient(180deg, #0c0c1f 0%, #1a1a3e 40%, #2a2a50 70%, #3a2a5a 100%), radial-gradient(ellipse at 50% 90%, #2a2a50 0%, transparent 60%);
}
.scn-item-knife .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%); animation: ik-wall 20s ease-in-out infinite alternate; }
.scn-item-knife .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-item-knife .table { position:absolute; bottom:22%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ik-table 15s ease-in-out infinite; }
.scn-item-knife .knife { position:absolute; bottom:28%; left:38%; width:50px; height:8px; background: linear-gradient(90deg, #8a8a9a 0%, #c0c0d0 40%, #8a8a9a 100%); transform: rotate(-15deg); border-radius: 2px 8px 8px 2px; box-shadow: 0 2px 4px rgba(0,0,0,.7); animation: ik-knife 4s ease-in-out infinite; }
.scn-item-knife .shadow { position:absolute; bottom:28%; left:38%; width:50px; height:4px; background: rgba(0,0,0,.5); transform: rotate(-15deg) translate(4px,6px); border-radius: 2px; filter: blur(2px); animation: ik-shadow 4s ease-in-out infinite; }
.scn-item-knife .glint { position:absolute; bottom:30%; left:56%; width:6px; height:6px; background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0) 100%); border-radius: 50%; box-shadow: 0 0 8px 4px rgba(255,255,255,.3); animation: ik-glint 2s ease-in-out infinite alternate; }

@keyframes ik-wall {
  0% { opacity:0.8; }
  50% { opacity:0.9; }
  100% { opacity:0.75; }
}
@keyframes ik-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ik-knife {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-14deg) scale(1.01); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes ik-shadow {
  0% { transform: rotate(-15deg) translate(4px,6px) scale(1); opacity:0.5; }
  50% { transform: rotate(-14deg) translate(4px,6px) scale(1.1); opacity:0.6; }
  100% { transform: rotate(-15deg) translate(4px,6px) scale(1); opacity:0.5; }
}
@keyframes ik-glint {
  0% { opacity:0.3; transform: scale(1); }
  100% { opacity:1; transform: scale(1.3); }
}

/* scene: knife details */
.scn-knife-details {
  background: linear-gradient(180deg, #0a0a1f 0%, #151530 50%, #25254a 100%), radial-gradient(ellipse at 20% 80%, #1a1a3a 0%, transparent 70%);
}
.scn-knife-details .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #151530 0%, #0a0a1a 100%); animation: kd-wall 30s ease-in-out infinite alternate; }
.scn-knife-details .book { position:absolute; bottom:25%; left:25%; width:45%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-knife-details .knife { position:absolute; bottom:30%; left:28%; width:60px; height:6px; background: linear-gradient(90deg, #6a6a7a 0%, #a0a0b0 50%, #6a6a7a 100%); transform: rotate(5deg); border-radius: 2px 10px 10px 2px; box-shadow: 0 2px 4px rgba(0,0,0,.7); animation: kd-knife 8s ease-in-out infinite; }
.scn-knife-details .drawer { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-top: 2px solid #2a1a1a; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-knife-details .page { position:absolute; bottom:30%; left:30%; width:35%; height:8%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: kd-page 10s ease-in-out infinite alternate; }

@keyframes kd-wall {
  0% { opacity:0.85; }
  50% { opacity:0.95; }
  100% { opacity:0.8; }
}
@keyframes kd-knife {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(4deg) translateX(3px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes kd-page {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(-1deg) scaleX(1.02); }
  100% { transform: rotate(-2deg) scaleX(1); }
}

/* scene: prince-knows */
.scn-prince-knows {
  background: linear-gradient(180deg, #12122a 0%, #1a1a3e 40%, #2a1a3a 80%, #1a1a2a 100%), radial-gradient(ellipse at 50% 70%, #2a1a3a 0%, transparent 60%);
}
.scn-prince-knows .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); animation: pk-wall 25s ease-in-out infinite alternate; }
.scn-prince-knows .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-prince-knows .figure-left { position:absolute; bottom:10%; left:15%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: pk-figure-left 6s ease-in-out infinite; }
.scn-prince-knows .figure-right { position:absolute; bottom:10%; right:15%; width:65px; height:105px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-3deg); box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: pk-figure-right 6s ease-in-out infinite reverse; }
.scn-prince-knows .wound { position:absolute; bottom:50%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #5e1a1d 0%, #4a1013 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(94,26,29,.4); animation: pk-wound 3s ease-in-out infinite alternate; }
.scn-prince-knows .shadow-blob { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: rgba(0,0,0,.4); filter: blur(12px); border-radius: 50%; animation: pk-shadow 12s ease-in-out infinite; }

@keyframes pk-wall {
  0% { opacity:0.7; }
  50% { opacity:0.85; }
  100% { opacity:0.7; }
}
@keyframes pk-figure-left {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes pk-figure-right {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes pk-wound {
  0% { opacity:0.6; transform: scale(1); }
  100% { opacity:1; transform: scale(1.2); }
}
@keyframes pk-shadow {
  0% { transform: translateX(-5px) scale(1); opacity:0.4; }
  50% { transform: translateX(5px) scale(1.1); opacity:0.5; }
  100% { transform: translateX(-5px) scale(1); opacity:0.4; }
}

/* scene: footsteps */
.scn-footsteps {
  background: linear-gradient(180deg, #0a0a1f 0%, #1a1a3a 40%, #1a1a2a 70%, #0a0a1a 100%), radial-gradient(ellipse at 30% 70%, #1a1a3a 0%, transparent 80%);
}
.scn-footsteps .wall-left { position:absolute; inset:0 60% 20% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: fs-wall 25s ease-in-out infinite alternate; }
.scn-footsteps .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-footsteps .door { position:absolute; bottom:20%; left:5%; width:25%; height:55%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border: 2px solid #2a1a1a; border-radius: 4px; box-shadow: -6px 0 12px rgba(0,0,0,.5); animation: fs-door 20s ease-in-out infinite; }
.scn-footsteps .figure-a { position:absolute; bottom:16%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(0deg); animation: fs-figure-a 5s ease-in-out infinite; }
.scn-footsteps .figure-b { position:absolute; bottom:16%; right:20%; width:50px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(0deg); animation: fs-figure-b 5s ease-in-out infinite 0.5s; }
.scn-footsteps .window { position:absolute; top:10%; right:10%; width:30%; height:30%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3a 100%); border: 2px solid #2a1a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,20,.4); }
.scn-footsteps .moonlight { position:absolute; top:10%; right:10%; width:30%; height:30%; background: linear-gradient(135deg, rgba(100,100,160,.15) 0%, transparent 60%); filter: blur(15px); animation: fs-moon 12s ease-in-out infinite alternate; }

@keyframes fs-wall {
  0% { opacity:0.8; }
  50% { opacity:0.9; }
  100% { opacity:0.8; }
}
@keyframes fs-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes fs-figure-a {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fs-figure-b {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fs-moon {
  0% { opacity:0.3; transform: scale(1) translate(0,0); }
  50% { opacity:0.5; transform: scale(1.1) translate(5px,5px); }
  100% { opacity:0.3; transform: scale(1) translate(0,0); }
}

/* Scene 1: prince-on-execution-2 (peo) */
.scn-prince-on-execution-2 {
  background:
    linear-gradient(180deg, #0f0a0a 0%, #1a1010 40%, #261818 100%),
    radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 70%);
}
.scn-prince-on-execution-2 .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0505 0%, transparent 100%); animation: peo-flicker 8s ease-in-out infinite alternate;
}
.scn-prince-on-execution-2 .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%; background: linear-gradient(90deg, #2a1a1a 0%, #1a0e0e 50%, #2a1a1a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-prince-on-execution-2 .scaffold {
  position: absolute; bottom: 15%; left: 50%; width: 200px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.9); animation: peo-sway 6s ease-in-out infinite;
}
.scn-prince-on-execution-2 .condemned {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: peo-figure 4s ease-in-out infinite;
}
.scn-prince-on-execution-2 .lantern {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 24px; background: radial-gradient(circle, #d46a2a 0%, #8a3a1a 60%, transparent 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 40px 10px #b04a1a, 0 0 80px 20px rgba(176,74,26,0.3); animation: peo-lantern 3s ease-in-out infinite alternate;
}
.scn-prince-on-execution-2 .rope {
  position: absolute; bottom: 55%; left: 50%; width: 4px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 2px; animation: peo-rope 4s ease-in-out infinite;
}
.scn-prince-on-execution-2 .vignette {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.8) 100%); pointer-events: none; animation: peo-vign 12s ease-in-out infinite alternate;
}
@keyframes peo-flicker { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes peo-sway { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes peo-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes peo-lantern { 0% { box-shadow: 0 0 20px 5px #b04a1a; } 50% { box-shadow: 0 0 50px 15px #d46a2a, 0 0 100px 30px rgba(212,106,42,0.4); } 100% { box-shadow: 0 0 30px 8px #b04a1a; } }
@keyframes peo-rope { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes peo-vign { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* Scene 2: servant-sympathetic (ssv) */
.scn-servant-sympathetic {
  background:
    linear-gradient(180deg, #0d0808 0%, #1a1210 50%, #261c18 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a12 0%, transparent 70%);
}
.scn-servant-sympathetic .room-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0f0a08 0%, #1a1210 50%, #0f0a08 100%); animation: ssv-room 20s ease-in-out infinite alternate;
}
.scn-servant-sympathetic .table {
  position: absolute; bottom: 10%; left: 50%; width: 160px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.8); animation: ssv-table 8s ease-in-out infinite;
}
.scn-servant-sympathetic .candle {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 40px; background: linear-gradient(180deg, #d4a050 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3); animation: ssv-candle 3s ease-in-out infinite alternate;
}
.scn-servant-sympathetic .prince-figure {
  position: absolute; bottom: 15%; left: 35%; width: 28px; height: 70px; background: linear-gradient(180deg, #100a08 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ssv-prince 6s ease-in-out infinite;
}
.scn-servant-sympathetic .servant-figure {
  position: absolute; bottom: 15%; right: 35%; width: 26px; height: 68px; background: linear-gradient(180deg, #0e0a08 0%, #180e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ssv-servant 6s ease-in-out infinite;
}
.scn-servant-sympathetic .chair-back {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #140c08 100%); border-radius: 20% 20% 0 0; box-shadow: 0 10px 15px rgba(0,0,0,0.6); animation: ssv-chair 10s ease-in-out infinite;
}
.scn-servant-sympathetic .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #1a120a 0%, #0d0808 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,0.5);
}
@keyframes ssv-room { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ssv-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ssv-candle { 0% { box-shadow: 0 0 20px 5px #b08040; opacity: 0.9; } 50% { box-shadow: 0 0 50px 15px #d4a050, 0 0 100px 30px rgba(212,160,80,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08040; opacity: 0.9; } }
@keyframes ssv-prince { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ssv-servant { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ssv-chair { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* Scene 3: prince-philosophy-execution (ppe) */
.scn-prince-philosophy-execution {
  background:
    linear-gradient(180deg, #0a0505 0%, #151010 40%, #2a1818 100%),
    radial-gradient(ellipse at 50% 20%, #3a1a1a 0%, transparent 60%);
}
.scn-prince-philosophy-execution .cell-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0505 0%, #0f0808 50%, #1a0e0e 100%); animation: ppe-bg 12s ease-in-out infinite alternate;
}
.scn-prince-philosophy-execution .bars {
  position: absolute; inset: 5% 10%; background: repeating-linear-gradient(0deg, #2a1a1a 0px, #2a1a1a 4px, transparent 4px, transparent 40px); filter: drop-shadow(0 0 5px rgba(0,0,0,0.8)); animation: ppe-bars 8s ease-in-out infinite;
}
.scn-prince-philosophy-execution .prince-profile {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 60px; background: linear-gradient(180deg, #0d0808 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); /* profile silhouette */ transform: scaleX(-1); animation: ppe-profile 9s ease-in-out infinite;
}
.scn-prince-philosophy-execution .hand {
  position: absolute; bottom: 15%; left: 45%; width: 12px; height: 18px; background: #1a0e0e; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: ppe-hand 5s ease-in-out infinite;
}
.scn-prince-philosophy-execution .light-ray {
  position: absolute; top: 0; left: 20%; width: 4px; height: 100%; background: linear-gradient(180deg, #d4a050 0%, transparent 80%); opacity: 0.3; transform: skewX(-10deg); animation: ppe-ray 6s ease-in-out infinite alternate;
}
.scn-prince-philosophy-execution .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%; background: radial-gradient(ellipse, #000 0%, transparent 70%); animation: ppe-pool 10s ease-in-out infinite;
}
@keyframes ppe-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ppe-bars { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.6; transform: scaleY(1); } }
@keyframes ppe-profile { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes ppe-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ppe-ray { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }
@keyframes ppe-pool { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

/* Scene 4: servant-offers-smoke (sos) - calm mood */
.scn-servant-offers-smoke {
  background:
    linear-gradient(180deg, #0f0a08 0%, #1a1410 40%, #241e1a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a12 0%, transparent 70%);
}
.scn-servant-offers-smoke .room-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0a08 0%, #16100c 50%, #1a1410 100%); animation: sos-room 15s ease-in-out infinite alternate;
}
.scn-servant-offers-smoke .table-smoke {
  position: absolute; bottom: 10%; left: 50%; width: 140px; height: 25px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: sos-table 10s ease-in-out infinite;
}
.scn-servant-offers-smoke .candle-smoke {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 30px; background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 8px #b07030; animation: sos-candle 4s ease-in-out infinite alternate;
}
.scn-servant-offers-smoke .servant-arm {
  position: absolute; bottom: 20%; right: 30%; width: 10px; height: 40px; background: #1a0e0a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-30deg) translateX(10px); animation: sos-arm 5s ease-in-out infinite;
}
.scn-servant-offers-smoke .pipe {
  position: absolute; bottom: 35%; right: 25%; width: 14px; height: 8px; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); box-shadow: 0 2px 5px rgba(0,0,0,0.5); animation: sos-pipe 4s ease-in-out infinite;
}
.scn-servant-offers-smoke .smoke-wisp {
  position: absolute; bottom: 40%; right: 24%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: sos-smoke1 8s ease-in-out infinite;
}
.scn-servant-offers-smoke .smoke-wisp2 {
  position: absolute; bottom: 42%; right: 26%; width: 15px; height: 15px; background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: sos-smoke2 10s ease-in-out infinite;
}
.scn-servant-offers-smoke .hearth-glow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 80%); opacity: 0.4; animation: sos-hearth 6s ease-in-out infinite alternate;
}
@keyframes sos-room { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sos-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sos-candle { 0% { box-shadow: 0 0 15px 5px #b07030; opacity: 0.9; } 50% { box-shadow: 0 0 40px 12px #d08040, 0 0 80px 20px rgba(208,128,64,0.3); opacity: 1; } 100% { box-shadow: 0 0 20px 6px #b07030; opacity: 0.9; } }
@keyframes sos-arm { 0% { transform: rotate(-30deg) translateX(10px); } 50% { transform: rotate(-25deg) translateX(12px); } 100% { transform: rotate(-30deg) translateX(10px); } }
@keyframes sos-pipe { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sos-smoke1 { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(-10px, -20px) scale(1.5); opacity: 0.5; } 100% { transform: translate(-20px, -40px) scale(2); opacity: 0; } }
@keyframes sos-smoke2 { 0% { transform: translate(0, 0) scale(1); opacity: 0.1; } 50% { transform: translate(5px, -15px) scale(1.3); opacity: 0.4; } 100% { transform: translate(10px, -30px) scale(1.8); opacity: 0; } }
@keyframes sos-hearth { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-hippolyte-story-of-meeting { background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #e6f2fa 100%), radial-gradient(ellipse at 50% 100%, #d4e8f0 0%, transparent 70%); }
.scn-hippolyte-story-of-meeting .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #9fc5e8 0%, #e6f2fa 100%); animation: hsm-sky 20s ease-in-out infinite alternate; }
.scn-hippolyte-story-of-meeting .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-hippolyte-story-of-meeting .tree { position:absolute; bottom:45%; left:15%; width:12px; height:35%; background: linear-gradient(180deg, #4a3c31 0%, #2a1f1a 100%); border-radius: 6px; transform: rotate(-2deg); animation: hsm-tree 15s ease-in-out infinite alternate; }
.scn-hippolyte-story-of-meeting .bench { position:absolute; bottom:35%; left:30%; width:70px; height:12px; background: linear-gradient(90deg, #5c3a1e, #3b2613); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: hsm-bench 8s ease-in-out infinite; }
.scn-hippolyte-story-of-meeting .figure { position:absolute; bottom:36%; left:42%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsm-figure 5s ease-in-out infinite; }
.scn-hippolyte-story-of-meeting .sunrays { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 70% 20%, rgba(255,255,200,.3) 0%, transparent 60%); animation: hsm-rays 12s ease-in-out infinite alternate; }
@keyframes hsm-sky    { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes hsm-tree   { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes hsm-bench  { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px) translateY(-1px); } }
@keyframes hsm-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes hsm-rays  { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .9; transform: scale(1.02); } 100% { opacity: .7; transform: scale(.98); } }

.scn-aglaya-rebuffs-gania { background: linear-gradient(180deg, #f5e6ca 0%, #f0d9b5 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%); }
.scn-aglaya-rebuffs-gania .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d5b0 0%, #d9c5a0 100%); }
.scn-aglaya-rebuffs-gania .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c4a982 0%, #a88d6a 100%); }
.scn-aglaya-rebuffs-gania .window { position:absolute; top:10%; right:15%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #cce8ff 0%, #a0c8e8 100%); border: 8px solid #8b7355; border-radius: 4px; animation: arg-window 15s ease-in-out infinite alternate; }
.scn-aglaya-rebuffs-gania .chair { position:absolute; bottom:35%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #6b4c3a 0%, #4a3224 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
.scn-aglaya-rebuffs-gania .figure-aglaya { position:absolute; bottom:35%; left:30%; width:18px; height:38px; background: linear-gradient(180deg, #f0d0a0 0%, #d4b882 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: arg-aglaya 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-aglaya-rebuffs-gania .figure-gania { position:absolute; bottom:35%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: arg-gania 4s ease-in-out infinite; }
.scn-aglaya-rebuffs-gania .sparkle { position:absolute; top:30%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #fff8b0 0%, transparent 70%); border-radius: 50%; animation: arg-sparkle 2s ease-in-out infinite; box-shadow: 0 0 20px 6px rgba(255,248,176,.6); }
@keyframes arg-window  { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes arg-aglaya  { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-8px) rotate(5deg); } 40% { transform: translateY(-2px) rotate(-3deg); } 60% { transform: translateY(-6px) rotate(2deg); } 80% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes arg-gania   { 0%,100% { transform: translateX(0); } 50% { transform: translateX(8px) rotate(-4deg); } }
@keyframes arg-sparkle { 0% { transform: scale(1) rotate(0deg); opacity: 0; } 20% { opacity: 1; transform: scale(1.5) rotate(36deg); } 40% { opacity: 0; transform: scale(0.5) rotate(72deg); } 100% { opacity: 0; transform: scale(0) rotate(0); } }

.scn-hippolyte-reveals-plan { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 100%), radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%); }
.scn-hippolyte-reveals-plan .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-hippolyte-reveals-plan .table { position:absolute; bottom:35%; left:20%; right:20%; height:12px; background: linear-gradient(90deg, #2a1f1a, #1a1210); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hrp-table 12s ease-in-out infinite; }
.scn-hippolyte-reveals-plan .candle { position:absolute; bottom:45%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1f1a); border-radius: 2px; transform: translateX(-50%); animation: hrp-candle 5s ease-in-out infinite; }
.scn-hippolyte-reveals-plan .figure-male { position:absolute; bottom:35%; left:25%; width:20px; height:42px; background: linear-gradient(180deg, #0d0d1a 0%, #05050d 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hrp-figure-m 6s ease-in-out infinite; }
.scn-hippolyte-reveals-plan .figure-female { position:absolute; bottom:35%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hrp-figure-f 7s ease-in-out infinite; }
.scn-hippolyte-reveals-plan .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: hrp-shadow 10s ease-in-out infinite alternate; }
@keyframes hrp-table    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hrp-candle   { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes hrp-figure-m { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(12px) rotate(-1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes hrp-figure-f { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-6px) translateY(-3px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes hrp-shadow   { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }

.scn-hippolyte-slap { background: linear-gradient(180deg, #0d0d0d 0%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #2a1a10 0%, transparent 60%); }
.scn-hippolyte-slap .room { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d0d 0%, #1a1210 100%); }
.scn-hippolyte-slap .lamp { position:absolute; top:20%; left:40%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, #ffd070 0%, #5a3a1a 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,208,112,.3); animation: hsl-lamp 4s ease-in-out infinite alternate; }
.scn-hippolyte-slap .figure-slapper { position:absolute; bottom:30%; left:20%; width:22px; height:44px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: hsl-slapper 3s ease-in-out infinite; }
.scn-hippolyte-slap .figure-slapped { position:absolute; bottom:30%; left:50%; width:20px; height:42px; background: linear-gradient(180deg, #0d0d1a 0%, #05050d 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: hsl-slapped 3s ease-in-out infinite reverse; }
.scn-hippolyte-slap .hand { position:absolute; bottom:45%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #2a1a1a, #1a0a0a); border-radius: 30%; transform: rotate(20deg); animation: hsl-hand .8s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-hippolyte-slap .shadow { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); animation: hsl-shadow 6s ease-in-out infinite alternate; }
@keyframes hsl-lamp    { 0% { opacity: .5; box-shadow: 0 0 20px 5px rgba(255,208,112,.2); } 50% { opacity: .9; box-shadow: 0 0 50px 20px rgba(255,208,112,.5); } 100% { opacity: .6; box-shadow: 0 0 30px 10px rgba(255,208,112,.3); } }
@keyframes hsl-slapper { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hsl-slapped { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-12px) rotate(-8deg) scale(.9); } 50% { transform: translateX(-6px) rotate(-4deg) scale(.95); } 75% { transform: translateX(-10px) rotate(-6deg) scale(.92); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes hsl-hand    { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(-8px); } }
@keyframes hsl-shadow  { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }

/* scene: epanchin-family-reflections */
.scn-epanchin-family-reflections { background: linear-gradient(180deg, #e8d8b0 0%, #c4a874 40%, #8c7040 100%), radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 60%); }
.scn-epanchin-family-reflections .window { position:absolute; top:8%; left:10%; width:35%; height:55%; background: linear-gradient(180deg, #fff9e0 0%, #e8d8a0 100%); border-radius:8% 8% 4% 4% / 12% 12% 6% 6%; box-shadow: inset 0 0 30px rgba(255,255,200,.8), 0 4px 12px rgba(0,0,0,.2); animation: efr-window 6s ease-in-out infinite alternate; }
.scn-epanchin-family-reflections .light-ray { position:absolute; top:12%; left:12%; width:30%; height:45%; background: linear-gradient(135deg, rgba(255,255,220,.5) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: efr-ray 8s ease-in-out infinite alternate; }
.scn-epanchin-family-reflections .table { position:absolute; bottom:18%; left:15%; width:50%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius:30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: efr-table 4s ease-in-out infinite; }
.scn-epanchin-family-reflections .family { position:absolute; bottom:24%; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); }
.scn-epanchin-family-reflections .figure-a { left:28%; width:16%; height:38%; transform-origin: bottom center; animation: efr-fig-a 5s ease-in-out infinite; }
.scn-epanchin-family-reflections .figure-b { left:52%; width:14%; height:32%; transform-origin: bottom center; animation: efr-fig-b 6s ease-in-out infinite alternate; }
.scn-epanchin-family-reflections .vase { position:absolute; bottom:26%; left:46%; width:6%; height:12%; background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%); border-radius:40% 40% 50% 50% / 30% 30% 60% 60%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: efr-vase 3s ease-in-out infinite; }
.scn-epanchin-family-reflections .flower { position:absolute; bottom:38%; left:47%; width:3%; height:8%; background: linear-gradient(180deg, #d89070 0%, #b06040 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 8px rgba(200,130,70,.4); animation: efr-flower 4s ease-in-out infinite alternate; }
.scn-epanchin-family-reflections .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); }
@keyframes efr-window { 0% { opacity:.9; box-shadow: inset 0 0 20px rgba(255,255,200,.6), 0 4px 12px rgba(0,0,0,.2) } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,255,220,.9), 0 6px 18px rgba(0,0,0,.25) } 100% { opacity:.92; box-shadow: inset 0 0 25px rgba(255,255,200,.7), 0 4px 12px rgba(0,0,0,.2) } }
@keyframes efr-ray { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.05) } 100% { opacity:.35; transform: scaleX(.98) } }
@keyframes efr-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes efr-fig-a { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes efr-fig-b { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes efr-vase { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes efr-flower { 0% { transform: rotate(-4deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(1) } }

/* scene: pavlofsk-vauxhall-incident */
.scn-pavlofsk-vauxhall-incident { background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 40%, #7a9aa8 100%), radial-gradient(ellipse at 50% 80%, #d0e0e8 0%, transparent 60%); }
.scn-pavlofsk-vauxhall-incident .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c8d8 0%, #d0e0e8 100%); animation: pvi-sky 12s ease-in-out infinite alternate; }
.scn-pavlofsk-vauxhall-incident .treetop { position:absolute; top:5%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 100%, #5a7a4a 0%, transparent 70%); border-radius:50%; filter: blur(3px); }
.scn-pavlofsk-vauxhall-incident .treetop-left { left:12%; animation: pvi-tree-left 20s ease-in-out infinite alternate; }
.scn-pavlofsk-vauxhall-incident .treetop-right { right:12%; animation: pvi-tree-right 25s ease-in-out infinite alternate; }
.scn-pavlofsk-vauxhall-incident .bandstand { position:absolute; bottom:30%; left:50%; width:30%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #c0a880 0%, #8a6e50 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 6px 18px rgba(0,0,0,.3); animation: pvi-bandstand 8s ease-in-out infinite; }
.scn-pavlofsk-vauxhall-incident .bandstand-roof { position:absolute; bottom:65%; left:50%; width:34%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #c06040 0%, #a04828 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pvi-roof 6s ease-in-out infinite alternate; }
.scn-pavlofsk-vauxhall-incident .figure { position:absolute; bottom:18%; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); }
.scn-pavlofsk-vauxhall-incident .figure-woman-a { left:36%; width:8%; height:36%; transform-origin: bottom center; animation: pvi-walk-a 7s ease-in-out infinite; }
.scn-pavlofsk-vauxhall-incident .figure-woman-b { right:32%; width:7%; height:32%; transform-origin: bottom center; animation: pvi-walk-b 8s ease-in-out infinite alternate; }
.scn-pavlofsk-vauxhall-incident .fountain { position:absolute; bottom:20%; left:30%; width:12%; height:20%; background: linear-gradient(180deg, #809098 0%, #506070 100%); border-radius:50% 50% 40% 40% / 30% 30% 60% 60%; box-shadow: 0 0 20px rgba(100,140,180,.5); animation: pvi-fountain 4s ease-in-out infinite alternate; }
@keyframes pvi-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pvi-tree-left { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) } }
@keyframes pvi-tree-right { 0% { transform: rotate(0) } 50% { transform: rotate(-3deg) scale(1.03) } 100% { transform: rotate(0) } }
@keyframes pvi-bandstand { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes pvi-roof { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.04) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes pvi-walk-a { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes pvi-walk-b { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-10px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pvi-fountain { 0% { opacity:.7; box-shadow: 0 0 15px rgba(100,140,180,.4) } 50% { opacity:1; box-shadow: 0 0 30px rgba(120,160,200,.7) } 100% { opacity:.75; box-shadow: 0 0 18px rgba(100,140,180,.5) } }

/* scene: pavlofsk-villa-aftermath */
.scn-pavlofsk-villa-aftermath { background: linear-gradient(180deg, #2a1a3a 0%, #4a2a4a 30%, #6a3a4a 70%, #2a1a1a 100%), radial-gradient(ellipse at 70% 30%, #8a4a4a 0%, transparent 80%); }
.scn-pavlofsk-villa-aftermath .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a5a 0%, #6a4a5a 50%, #3a2a3a 100%); animation: pva-sky 10s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-aftermath .door-frame { position:absolute; bottom:10%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius:10% 10% 4% 4% / 20% 20% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 8px 20px rgba(0,0,0,.6); animation: pva-door 4s ease-in-out infinite; }
.scn-pavlofsk-villa-aftermath .door-step { position:absolute; bottom:8%; left:38%; width:24%; height:6%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10% / 80% 80% 20% 20%; animation: pva-step 6s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-aftermath .figure { position:absolute; bottom:16%; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%); }
.scn-pavlofsk-villa-aftermath .figure-left { left:42%; width:10%; height:35%; transform-origin: bottom center; animation: pva-fig-left 5s ease-in-out infinite; }
.scn-pavlofsk-villa-aftermath .figure-right { left:56%; width:9%; height:38%; transform-origin: bottom center; animation: pva-fig-right 5s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-aftermath .storm-cloud { position:absolute; top:5%; left:20%; width:60%; height:20%; background: radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 70%); filter: blur(6px); animation: pva-storm 8s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-aftermath .lightning { position:absolute; top:10%; right:30%; width:2%; height:15%; background: #d0c0a0; clip-path: polygon(50% 0, 55% 30%, 40% 40%, 60% 60%, 45% 80%, 50% 100%); box-shadow: 0 0 20px #d0c0a0, 0 0 40px rgba(208,192,160,.5); animation: pva-lightning 2s ease-in-out infinite; }
.scn-pavlofsk-villa-aftermath .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%); }
@keyframes pva-sky { 0% { opacity:.8; background-position: 0 0 } 50% { opacity:1; background-position: 0 5% } 100% { opacity:.85; background-position: 0 0 } }
@keyframes pva-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes pva-step { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pva-fig-left { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pva-fig-right { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-5px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes pva-storm { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.35; transform: scale(1.02) } }
@keyframes pva-lightning { 0%,80%,100% { opacity:0 } 10%,30% { opacity:.9 } 40%,60% { opacity:.3 } }

/* scene: pavlofsk-park-night */
.scn-pavlofsk-park-night { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%); }
.scn-pavlofsk-park-night .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); animation: ppn-sky 15s ease-in-out infinite alternate; }
.scn-pavlofsk-park-night .tree { position:absolute; bottom:20%; }
.scn-pavlofsk-park-night .trunk { left:35%; width:4%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 2px 0 8px rgba(0,0,0,.4); animation: ppn-trunk 12s ease-in-out infinite; }
.scn-pavlofsk-park-night .canopy { left:28%; width:18%; height:40%; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: ppn-canopy 20s ease-in-out infinite alternate; }
.scn-pavlofsk-park-night .bench { position:absolute; bottom:18%; left:50%; width:20%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ppn-bench 6s ease-in-out infinite alternate; }
.scn-pavlofsk-park-night .figure { position:absolute; bottom:20%; left:45%; width:8%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppn-figure 8s ease-in-out infinite; }
.scn-pavlofsk-park-night .lantern { position:absolute; bottom:30%; left:44%; width:3%; height:10%; background: linear-gradient(180deg, #c0a040 0%, #806020 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px #c0a040, 0 0 40px rgba(192,160,64,.4); animation: ppn-lantern 4s ease-in-out infinite alternate; }
.scn-pavlofsk-park-night .bush { position:absolute; bottom:15%; right:20%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 80%); border-radius:50%; filter: blur(3px); animation: ppn-bush 25s ease-in-out infinite alternate; }
@keyframes ppn-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ppn-trunk { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes ppn-canopy { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(-2deg) } }
@keyframes ppn-bench { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ppn-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ppn-lantern { 0% { opacity:.7; box-shadow: 0 0 15px #c0a040, 0 0 30px rgba(192,160,64,.3) } 50% { opacity:1; box-shadow: 0 0 30px #e0c060, 0 0 60px rgba(224,192,96,.5) } 100% { opacity:.75; box-shadow: 0 0 18px #c0a040, 0 0 35px rgba(192,160,64,.35) } }
@keyframes ppn-bush { 0% { transform: scale(1) } 50% { transform: scale(1.08) } 100% { transform: scale(1) } }

/* Scene 1: epanchin-sisterly-bond (warm bright-interior) */
.scn-epanchin-sisterly-bond { background: linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 50%, #c8a878 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 80%); }
.scn-epanchin-sisterly-bond .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #d4b88c 0%, #b8976a 100%); }
.scn-epanchin-sisterly-bond .window-light { position:absolute; top:10%; left:15%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0d8a0 60%, transparent 100%); filter: blur(8px); animation: esb-sun 8s ease-in-out infinite alternate; }
.scn-epanchin-sisterly-bond .sofa { position:absolute; bottom:20%; left:25%; width:55%; height:30%; background: linear-gradient(180deg, #8b6b4a 0%, #6a4f32 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 12px 20px rgba(0,0,0,0.3); }
.scn-epanchin-sisterly-bond .figure { position:absolute; bottom:20%; width:12%; height:25%; background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-epanchin-sisterly-bond .figure-a { left:28%; animation: esb-sit 6s ease-in-out infinite; }
.scn-epanchin-sisterly-bond .figure-b { left:44%; animation: esb-sit 6s ease-in-out infinite 1.5s; }
.scn-epanchin-sisterly-bond .figure-c { left:60%; animation: esb-sit 6s ease-in-out infinite 3s; }
.scn-epanchin-sisterly-bond .lamp-glow { position:absolute; bottom:32%; right:20%; width:8%; aspect-ratio:1/1; background: radial-gradient(circle, #ffd080 0%, #e0a040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(224,160,64,0.4); animation: esb-flicker 3s ease-in-out infinite alternate; }
.scn-epanchin-sisterly-bond .table { position:absolute; bottom:18%; left:40%; width:20%; height:6%; background: #7a5f3e; border-radius:10%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); }
@keyframes esb-sun { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }
@keyframes esb-sit { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes esb-flicker { 0% { opacity:0.8; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.85; transform: scale(0.95) } }

/* Scene 2: prince-at-epanchin-door (tense dim-interior) */
.scn-prince-at-epanchin-door { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0d0d1a 100%), radial-gradient(ellipse at 60% 50%, #4a4a5a 0%, transparent 80%); }
.scn-prince-at-epanchin-door .hallway { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #2e2e42 50%, #1a1a2e 100%); }
.scn-prince-at-epanchin-door .doorway { position:absolute; left:35%; top:5%; width:30%; height:95%; background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 30px rgba(0,0,0,0.5); }
.scn-prince-at-epanchin-door .door { position:absolute; left:35%; top:5%; width:30%; height:95%; background: linear-gradient(135deg, #5a4020 0%, #3a2a10 100%); border-radius: 5% 5% 0 0; transform: scaleX(0.9); transform-origin: left; box-shadow: 0 0 20px rgba(0,0,0,0.7); animation: paed-swing 15s ease-in-out infinite; }
.scn-prince-at-epanchin-door .prince-figure { position:absolute; bottom:15%; left:38%; width:10%; height:35%; background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: paed-step 5s ease-in-out infinite; }
.scn-prince-at-epanchin-door .servant-figure { position:absolute; bottom:18%; right:30%; width:10%; height:30%; background: linear-gradient(180deg, #2e2e40 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: paed-bow 6s ease-in-out infinite; }
.scn-prince-at-epanchin-door .light-spill { position:absolute; bottom:10%; left:40%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, #c0a060 0%, transparent 80%); opacity:0.3; animation: paed-glow 4s ease-in-out infinite alternate; }
.scn-prince-at-epanchin-door .shadow-floor { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); border-radius: 50%; filter: blur(4px); }
@keyframes paed-swing { 0%,100% { transform: scaleX(0.9) } 50% { transform: scaleX(0.85) } }
@keyframes paed-step { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes paed-bow { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(4px) rotate(5deg) } }
@keyframes paed-glow { 0% { opacity:0.2; transform: scale(0.95) } 100% { opacity:0.4; transform: scale(1.05) } }

/* Scene 3: prince-waiting-antechamber (tense dim-interior) */
.scn-prince-waiting-antechamber { background: linear-gradient(180deg, #2c243c 0%, #1c1428 50%, #120c1a 100%), radial-gradient(ellipse at 50% 60%, #3c304c 0%, transparent 80%); }
.scn-prince-waiting-antechamber .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(180deg, #3a3040 0%, #2a2030 100%); }
.scn-prince-waiting-antechamber .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(180deg, #2e2438 0%, #1e1428 100%); }
.scn-prince-waiting-antechamber .door { position:absolute; top:10%; left:35%; width:30%; height:80%; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-prince-waiting-antechamber .chair { position:absolute; bottom:10%; width:12%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-prince-waiting-antechamber .servant-chair { left:20%; }
.scn-prince-waiting-antechamber .prince-chair { right:20%; animation: pwa-rock 7s ease-in-out infinite; }
.scn-prince-waiting-antechamber .bundle { position:absolute; bottom:12%; left:45%; width:8%; height:6%; background: #5a4a3a; border-radius: 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-prince-waiting-antechamber .lamp { position:absolute; bottom:40%; left:45%; width:4%; height:12%; background: #4a3a2a; border-radius: 10%; }
.scn-prince-waiting-antechamber .lamp-glow { position:absolute; bottom:38%; left:44%; width:8%; aspect-ratio:1/1; background: radial-gradient(circle, #e0b060 0%, #c09040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,144,64,0.3); animation: pwa-flicker 3s ease-in-out infinite alternate; }
.scn-prince-waiting-antechamber .carpet { position:absolute; bottom:0; left:10%; width:80%; height:10%; background: linear-gradient(90deg, #4a2a1a 0%, #5a3a2a 50%, #4a2a1a 100%); border-radius: 20% 20% 0 0; }
@keyframes pwa-rock { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } }
@keyframes pwa-flicker { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.98) } }

/* Scene 4: prince-servant-conversation (calm dim-interior) */
.scn-prince-servant-conversation { background: linear-gradient(180deg, #3c3c4c 0%, #2c2c3a 50%, #1c1c2a 100%), radial-gradient(ellipse at 50% 40%, #4c4c5c 0%, transparent 80%); }
.scn-prince-servant-conversation .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2e3a 0%, #1a1e2a 100%); }
.scn-prince-servant-conversation .table { position:absolute; bottom:25%; left:35%; width:30%; height:8%; background: #3a2a1a; border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-prince-servant-conversation .candle { position:absolute; bottom:32%; left:48%; width:2%; height:10%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 20%; }
.scn-prince-servant-conversation .candle-glow { position:absolute; bottom:30%; left:46%; width:8%; aspect-ratio:1/1; background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(224,160,64,0.3); animation: psc-flicker 5s ease-in-out infinite alternate; }
.scn-prince-servant-conversation .figure { position:absolute; bottom:15%; width:12%; height:28%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; }
.scn-prince-servant-conversation .prince { left:30%; animation: psc-breathe 8s ease-in-out infinite; }
.scn-prince-servant-conversation .servant { right:30%; animation: psc-breathe 8s ease-in-out infinite 4s; }
.scn-prince-servant-conversation .wall-shadow { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-prince-servant-conversation .floor { position:absolute; bottom:0; left:0; width:100%; height:15%; background: linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); }
@keyframes psc-flicker { 0% { opacity:0.7; transform: scale(0.98) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.75; transform: scale(0.99) } }
@keyframes psc-breathe { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }

.scn-after-meeting-night { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-after-meeting-night .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: amn-wall 12s ease-in-out infinite alternate; }
.scn-after-meeting-night .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: amn-floor 18s ease-in-out infinite alternate; }
.scn-after-meeting-night .door { position:absolute; bottom:30%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: amn-door 9s ease-in-out infinite; }
.scn-after-meeting-night .lamp { position:absolute; bottom:50%; left:30%; width:12px; height:16px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,.4); animation: amn-lamp 3s ease-in-out infinite alternate; }
.scn-after-meeting-night .figure { position:absolute; bottom:28%; left:42%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: amn-figure 4s ease-in-out infinite; }
.scn-after-meeting-night .shadow { position:absolute; bottom:28%; left:50%; width:80px; height:10px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(4px); transform: translateX(-50%) scaleX(1.2); animation: amn-shadow 6s ease-in-out infinite alternate; }
.scn-after-meeting-night .flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 55%, rgba(255,200,100,0.08) 0%, transparent 60%); animation: amn-flicker 8s ease-in-out infinite alternate; }
@keyframes amn-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes amn-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes amn-door { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(1deg) scaleY(1.02) } 75% { transform: translateX(-50%) rotate(-1deg) scaleY(0.98) } }
@keyframes amn-lamp { 0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 32px 10px #ffd060, 0 0 64px 18px rgba(255,208,96,.5); opacity:1 } 100% { box-shadow: 0 0 22px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.35); opacity:.9 } }
@keyframes amn-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes amn-shadow { 0% { opacity:0.3; transform: translateX(-50%) scaleX(1) } 50% { opacity:0.6; transform: translateX(-50%) scaleX(1.3) } 100% { opacity:0.4; transform: translateX(-50%) scaleX(1.1) } }
@keyframes amn-flicker { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-epanchin-anger { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 60%); }
.scn-epanchin-anger .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0000 0%, #1a0a0a 100%); animation: eang-deep 10s ease-in-out infinite alternate; }
.scn-epanchin-anger .bg-mid { position:absolute; inset:10% 10% 20% 10%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); animation: eang-mid 15s ease-in-out infinite alternate; }
.scn-epanchin-anger .table { position:absolute; bottom:15%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:30% 30% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: eang-table 8s ease-in-out infinite; }
.scn-epanchin-anger .figure-left { position:absolute; bottom:20%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eang-figure-left 4s ease-in-out infinite; }
.scn-epanchin-anger .figure-right { position:absolute; bottom:20%; right:30%; width:24px; height:44px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eang-figure-right 5s ease-in-out infinite; }
.scn-epanchin-anger .vase { position:absolute; bottom:18%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: eang-vase 3s ease-in-out infinite; }
.scn-epanchin-anger .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%); animation: eang-shadow 12s ease-in-out infinite alternate; }
@keyframes eang-deep { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eang-mid { 0% { transform: scale(0.95) } 50% { transform: scale(1) } 100% { transform: scale(0.95) } }
@keyframes eang-table { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes eang-figure-left { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes eang-figure-right { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-4px) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-3deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes eang-vase { 0% { transform: translateX(-50%) rotate(-5deg) scale(1) } 25% { transform: translateX(-50%) rotate(0deg) scale(1.05) } 50% { transform: translateX(-50%) rotate(5deg) scale(1) } 75% { transform: translateX(-50%) rotate(0deg) scale(0.95) } 100% { transform: translateX(-50%) rotate(-5deg) scale(1) } }
@keyframes eang-shadow { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-aglaya-at-varias { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%); }
.scn-aglaya-at-varias .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: avv-floor 15s ease-in-out infinite alternate; }
.scn-aglaya-at-varias .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%); animation: avv-wall 10s ease-in-out infinite alternate; }
.scn-aglaya-at-varias .sofa { position:absolute; bottom:15%; left:25%; width:100px; height:30px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: avv-sofa 12s ease-in-out infinite; }
.scn-aglaya-at-varias .figure { position:absolute; bottom:18%; left:50%; width:20px; height:36px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: avv-figure 6s ease-in-out infinite; }
.scn-aglaya-at-varias .window { position:absolute; top:10%; right:15%; width:50px; height:60px; background: radial-gradient(circle at 50% 50%, #406080 0%, #1a2a3a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 3px rgba(64,96,128,.3); animation: avv-window 20s ease-in-out infinite alternate; }
.scn-aglaya-at-varias .curtain { position:absolute; top:8%; right:10%; width:20px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 20% 20%; transform-origin: top; animation: avv-curtain 8s ease-in-out infinite alternate; }
.scn-aglaya-at-varias .lamp { position:absolute; bottom:30%; left:10%; width:10px; height:14px; background: radial-gradient(circle, #f0d070 0%, #c08040 60%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.3); animation: avv-lamp 4s ease-in-out infinite alternate; }
@keyframes avv-floor { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes avv-wall { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes avv-sofa { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes avv-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(0deg) } 50% { transform: translateX(12px) rotate(2deg) } 75% { transform: translateX(6px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes avv-window { 0% { opacity:0.4; box-shadow: 0 0 8px 2px rgba(64,96,128,.2) } 50% { opacity:1; box-shadow: 0 0 16px 4px rgba(64,96,128,.4) } 100% { opacity:0.6; box-shadow: 0 0 12px 3px rgba(64,96,128,.3) } }
@keyframes avv-curtain { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(4deg) scaleX(1.1) } 100% { transform: rotate(-2deg) scaleX(0.95) } }
@keyframes avv-lamp { 0% { box-shadow: 0 0 12px 3px #c08040, 0 0 24px 6px rgba(192,128,64,.2); opacity:0.8 } 50% { box-shadow: 0 0 24px 8px #f0d070, 0 0 48px 16px rgba(240,208,112,.4); opacity:1 } 100% { box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); opacity:0.9 } }

.scn-gania-fools-himself { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%); }
.scn-gania-fools-himself .stage { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: gfh-stage 20s ease-in-out infinite alternate; }
.scn-gania-fools-himself .figure-gania { position:absolute; bottom:25%; left:35%; width:22px; height:42px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gfh-gania 3s ease-in-out infinite; }
.scn-gania-fools-himself .figure-aglaya { position:absolute; bottom:30%; right:35%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gfh-aglaya 4s ease-in-out infinite; }
.scn-gania-fools-himself .podium { position:absolute; bottom:20%; left:50%; width:60px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: gfh-podium 6s ease-in-out infinite; }
.scn-gania-fools-himself .spotlight { position:absolute; top:0; left:40%; width:20%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.15) 0%, transparent 70%); animation: gfh-spotlight 5s ease-in-out infinite alternate; }
.scn-gania-fools-himself .shadow { position:absolute; bottom:20%; left:30%; width:100px; height:8px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(6px); transform: translateX(-10px); animation: gfh-shadow 4s ease-in-out infinite alternate; }
.scn-gania-fools-himself .heart { position:absolute; top:50%; left:60%; width:16px; height:14px; background: #b87878; border-radius: 50% 50% 50% 50%; transform: rotate(45deg) scale(0.8); box-shadow: 0 0 10px 2px rgba(184,120,120,.3); animation: gfh-heart 2s ease-in-out infinite; }
@keyframes gfh-stage { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gfh-gania { 0% { transform: translateX(0) rotate(-5deg) scale(1) } 25% { transform: translateX(6px) rotate(0deg) scale(1.1) } 50% { transform: translateX(12px) rotate(5deg) scale(1) } 75% { transform: translateX(6px) rotate(0deg) scale(0.9) } 100% { transform: translateX(0) rotate(-5deg) scale(1) } }
@keyframes gfh-aglaya { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-4px) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-3deg) } 75% { transform: translateX(-4px) rotate(0deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes gfh-podium { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes gfh-spotlight { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.2) } 100% { opacity:0.5; transform: scaleX(0.8) } }
@keyframes gfh-shadow { 0% { opacity:0.3; transform: translateX(-10px) scale(1) } 50% { opacity:0.7; transform: translateX(-20px) scale(1.5) } 100% { opacity:0.5; transform: translateX(-10px) scale(1) } }
@keyframes gfh-heart { 0% { transform: rotate(45deg) scale(0.8) } 50% { transform: rotate(45deg) scale(1.2) } 100% { transform: rotate(45deg) scale(0.8) } }

/* lizaveta-reassures – warm sunlit room */
.scn-lizaveta-reassures {
  background: 
    linear-gradient(180deg, #f8e8d0 0%, #fff0d8 40%, #d4c0a8 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e6 0%, transparent 60%);
}
.scn-lizaveta-reassures .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #e6d0b8, #f0dbc2 50%, #d9c0a0);
  opacity: 0.7;
}
.scn-lizaveta-reassures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #8a6e50 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.15);
}
.scn-lizaveta-reassures .window-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #c8a888 0%, #a08060 100%);
  border: 6px solid #7a5e3e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,220,160,0.3);
}
.scn-lizaveta-reassures .sunbeam-left {
  position: absolute; top: 12%; left: 36%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, rgba(255,220,160,0.2) 100%);
  transform: skewX(-8deg);
  filter: blur(4px);
  animation: lr-beam 5s ease-in-out infinite alternate;
}
.scn-lizaveta-reassures .sunbeam-right {
  position: absolute; top: 14%; left: 50%; width: 10%; height: 58%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, rgba(255,220,160,0.1) 100%);
  transform: skewX(6deg);
  filter: blur(4px);
  animation: lr-beam 5s ease-in-out infinite alternate-reverse;
}
.scn-lizaveta-reassures .figure-lizaveta {
  position: absolute; bottom: 18%; right: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 6px rgba(0,0,0,0.2);
  animation: lr-figure 4s ease-in-out infinite;
}
.scn-lizaveta-reassures .light-spot {
  position: absolute; bottom: 12%; left: 45%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: lr-spot 6s ease-in-out infinite alternate;
}
@keyframes lr-beam {
  0% { opacity: 0.4; transform: skewX(-8deg) scaleY(0.95); }
  50% { opacity: 0.8; transform: skewX(-6deg) scaleY(1); }
  100% { opacity: 0.5; transform: skewX(-10deg) scaleY(0.9); }
}
@keyframes lr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes lr-spot {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* family-chimes-in – warm sunlit visit, group leaving */
.scn-family-chimes-in {
  background:
    linear-gradient(180deg, #f0dcc8 0%, #ecd4b8 50%, #d8b898 100%),
    radial-gradient(ellipse at 50% 100%, #eedcc8 0%, transparent 70%);
}
.scn-family-chimes-in .doorway {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3420 100%);
  border-radius: 0 0 8% 8% / 0 0 4% 4%;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.3);
}
.scn-family-chimes-in .corridor-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #d8bea0 0%, #e8d4b8 50%, #d0b490 100%);
}
.scn-family-chimes-in .threshold {
  position: absolute; bottom: 10%; left: 28%; width: 44%; height: 4px;
  background: linear-gradient(90deg, #7a664a, #b09878);
  border-radius: 2px;
}
.scn-family-chimes-in .figure-mother {
  position: absolute; bottom: 14%; left: 38%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #9a8a70 0%, #5a4a38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.9);
  animation: fc-figure 4s ease-in-out infinite;
}
.scn-family-chimes-in .figure-child {
  position: absolute; bottom: 12%; left: 44%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #b09878 0%, #7a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fc-figure 3.5s ease-in-out infinite 0.5s;
}
.scn-family-chimes-in .figure-servant {
  position: absolute; bottom: 15%; right: 35%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #806a4e 0%, #4a3420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: fc-figure 5s ease-in-out infinite 1s;
}
.scn-family-chimes-in .sunlight-floor {
  position: absolute; bottom: 12%; left: 30%; width: 50%; height: 10%;
  background: linear-gradient(90deg, rgba(255,240,200,0.5) 0%, rgba(255,230,180,0.2) 100%);
  filter: blur(8px);
  animation: fc-floor 7s ease-in-out infinite alternate;
}
.scn-family-chimes-in .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,200,0.2) 0%, transparent 60%);
  filter: blur(12px);
  animation: fc-dust 12s linear infinite;
}
@keyframes fc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fc-floor {
  0% { opacity: 0.3; transform: scaleX(0.95); }
  50% { opacity: 0.7; transform: scaleX(1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes fc-dust {
  0% { transform: translateX(0) scale(0.8); opacity: 0.2; }
  50% { transform: translateX(10px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(0) scale(0.8); opacity: 0.2; }
}

/* prince-thinks-of-aglaya – tense dim interior, profile of Aglaya */
.scn-prince-thinks-of-aglaya {
  background:
    linear-gradient(180deg, #1a1e2e 0%, #212640 40%, #0e121a 100%),
    radial-gradient(ellipse at 20% 30%, #2a2e4a 0%, transparent 70%);
}
.scn-prince-thinks-of-aglaya .wall-deep {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0e121a 0%, #161b2a 50%, #0c1018 100%);
  opacity: 0.8;
}
.scn-prince-thinks-of-aglaya .lamp-glow {
  position: absolute; top: 25%; left: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,170,100,0.4) 0%, rgba(150,120,60,0.1) 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: pt-glow 6s ease-in-out infinite alternate;
}
.scn-prince-thinks-of-aglaya .table {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #3a2e20 0%, #1e1810 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-prince-thinks-of-aglaya .figure-prince {
  position: absolute; bottom: 15%; left: 8%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a36 0%, #16161e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  animation: pt-sit 8s ease-in-out infinite;
}
.scn-prince-thinks-of-aglaya .profile-aglaya {
  position: absolute; top: 20%; right: 18%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #c8b898 0%, #a08070 100%);
  border-radius: 50% 40% 40% 50% / 60% 40% 50% 50%;
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.5));
  animation: pt-profile 9s ease-in-out infinite alternate;
}
.scn-prince-thinks-of-aglaya .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.15) 30px, rgba(0,0,0,0.15) 31px);
  animation: pt-bars 12s linear infinite;
}
.scn-prince-thinks-of-aglaya .candle {
  position: absolute; bottom: 30%; left: 12%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0e0a8 0%, #b08040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px 4px rgba(200,150,60,0.3);
  animation: pt-candle 4s ease-in-out infinite alternate;
}
@keyframes pt-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes pt-sit {
  0% { transform: rotate(-3deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(-4deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes pt-profile {
  0% { transform: scaleX(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scaleX(1.05) rotate(2deg); opacity: 0.8; }
  100% { transform: scaleX(1) rotate(-1deg); opacity: 0.6; }
}
@keyframes pt-bars {
  0% { background-position: 0 0; }
  100% { background-position: 0 31px; }
}
@keyframes pt-candle {
  0% { transform: translateY(0) scaleY(1); opacity: 0.7; }
  50% { transform: translateY(-1px) scaleY(1.1); opacity: 1; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}

/* prince-decides-visit – tense dim, feverish watch-checking */
.scn-prince-decides-visit {
  background:
    linear-gradient(180deg, #0c101a 0%, #141a26 40%, #080c12 100%),
    radial-gradient(ellipse at 80% 50%, #1a2230 0%, transparent 60%);
}
.scn-prince-decides-visit .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #080c12 0%, #10141c 50%, #0a0e14 100%);
}
.scn-prince-decides-visit .door {
  position: absolute; bottom: 15%; right: 10%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #3a2e1e 0%, #1e1810 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  border-left: 3px solid #4a3e2e;
}
.scn-prince-decides-visit .doorlight {
  position: absolute; bottom: 25%; right: 12%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(220,190,120,0.3) 0%, transparent 80%);
  filter: blur(6px);
  animation: pd-light 3s ease-in-out infinite alternate;
}
.scn-prince-decides-visit .figure-prince-urgent {
  position: absolute; bottom: 18%; left: 15%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1e1e2a 0%, #0c0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: pd-figure 2s ease-in-out infinite;
}
.scn-prince-decides-visit .pocket-watch {
  position: absolute; bottom: 30%; left: 25%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #e8d090 0%, #b89060 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,170,80,0.5);
  animation: pd-watch 1.5s ease-in-out infinite alternate;
}
.scn-prince-decides-visit .chain {
  position: absolute; bottom: 28%; left: 23%; width: 20px; height: 2px;
  background: linear-gradient(90deg, #c8a860 0%, #a08840 100%);
  border-radius: 1px;
}
.scn-prince-decides-visit .hand {
  position: absolute; bottom: 32%; left: 28%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #2a2a36 0%, #16161e 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: pd-hand 1.5s ease-in-out infinite alternate;
}
.scn-prince-decides-visit .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0c1018 0%, #06080c 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
@keyframes pd-light {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.2); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}
@keyframes pd-figure {
  0% { transform: rotate(2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(3deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pd-watch {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes pd-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-30deg) translateY(-1px); }
}

.scn-reading-continues {
  background:
    linear-gradient(180deg, #1c1a28 0%, #2b253a 50%, #1f1b2e 100%),
    radial-gradient(ellipse at 70% 20%, #3a2e50 0%, transparent 60%);
}
.scn-reading-continues .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #151220 0%, #2a2338 100%);
  animation: rc-bg 12s ease-in-out infinite alternate;
}
.scn-reading-continues .window {
  position: absolute; top: 8%; right: 10%; width: 28%; height: 22%;
  background: linear-gradient(135deg, rgba(200,220,255,.45) 0%, transparent 70%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(200,220,255,.2);
  animation: rc-window 14s ease-in-out infinite;
}
.scn-reading-continues .desk {
  position: absolute; bottom: 20%; left: 15%; width: 55%; height: 6%;
  background: linear-gradient(180deg, #4a3b2e 0%, #2e2218 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-reading-continues .lamp {
  position: absolute; bottom: 26%; left: 22%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0c868 0%, #c08530 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c08530, 0 0 50px 18px rgba(192,133,48,.4);
  animation: rc-lamp 3s ease-in-out infinite alternate;
}
.scn-reading-continues .figure {
  position: absolute; bottom: 18%; left: 24%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2e2a3a 0%, #14101e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure 5s ease-in-out infinite;
}
.scn-reading-continues .bookshelf {
  position: absolute; bottom: 28%; right: 12%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #4a3b2a 0%, #2a1e12 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: rc-shelf 20s linear infinite;
}
.scn-reading-continues .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: rc-shadow 8s ease-in-out infinite alternate;
}
@keyframes rc-bg { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes rc-window { 0% { opacity: .5; transform: scale(.95); } 50% { opacity: .9; transform: scale(1); } 100% { opacity: .6; transform: scale(.98); } }
@keyframes rc-lamp { 0% { box-shadow: 0 0 15px 5px #c08530; } 50% { box-shadow: 0 0 30px 12px #f0c868, 0 0 60px 20px rgba(240,200,104,.3); } 100% { box-shadow: 0 0 18px 6px #c08530; } }
@keyframes rc-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg) scale(1.01); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rc-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rc-shadow { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

.scn-walk-announcement {
  background:
    linear-gradient(180deg, #87c0e0 0%, #c0e8ff 40%, #ecd8a8 100%),
    radial-gradient(ellipse at 70% 10%, #ffe090 0%, transparent 70%);
}
.scn-walk-announcement .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d8ff 0%, #e0f0ff 80%);
  animation: wa-sky 10s ease-in-out infinite alternate;
}
.scn-walk-announcement .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(0deg, #8a7a5a 0%, #b8a880 100%);
  border-radius: 20% 10% 0 0 / 15% 10% 0 0;
}
.scn-walk-announcement .figure-main {
  position: absolute; bottom: 26%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa-gesture 0.8s ease-in-out infinite;
}
.scn-walk-announcement .figures-group {
  position: absolute; bottom: 26%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #4a3a2e 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wa-group 2s ease-in-out infinite;
}
.scn-walk-announcement .path {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 4%;
  background: linear-gradient(90deg, #c8a880 0%, #dcc8a0 50%, #c8a880 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: wa-path 6s linear infinite;
}
.scn-walk-announcement .shadow-stretch {
  position: absolute; bottom: 16%; left: 18%; width: 40px; height: 14px;
  background: rgba(40,30,20,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: wa-shadow 1.2s ease-in-out infinite alternate;
}
.scn-walk-announcement .bushes {
  position: absolute; bottom: 36%; right: 8%; width: 15%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 60% 60% 20% 20%;
  animation: wa-bush 3s ease-in-out infinite;
}
@keyframes wa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes wa-gesture { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg) scale(1.02); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes wa-group { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }
@keyframes wa-path { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes wa-shadow { 0% { transform: scaleX(1); opacity: .5; } 100% { transform: scaleX(1.3); opacity: .8; } }
@keyframes wa-bush { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }

.scn-walk-to-visit {
  background:
    linear-gradient(180deg, #7ab0d0 0%, #a8d0e8 50%, #d4c090 100%),
    radial-gradient(ellipse at 50% 0%, #f0e8c8 0%, transparent 70%);
}
.scn-walk-to-visit .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #e0f0ff 100%);
  animation: wv-sky 15s ease-in-out infinite alternate;
}
.scn-walk-to-visit .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 5%;
  background: linear-gradient(90deg, #b8a080 0%, #d4c0a8 50%, #b8a080 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
  animation: wv-path 10s linear infinite;
}
.scn-walk-to-visit .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%);
  border-radius: 60% 40% 20% 80% / 80% 60% 30% 40%;
  animation: wv-tree 4s ease-in-out infinite;
}
.scn-walk-to-visit .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 40% 60% 80% 20% / 60% 80% 40% 20%;
  animation: wv-tree 5s ease-in-out infinite reverse;
}
.scn-walk-to-visit .figure-leader {
  position: absolute; bottom: 12%; left: 30%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #4a3a2e 0%, #201a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wv-walk-f 1.5s ease-in-out infinite;
}
.scn-walk-to-visit .figure-follow {
  position: absolute; bottom: 12%; left: 48%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wv-walk-s 1.8s ease-in-out infinite;
}
.scn-walk-to-visit .dust {
  position: absolute; bottom: 16%; left: 35%; width: 8px; height: 8px;
  background: rgba(200,180,150,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: wv-dust 3s ease-in-out infinite;
}
@keyframes wv-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes wv-path { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes wv-tree { 0%,100% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes wv-walk-f { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes wv-walk-s { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(12px) rotate(0); } }
@keyframes wv-dust { 0% { transform: translate(0,0) scale(1); opacity: .4; } 50% { transform: translate(10px,-8px) scale(1.5); opacity: .1; } 100% { transform: translate(20px,-16px) scale(0); opacity: 0; } }

.scn-visit-to-prince {
  background:
    linear-gradient(180deg, #e0c898 0%, #f0e0b0 40%, #fff0d0 100%),
    radial-gradient(ellipse at 30% 10%, #ffe080 0%, transparent 60%);
}
.scn-visit-to-prince .sky-warm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0d8a0 0%, #ffe8c0 100%);
  animation: vp-sky 12s ease-in-out infinite alternate;
}
.scn-visit-to-prince .doorway {
  position: absolute; bottom: 10%; left: 50%; width: 30%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
}
.scn-visit-to-prince .prince-figure {
  position: absolute; bottom: 16%; left: 44%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vp-prince 3s ease-in-out infinite;
}
.scn-visit-to-prince .lizabetha-figure {
  position: absolute; bottom: 14%; left: 54%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vp-liz 3.5s ease-in-out infinite;
}
.scn-visit-to-prince .sunburst {
  position: absolute; top: 4%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(circle, rgba(255,200,80,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: vp-sun 8s ease-in-out infinite alternate;
}
.scn-visit-to-prince .foliage {
  position: absolute; bottom: 30%; left: 8%; width: 18%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #2a4a2a 100%);
  border-radius: 60% 60% 20% 20%;
  animation: vp-foliage 4s ease-in-out infinite;
}
.scn-visit-to-prince .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(0deg, #6a5a3a 0%, #9a8a6a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
@keyframes vp-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes vp-prince { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } }
@keyframes vp-liz { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes vp-sun { 0% { transform: scale(.9) rotate(0deg); opacity: .6; } 50% { transform: scale(1.2) rotate(8deg); opacity: .9; } 100% { transform: scale(1) rotate(4deg); opacity: .7; } }
@keyframes vp-foliage { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }

.scn-general-epanchin-introduction {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #b89a78 40%, #8a6e54 100%),
    radial-gradient(ellipse at 40% 60%, #f0e0c0 0%, transparent 70%);
}
.scn-general-epanchin-introduction .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #e8d8b8 0%, #c4a884 100%);
  animation: gi1-wall 12s ease-in-out infinite alternate;
}
.scn-general-epanchin-introduction .window {
  position:absolute; top:6%; left:28%; width:40%; height:50%;
  background: linear-gradient(180deg, #fff4e0 0%, #d4c8a0 70%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(255,244,224,.6);
  animation: gi1-window 8s ease-in-out infinite alternate;
}
.scn-general-epanchin-introduction .curtain-l {
  position:absolute; top:4%; left:26%; width:6%; height:54%;
  background: linear-gradient(180deg, #8a6050 0%, #5a3a2a 100%);
  border-radius: 0 40% 40% 0; transform-origin: left center;
  animation: gi1-curtain 10s ease-in-out infinite;
}
.scn-general-epanchin-introduction .curtain-r {
  position:absolute; top:4%; right:26%; width:6%; height:54%;
  background: linear-gradient(180deg, #8a6050 0%, #5a3a2a 100%);
  border-radius: 40% 0 0 40%; transform-origin: right center;
  animation: gi1-curtain 10s ease-in-out infinite reverse;
}
.scn-general-epanchin-introduction .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:16%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: gi1-desk 6s ease-in-out infinite;
}
.scn-general-epanchin-introduction .figure {
  position:absolute; bottom:16%; left:32%; width:20px; height:60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gi1-figure 4s ease-in-out infinite;
}
.scn-general-epanchin-introduction .lamp {
  position:absolute; bottom:28%; left:55%; width:12px; height:18px;
  background: radial-gradient(circle, #f0c860 0%, #b08030 60%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px #d09840, 0 0 60px 16px rgba(208,152,64,.4);
  animation: gi1-lamp 3s ease-in-out infinite alternate;
}
@keyframes gi1-wall { 0% { opacity:.85; filter:brightness(.95) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.9; filter:brightness(1) } }
@keyframes gi1-window { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:.9; transform:scaleY(1.02) } 100% { opacity:.8; transform:scaleY(1) } }
@keyframes gi1-curtain { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.04) } 100% { transform:scaleX(1) } }
@keyframes gi1-desk { 0% { transform:translateY(0); box-shadow:0 4px 8px rgba(0,0,0,.3) } 50% { transform:translateY(-2px); box-shadow:0 6px 12px rgba(0,0,0,.4) } 100% { transform:translateY(0); box-shadow:0 4px 8px rgba(0,0,0,.3) } }
@keyframes gi1-figure { 0% { transform:translate(0,0) rotate(-2deg) } 25% { transform:translate(4px,-1px) rotate(1deg) } 50% { transform:translate(8px,0) rotate(-1deg) } 75% { transform:translate(12px,-1px) rotate(2deg) } 100% { transform:translate(16px,0) rotate(0) } }
@keyframes gi1-lamp { 0% { box-shadow:0 0 20px 4px #d09840, 0 0 40px 8px rgba(208,152,64,.3); opacity:.85 } 50% { box-shadow:0 0 40px 12px #f0c860, 0 0 80px 20px rgba(240,200,96,.5); opacity:1 } 100% { box-shadow:0 0 24px 6px #d09840, 0 0 48px 12px rgba(208,152,64,.35); opacity:.9 } }

/* Scene 2 */
.scn-general-epanchin-character {
  background:
    linear-gradient(180deg, #c8b898 0%, #a08868 40%, #6a5040 100%),
    radial-gradient(ellipse at 50% 70%, #f0dcc0 0%, transparent 60%);
}
.scn-general-epanchin-character .bg-room {
  position:absolute; inset:0 0 0 0;
  background: radial-gradient(ellipse at 30% 50%, #f0e0c8 0%, #c8b090 80%);
  animation: gc2-room 14s ease-in-out infinite alternate;
}
.scn-general-epanchin-character .bookshelf {
  position:absolute; top:8%; left:5%; width:18%; height:60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 10px #1a0a00;
  animation: gc2-bookshelf 20s ease-in-out infinite;
}
.scn-general-epanchin-character .armchair {
  position:absolute; bottom:5%; left:15%; width:30%; height:30%;
  background: linear-gradient(160deg, #8a6050 0%, #4a3020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: gc2-armchair 8s ease-in-out infinite;
}
.scn-general-epanchin-character .portrait-frame {
  position:absolute; top:10%; right:15%; width:16%; height:30%;
  background: linear-gradient(180deg, #b09070 0%, #6a5040 100%);
  border: 4px solid #5a4030; border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: gc2-portrait 12s ease-in-out infinite alternate;
}
.scn-general-epanchin-character .figure-seated {
  position:absolute; bottom:8%; left:28%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc2-figure 4s ease-in-out infinite;
}
.scn-general-epanchin-character .candle {
  position:absolute; bottom:18%; right:8%; width:6px; height:16px;
  background: #d0a070; border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -6px 20px 6px #ffd080;
  animation: gc2-candle 3s ease-in-out infinite alternate;
}
.scn-general-epanchin-character .clock {
  position:absolute; top:12%; left:50%; width:20px; height:20px;
  background: radial-gradient(circle, #e0d0b0 0%, #8a7050 100%);
  border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: gc2-clock 2s steps(2) infinite;
}
.scn-general-epanchin-character .papers-a {
  position:absolute; bottom:20%; left:35%; width:30px; height:4px;
  background: #f0e8d0; border-radius: 2px;
  transform: rotate(-8deg);
  animation: gc2-papers 6s ease-in-out infinite;
}
.scn-general-epanchin-character .papers-b {
  position:absolute; bottom:18%; left:38%; width:28px; height:4px;
  background: #e8dcc0; border-radius: 2px;
  transform: rotate(5deg);
  animation: gc2-papers 7s ease-in-out infinite reverse;
}
@keyframes gc2-room { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes gc2-bookshelf { 0% { filter:brightness(.9) } 50% { filter:brightness(1.1) } 100% { filter:brightness(1) } }
@keyframes gc2-armchair { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes gc2-portrait { 0% { opacity:.9; transform:rotate(-1deg) } 50% { opacity:1; transform:rotate(1deg) } 100% { opacity:.92; transform:rotate(-.5deg) } }
@keyframes gc2-figure { 0% { transform:translate(0,0) rotate(-1deg) } 25% { transform:translate(5px,-1px) rotate(2deg) } 50% { transform:translate(10px,0) rotate(-1deg) } 75% { transform:translate(15px,-1px) rotate(1deg) } 100% { transform:translate(20px,0) rotate(0) } }
@keyframes gc2-candle { 0% { opacity:.7; box-shadow:0 -4px 12px 4px #ffd080 } 50% { opacity:1; box-shadow:0 -8px 24px 8px #ffe0a0 } 100% { opacity:.8; box-shadow:0 -5px 14px 5px #ffd080 } }
@keyframes gc2-clock { 0% { transform:rotate(0) } 100% { transform:rotate(180deg) } }
@keyframes gc2-papers { 0% { opacity:.6; transform:rotate(-8deg) translate(0,0) } 50% { opacity:.9; transform:rotate(-8deg) translate(2px,-1px) } 100% { opacity:.7; transform:rotate(-8deg) translate(0,0) } }

/* Scene 3 */
.scn-general-family-portrait {
  background:
    linear-gradient(180deg, #d8c8a8 0%, #b89a78 40%, #7a6048 100%),
    radial-gradient(ellipse at 50% 40%, #f0dcc0 0%, transparent 70%);
}
.scn-general-family-portrait .bg-interior {
  position:absolute; inset:0 0 0 0;
  background: radial-gradient(ellipse at 50% 50%, #e8d4b8 0%, #c4a884 80%);
  animation: gf3-bg 18s ease-in-out infinite alternate;
}
.scn-general-family-portrait .sofa {
  position:absolute; bottom:5%; left:8%; right:8%; height:25%;
  background: linear-gradient(180deg, #8a6050 0%, #4a3020 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: gf3-sofa 12s ease-in-out infinite;
}
.scn-general-family-portrait .figure-mother {
  position:absolute; bottom:20%; left:18%; width:22px; height:50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf3-mother 5s ease-in-out infinite;
}
.scn-general-family-portrait .figure-father {
  position:absolute; bottom:22%; left:45%; width:24px; height:52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: gf3-father 4.5s ease-in-out infinite;
}
.scn-general-family-portrait .figure-child-l {
  position:absolute; bottom:16%; left:31%; width:14px; height:30px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf3-child 3.5s ease-in-out infinite;
}
.scn-general-family-portrait .figure-child-r {
  position:absolute; bottom:17%; right:30%; width:12px; height:28px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf3-child 4s ease-in-out infinite reverse;
}
.scn-general-family-portrait .hearth {
  position:absolute; bottom:5%; left:60%; width:18%; height:20%;
  background: linear-gradient(180deg, #5a4040 0%, #2a1a1a 100%);
  border-radius: 10% 10% 2% 2% / 20% 20% 5% 5%;
  box-shadow: inset 0 0 20px #1a0a0a;
  animation: gf3-hearth 9s ease-in-out infinite;
}
.scn-general-family-portrait .fire {
  position:absolute; bottom:10%; left:62%; width:8%; height:10%;
  background: radial-gradient(circle, #f0a040 0%, #d07020 40%, transparent 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #f0a040, 0 0 60px 20px rgba(240,160,64,.3);
  animation: gf3-fire 2s ease-in-out infinite alternate;
}
@keyframes gf3-bg { 0% { opacity:.75; filter:brightness(.9) } 50% { opacity:.95; filter:brightness(1.05) } 100% { opacity:.8; filter:brightness(1) } }
@keyframes gf3-sofa { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes gf3-mother { 0% { transform:translate(0,0) rotate(-2deg) } 25% { transform:translate(3px,-1px) rotate(1deg) } 50% { transform:translate(6px,0) rotate(-1deg) } 75% { transform:translate(9px,-1px) rotate(2deg) } 100% { transform:translate(12px,0) rotate(0) } }
@keyframes gf3-father { 0% { transform:translate(0,0) rotate(1deg) } 25% { transform:translate(-3px,-1px) rotate(-1deg) } 50% { transform:translate(-6px,0) rotate(2deg) } 75% { transform:translate(-9px,-1px) rotate(-1deg) } 100% { transform:translate(-12px,0) rotate(0) } }
@keyframes gf3-child { 0% { transform:translate(0,0) rotate(-3deg) } 25% { transform:translate(2px,-1px) rotate(2deg) } 50% { transform:translate(4px,0) rotate(-2deg) } 75% { transform:translate(6px,-1px) rotate(3deg) } 100% { transform:translate(8px,0) rotate(0) } }
@keyframes gf3-hearth { 0% { background:#5a4040 } 50% { background:#7a5040 } 100% { background:#5a4040 } }
@keyframes gf3-fire { 0% { box-shadow:0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,.2); opacity:.8 } 50% { box-shadow:0 0 40px 14px #ffb850, 0 0 80px 24px rgba(255,184,80,.5); opacity:1 } 100% { box-shadow:0 0 24px 8px #f0a040, 0 0 48px 16px rgba(240,160,64,.3); opacity:.85 } }

/* Scene 4 */
.scn-epanchin-daughters {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a890 40%, #807060 100%),
    radial-gradient(ellipse at 30% 70%, #f0e0c8 0%, transparent 60%);
}
.scn-epanchin-daughters .bg-parlor {
  position:absolute; inset:0 0 0 0;
  background: radial-gradient(ellipse at 40% 60%, #e8dcc8 0%, #c8b8a0 80%);
  animation: ed4-bg 16s ease-in-out infinite alternate;
}
.scn-epanchin-daughters .mirror {
  position:absolute; top:8%; left:20%; width:22%; height:35%;
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a090 100%);
  border: 3px solid #7a6a5a; border-radius: 2% 2% 10% 10%;
  box-shadow: 0 0 20px rgba(255,255,200,.4);
  animation: ed4-mirror 10s ease-in-out infinite alternate;
}
.scn-epanchin-daughters .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ed4-table 8s ease-in-out infinite;
}
.scn-epanchin-daughters .vase {
  position:absolute; bottom:16%; left:35%; width:16px; height:24px;
  background: linear-gradient(180deg, #b89878 0%, #8a7050 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ed4-vase 6s ease-in-out infinite;
}
.scn-epanchin-daughters .flower-1 {
  position:absolute; bottom:36%; left:34%; width:8px; height:16px;
  background: radial-gradient(circle, #e8b0a0 0%, #d08870 60%);
  border-radius: 50%; filter: blur(2px);
  animation: ed4-flower 4s ease-in-out infinite alternate;
}
.scn-epanchin-daughters .flower-2 {
  position:absolute; bottom:34%; left:38%; width:7px; height:14px;
  background: radial-gradient(circle, #e0b890 0%, #c89870 60%);
  border-radius: 50%; filter: blur(1.5px);
  animation: ed4-flower 4.5s ease-in-out infinite alternate reverse;
}
.scn-epanchin-daughters .figure-young {
  position:absolute; bottom:8%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed4-figure 4s ease-in-out infinite;
}
.scn-epanchin-daughters .shawl {
  position:absolute; bottom:12%; left:45%; width:30px; height:20px;
  background: linear-gradient(135deg, #b09880 0%, #7a6050 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ed4-shawl 7s ease-in-out infinite;
}
@keyframes ed4-bg { 0% { opacity:.8; filter:brightness(.95) } 50% { opacity:.95; filter:brightness(1.05) } 100% { opacity:.85; filter:brightness(1) } }
@keyframes ed4-mirror { 0% { opacity:.7; transform:rotate(-1deg) } 50% { opacity:.9; transform:rotate(1.5deg) } 100% { opacity:.75; transform:rotate(-.5deg) } }
@keyframes ed4-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ed4-vase { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes ed4-flower { 0% { opacity:.6; transform:translate(0,0) scale(.8) } 50% { opacity:1; transform:translate(1px,-2px) scale(1.1) } 100% { opacity:.7; transform:translate(0,0) scale(.85) } }
@keyframes ed4-figure { 0% { transform:translate(0,0) rotate(-2deg) } 25% { transform:translate(4px,-1px) rotate(1deg) } 50% { transform:translate(8px,0) rotate(-2deg) } 75% { transform:translate(12px,-1px) rotate(1deg) } 100% { transform:translate(16px,0) rotate(0) } }
@keyframes ed4-shawl { 0% { transform:rotate(-3deg) translate(0,0) } 50% { transform:rotate(2deg) translate(2px,-1px) } 100% { transform:rotate(-3deg) translate(0,0) } }

/* === prince-asks-vera (prv) === */
.scn-prince-asks-vera {
  background:
    linear-gradient(180deg, #1e1a18 0%, #2b2220 40%, #3e2e28 100%),
    radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-prince-asks-vera .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2e28 0%, #2b2220 100%);
  animation: prv-wall 12s ease-in-out infinite alternate;
}
.scn-prince-asks-vera .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1e1612 0%, #2a1f18 100%);
  border-radius: 20% 20% 0 0;
}
.scn-prince-asks-vera .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3e30 0%, #3b2a1e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: prv-table 6s ease-in-out infinite;
}
.scn-prince-asks-vera .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd48a 0%, #c07a40 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px #ffb060, 0 0 40px 14px rgba(255,176,96,0.4);
  animation: prv-lamp 1.5s ease-in-out infinite alternate;
}
.scn-prince-asks-vera .glow {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(255,176,96,0.2) 0%, transparent 70%);
  pointer-events: none;
}
.scn-prince-asks-vera .prince {
  position: absolute; bottom: 14%; left: 42%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prv-prince 4s ease-in-out infinite;
}
.scn-prince-asks-vera .vera {
  position: absolute; bottom: 14%; right: 40%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a201a 0%, #18120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prv-vera 3.5s ease-in-out infinite;
}
.scn-prince-asks-vera .shadow {
  position: absolute; bottom: 12%; left: 38%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: prv-shadow 6s ease-in-out infinite;
}
@keyframes prv-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes prv-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes prv-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity:0.85; box-shadow:0 0 15px 6px #ffb060,0 0 30px 10px rgba(255,176,96,0.3); } 50% { transform: translateX(-50%) scaleY(1.02); opacity:1; box-shadow:0 0 25px 10px #ffd080,0 0 50px 18px rgba(255,208,128,0.5); } 100% { transform: translateX(-50%) scaleY(0.98); opacity:0.8; box-shadow:0 0 12px 4px #c07030,0 0 24px 8px rgba(192,112,48,0.3); } }
@keyframes prv-prince { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes prv-vera { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(2px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes prv-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.1); opacity:0.8; } }

/* === vera-promises (vp) === */
.scn-vera-promises {
  background:
    linear-gradient(180deg, #1c1816 0%, #2e2520 40%, #3d2e28 100%),
    radial-gradient(ellipse at 50% 50%, #3a2820 0%, transparent 70%);
}
.scn-vera-promises .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.2) 100%);
  animation: vp-bg 15s ease-in-out infinite alternate;
}
.scn-vera-promises .table {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3228 0%, #2e1e16 100%);
  border-radius: 3px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-vera-promises .lamp {
  position: absolute; bottom: 32%; left: 50%; width: 14px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd28a 0%, #b86e38 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 18px 6px #ffb060, 0 0 36px 12px rgba(255,176,96,0.4);
  animation: vp-lamp 1.2s ease-in-out infinite alternate;
}
.scn-vera-promises .glow {
  position: absolute; bottom: 28%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(255,176,96,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.scn-vera-promises .hand-prince {
  position: absolute; bottom: 25%; left: 44%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vp-hand-p 3s ease-in-out infinite;
}
.scn-vera-promises .hand-vera {
  position: absolute; bottom: 25%; left: 48%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a201a 0%, #18120e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vp-hand-v 3s ease-in-out infinite alternate;
}
.scn-vera-promises .face-vera {
  position: absolute; bottom: 38%; left: 48%; width: 18px; height: 22px;
  background: none;
  border-radius: 50%;
  box-shadow: 0 0 0 4px #2a201a, 0 0 10px rgba(0,0,0,0.5);
  animation: vp-face 4s ease-in-out infinite;
}
.scn-vera-promises .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: vp-shadow 6s ease-in-out infinite;
}
@keyframes vp-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes vp-lamp { 0% { transform: translateX(-50%) scaleY(1); opacity:0.8; box-shadow:0 0 12px 4px #ffb060,0 0 24px 8px rgba(255,176,96,0.3); } 50% { transform: translateX(-50%) scaleY(1.03); opacity:1; box-shadow:0 0 22px 8px #ffd080,0 0 44px 16px rgba(255,208,128,0.5); } 100% { transform: translateX(-50%) scaleY(0.97); opacity:0.7; box-shadow:0 0 10px 3px #c07030,0 0 20px 6px rgba(192,112,48,0.3); } }
@keyframes vp-hand-p { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(2px,-1px) rotate(0deg); } 100% { transform: translate(0,0) rotate(-10deg); } }
@keyframes vp-hand-v { 0% { transform: translate(0,0) rotate(10deg); } 50% { transform: translate(-2px,-1px) rotate(0deg); } 100% { transform: translate(0,0) rotate(10deg); } }
@keyframes vp-face { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes vp-shadow { 0%,100% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.15); opacity:0.8; } }

/* === prince-in-petersburg (pip) === */
.scn-prince-in-petersburg {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f1 30%, #e6f0fa 60%, #f5f5dc 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%);
}
.scn-prince-in-petersburg .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6fafdb 0%, #b3daee 100%);
  animation: pip-sky 20s ease-in-out infinite alternate;
}
.scn-prince-in-petersburg .building {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #d4c6b8 0%, #b8a694 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: pip-building 12s ease-in-out infinite;
}
.scn-prince-in-petersburg .door {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4a32 0%, #4a3020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
  animation: pip-door 3s ease-in-out infinite alternate;
}
.scn-prince-in-petersburg .prince {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pip-prince 4.5s ease-in-out infinite;
}
.scn-prince-in-petersburg .shadow-prince {
  position: absolute; bottom: 14%; left: 38%; width: 50px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pip-shadow 6s ease-in-out infinite;
}
.scn-prince-in-petersburg .tree {
  position: absolute; bottom: 20%; right: 16%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 0 20px rgba(0,50,0,0.3);
  animation: pip-tree 8s ease-in-out infinite alternate;
}
.scn-prince-in-petersburg .sunlight {
  position: absolute; top: 10%; left: 60%; width: 150px; height: 200px;
  background: linear-gradient(135deg, rgba(255,250,200,0.25) 0%, transparent 100%);
  transform: rotate(20deg);
  pointer-events: none;
  animation: pip-sunlight 10s ease-in-out infinite alternate;
}
@keyframes pip-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pip-building { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes pip-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(0.98); } }
@keyframes pip-prince { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes pip-shadow { 0%,100% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.2); opacity:0.7; } }
@keyframes pip-tree { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes pip-sunlight { 0% { transform: rotate(15deg) translateX(-10px); opacity:0.3; } 50% { transform: rotate(25deg) translateX(10px); opacity:0.5; } 100% { transform: rotate(15deg) translateX(-10px); opacity:0.3; } }

/* === servant-denies (sd) === */
.scn-servant-denies {
  background:
    linear-gradient(180deg, #7fb9d4 0%, #a4cce0 30%, #d9e6ed 60%, #efe8d8 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-servant-denies .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a9dc4 0%, #9ec6de 100%);
  animation: sd-sky 18s ease-in-out infinite alternate;
}
.scn-servant-denies .building {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #c8b8a8 0%, #ac9a86 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 25px rgba(0,0,0,0.15);
}
.scn-servant-denies .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 44px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-servant-denies .servant {
  position: absolute; bottom: 18%; left: 46%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2e2824 0%, #181412 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-servant 3s ease-in-out infinite alternate;
}
.scn-servant-denies .prince {
  position: absolute; bottom: 15%; left: 36%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-prince 4s ease-in-out infinite;
}
.scn-servant-denies .shadow-door {
  position: absolute; bottom: 18%; left: 46%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: sd-shadow 5s ease-in-out infinite;
}
.scn-servant-denies .sunlight {
  position: absolute; top: 8%; left: 55%; width: 180px; height: 250px;
  background: linear-gradient(135deg, rgba(255,250,210,0.2) 0%, transparent 100%);
  transform: rotate(25deg);
  pointer-events: none;
  animation: sd-sunlight 12s ease-in-out infinite alternate;
}
@keyframes sd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sd-servant { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(3deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sd-prince { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes sd-shadow { 0%,100% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.8; } }
@keyframes sd-sunlight { 0% { transform: rotate(20deg) translateX(-15px); opacity:0.2; } 50% { transform: rotate(30deg) translateX(15px); opacity:0.4; } 100% { transform: rotate(20deg) translateX(-15px); opacity:0.2; } }

.scn-the-body {
  background: 
    radial-gradient(ellipse at 50% 30%, #2a2040 0%, #0f0a1a 70%),
    linear-gradient(180deg, #1a1028 0%, #080510 100%);
}
.scn-the-body .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1635 0%, #0e0a1a 100%);
  animation: tb-wall 12s ease-in-out infinite alternate;
}
.scn-the-body .window {
  position: absolute; top: 12%; left: 65%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #2a3a55 0%, #4a5a75 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,130,180,0.3);
  animation: tb-window 8s ease-in-out infinite alternate;
}
.scn-the-body .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.8);
  animation: tb-bed 6s ease-in-out infinite;
}
.scn-the-body .body-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #0e0a12 0%, #060508 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: tb-body 4s ease-in-out infinite alternate;
}
.scn-the-body .prince-silhouette {
  position: absolute; bottom: 15%; left: 10%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #0c0812 0%, #050308 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: tb-prince 5s ease-in-out infinite;
}
.scn-the-body .lamp-glow {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d4b060 0%, #5a4020 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,176,96,0.3), 0 0 60px 20px rgba(212,176,96,0.1);
  animation: tb-lamp 3s ease-in-out infinite alternate;
}
@keyframes tb-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tb-window {
  0% { transform: scale(1) rotate(-1deg); opacity: 0.7; }
  50% { transform: scale(1.02) rotate(1deg); opacity: 0.9; }
  100% { transform: scale(0.98) rotate(-0.5deg); opacity: 0.75; }
}
@keyframes tb-bed {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes tb-body {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.95; }
  50% { transform: translateY(1px) rotate(-0.5deg); opacity: 0.8; }
  100% { transform: translateY(-0.5px) rotate(0.3deg); opacity: 0.95; }
}
@keyframes tb-prince {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tb-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(212,176,96,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px rgba(212,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(212,176,96,0.3); opacity: 0.85; }
}

.scn-description {
  background: 
    radial-gradient(ellipse at 50% 50%, #1a1528 0%, #080510 70%),
    linear-gradient(180deg, #120e1e 0%, #0a0812 100%);
}
.scn-description .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #15101f 0%, #0a0710 100%);
  animation: ds-bg 10s ease-in-out infinite alternate;
}
.scn-description .bed-frame {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 55%;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0a0a 100%);
  border-radius: 18px; box-shadow: 0 12px 35px rgba(0,0,0,0.9);
  animation: ds-frame 7s ease-in-out infinite;
}
.scn-description .mattress {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #3e2a2a 0%, #2a1616 100%);
  border-radius: 20px; box-shadow: inset 0 -8px 15px rgba(0,0,0,0.5);
  animation: ds-mattress 9s ease-in-out infinite alternate;
}
.scn-description .pillow {
  position: absolute; bottom: 42%; left: 30%; width: 20%; height: 14%;
  background: linear-gradient(170deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40%; transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ds-pillow 6s ease-in-out infinite;
}
.scn-description .sleeper {
  position: absolute; bottom: 26%; left: 32%; width: 34%; height: 28%;
  background: linear-gradient(180deg, #0c0810 0%, #060408 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ds-sleeper 5s ease-in-out infinite alternate;
}
.scn-description .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: ds-shadow 8s ease-in-out infinite alternate;
}
.scn-description .moonlight {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(135deg, rgba(150,170,210,0.2) 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(12px);
  animation: ds-moon 15s ease-in-out infinite alternate;
}
@keyframes ds-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ds-frame { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes ds-mattress { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes ds-pillow { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes ds-sleeper { 0% { transform:translateY(0) rotate(0deg); opacity:0.95 } 50% { transform:translateY(1px) rotate(-0.5deg); opacity:0.85 } 100% { transform:translateY(0) rotate(0.3deg); opacity:0.95 } }
@keyframes ds-shadow { 0% { transform:scaleX(1); opacity:0.5 } 50% { transform:scaleX(1.05); opacity:0.7 } 100% { transform:scaleX(0.95); opacity:0.4 } }
@keyframes ds-moon { 0% { transform:rotate(0deg); opacity:0.2 } 50% { transform:rotate(3deg); opacity:0.4 } 100% { transform:rotate(-2deg); opacity:0.15 } }

.scn-details {
  background: 
    radial-gradient(ellipse at 50% 60%, #211a30 0%, #0a0710 80%),
    linear-gradient(180deg, #151024 0%, #0e0a1a 100%);
}
.scn-details .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1428 0%, #0e0a1a 100%);
  animation: dt-bg 14s ease-in-out infinite alternate;
}
.scn-details .bed-corner {
  position: absolute; bottom: 0; left: 10%; right: 40%; height: 60%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a0e0e 100%);
  border-radius: 30% 0 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
  animation: dt-corner 8s ease-in-out infinite;
}
.scn-details .dress-drape {
  position: absolute; bottom: 5%; left: 15%; width: 45%; height: 35%;
  background: linear-gradient(180deg, #b0a0a0 0%, #6a5a5a 100%);
  border-radius: 0 60% 40% 0 / 0 80% 60% 0;
  clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 20% 90%);
  animation: dt-dress 10s ease-in-out infinite alternate;
}
.scn-details .lace-scatter {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #d0c0c0 0%, #8a7a7a 100%);
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  filter: blur(1px);
  animation: dt-lace 7s ease-in-out infinite;
}
.scn-details .ribbons {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 6%;
  background: linear-gradient(90deg, #a08080 0%, #c0a0a0 50%, #a08080 100%);
  border-radius: 40%; transform: rotate(-15deg);
  animation: dt-ribbon 5s ease-in-out infinite alternate;
}
.scn-details .flowers {
  position: absolute; bottom: 30%; right: 30%; width: 12%; height: 12%;
  background: radial-gradient(circle, #b08080 0%, #805050 100%);
  border-radius: 50%; filter: blur(2px);
  animation: dt-flower 9s ease-in-out infinite;
}
.scn-details .table {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,0.8);
  animation: dt-table 6s ease-in-out infinite alternate;
}
.scn-details .diamonds-pile {
  position: absolute; bottom: 18%; right: 14%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffffff 0%, #a0c0ff 50%, #4060a0 100%);
  border-radius: 40% 60% 60% 40% / 60% 40% 60% 40%;
  box-shadow: 0 0 20px 10px rgba(160,192,255,0.4), 0 0 40px 20px rgba(100,150,255,0.1);
  animation: dt-diamonds 2.5s ease-in-out infinite alternate;
}
@keyframes dt-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dt-corner { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes dt-dress { 0% { transform:rotate(0deg) translateY(0); opacity:0.9 } 50% { transform:rotate(2deg) translateY(-2px); opacity:0.95 } 100% { transform:rotate(-1deg) translateY(1px); opacity:0.85 } }
@keyframes dt-lace { 0% { transform:scale(1) rotate(0deg) } 50% { transform:scale(1.05) rotate(5deg) } 100% { transform:scale(0.95) rotate(-3deg) } }
@keyframes dt-ribbon { 0% { transform:rotate(-15deg) translateX(0) } 50% { transform:rotate(-10deg) translateX(5px) } 100% { transform:rotate(-15deg) translateX(0) } }
@keyframes dt-flower { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(15deg) } }
@keyframes dt-table { 0% { transform:translateX(0) } 50% { transform:translateX(-2px) } 100% { transform:translateX(0) } }
@keyframes dt-diamonds { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 15px 8px rgba(160,192,255,0.3) } 50% { transform:scale(1.15) rotate(10deg); box-shadow:0 0 30px 15px rgba(160,192,255,0.6) } 100% { transform:scale(0.9) rotate(-5deg); box-shadow:0 0 20px 10px rgba(160,192,255,0.4) } }

.scn-item-diamonds {
  background: 
    radial-gradient(ellipse at 50% 40%, #1e1830 0%, #0a0710 70%),
    linear-gradient(180deg, #14101e 0%, #0c0814 100%);
}
.scn-item-diamonds .bg-close {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1428 0%, #0e0a1a 100%);
  animation: id-bg 12s ease-in-out infinite alternate;
}
.scn-item-diamonds .bed-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a0e0e 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -15px 30px rgba(0,0,0,0.8);
  animation: id-edge 8s ease-in-out infinite;
}
.scn-item-diamonds .lace-heap {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #c0b0b0 0%, #8a7a7a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: id-lace 10s ease-in-out infinite alternate;
}
.scn-item-diamonds .marble-foot {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #e0d8d0 0%, #a09890 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset -2px -4px 8px rgba(0,0,0,0.3);
  animation: id-foot 6s ease-in-out infinite alternate;
}
.scn-item-diamonds .diamonds-scattered {
  position: absolute; bottom: 18%; left: 55%; width: 25%; height: 20%;
  background: radial-gradient(circle at 30% 40%, #ffffff 0%, #a0c0ff 30%, #4060a0 80%);
  clip-path: polygon(10% 30%, 30% 0%, 50% 40%, 70% 15%, 90% 50%, 70% 80%, 50% 60%, 30% 90%);
  filter: drop-shadow(0 0 10px rgba(160,192,255,0.6));
  animation: id-scatter 4s ease-in-out infinite;
}
.scn-item-diamonds .sparkle {
  position: absolute; bottom: 25%; left: 60%; width: 4px; height: 4px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(200,220,255,0.8);
  animation: id-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes id-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes id-edge { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes id-lace { 0% { transform:scale(1) rotate(0deg); opacity:0.8 } 50% { transform:scale(1.05) rotate(3deg); opacity:0.95 } 100% { transform:scale(0.95) rotate(-2deg); opacity:0.85 } }
@keyframes id-foot { 0% { transform:rotate(0deg) scale(1); opacity:0.9 } 50% { transform:rotate(2deg) scale(1.02); opacity:1 } 100% { transform:rotate(-1deg) scale(0.98); opacity:0.9 } }
@keyframes id-scatter { 0% { transform:rotate(0deg) scale(1); filter:drop-shadow(0 0 8px rgba(160,192,255,0.4)) } 30% { transform:rotate(15deg) scale(1.05); filter:drop-shadow(0 0 20px rgba(160,192,255,0.7)) } 60% { transform:rotate(-10deg) scale(0.95); filter:drop-shadow(0 0 12px rgba(160,192,255,0.5)) } 100% { transform:rotate(0deg) scale(1); filter:drop-shadow(0 0 8px rgba(160,192,255,0.4)) } }
@keyframes id-sparkle { 0% { transform:scale(1); opacity:0.3 } 50% { transform:scale(2); opacity:1 } 100% { transform:scale(1); opacity:0.5 } }

.scn-prince-entertains-intruders {
  background: linear-gradient(180deg, #2e1e12 0%, #3a2a1a 35%, #4a3a2a 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-prince-entertains-intruders .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #2e1e12 100%);
  animation: pei-backdr 10s ease-in-out infinite alternate;
}
.scn-prince-entertains-intruders .wall {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5c4a3a 50%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: pei-wall 20s ease-in-out infinite;
}
.scn-prince-entertains-intruders .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 20% 0 0 / 0 40% 0 0;
}
.scn-prince-entertains-intruders .prince {
  position: absolute; bottom: 28%; left: 30%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 60%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pei-prince 4s ease-in-out infinite;
}
.scn-prince-entertains-intruders .intruder-1 {
  position: absolute; bottom: 26%; left: 50%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pei-intr1 6s ease-in-out infinite;
}
.scn-prince-entertains-intruders .intruder-2 {
  position: absolute; bottom: 27%; left: 62%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pei-intr2 5s ease-in-out infinite;
}
.scn-prince-entertains-intruders .candle {
  position: absolute; bottom: 40%; left: 42%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #9a7a4a 50%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(200,160,96,0.4);
  animation: pei-candle 3s ease-in-out infinite alternate;
}
.scn-prince-entertains-intruders .glow {
  position: absolute; bottom: 38%; left: 38%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pei-glow 4s ease-in-out infinite alternate;
}
@keyframes pei-backdr { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pei-wall { 0% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes pei-prince { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes pei-intr1 { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(6px) scaleY(0.98) } }
@keyframes pei-intr2 { 0%,100% { transform: translateX(0) } 33% { transform: translateX(-5px) } 66% { transform: translateX(3px) } }
@keyframes pei-candle { 0% { opacity:0.7; transform: scaleY(1) } 100% { opacity:0.95; transform: scaleY(1.05) } }
@keyframes pei-glow { 0% { opacity:0.3; transform: scale(1) } 100% { opacity:0.6; transform: scale(1.2) } }

.scn-tea-with-crowd {
  background: linear-gradient(180deg, #36261a 0%, #4a382a 30%, #5c4a3a 100%), radial-gradient(ellipse at 50% 70%, #5c4a3a 0%, transparent 70%);
}
.scn-tea-with-crowd .bg-room {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e1e12 0%, #3a2a1a 100%);
  animation: twc-bg 12s ease-in-out infinite alternate;
}
.scn-tea-with-crowd .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: twc-table 15s ease-in-out infinite;
}
.scn-tea-with-crowd .teacup-1 {
  position: absolute; bottom: 34%; left: 28%; width: 18px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #e0c8a0 0%, #b89870 60%, #8a7050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: twc-cup1 6s ease-in-out infinite alternate;
}
.scn-tea-with-crowd .teacup-2 {
  position: absolute; bottom: 34%; left: 55%; width: 18px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #d4b088 0%, #a08060 60%, #7a5a40 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: twc-cup2 7s ease-in-out infinite alternate;
}
.scn-tea-with-crowd .figure-seated-1 {
  position: absolute; bottom: 30%; left: 22%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twc-seat1 4s ease-in-out infinite;
}
.scn-tea-with-crowd .figure-seated-2 {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: twc-seat2 5s ease-in-out infinite;
}
.scn-tea-with-crowd .figure-stand {
  position: absolute; bottom: 29%; left: 72%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  animation: twc-stand 6s ease-in-out infinite;
}
.scn-tea-with-crowd .chandelier {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 18px;
  background: linear-gradient(180deg, #c8a060 0%, #8a7050 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 0 10px 4px rgba(200,160,96,0.3);
  animation: twc-chandel 8s ease-in-out infinite alternate;
}
@keyframes twc-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:1 } }
@keyframes twc-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes twc-cup1 { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes twc-cup2 { 0% { transform: rotate(4deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(0deg) } }
@keyframes twc-seat1 { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes twc-seat2 { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-5px) rotate(3deg) } 66% { transform: translateX(4px) rotate(-2deg) } }
@keyframes twc-stand { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes twc-chandel { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-conversation {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a382a 100%), radial-gradient(ellipse at 30% 50%, #4a382a 0%, transparent 60%);
}
.scn-conversation .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1008 0%, #2a1a0e 100%);
  animation: con-bg 14s ease-in-out infinite alternate;
}
.scn-conversation .divider {
  position: absolute; bottom: 25%; left: 45%; right: 45%; height: 50%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: con-divider 18s ease-in-out infinite;
}
.scn-conversation .chair-left {
  position: absolute; bottom: 27%; left: 18%; width: 28px; height: 24px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: con-chl 5s ease-in-out infinite;
}
.scn-conversation .chair-right {
  position: absolute; bottom: 27%; left: 62%; width: 28px; height: 24px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: con-chr 5s ease-in-out infinite;
}
.scn-conversation .figure-muishkin {
  position: absolute; bottom: 28%; left: 22%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 60%, #1e1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: con-muish 6s ease-in-out infinite;
}
.scn-conversation .figure-other {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: con-other 5s ease-in-out infinite;
}
.scn-conversation .lamp {
  position: absolute; bottom: 42%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #9a7a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(200,160,96,0.5);
  animation: con-lamp 3s ease-in-out infinite alternate;
}
.scn-conversation .light-cone {
  position: absolute; bottom: 30%; left: 38%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,160,96,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: con-cone 4s ease-in-out infinite alternate;
}
@keyframes con-bg { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes con-divider { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes con-chl { 0%,100% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(2deg) } 66% { transform: translateY(1px) rotate(-1deg) } }
@keyframes con-chr { 0%,100% { transform: translateY(0) rotate(0) } 33% { transform: translateY(1px) rotate(-2deg) } 66% { transform: translateY(-2px) rotate(2deg) } }
@keyframes con-muish { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes con-other { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes con-lamp { 0% { opacity:0.6; transform: scaleY(1) } 100% { opacity:0.9; transform: scaleY(1.08) } }
@keyframes con-cone { 0% { opacity:0.3; transform: scale(1) } 100% { opacity:0.6; transform: scale(1.15) } }

.scn-guest-economy {
  background: linear-gradient(180deg, #2e1e12 0%, #4a382a 40%, #5c4a3a 100%), radial-gradient(ellipse at 60% 40%, #5c4a3a 0%, transparent 60%);
}
.scn-guest-economy .bg-arch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #2e1e12 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: ge-bg 16s ease-in-out infinite alternate;
}
.scn-guest-economy .podium {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ge-podium 20s ease-in-out infinite;
}
.scn-guest-economy .gesturer {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 60%, #1e1008 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-gest 4s ease-in-out infinite;
}
.scn-guest-economy .listener-1 {
  position: absolute; bottom: 27%; left: 54%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  animation: ge-lis1 6s ease-in-out infinite;
}
.scn-guest-economy .listener-2 {
  position: absolute; bottom: 27%; left: 64%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  animation: ge-lis2 7s ease-in-out infinite;
}
.scn-guest-economy .banner {
  position: absolute; top: 12%; left: 30%; right: 30%; height: 16px;
  background: repeating-linear-gradient(90deg, #a08050 0px, #a08050 4px, #8a7050 4px, #8a7050 8px);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ge-banner 10s ease-in-out infinite alternate;
}
.scn-guest-economy .spotlight {
  position: absolute; top: 0; left: 35%; right: 35%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,96,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ge-spotlight 5s ease-in-out infinite alternate;
}
@keyframes ge-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes ge-podium { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ge-gest { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1) } 20% { transform: translateX(8px) rotate(8deg) scaleY(1.02) } 40% { transform: translateX(-6px) rotate(-6deg) scaleY(0.98) } 60% { transform: translateX(4px) rotate(4deg) } 80% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes ge-lis1 { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(2px) rotate(2deg) } 66% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes ge-lis2 { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-3deg) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes ge-banner { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ge-spotlight { 0% { opacity:0.2; transform: scaleY(1) } 100% { opacity:0.5; transform: scaleY(1.1) } }

/* scene: prince-explains-visit */
.scn-prince-explains-visit {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #d4c5a9 60%, #c4b494 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,250,230,.3) 0%, transparent 70%);
}
.scn-prince-explains-visit .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8cbb3 100%);
  animation: pv-wall 14s ease-in-out infinite alternate;
}
.scn-prince-explains-visit .window {
  position:absolute; top:10%; left:55%; width:25%; height:45%;
  background: linear-gradient(135deg, #c0d8e8 0%, #a0b8cc 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3);
  animation: pv-window 10s ease-in-out infinite;
}
.scn-prince-explains-visit .table {
  position:absolute; bottom:28%; left:50%; width:120px; height:8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8b5e3c 0%, #a07050 30%, #8b5e3c 100%);
  border-radius: 4px;
  box-shadow: 0 3px 6px rgba(0,0,0,.2);
  animation: pv-table 6s ease-in-out infinite;
}
.scn-prince-explains-visit .hat {
  position:absolute; bottom:35%; left:55%; width:30px; height:12px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: pv-hat 8s ease-in-out infinite;
}
.scn-prince-explains-visit .figure {
  position:absolute; bottom:20%; left:40%; width:40px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pv-figure 12s ease-in-out infinite;
}
.scn-prince-explains-visit .chair {
  position:absolute; bottom:15%; left:35%; width:28px; height:50px;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3018 100%);
  border-radius: 6px 6px 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pv-chair 9s ease-in-out infinite;
}
.scn-prince-explains-visit .shadow {
  position:absolute; bottom:15%; left:38%; width:60px; height:12px;
  background: rgba(0,0,0,.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: pv-shadow 6s ease-in-out infinite;
}
@keyframes pv-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes pv-window { 0% { brightness:.95 } 50% { brightness:1.05 } 100% { brightness:.98 } }
@keyframes pv-table { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes pv-hat { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes pv-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(0.5deg) } 75% { transform: translateY(1px) rotate(-0.3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pv-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pv-shadow { 0% { opacity:.4 } 50% { opacity:.2 } 100% { opacity:.35 } }

/* scene: general-suspicions */
.scn-general-suspicions {
  background:
    linear-gradient(180deg, #b8b0a8 0%, #8a8278 40%, #6a6258 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,255,200,.4) 0%, transparent 80%);
}
.scn-general-suspicions .bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%);
  animation: gs-bg 8s ease-in-out infinite alternate;
}
.scn-general-suspicions .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: gs-floor 6s ease-in-out infinite;
}
.scn-general-suspicions .figure-gen {
  position:absolute; bottom:25%; left:30%; width:45px; height:75px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: gs-figure-gen 3s ease-in-out infinite;
}
.scn-general-suspicions .figure-pri {
  position:absolute; bottom:25%; right:30%; width:40px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: gs-figure-pri 4s ease-in-out infinite;
}
.scn-general-suspicions .table {
  position:absolute; bottom:30%; left:50%; width:100px; height:6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: gs-table 5s ease-in-out infinite;
}
.scn-general-suspicions .clock {
  position:absolute; top:10%; left:50%; width:20px; height:20px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #e0d0b0 0%, #c0b090 100%);
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: gs-clock 2s steps(2) infinite;
}
.scn-general-suspicions .shadow-gen {
  position:absolute; bottom:20%; left:28%; width:50px; height:15px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: gs-shadow-gen 3s ease-in-out infinite;
}
.scn-general-suspicions .shadow-pri {
  position:absolute; bottom:20%; right:28%; width:45px; height:12px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(4px);
  animation: gs-shadow-pri 4s ease-in-out infinite;
}
@keyframes gs-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gs-floor { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes gs-figure-gen { 0% { transform: rotate(15deg) translateY(0) } 30% { transform: rotate(12deg) translateY(-2px) } 70% { transform: rotate(18deg) translateY(1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes gs-figure-pri { 0% { transform: rotate(-10deg) translateY(0) } 30% { transform: rotate(-8deg) translateY(-1px) } 70% { transform: rotate(-12deg) translateY(1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes gs-table { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(0.98) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes gs-clock { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gs-shadow-gen { 0% { opacity:.5 } 50% { opacity:.3 } 100% { opacity:.4 } }
@keyframes gs-shadow-pri { 0% { opacity:.4 } 50% { opacity:.2 } 100% { opacity:.35 } }

/* scene: prince-leaves-amicably */
.scn-prince-leaves-amicably {
  background:
    linear-gradient(180deg, #d4c4b0 0%, #c0b098 50%, #a89880 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,250,230,.4) 0%, transparent 80%);
}
.scn-prince-leaves-amicably .bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #d0c0a8 0%, #b8a890 100%);
  animation: pl-bg 12s ease-in-out infinite alternate;
}
.scn-prince-leaves-amicably .door {
  position:absolute; bottom:20%; right:20%; width:18%; height:70%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,.2);
  animation: pl-door 8s ease-in-out infinite;
}
.scn-prince-leaves-amicably .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #7a6a5a 0%, #9a8a7a 100%);
  animation: pl-floor 10s ease-in-out infinite;
}
.scn-prince-leaves-amicably .chair {
  position:absolute; bottom:20%; left:30%; width:30px; height:55px;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3018 100%);
  border-radius: 6px 6px 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: pl-chair 7s ease-in-out infinite;
}
.scn-prince-leaves-amicably .figure {
  position:absolute; bottom:15%; left:42%; width:38px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-figure 14s ease-in-out infinite;
}
.scn-prince-leaves-amicably .hat {
  position:absolute; bottom:35%; left:48%; width:28px; height:10px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: pl-hat 9s ease-in-out infinite;
}
.scn-prince-leaves-amicably .coatrack {
  position:absolute; bottom:22%; left:15%; width:12px; height:60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
  animation: pl-coatrack 11s ease-in-out infinite;
}
@keyframes pl-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.93 } }
@keyframes pl-door { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes pl-floor { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes pl-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pl-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pl-hat { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes pl-coatrack { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* scene: general-relents */
.scn-general-relents {
  background:
    linear-gradient(135deg, #dab890 0%, #c8a470 60%, #b89460 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,200,100,.5) 0%, transparent 70%);
}
.scn-general-relents .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #dab890 0%, #c8a470 100%);
  animation: gr-wall 16s ease-in-out infinite alternate;
}
.scn-general-relents .fireplace {
  position:absolute; bottom:25%; left:50%; width:90px; height:80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 12% 12% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: gr-fireplace 8s ease-in-out infinite;
}
.scn-general-relents .fire {
  position:absolute; bottom:38%; left:50%; width:30px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ffa040 0%, #ff8020 40%, #cc5500 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,120,0,.5), 0 0 60px 20px rgba(255,150,0,.2);
  animation: gr-fire 3s ease-in-out infinite;
}
.scn-general-relents .mantel {
  position:absolute; bottom:40%; left:50%; width:100px; height:6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a4a30 0%, #8a6a4a 50%, #6a4a30 100%);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,.2);
  animation: gr-mantel 10s ease-in-out infinite;
}
.scn-general-relents .armchair-l {
  position:absolute; bottom:18%; left:15%; width:45px; height:55px;
  background: linear-gradient(180deg, #704030 0%, #502010 100%);
  border-radius: 20% 20% 14% 14%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: gr-chair-l 7s ease-in-out infinite;
}
.scn-general-relents .armchair-r {
  position:absolute; bottom:18%; right:15%; width:45px; height:55px;
  background: linear-gradient(180deg, #704030 0%, #502010 100%);
  border-radius: 20% 20% 14% 14%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: gr-chair-r 9s ease-in-out infinite;
}
.scn-general-relents .rug {
  position:absolute; bottom:5%; left:10%; right:10%; height:20%;
  background: linear-gradient(90deg, #b08050 0%, #c09060 50%, #b08050 100%);
  border-radius: 30% 30% 0 0;
  opacity:.7;
  animation: gr-rug 12s ease-in-out infinite;
}
@keyframes gr-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gr-fireplace { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes gr-fire { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:.9 } 25% { transform: translateX(-50%) scaleY(1.1) scaleX(1.05); opacity:1 } 75% { transform: translateX(-50%) scaleY(0.95) scaleX(0.98); opacity:.85 } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:.9 } }
@keyframes gr-mantel { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes gr-chair-l { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gr-chair-r { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gr-rug { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }

/* Scene 1: Rogojin not returned – tense dusk interior */
.scn-rogojin-not-returned {
  background: 
    linear-gradient(180deg, #4a2e3a 0%, #3a1e2a 30%, #2a0e1a 70%, #1a0a0e 100%),
    radial-gradient(ellipse at 30% 70%, #6a4a3a 0%, transparent 60%);
}
.scn-rogojin-not-returned .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 100%);
  opacity: 0.6;
}
.scn-rogojin-not-returned .door-left {
  position: absolute; left: 25%; bottom: 10%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: rjg-door 6s ease-in-out infinite;
}
.scn-rogojin-not-returned .door-right {
  position: absolute; right: 25%; bottom: 10%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: rjg-door 6s ease-in-out infinite 1s;
}
.scn-rogojin-not-returned .figure-servant {
  position: absolute; left: 22%; bottom: 15%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjg-servant 8s ease-in-out infinite;
}
.scn-rogojin-not-returned .figure-prince {
  position: absolute; right: 28%; bottom: 15%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rjg-prince 5s ease-in-out infinite;
}
.scn-rogojin-not-returned .light-shaft {
  position: absolute; left: 5%; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, rgba(200,160,120,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: rjg-light 9s ease-in-out infinite alternate;
}
.scn-rogojin-not-returned .shadow-steps {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 8%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  border-radius: 50% 50% 0 0;
  animation: rjg-steps 10s ease-in-out infinite;
}
@keyframes rjg-door { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(-5deg); } }
@keyframes rjg-servant { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2%) translateY(-1%); } 50% { transform: translateX(4%) translateY(0); } 75% { transform: translateX(2%) translateY(-0.5%); } }
@keyframes rjg-prince { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-1%) rotate(-2deg); } 60% { transform: translateX(0) rotate(1deg); } }
@keyframes rjg-light { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes rjg-steps { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* Scene 2: Prince watches house – dark dusk exterior */
.scn-prince-watches-house {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 80%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-prince-watches-house .sky-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%);
  animation: pwh-sky 20s ease-in-out infinite alternate;
}
.scn-prince-watches-house .building {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.5);
}
.scn-prince-watches-house .window-left {
  position: absolute; bottom: 45%; left: 25%; width: 12%; height: 20%;
  background: radial-gradient(circle, #2a2a4e 0%, #1a1a3e 100%);
  border: 2px solid #3a3a5a;
  animation: pwh-window 6s ease-in-out infinite;
}
.scn-prince-watches-house .window-right {
  position: absolute; bottom: 45%; right: 25%; width: 12%; height: 20%;
  background: radial-gradient(circle, #2a2a4e 0%, #1a1a3e 100%);
  border: 2px solid #3a3a5a;
  animation: pwh-window 6s ease-in-out infinite 3s;
}
.scn-prince-watches-house .blind-left {
  position: absolute; bottom: 45%; left: 25%; width: 12%; height: 20%;
  background: repeating-linear-gradient(0deg, #0a0a1a 0px, #0a0a1a 4px, transparent 4px, transparent 8px);
  animation: pwh-blind 12s ease-in-out infinite;
}
.scn-prince-watches-house .blind-right {
  position: absolute; bottom: 45%; right: 25%; width: 12%; height: 20%;
  background: repeating-linear-gradient(0deg, #0a0a1a 0px, #0a0a1a 4px, transparent 4px, transparent 8px);
  animation: pwh-blind 12s ease-in-out infinite 6s;
}
.scn-prince-watches-house .figure-prince {
  position: absolute; bottom: 22%; left: 10%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pwh-figure 8s ease-in-out infinite;
}
.scn-prince-watches-house .lamp-post {
  position: absolute; bottom: 20%; left: 12%; width: 1.5%; height: 25%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  box-shadow: 0 0 10px 2px rgba(255,200,150,0.2);
  animation: pwh-lamp 4s ease-in-out infinite alternate;
}
@keyframes pwh-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pwh-window { 0%,100% { opacity: 0.8; } 50% { opacity: 0.5; } }
@keyframes pwh-blind { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.3); } }
@keyframes pwh-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(-2deg); } 50% { transform: translateX(4%) rotate(0deg); } 75% { transform: translateX(2%) rotate(1deg); } }
@keyframes pwh-lamp { 0% { box-shadow: 0 0 4px 1px rgba(255,200,150,0.1); } 100% { box-shadow: 0 0 12px 4px rgba(255,200,150,0.3); } }

/* Scene 3: Barracks no news – dark dim interior */
.scn-barracks-no-news {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #1a1a0a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 20% 60%, #3a3a2a 0%, transparent 60%);
}
.scn-barracks-no-news .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  opacity: 0.7;
}
.scn-barracks-no-news .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
}
.scn-barracks-no-news .chair-mother {
  position: absolute; bottom: 12%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
}
.scn-barracks-no-news .chair-prince {
  position: absolute; bottom: 12%; right: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  animation: bnn-chair 10s ease-in-out infinite;
}
.scn-barracks-no-news .figure-mother {
  position: absolute; bottom: 18%; left: 33%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bnn-mother 8s ease-in-out infinite;
}
.scn-barracks-no-news .figure-prince {
  position: absolute; bottom: 18%; right: 33%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bnn-prince 12s ease-in-out infinite;
}
.scn-barracks-no-news .lamp {
  position: absolute; top: 20%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,160,120,0.3), 0 0 40px 12px rgba(200,160,120,0.1);
  animation: bnn-lamp 5s ease-in-out infinite alternate;
}
.scn-barracks-no-news .door-closed {
  position: absolute; right: 5%; bottom: 15%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.8);
}
@keyframes bnn-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes bnn-mother { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2%) rotate(-2deg); } 60% { transform: translateY(0) rotate(1deg); } }
@keyframes bnn-prince { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(1%) scale(0.98); } }
@keyframes bnn-lamp { 0% { opacity: 0.5; box-shadow: 0 0 10px 3px rgba(200,160,120,0.2); } 100% { opacity: 0.8; box-shadow: 0 0 24px 8px rgba(200,160,120,0.4); } }

/* Scene 4: Princess seeking clues – dark dim interior with book */
.scn-princess-seeking-clues {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 30%, #1a0a0a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-princess-seeking-clues .wall-panel {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 2px, #1a0a0a 2px, #1a0a0a 4px);
  opacity: 0.3;
}
.scn-princess-seeking-clues .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.8);
}
.scn-princess-seeking-clues .book-open {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a0a 100%);
  border-radius: 4% 4% 8% 8% / 10% 10% 16% 16%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: psc-book 7s ease-in-out infinite;
}
.scn-princess-seeking-clues .bookmark {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  animation: psc-bookmark 4s ease-in-out infinite;
}
.scn-princess-seeking-clues .figure-princess {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psc-princess 9s ease-in-out infinite;
}
.scn-princess-seeking-clues .candle {
  position: absolute; bottom: 34%; left: 25%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(200,150,100,0.3);
  animation: psc-candle 6s ease-in-out infinite alternate;
}
.scn-princess-seeking-clues .chair {
  position: absolute; bottom: 13%; left: 20%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  animation: psc-chair 12s ease-in-out infinite;
}
.scn-princess-seeking-clues .rug {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: psc-rug 15s ease-in-out infinite;
}
@keyframes psc-book { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.01); } }
@keyframes psc-bookmark { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2%); } }
@keyframes psc-princess { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1%) rotate(1deg); } }
@keyframes psc-candle { 0% { box-shadow: 0 0 8px 2px rgba(200,150,100,0.2); opacity: 0.7; } 100% { box-shadow: 0 0 16px 6px rgba(200,150,100,0.4); opacity: 1; } }
@keyframes psc-chair { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98); } }
@keyframes psc-rug { 0%,100% { opacity: 0.5; } 50% { opacity: 0.7; } }

.scn-general-concern-rogogin {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 60%);
}
.scn-general-concern-rogogin .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: gor-wall 12s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-general-concern-rogogin .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: gor-table 6s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .lamp-glow {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0a060 0%, #c08040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(192,128,64,0.6), 0 0 80px 24px rgba(192,128,64,0.2);
  animation: gor-lamp 2s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .figure-general {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gor-general 4s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .figure-gania {
  position: absolute; bottom: 18%; right: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gor-gania 3s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .curtain {
  position: absolute; top: 0; bottom: 20%; width: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40%;
  opacity: 0.6;
}
.scn-general-concern-rogogin .curtain.left {
  left: 0;
  animation: gor-curtain-l 10s ease-in-out infinite alternate;
}
.scn-general-concern-rogogin .curtain.right {
  right: 0;
  animation: gor-curtain-r 10s ease-in-out infinite alternate-reverse;
}
@keyframes gor-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes gor-table {
  0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); }
}
@keyframes gor-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(192,128,64,0.5), 0 0 60px 16px rgba(192,128,64,0.15); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 16px rgba(224,160,96,0.7), 0 0 100px 32px rgba(224,160,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(192,128,64,0.55), 0 0 70px 20px rgba(192,128,64,0.2); opacity: 0.9; }
}
@keyframes gor-general {
  0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gor-gania {
  0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); }
}
@keyframes gor-curtain-l {
  0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); }
}
@keyframes gor-curtain-r {
  0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); }
}

.scn-prince-opinion-rogogin {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2035 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-prince-opinion-rogogin .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #222240 0%, #181830 100%);
  animation: poi-wall 10s ease-in-out infinite alternate;
}
.scn-prince-opinion-rogogin .table-close {
  position: absolute; bottom: 15%; left: 50%; width: 140px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-prince-opinion-rogogin .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c080 0%, #a08050 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -4px 8px rgba(224,192,128,0.3);
}
.scn-prince-opinion-rogogin .flame {
  position: absolute; bottom: 36%; left: 50%; width: 12px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe0a0 0%, #e0a050 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 6px #e0a050, 0 0 48px 12px rgba(224,160,80,0.3);
  animation: poi-flame 1.5s ease-in-out infinite alternate;
}
.scn-prince-opinion-rogogin .figure-prince {
  position: absolute; bottom: 12%; left: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2a3e 0%, #10101a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: poi-prince 4s ease-in-out infinite alternate;
}
.scn-prince-opinion-rogogin .figure-gania {
  position: absolute; bottom: 12%; right: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: poi-gania 3.5s ease-in-out infinite alternate;
}
.scn-prince-opinion-rogogin .shadow-left {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: poi-shadow-l 5s ease-in-out infinite alternate;
}
.scn-prince-opinion-rogogin .shadow-right {
  position: absolute; bottom: 10%; right: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: poi-shadow-r 5s ease-in-out infinite alternate-reverse;
}
@keyframes poi-wall {
  0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.85; }
}
@keyframes poi-flame {
  0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(0.95); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; }
}
@keyframes poi-prince {
  0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes poi-gania {
  0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes poi-shadow-l {
  0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.5; }
}
@keyframes poi-shadow-r {
  0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-general-grudging-approval {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2035 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-general-grudging-approval .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e30 0%, #141428 100%);
  animation: gga-wall 8s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-general-grudging-approval .desk {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 70px;
  transform: translateX(-50%) perspective(400px) rotateX(10deg);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: gga-desk 7s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .chair {
  position: absolute; bottom: 25%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(5deg);
  animation: gga-chair 5s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .figure-general {
  position: absolute; bottom: 18%; left: 15%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: gga-general 3.5s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .figure-gania {
  position: absolute; bottom: 18%; right: 20%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gga-gania 2.8s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .paper {
  position: absolute; bottom: 28%; left: 52%; width: 40px; height: 30px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gga-paper 6s ease-in-out infinite alternate;
}
.scn-general-grudging-approval .inkwell {
  position: absolute; bottom: 32%; left: 56%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
@keyframes gga-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes gga-desk {
  0% { transform: translateX(-50%) perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: translateX(-50%) perspective(400px) rotateX(10deg) translateY(-2px); }
  100% { transform: translateX(-50%) perspective(400px) rotateX(10deg) translateY(0); }
}
@keyframes gga-chair {
  0% { transform: rotate(5deg); } 50% { transform: rotate(7deg); } 100% { transform: rotate(5deg); }
}
@keyframes gga-general {
  0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gga-gania {
  0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); }
}
@keyframes gga-paper {
  0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(-5deg); }
}

.scn-prince-caligraphy-display {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b0 50%, #d4c0a0 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-prince-caligraphy-display .wall-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0e4c8 0%, #e0d0b0 100%);
  animation: pcd-wall 10s ease-in-out infinite alternate;
}
.scn-prince-caligraphy-display .desk {
  position: absolute; bottom: 10%; left: 50%; width: 180px; height: 80px;
  transform: translateX(-50%) perspective(400px) rotateX(5deg);
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: pcd-desk 8s ease-in-out infinite alternate;
}
.scn-prince-caligraphy-display .paper {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(135deg, #faf3e0 0%, #f0e0c0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: pcd-paper 6s ease-in-out infinite alternate;
}
.scn-prince-caligraphy-display .inkwell {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
}
.scn-prince-caligraphy-display .prince-hand {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a080 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  animation: pcd-hand 4s ease-in-out infinite alternate;
}
.scn-prince-caligraphy-display .figure-general-profile {
  position: absolute; bottom: 12%; right: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  filter: brightness(1.2);
  animation: pcd-general-profile 5s ease-in-out infinite alternate;
}
.scn-prince-caligraphy-display .figure-gania-profile {
  position: absolute; bottom: 12%; right: 5%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  filter: brightness(1.1);
  animation: pcd-gania-profile 5s ease-in-out infinite alternate-reverse;
}
.scn-prince-caligraphy-display .sunbeam {
  position: absolute; top: 0; left: 30%; width: 60px; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 80%);
  filter: blur(8px);
  animation: pcd-sunbeam 6s ease-in-out infinite alternate;
}
@keyframes pcd-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes pcd-desk {
  0% { transform: translateX(-50%) perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: translateX(-50%) perspective(400px) rotateX(5deg) translateY(-2px); }
  100% { transform: translateX(-50%) perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes pcd-paper {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pcd-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes pcd-general-profile {
  0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); }
}
@keyframes pcd-gania-profile {
  0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); }
}
@keyframes pcd-sunbeam {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; }
}

/* Scene 1: aglaya-says-he-hates */
.scn-aglaya-says-he-hates {
  background: linear-gradient(180deg, #1a1a1a 0%, #2c2018 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-aglaya-says-he-hates .bg-ash { position:absolute; inset:0; background: linear-gradient(180deg, #2c241c 0%, #14100c 100%); animation: ag-pulse 12s ease-in-out infinite alternate; }
.scn-aglaya-says-he-hates .shadow-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #0d0a08 0%, transparent 100%); }
.scn-aglaya-says-he-hates .lamp-glow { position:absolute; top:30%; left:45%; width:50px; height:80px; background: radial-gradient(ellipse, #d4a060 0%, #8a6030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(180,120,60,0.3); animation: ag-lamp 3s ease-in-out infinite alternate; }
.scn-aglaya-says-he-hates .figure-left { position:absolute; bottom:10%; left:15%; width:60px; height:140px; background: linear-gradient(180deg, #1c1814 0%, #0f0b08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-breathe 4s ease-in-out infinite; }
.scn-aglaya-says-he-hates .figure-right { position:absolute; bottom:10%; right:15%; width:55px; height:145px; background: linear-gradient(180deg, #1a1612 0%, #0e0a07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-breathe 4.5s ease-in-out infinite reverse; }
.scn-aglaya-says-he-hates .table-edge { position:absolute; bottom:8%; left:30%; right:30%; height:6px; background: linear-gradient(90deg, transparent, #4a3a2a 20%, #5a4a3a 50%, #4a3a2a 80%, transparent); border-radius: 40% 60% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.6); }
@keyframes ag-pulse { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ag-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes ag-breathe { 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); } }

/* Scene 2: nastasia-offers-prince */
.scn-nastasia-offers-prince {
  background: linear-gradient(180deg, #111118 0%, #1c1824 40%, #282030 100%), radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-nastasia-offers-prince .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1622 0%, #0e0c14 100%); animation: np-dim 10s ease-in-out infinite alternate; }
.scn-nastasia-offers-prince .window-dim { position:absolute; top:8%; right:6%; width:60px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a101a 100%); border-radius:8% 8% 30% 30%; box-shadow: inset 0 0 12px 4px rgba(10,20,30,0.8); animation: np-window 20s ease-in-out infinite alternate; }
.scn-nastasia-offers-prince .chair-back { position:absolute; bottom:12%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 0 8px rgba(0,0,0,0.5); transform-origin: bottom center; animation: np-chair 6s ease-in-out infinite; }
.scn-nastasia-offers-prince .figure-seated { position:absolute; bottom:10%; left:25%; width:50px; height:110px; background: linear-gradient(180deg, #1c1820 0%, #0f0b12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-seated 7s ease-in-out infinite; }
.scn-nastasia-offers-prince .figure-standing { position:absolute; bottom:5%; right:20%; width:45px; height:130px; background: linear-gradient(180deg, #1a1620 0%, #0c0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-stand 5s ease-in-out infinite reverse; }
.scn-nastasia-offers-prince .box-offer { position:absolute; bottom:14%; left:30%; width:20px; height:16px; background: radial-gradient(circle at 50% 50%, #d4a060 0%, #7a5020 100%); border-radius: 10%; box-shadow: 0 0 20px 6px rgba(180,120,40,0.5); animation: np-glow 4s ease-in-out infinite alternate; }
.scn-nastasia-offers-prince .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
@keyframes np-dim { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes np-window { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-2px); } 100% { opacity:0.5; transform: translateY(0); } }
@keyframes np-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes np-seated { 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 np-stand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes np-glow { 0% { box-shadow: 0 0 15px 4px rgba(180,120,40,0.4); } 50% { box-shadow: 0 0 30px 12px rgba(180,120,40,0.7); } 100% { box-shadow: 0 0 18px 5px rgba(180,120,40,0.5); } }

/* Scene 3: nastasia-threatens */
.scn-nastasia-threatens {
  background: linear-gradient(180deg, #0a0808 0%, #1a0e0c 40%, #2a1814 100%), radial-gradient(ellipse at 50% 80%, #3a2018 0%, transparent 70%);
}
.scn-nastasia-threatens .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, #120c0a 0%, #0a0604 100%); animation: nt-fade 15s ease-in-out infinite alternate; }
.scn-nastasia-threatens .floor-lamp { position:absolute; bottom:15%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 20% 20% 40% 40%; transform-origin: bottom center; animation: nt-lamp 3s ease-in-out infinite alternate; }
.scn-nastasia-threatens .figure-threat { position:absolute; bottom:5%; left:30%; width:55px; height:150px; background: linear-gradient(180deg, #1c120e 0%, #0e0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-threat 4s ease-in-out infinite; }
.scn-nastasia-threatens .arm-raised { position:absolute; bottom:60%; left:20%; width:12px; height:60px; background: linear-gradient(180deg, #1a100c 0%, #0c0604 100%); border-radius: 30% 30% 40% 40%; transform-origin: bottom center; transform: rotate(-20deg); animation: nt-arm 2.5s ease-in-out infinite alternate; }
.scn-nastasia-threatens .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%); }
.scn-nastasia-threatens .curtain-drape { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 60%, #0a0604 100%); border-radius: 0 0 0 60%; box-shadow: -8px 0 20px rgba(0,0,0,0.6); animation: nt-curtain 8s ease-in-out infinite alternate; }
.scn-nastasia-threatens .wall-crack { position:absolute; top:20%; left:60%; width:4px; height:30px; background: #1a0e0a; border-radius: 40%; box-shadow: 0 0 6px 2px rgba(26,14,10,0.5); animation: nt-crack 12s ease-in-out infinite alternate; }
@keyframes nt-fade { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes nt-lamp { 0% { opacity:0.5; transform: scale(1) rotate(0deg); } 50% { opacity:0.8; transform: scale(1.1) rotate(3deg); } 100% { opacity:0.6; transform: scale(0.95) rotate(-2deg); } }
@keyframes nt-threat { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nt-arm { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-35deg) translateY(-5px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes nt-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes nt-crack { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* Scene 4: aglaya-terror */
.scn-aglaya-terror {
  background: linear-gradient(180deg, #0a0a0e 0%, #14101a 40%, #1c1822 100%), radial-gradient(ellipse at 50% 40%, #2a2030 0%, transparent 70%);
}
.scn-aglaya-terror .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0c14 0%, #06040a 100%); animation: at-pulse 14s ease-in-out infinite alternate; }
.scn-aglaya-terror .door-frame { position:absolute; top:5%; left:5%; right:5%; bottom:5%; border:8px solid #1a1420; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px 10px rgba(0,0,0,0.8); }
.scn-aglaya-terror .door-ajar { position:absolute; top:5%; left:5%; width:45%; height:90%; background: linear-gradient(180deg, #2a2030 0%, #1a1420 100%); border-radius: 2% 0 0 2%; transform-origin: left center; animation: at-door 6s ease-in-out infinite alternate; }
.scn-aglaya-terror .figure-terrified { position:absolute; bottom:8%; left:20%; width:50px; height:130px; background: linear-gradient(180deg, #1c1620 0%, #0c0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: at-figure 3s ease-in-out infinite; }
.scn-aglaya-terror .hand-on-door { position:absolute; bottom:40%; left:10%; width:16px; height:24px; background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%); border-radius: 30% 30% 20% 20%; transform: rotate(15deg); animation: at-hand 2.5s ease-in-out infinite alternate; }
.scn-aglaya-terror .crack-light { position:absolute; top:25%; left:7%; width:8px; height:40px; background: radial-gradient(ellipse, #4a4060 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(74,64,96,0.4); animation: at-light 5s ease-in-out infinite alternate; }
.scn-aglaya-terror .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); }
@keyframes at-pulse { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes at-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-5deg); } 100% { transform: rotateY(2deg); } }
@keyframes at-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes at-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes at-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.1; } }

.scn-dawn { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4e 100%), radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%); }
.scn-dawn .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #0e0e1e 0%, #1a1a2e 50%, #0e0e1e 100%); box-shadow: inset 0 0 40px 10px rgba(0,0,0,.6); animation: dn-wall 20s ease-in-out infinite alternate; }
.scn-dawn .window-frame { position:absolute; top:12%; left:38%; width:24%; height:50%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: dn-frame 8s ease-in-out infinite; }
.scn-dawn .sky-dawn { position:absolute; top:14%; left:40%; width:20%; height:46%; background: linear-gradient(180deg, #4a5a7e 0%, #6a7a9e 40%, #b08a5a 70%, #d0a86e 100%); border-radius:2%; animation: dn-sky 12s ease-in-out infinite alternate; }
.scn-dawn .bench { position:absolute; bottom:28%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-dawn .figure-left { position:absolute; bottom:32%; left:38%; width:8%; height:24%; background: radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dn-fig-l 6s ease-in-out infinite; }
.scn-dawn .figure-right { position:absolute; bottom:32%; right:38%; width:8%; height:24%; background: radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dn-fig-r 6s ease-in-out infinite reverse; }
.scn-dawn .dawn-ray { position:absolute; top:30%; left:42%; width:16%; height:40%; background: linear-gradient(135deg, rgba(208,168,110,.2) 0%, transparent 90%); filter: blur(8px); animation: dn-ray 15s ease-in-out infinite alternate; }
@keyframes dn-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dn-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dn-sky { 0% { opacity:.6; filter: brightness(.7) } 50% { opacity:.9; filter: brightness(1) } 100% { opacity:.7; filter: brightness(.8) } }
@keyframes dn-fig-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes dn-fig-r { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes dn-ray { 0% { transform: scaleY(.9) translateY(0); opacity:.4 } 50% { transform: scaleY(1.1) translateY(-10px); opacity:.8 } 100% { transform: scaleY(.95) translateY(0); opacity:.5 } }

.scn-final { background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #1e1e3a 100%), radial-gradient(ellipse at 50% 40%, #2a2a44 0%, transparent 70%); }
.scn-final .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #16162a 100%); animation: fl-bg 18s ease-in-out infinite alternate; }
.scn-final .face-left { position:absolute; bottom:35%; left:28%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, #0a0a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: fl-face-l 5s ease-in-out infinite; }
.scn-final .face-right { position:absolute; bottom:35%; right:28%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 40%, #2e2e40 0%, #0a0a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: fl-face-r 5s ease-in-out infinite reverse; }
.scn-final .hair-left { position:absolute; bottom:53%; left:30%; width:14%; height:10%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; filter: blur(2px); animation: fl-hair-l 7s ease-in-out infinite; }
.scn-final .hair-right { position:absolute; bottom:53%; right:30%; width:14%; height:10%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; filter: blur(2px); animation: fl-hair-r 7s ease-in-out infinite reverse; }
.scn-final .overlap-shadow { position:absolute; bottom:40%; left:36%; width:28%; height:12%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: fl-shadow 10s ease-in-out infinite alternate; }
.scn-final .tear-drop { position:absolute; bottom:48%; left:42%; width:2%; height:4%; background: radial-gradient(circle, rgba(180,200,220,.6) 0%, transparent 100%); border-radius: 50%; animation: fl-tear 4s ease-in-out infinite; }
@keyframes fl-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fl-face-l { 0% { transform: translateY(0) rotate(-1deg) scale(1) } 50% { transform: translateY(-3px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(-1deg) scale(1) } }
@keyframes fl-face-r { 0% { transform: translateY(0) rotate(1deg) scale(1) } 50% { transform: translateY(-3px) rotate(-2deg) scale(1.02) } 100% { transform: translateY(0) rotate(1deg) scale(1) } }
@keyframes fl-hair-l { 0% { filter: blur(2px) brightness(.8) } 50% { filter: blur(4px) brightness(1) } 100% { filter: blur(2px) brightness(.8) } }
@keyframes fl-hair-r { 0% { filter: blur(2px) brightness(.8) } 50% { filter: blur(4px) brightness(1) } 100% { filter: blur(2px) brightness(.8) } }
@keyframes fl-shadow { 0% { opacity:.3; transform: scaleY(.9) } 50% { opacity:.6; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(.95) } }
@keyframes fl-tear { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(8px) scale(1.5); opacity:0 } 100% { transform: translateY(0) scale(1); opacity:.8 } }

.scn-end { background: linear-gradient(180deg, #12122a 0%, #1a1a3a 50%, #1e1e40 100%), radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%); }
.scn-end .bg-dim { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e20 0%, #1a1a30 100%); animation: en-bg 22s ease-in-out infinite alternate; }
.scn-end .head-back { position:absolute; bottom:28%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,.7); animation: en-head-b 8s ease-in-out infinite; }
.scn-end .head-front { position:absolute; bottom:30%; left:38%; width:24%; height:32%; background: radial-gradient(ellipse at 50% 40%, #2e2e40 0%, #12122a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: en-head-f 8s ease-in-out infinite; }
.scn-end .shoulder-back { position:absolute; bottom:10%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; filter: blur(4px); animation: en-shoulder-b 12s ease-in-out infinite alternate; }
.scn-end .shoulder-front { position:absolute; bottom:12%; left:34%; width:32%; height:16%; background: radial-gradient(ellipse at 50% 30%, #1e1e30 0%, #12122a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; filter: blur(3px); animation: en-shoulder-f 12s ease-in-out infinite alternate reverse; }
.scn-end .tear-stream { position:absolute; bottom:44%; left:44%; width:3%; height:10%; background: linear-gradient(180deg, rgba(180,200,220,.5) 0%, transparent 100%); border-radius: 50%; animation: en-tear 5s ease-in-out infinite; }
.scn-end .dark-veil { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,.6) 100%); pointer-events: none; animation: en-veil 15s ease-in-out infinite alternate; }
@keyframes en-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes en-head-b { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes en-head-f { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4px) translateY(-4px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes en-shoulder-b { 0% { opacity:.6; transform: scaleY(.95) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes en-shoulder-f { 0% { opacity:.7; transform: scaleY(.98) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes en-tear { 0% { transform: scaleY(1) opacity:.6 } 50% { transform: scaleY(2) opacity:0 } 100% { transform: scaleY(1) opacity:.6 } }
@keyframes en-veil { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-discovery { background: linear-gradient(180deg, #0e0e1e 0%, #16162e 40%, #1a1a3a 100%), radial-gradient(ellipse at 30% 50%, #2a2a44 0%, transparent 70%); }
.scn-discovery .room { position:absolute; inset:0; background: linear-gradient(135deg, #080818 0%, #12122a 100%); animation: di-room 20s ease-in-out infinite alternate; }
.scn-discovery .door { position:absolute; top:10%; right:10%; width:20%; height:80%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%); border-radius: 2% 2% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); animation: di-door 15s ease-in-out infinite; }
.scn-discovery .door-light { position:absolute; top:12%; right:12%; width:16%; height:76%; background: linear-gradient(135deg, rgba(180,200,220,.15) 0%, transparent 70%); filter: blur(8px); animation: di-light 10s ease-in-out infinite alternate; }
.scn-discovery .sitting-figure { position:absolute; bottom:20%; left:30%; width:14%; height:30%; background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: di-sit 6s ease-in-out infinite; }
.scn-discovery .lying-figure { position:absolute; bottom:10%; left:20%; width:40%; height:12%; background: radial-gradient(ellipse at 50% 30%, #1e1e30 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; filter: blur(4px); animation: di-ly 8s ease-in-out infinite alternate; }
.scn-discovery .incoming-blur { position:absolute; bottom:25%; right:2%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(50,60,80,.3) 0%, transparent 100%); filter: blur(12px); animation: di-in 7s ease-in-out infinite; }
.scn-discovery .shadow-fall { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 60%); pointer-events: none; animation: di-shadow 12s ease-in-out infinite alternate; }
@keyframes di-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes di-door { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-8px) scaleX(.98) } }
@keyframes di-light { 0% { opacity:.3; transform: scaleY(.9) } 50% { opacity:.7; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(.95) } }
@keyframes di-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes di-ly { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.05) translateX(-5px) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes di-in { 0% { transform: translateX(20px) scale(.8); opacity:.2 } 50% { transform: translateX(0) scale(1.1); opacity:.6 } 100% { transform: translateX(-10px) scale(.9); opacity:.3 } }
@keyframes di-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }

/* evgenie-departs – tense, dim interior */
.scn-evgenie-departs {
  background: linear-gradient(180deg, #1a1228 0%, #2a1a36 40%, #1f1222 100%), radial-gradient(ellipse at 30% 60%, #4a2a3a 0%, transparent 70%);
}
.scn-evgenie-departs .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e32 0%, #1a0e22 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-evgenie-departs .door {
  position: absolute; right: 12%; bottom: 0; width: 28%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1308 100%);
  border: 2px solid #4a3a2a; border-radius: 4% 4% 0 0;
}
.scn-evgenie-departs .figure-silhouette {
  position: absolute; right: 18%; bottom: 0; width: 16%; height: 55%;
  background: linear-gradient(180deg, #0a0510 0%, #1a0e1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: evg-figure 4s ease-in-out infinite alternate;
}
.scn-evgenie-departs .shadow {
  position: absolute; right: 14%; bottom: 0; width: 25%; height: 8%;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(12px);
  animation: evg-shadow 4s ease-in-out infinite alternate;
}
.scn-evgenie-departs .candle {
  position: absolute; left: 10%; bottom: 15%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -6px 12px rgba(192,128,64,.3);
}
.scn-evgenie-departs .candle-glow {
  position: absolute; left: 10%; bottom: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: evg-flicker 1.5s ease-in-out infinite alternate;
}
.scn-evgenie-departs .portrait {
  position: absolute; left: 5%; top: 12%; width: 20%; height: 28%;
  background: linear-gradient(135deg, #3a2a1e 0%, #1f1308 100%);
  border-radius: 10%; border: 2px solid #4a3a2a;
  box-shadow: 0 0 20px rgba(0,0,0,.8);
  animation: evg-portrait 6s ease-in-out infinite;
}
@keyframes evg-figure {
  0% { transform: translateX(0) rotate(0deg); opacity:.9; }
  50% { transform: translateX(8px) rotate(2deg); opacity:.7; }
  100% { transform: translateX(0) rotate(0deg); opacity:.9; }
}
@keyframes evg-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:.5; }
  50% { transform: scaleX(1.1) translateX(6px); opacity:.3; }
  100% { transform: scaleX(1) translateX(0); opacity:.5; }
}
@keyframes evg-flicker {
  0% { transform: scale(1); opacity:.8; }
  50% { transform: scale(1.08); opacity:1; }
  100% { transform: scale(.95); opacity:.7; }
}
@keyframes evg-portrait {
  0% { transform: scale(1) rotate(0deg); filter: brightness(1); }
  50% { transform: scale(1.02) rotate(1deg); filter: brightness(1.2); }
  100% { transform: scale(1) rotate(0deg); filter: brightness(1); }
}

/* prince-does-not-die – calm, overcast */
.scn-prince-does-not-die {
  background: linear-gradient(180deg, #a8b8c8 0%, #8a9aaa 40%, #6a7a8a 100%), radial-gradient(ellipse at 50% 30%, #c0d0e0 0%, transparent 70%);
}
.scn-prince-does-not-die .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #bcc8d4 0%, #9aacbe 100%);
  animation: prn-sky 10s ease-in-out infinite alternate;
}
.scn-prince-does-not-die .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
}
.scn-prince-does-not-die .bench {
  position: absolute; bottom: 18%; left: 40%; width: 30%; height: 8%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-prince-does-not-die .prince-sitting {
  position: absolute; bottom: 22%; left: 48%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prn-breathe 6s ease-in-out infinite;
}
.scn-prince-does-not-die .book {
  position: absolute; bottom: 24%; left: 53%; width: 6%; height: 8%;
  background: linear-gradient(135deg, #c0a878 0%, #a08858 100%);
  border-radius: 6% 6% 10% 10%;
  transform: rotate(15deg);
  animation: prn-book 8s ease-in-out infinite;
}
.scn-prince-does-not-die .tree {
  position: absolute; right: 8%; bottom: 25%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-prince-does-not-die .leaf-drift {
  position: absolute; top: 30%; left: 60%; width: 3%; height: 3%;
  background: #7a8a5a; border-radius: 50%;
  filter: blur(2px);
  animation: prn-leaf 15s linear infinite;
}
@keyframes prn-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes prn-breathe {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes prn-book {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(13deg) translateY(-1px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes prn-leaf {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: .6; }
  50% { transform: translateX(-20px) translateY(30px) rotate(180deg); opacity: .4; }
  100% { transform: translateX(-40px) translateY(60px) rotate(360deg); opacity: 0; }
}

/* wedding-hurried – calm, overcast, interior church */
.scn-wedding-hurried {
  background: linear-gradient(180deg, #d0c8c0 0%, #b8b0a8 50%, #908880 100%), radial-gradient(ellipse at 50% 0%, #e0d8d0 0%, transparent 70%);
}
.scn-wedding-hurried .altar {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30%; height: 15%;
  background: linear-gradient(180deg, #a09080 0%, #7a6a5a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
}
.scn-wedding-hurried .priest {
  position: absolute; bottom: 28%; left: 40%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wed-priest 4s ease-in-out infinite alternate;
}
.scn-wedding-hurried .couple-silhouette {
  position: absolute; bottom: 27%; left: 52%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wed-couple 6s ease-in-out infinite;
}
.scn-wedding-hurried .veil {
  position: absolute; bottom: 45%; left: 50%; width: 10%; height: 15%;
  background: rgba(220,220,230,.4);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  animation: wed-veil 7s ease-in-out infinite alternate;
}
.scn-wedding-hurried .bell {
  position: absolute; top: 5%; right: 12%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: wed-bell 2s ease-in-out infinite;
}
.scn-wedding-hurried .flower-petal {
  position: absolute; top: 20%; left: 30%; width: 2%; height: 2%;
  background: #d0a0a0; border-radius: 50%;
  filter: blur(1px);
  animation: wed-petal 12s linear infinite;
}
.scn-wedding-hurried .window-light {
  position: absolute; top: 8%; left: 24%; width: 12%; height: 25%;
  background: linear-gradient(135deg, rgba(200,200,220,.3) 0%, transparent 60%);
  border-radius: 10%;
  animation: wed-light 5s ease-in-out infinite alternate;
}
@keyframes wed-priest {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wed-couple {
  0% { transform: translateY(0) scale(1); opacity:.9; }
  50% { transform: translateY(-1px) scale(1.01); opacity:1; }
  100% { transform: translateY(0) scale(1); opacity:.9; }
}
@keyframes wed-veil {
  0% { transform: translateX(-2px) rotate(-2deg); opacity:.3; }
  50% { transform: translateX(0) rotate(0deg); opacity:.5; }
  100% { transform: translateX(2px) rotate(2deg); opacity:.3; }
}
@keyframes wed-bell {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes wed-petal {
  0% { transform: translateY(0) translateX(0) rotate(0deg); opacity:.7; }
  50% { transform: translateY(30px) translateX(-10px) rotate(180deg); opacity:.5; }
  100% { transform: translateY(60px) translateX(-20px) rotate(360deg); opacity:0; }
}
@keyframes wed-light {
  0% { opacity: .2; }
  50% { opacity: .5; }
  100% { opacity: .3; }
}

/* opposition-from-neighbors – calm, overcast, interior melancholy */
.scn-opposition-from-neighbors {
  background: linear-gradient(180deg, #283042 0%, #1e2636 50%, #141c2a 100%), radial-gradient(ellipse at 50% 80%, #3a425a 0%, transparent 60%);
}
.scn-opposition-from-neighbors .wall-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a3248 0%, #1a2238 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-opposition-from-neighbors .window {
  position: absolute; top: 8%; left: 65%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%);
  border-radius: 4%; border: 4px solid #3a4a5a;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: opp-window 8s ease-in-out infinite alternate;
}
.scn-opposition-from-neighbors .chair {
  position: absolute; bottom: 18%; left: 22%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-opposition-from-neighbors .vera-silhouette {
  position: absolute; bottom: 22%; left: 26%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a2232 0%, #0a1222 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: opp-vera 5s ease-in-out infinite;
}
.scn-opposition-from-neighbors .tear-drop {
  position: absolute; bottom: 28%; left: 28%; width: 2%; height: 2.5%;
  background: rgba(180,200,220,.5);
  border-radius: 50% 50% 50% 0;
  transform: rotate(45deg);
  animation: opp-tear 4s ease-in-out infinite;
}
.scn-opposition-from-neighbors .handkerchief {
  position: absolute; bottom: 21%; left: 22%; width: 6%; height: 5%;
  background: rgba(220,220,230,.2);
  border-radius: 10% 50% 10% 50%;
  filter: blur(2px);
  animation: opp-cloth 6s ease-in-out infinite alternate;
}
.scn-opposition-from-neighbors .shadow-pool {
  position: absolute; bottom: 0; left: 18%; width: 30%; height: 10%;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
}
@keyframes opp-window {
  0% { filter: brightness(.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(.9); }
}
@keyframes opp-vera {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes opp-tear {
  0% { transform: translateY(0) rotate(45deg); opacity:.6; }
  50% { transform: translateY(6px) rotate(40deg); opacity:.3; }
  100% { transform: translateY(0) rotate(45deg); opacity:0; }
}
@keyframes opp-cloth {
  0% { transform: scale(1) rotate(0deg); opacity:.2; }
  50% { transform: scale(1.05) rotate(3deg); opacity:.4; }
  100% { transform: scale(1) rotate(0deg); opacity:.2; }
}

.scn-coin-toss { background: linear-gradient(180deg, #1a1a2e 0%, #2c1f1a 40%, #3d2b1f 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%); }
.scn-coin-toss .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, transparent 60%); animation: ct-bg-pulse 20s ease-in-out infinite alternate; }
.scn-coin-toss .table { position:absolute; bottom:18%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-coin-toss .lamp-glow { position:absolute; bottom:35%; left:50%; width:120px; height:120px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); border-radius:50%; animation: ct-lamp-pulse 4s ease-in-out infinite alternate; }
.scn-coin-toss .lamp-body { position:absolute; bottom:45%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #1a1008 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px #b08040; }
.scn-coin-toss .coin { position:absolute; bottom:50%; left:45%; width:16px; height:16px; background: radial-gradient(circle, #f0c060 0%, #a08030 60%); border-radius:50%; box-shadow: 0 0 8px #d0a050; animation: ct-coin-toss 2s ease-in-out infinite; }
.scn-coin-toss .figure-left { position:absolute; bottom:20%; left:15%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ct-breathe 6s ease-in-out infinite; }
.scn-coin-toss .figure-right { position:absolute; bottom:20%; right:15%; width:28px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ct-breathe 7s ease-in-out infinite reverse; }
.scn-coin-toss .hand { position:absolute; bottom:30%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(15deg); animation: ct-hand-flick 2s ease-in-out infinite; }
@keyframes ct-bg-pulse { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ct-lamp-pulse { 0% { opacity:.7; transform: translate(-50%,0) scale(1) } 50% { opacity:1; transform: translate(-50%,0) scale(1.1) } 100% { opacity:.8; transform: translate(-50%,0) scale(.95) } }
@keyframes ct-coin-toss { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-30px) rotate(180deg) scale(1.2) } 50% { transform: translateY(-5px) rotate(360deg) scale(1) } 75% { transform: translateY(-25px) rotate(540deg) scale(1.1) } 100% { transform: translateY(0) rotate(720deg) scale(1) } }
@keyframes ct-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ct-hand-flick { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(20deg) translateY(-2px) } 50% { transform: rotate(10deg) translateY(0) } 75% { transform: rotate(18deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }

.scn-reading-begins { background: linear-gradient(180deg, #1a1a2e 0%, #2c1f1a 40%, #3d2b1f 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%); }
.scn-reading-begins .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, transparent 60%); animation: rb-bg-pulse 18s ease-in-out infinite alternate; }
.scn-reading-begins .table { position:absolute; bottom:20%; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-reading-begins .lamp-glow { position:absolute; bottom:40%; left:50%; width:140px; height:140px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.25) 0%, transparent 70%); border-radius:50%; animation: rb-lamp-pulse 5s ease-in-out infinite alternate; }
.scn-reading-begins .lamp-body { position:absolute; bottom:48%; left:50%; width:22px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #1a1008 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px #b08040; }
.scn-reading-begins .papers-stack { position:absolute; bottom:23%; left:45%; width:40px; height:10px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: rb-paper-rustle 8s ease-in-out infinite; }
.scn-reading-begins .reader-head { position:absolute; bottom:28%; left:48%; width:30px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rb-lean 6s ease-in-out infinite; }
.scn-reading-begins .reader-hands { position:absolute; bottom:25%; left:43%; width:25px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: rb-hands-shake 3s ease-in-out infinite; }
.scn-reading-begins .watcher-left { position:absolute; bottom:20%; left:10%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rb-breathe 7s ease-in-out infinite; }
.scn-reading-begins .watcher-right { position:absolute; bottom:20%; right:10%; width:26px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rb-breathe 9s ease-in-out infinite reverse; }
@keyframes rb-bg-pulse { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes rb-lamp-pulse { 0% { opacity:.6; transform: translate(-50%,0) scale(1) } 50% { opacity:1; transform: translate(-50%,0) scale(1.15) } 100% { opacity:.7; transform: translate(-50%,0) scale(.9) } }
@keyframes rb-paper-rustle { 0% { transform: translateX(0) rotate(0deg); opacity:.9 } 25% { transform: translateX(2px) rotate(1deg); opacity:1 } 50% { transform: translateX(-1px) rotate(-1deg); opacity:.85 } 75% { transform: translateX(1px) rotate(.5deg); opacity:.95 } 100% { transform: translateX(0) rotate(0deg); opacity:.9 } }
@keyframes rb-lean { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(-2deg) } 60% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rb-hands-shake { 0% { transform: rotate(-5deg) translateY(0) } 30% { transform: rotate(-8deg) translateY(-2px) } 60% { transform: rotate(-2deg) translateY(1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rb-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }

.scn-reading-hippolyte { background: linear-gradient(180deg, #1a1a2e 0%, #2c1f1a 40%, #3d2b1f 100%), radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%); }
.scn-reading-hippolyte .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, transparent 60%); animation: rh-bg-pulse 22s ease-in-out infinite alternate; }
.scn-reading-hippolyte .podium { position:absolute; bottom:25%; left:38%; right:38%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-reading-hippolyte .candle-glow { position:absolute; bottom:52%; left:50%; width:100px; height:100px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,180,80,.3) 0%, transparent 60%); border-radius:50%; animation: rh-candle-flicker 3s ease-in-out infinite alternate; }
.scn-reading-hippolyte .candle { position:absolute; bottom:48%; left:50%; width:16px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #d0a050 0%, #5a3a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 10px #d0a050; }
.scn-reading-hippolyte .paper-sheet { position:absolute; bottom:40%; left:35%; width:30px; height:25px; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius: 2px; transform: rotate(-5deg); animation: rh-paper-wave 4s ease-in-out infinite; }
.scn-reading-hippolyte .hippolyte { position:absolute; bottom:20%; left:44%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-posture 6s ease-in-out infinite; }
.scn-reading-hippolyte .audience-left { position:absolute; bottom:20%; left:10%; width:28px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-breathe 8s ease-in-out infinite; }
.scn-reading-hippolyte .audience-right { position:absolute; bottom:20%; right:10%; width:26px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rh-breathe 10s ease-in-out infinite reverse; }
@keyframes rh-bg-pulse { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes rh-candle-flicker { 0% { opacity:.6; transform: translate(-50%,0) scale(1) } 30% { opacity:1; transform: translate(-50%,0) scale(1.2) } 70% { opacity:.8; transform: translate(-50%,0) scale(.9) } 100% { opacity:.7; transform: translate(-50%,0) scale(1.1) } }
@keyframes rh-paper-wave { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(-8deg) translateY(0) } 75% { transform: rotate(-3deg) translateY(1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes rh-posture { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 30% { transform: translateY(-4px) rotate(2deg) scaleY(1.05) } 60% { transform: translateY(-1px) rotate(-1deg) scaleY(.98) } 100% { transform: translateY(0) rotate(0deg) scaleY(1) } }
@keyframes rh-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

.scn-rogojin-interrupts { background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2c1f1a 100%), radial-gradient(ellipse at 30% 40%, #2a1f1a 0%, transparent 60%); }
.scn-rogojin-interrupts .bg { position:absolute; inset:0; background: linear-gradient(180deg, #050508 0%, transparent 60%); animation: ri-bg-pulse 25s ease-in-out infinite alternate; }
.scn-rogojin-interrupts .door-frame { position:absolute; bottom:5%; left:5%; width:25%; height:95%; background: linear-gradient(180deg, #1a1008 0%, #0f0804 100%); border-right: 4px solid #2a1a0a; border-radius: 0 8px 8px 0; box-shadow: 4px 0 12px rgba(0,0,0,.8); }
.scn-rogojin-interrupts .floor { position:absolute; bottom:10%; left:0; right:0; height:5%; background: linear-gradient(180deg, #1a1008 0%, #0f0804 100%); }
.scn-rogojin-interrupts .table { position:absolute; bottom:18%; left:30%; right:10%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-rogojin-interrupts .lamp-glow { position:absolute; bottom:40%; left:50%; width:140px; height:140px; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,180,80,.2) 0%, transparent 60%); border-radius:50%; animation: ri-lamp-pulse 5s ease-in-out infinite alternate; }
.scn-rogojin-interrupts .lamp-body { position:absolute; bottom:48%; left:50%; width:22px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #1a1008 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px #a07030; }
.scn-rogojin-interrupts .rogojin { position:absolute; bottom:15%; left:10%; width:40px; height:90px; background: linear-gradient(180deg, #0f0f1a 0%, #050508 60%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom left; animation: ri-rogojin-enter 4s ease-in-out infinite alternate; }
.scn-rogojin-interrupts .hippolyte { position:absolute; bottom:20%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 60%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ri-hippolyte-cringe 3s ease-in-out infinite; }
.scn-rogojin-interrupts .paper-scatter { position:absolute; bottom:22%; left:35%; width:25px; height:8px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; transform: rotate(10deg); animation: ri-paper-slide 6s ease-in-out infinite; }
@keyframes ri-bg-pulse { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ri-lamp-pulse { 0% { opacity:.5; transform: translate(-50%,0) scale(1) } 50% { opacity:.8; transform: translate(-50%,0) scale(1.1) } 100% { opacity:.6; transform: translate(-50%,0) scale(.95) } }
@keyframes ri-rogojin-enter { 0% { transform: translateX(0) rotate(0deg) scale(1) } 60% { transform: translateX(10px) rotate(5deg) scale(1.05) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes ri-hippolyte-cringe { 0% { transform: scaleY(1) translateY(0) } 25% { transform: scaleY(.95) translateY(-2px) rotate(-3deg) } 50% { transform: scaleY(1.02) translateY(0) rotate(2deg) } 75% { transform: scaleY(.97) translateY(-1px) rotate(-1deg) } 100% { transform: scaleY(1) translateY(0) rotate(0deg) } }
@keyframes ri-paper-slide { 0% { transform: translateX(0) rotate(10deg) } 25% { transform: translateX(3px) rotate(12deg) } 50% { transform: translateX(-2px) rotate(8deg) } 75% { transform: translateX(1px) rotate(11deg) } 100% { transform: translateX(0) rotate(10deg) } }

/* Scene: evgenie-informs (tense, sunlit) */
.scn-evgenie-informs {
  background: 
    linear-gradient(180deg, #fef6e0 0%, #f5e6c0 40%, #d9c8a0 100%),
    radial-gradient(ellipse at 30% 40%, #fff5d0 0%, transparent 60%);
}
.scn-evgenie-informs .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #ecd8b0 0%, #c8b080 100%);
}
.scn-evgenie-informs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-evgenie-informs .window-frame {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #b0c8e0 0%, #8098b8 100%);
  border: 6px solid #8a704e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: ev1-frame 8s ease-in-out infinite alternate;
}
.scn-evgenie-informs .sunbeam {
  position: absolute; top: 12%; left: 12%; width: 25%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, rgba(255,255,200,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 10%, 100% 100%, 0% 90%);
  filter: blur(8px);
  animation: ev1-sun 6s ease-in-out infinite alternate;
}
.scn-evgenie-informs .table {
  position: absolute; bottom: 18%; left: 55%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #8a6e4e 0%, #604830 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(10deg);
}
.scn-evgenie-informs .figure-evgenie {
  position: absolute; bottom: 22%; left: 58%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ev1-walk 5s ease-in-out infinite;
}
.scn-evgenie-informs .figure-prince {
  position: absolute; bottom: 22%; left: 35%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ev1-sit 3s ease-in-out infinite alternate;
}
.scn-evgenie-informs .curtain {
  position: absolute; top: 8%; left: 8%; width: 5%; height: 60%;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 0 6px 6px 0;
  filter: blur(1px);
  animation: ev1-curtain 12s ease-in-out infinite alternate;
}
@keyframes ev1-frame {
  0% { transform: scale(1); }
  50% { transform: scale(1.02, 0.98); }
  100% { transform: scale(0.98, 1.02); }
}
@keyframes ev1-sun {
  0% { opacity: 0.3; transform: translateX(0) rotate(0deg); }
  50% { opacity: 0.7; transform: translateX(8px) rotate(2deg); }
  100% { opacity: 0.4; transform: translateX(-4px) rotate(-1deg); }
}
@keyframes ev1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes ev1-sit {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-3px) scale(0.98); }
}
@keyframes ev1-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(-2px); }
  100% { transform: scaleX(0.9) translateX(2px); }
}

/* Scene: prince-pales (tense, dim-interior) */
.scn-prince-pales {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 60%);
}
.scn-prince-pales .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #15152a 0%, #0a0a15 100%);
}
.scn-prince-pales .floor-dim {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1e1e30 0%, #0f0f1a 100%);
  border-radius: 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-prince-pales .wall-fade {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,20,35,0.8) 100%);
}
.scn-prince-pales .figure-prince-alone {
  position: absolute; bottom: 15%; left: 50%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: ep2-tremble 0.8s ease-in-out infinite alternate;
}
.scn-prince-pales .shadow-prince {
  position: absolute; bottom: 12%; left: 50%; width: 14%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: translateX(-50%);
  animation: ep2-shadow 3s ease-in-out infinite alternate;
}
.scn-prince-pales .door-dark {
  position: absolute; bottom: 20%; left: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0c0c18 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: ep2-door 10s ease-in-out infinite alternate;
}
.scn-prince-pales .candle-glow {
  position: absolute; bottom: 28%; left: 70%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,176,64,0.3);
  animation: ep2-flicker 0.5s ease-in-out infinite alternate;
}
@keyframes ep2-tremble {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-52%) rotate(-1deg); }
}
@keyframes ep2-shadow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.7; }
  50% { transform: translateX(-45%) scale(0.9); opacity: 0.5; }
  100% { transform: translateX(-55%) scale(1.1); opacity: 0.8; }
}
@keyframes ep2-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1.02); }
}
@keyframes ep2-flicker {
  0% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(255,176,64,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,176,64,0.5); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 8px rgba(255,176,64,0.3); }
}

/* Scene: evgenie-reports (calm, dim-interior) */
.scn-evgenie-reports {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-evgenie-reports .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2e2e3e 0%, #1e1e2e 100%);
}
.scn-evgenie-reports .table-wood {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(8deg);
}
.scn-evgenie-reports .lamp-glow {
  position: absolute; bottom: 28%; left: 45%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffe0a0 0%, #ffc080 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,192,128,0.3);
  animation: er3-lamp 4s ease-in-out infinite alternate;
}
.scn-evgenie-reports .figure-evgenie-seated {
  position: absolute; bottom: 15%; left: 25%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er3-seat 6s ease-in-out infinite;
}
.scn-evgenie-reports .figure-prince-seated {
  position: absolute; bottom: 15%; left: 55%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er3-nod 3s ease-in-out infinite alternate;
}
.scn-evgenie-reports .book-open {
  position: absolute; bottom: 18%; left: 40%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #b8966e 0%, #9a7a5a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: er3-book 8s ease-in-out infinite alternate;
}
.scn-evgenie-reports .cushion {
  position: absolute; bottom: 14%; left: 22%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: er3-cush 10s ease-in-out infinite alternate;
}
@keyframes er3-lamp {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(0.95); }
}
@keyframes er3-seat {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes er3-nod {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes er3-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes er3-cush {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(0.97); }
}

/* Scene: evgenie-continues (calm, dim-interior) */
.scn-evgenie-continues {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-evgenie-continues .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-evgenie-continues .night-window {
  position: absolute; top: 8%; left: 70%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #101020 0%, #080810 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,20,0.5);
  animation: ec4-window 12s ease-in-out infinite alternate;
}
.scn-evgenie-continues .desk {
  position: absolute; bottom: 18%; left: 20%; width: 35%; height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-evgenie-continues .globe {
  position: absolute; bottom: 24%; left: 30%; width: 10%; height: 12%;
  background: radial-gradient(circle at 40% 30%, #6a8a4a 0%, #3a5a2a 60%, #2a4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ec4-globe 20s linear infinite;
}
.scn-evgenie-continues .figure-evgenie-standing {
  position: absolute; bottom: 18%; left: 15%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec4-stand 5s ease-in-out infinite;
}
.scn-evgenie-continues .figure-prince-seated-alt {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec4-sit 4s ease-in-out infinite alternate;
}
.scn-evgenie-continues .candle-drip {
  position: absolute; bottom: 24%; left: 50%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 5px rgba(255,208,128,0.2);
  animation: ec4-candle 2s ease-in-out infinite alternate;
}
.scn-evgenie-continues .map-roll {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 3%;
  background: linear-gradient(180deg, #c8b896 0%, #a89876 100%);
  border-radius: 20%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transform: rotate(-15deg);
  animation: ec4-map 10s ease-in-out infinite alternate;
}
@keyframes ec4-window {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02, 0.98); }
  100% { opacity: 0.7; transform: scale(0.98, 1.02); }
}
@keyframes ec4-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ec4-stand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ec4-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ec4-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes ec4-map {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.05); }
  100% { transform: rotate(-20deg) scaleX(0.95); }
}

/* Scene 1: lebedev-house-garden-conversation */
.scn-lebedev-house-garden-conversation {
  background: linear-gradient(180deg, #b8d4e3 0%, #dde9e0 50%, #9bb87a 100%),
              radial-gradient(ellipse at 50% 80%, #f5e6d3 0%, transparent 60%);
}
.scn-lebedev-house-garden-conversation .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #cfe5f2 0%, #a4c8d8 100%);
  animation: lh-gc-sky 15s ease-in-out infinite alternate;
}
.scn-lebedev-house-garden-conversation .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8ab36a 0%, #6d8f4e 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
}
.scn-lebedev-house-garden-conversation .tree {
  position: absolute; bottom: 45%; left: 15%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 20%, #5a7a3a 0%, #3a5a2a 70%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lh-gc-tree 8s ease-in-out infinite;
}
.scn-lebedev-house-garden-conversation .bench {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #c49a6c 0%, #a67a4e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-lebedev-house-garden-conversation .figure-seated {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #f5e6d3 0%, #d4c4ab 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lh-gc-breathe 4s ease-in-out infinite;
}
.scn-lebedev-house-garden-conversation .figure-standing {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #e0d5c0 0%, #b8a88e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lh-gc-breathe 4.5s ease-in-out infinite;
}
.scn-lebedev-house-garden-conversation .flower-left {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0a0b0 0%, #c87888 70%);
  border-radius: 50%;
  animation: lh-gc-sway 5s ease-in-out infinite;
}
.scn-lebedev-house-garden-conversation .flower-right {
  position: absolute; bottom: 38%; right: 25%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c0a0 0%, #d09070 70%);
  border-radius: 50%;
  animation: lh-gc-sway 6s ease-in-out infinite reverse;
}
@keyframes lh-gc-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lh-gc-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes lh-gc-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lh-gc-sway { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* Scene 2: lebedev-house-revelation */
.scn-lebedev-house-revelation {
  background: linear-gradient(180deg, #2a1e14 0%, #1a0f08 50%, #0d0704 100%),
              radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%);
}
.scn-lebedev-house-revelation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a281a 0%, #1a1008 100%);
}
.scn-lebedev-house-revelation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0e 0%, #100a05 100%);
}
.scn-lebedev-house-revelation .table {
  position: absolute; bottom: 22%; left: 35%; width: 100px; height: 16px;
  background: linear-gradient(180deg, #5e3e28 0%, #3a2818 100%);
  border-radius: 6%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-lebedev-house-revelation .candle {
  position: absolute; bottom: 28%; left: 42%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #f5d6b0 0%, #c89a6a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #d49a4a, 0 0 60px 20px rgba(212,154,74,0.4);
  animation: lh-re-candle 3s ease-in-out infinite alternate;
}
.scn-lebedev-house-revelation .figure-standing {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 30%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lh-re-tremble 2s ease-in-out infinite;
}
.scn-lebedev-house-revelation .figure-sitting {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #2a2a2a 20%, #121212 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lh-re-lean 5s ease-in-out infinite;
}
.scn-lebedev-house-revelation .shadow-cast {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: lh-re-shadow 4s ease-in-out infinite alternate;
}
@keyframes lh-re-candle { 0% { transform: scaleY(1); opacity:0.9; } 25% { transform: scaleY(1.05); opacity:1; } 50% { transform: scaleY(0.95); opacity:0.85; } 75% { transform: scaleY(1.02); opacity:0.95; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes lh-re-tremble { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(0.5px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lh-re-lean { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lh-re-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene 3: lebedev-house-apocalypse */
.scn-lebedev-house-apocalypse {
  background: linear-gradient(180deg, #2e3846 0%, #1c232e 50%, #0f141a 100%),
              radial-gradient(ellipse at 60% 40%, #3a4a5a 0%, transparent 60%);
}
.scn-lebedev-house-apocalypse .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a4452 0%, #1e2632 100%);
}
.scn-lebedev-house-apocalypse .window-fade {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 8%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.05);
  animation: lh-ap-window 12s ease-in-out infinite alternate;
}
.scn-lebedev-house-apocalypse .bookshelf {
  position: absolute; bottom: 25%; right: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-lebedev-house-apocalypse .chair {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-lebedev-house-apocalypse .figure-reading {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a5a 30%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lh-ap-page 6s ease-in-out infinite;
}
.scn-lebedev-house-apocalypse .lamp {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c8a86a, 0 0 40px 15px rgba(200,168,106,0.3);
  animation: lh-ap-lamp 4s ease-in-out infinite alternate;
}
.scn-lebedev-house-apocalypse .book-open {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 6px;
  background: linear-gradient(180deg, #e0d0b8 0%, #b8a888 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  animation: lh-ap-book 8s ease-in-out infinite;
}
@keyframes lh-ap-window { 0% { opacity:0.6; box-shadow: inset 0 0 10px rgba(255,255,255,0.05); } 50% { opacity:0.8; box-shadow: inset 0 0 30px rgba(255,255,255,0.1); } 100% { opacity:0.6; box-shadow: inset 0 0 10px rgba(255,255,255,0.05); } }
@keyframes lh-ap-page { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lh-ap-lamp { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(1); } }
@keyframes lh-ap-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }

/* Scene 4: lebedev-house-leaving */
.scn-lebedev-house-leaving {
  background: linear-gradient(180deg, #8eb8d4 0%, #b4cfa8 50%, #6a8a5a 100%),
              radial-gradient(ellipse at 50% 20%, #f5e6d3 0%, transparent 60%);
}
.scn-lebedev-house-leaving .doorframe {
  position: absolute; bottom: 0; left: 35%; width: 90px; height: 100%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.scn-lebedev-house-leaving .door-open {
  position: absolute; bottom: 0; left: 42%; width: 40px; height: 85%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 0 6% 0 0;
  transform: perspective(200px) rotateY(10deg);
  transform-origin: left center;
  animation: lh-le-door 6s ease-in-out infinite alternate;
}
.scn-lebedev-house-leaving .sunlight-beam {
  position: absolute; top: 10%; left: 38%; width: 50px; height: 80%;
  background: linear-gradient(180deg, rgba(255,244,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: lh-le-beam 10s ease-in-out infinite alternate;
}
.scn-lebedev-house-leaving .figure-adult {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a4a5a 30%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lh-le-walk 4s ease-in-out infinite;
}
.scn-lebedev-house-leaving .figure-child {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a6a7a 30%, #2a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: lh-le-walk 4.5s ease-in-out infinite reverse;
}
.scn-lebedev-house-leaving .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 0 0 0 / 20% 0 0 0;
}
.scn-lebedev-house-leaving .sky-outside {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8ec8e0 0%, #b8d8c0 100%);
  animation: lh-le-sky 15s ease-in-out infinite alternate;
}
@keyframes lh-le-door { 0% { transform: perspective(200px) rotateY(10deg); } 50% { transform: perspective(200px) rotateY(5deg); } 100% { transform: perspective(200px) rotateY(10deg); } }
@keyframes lh-le-beam { 0% { opacity:0.3; transform: translateX(0) scaleX(1); } 50% { opacity:0.5; transform: translateX(5px) scaleX(1.05); } 100% { opacity:0.3; transform: translateX(0) scaleX(1); } }
@keyframes lh-le-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lh-le-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

/* Scene: hippolyte-laughs */
.scn-hippolyte-laughs {
  background: linear-gradient(180deg, #2c1e0f 0%, #1a1107 70%, #0f0a04 100%),
              radial-gradient(ellipse at 40% 30%, #4a2e15 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hippolyte-laughs .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3e2c1a 0%, #1a140a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-hippolyte-laughs .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1208 0%, #2a1d0e 100%);
  border-radius: 30% 40% 0 0 / 20% 20% 0 0;
}
.scn-hippolyte-laughs .figure-laugh {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hipl-body 3s ease-in-out infinite;
}
.scn-hippolyte-laughs .head-laugh {
  position: absolute; bottom: 78%; left: 42%; width: 30px; height: 36px;
  background: linear-gradient(180deg, #4a3825 0%, #2a1d0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hipl-head 3s ease-in-out infinite;
}
.scn-hippolyte-laughs .candle-glow {
  position: absolute; bottom: 55%; left: 55%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8833 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hipl-candle 2s ease-in-out infinite alternate;
}
.scn-hippolyte-laughs .candle-body {
  position: absolute; bottom: 55%; left: 57%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #cc9933 0%, #664422 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px rgba(255, 200, 100, 0.5);
}
.scn-hippolyte-laughs .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255, 220, 150, 0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: hipl-dust 6s ease-in-out infinite;
}
.scn-hippolyte-laughs .dust-mote.m1 {
  top: 30%; left: 20%;
  animation-delay: 0s;
}
.scn-hippolyte-laughs .dust-mote.m2 {
  top: 40%; left: 70%;
  animation-delay: 3s;
}
@keyframes hipl-body {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(-8deg) translateY(-3px); }
  40% { transform: rotate(5deg) translateY(-1px); }
  60% { transform: rotate(-3deg) translateY(-4px); }
  80% { transform: rotate(2deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hipl-head {
  0% { transform: rotate(0deg) scaleY(1) translateY(0); }
  25% { transform: rotate(25deg) scaleY(0.9) translateY(-2px); }
  50% { transform: rotate(-15deg) scaleY(1.1) translateY(-4px); }
  75% { transform: rotate(10deg) scaleY(0.95) translateY(-1px); }
  100% { transform: rotate(0deg) scaleY(1) translateY(0); }
}
@keyframes hipl-candle {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes hipl-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 0.8; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.5; }
  80% { transform: translate(-10px, -50px) scale(0.8); opacity: 0.2; }
  100% { transform: translate(0, -70px) scale(0); opacity: 0; }
}

/* Scene: hippolyte-on-gania */
.scn-hippolyte-on-gania {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #06060d 100%),
              radial-gradient(ellipse at 50% 40%, #2c2c4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-hippolyte-on-gania .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, #1e1e32 0%, transparent 60%);
  animation: hipg-ambient 15s ease-in-out infinite alternate;
}
.scn-hippolyte-on-gania .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0f0a14 0%, #1a1422 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
}
.scn-hippolyte-on-gania .figure-cough {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2235 0%, #130e1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hipg-cough 4s ease-in-out infinite;
}
.scn-hippolyte-on-gania .figure-prince {
  position: absolute; bottom: 20%; right: 25%; width: 55px; height: 85px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hipg-still 6s ease-in-out infinite;
}
.scn-hippolyte-on-gania .table {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1a14 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-hippolyte-on-gania .lamp-glow {
  position: absolute; bottom: 50%; left: 30%; width: 50px; height: 60px;
  background: radial-gradient(circle, #aaccff 0%, #33557a 40%, transparent 70%);
  filter: blur(6px);
  animation: hipg-lamp 8s ease-in-out infinite alternate;
}
.scn-hippolyte-on-gania .lamp-base {
  position: absolute; bottom: 50%; left: 32%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #556688 0%, #223344 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px rgba(100, 150, 220, 0.3);
}
@keyframes hipg-ambient {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hipg-cough {
  0% { transform: rotate(0deg) translateY(0); }
  15% { transform: rotate(-10deg) translateY(-4px); }
  30% { transform: rotate(5deg) translateY(0); }
  45% { transform: rotate(-8deg) translateY(-6px); }
  60% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hipg-still {
  0% { transform: rotate(0deg) scale(1); }
  20% { transform: rotate(1deg) scale(1.02); }
  40% { transform: rotate(-1deg) scale(0.98); }
  60% { transform: rotate(0deg) scale(1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes hipg-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* Scene: hippolyte-reveals-meeting-place */
.scn-hippolyte-reveals-meeting-place {
  background: linear-gradient(180deg, #1a1422 0%, #0f0a14 50%, #06030a 100%),
              radial-gradient(ellipse at 60% 50%, #2a1e38 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hippolyte-reveals-meeting-place .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  animation: hipr-shadow 12s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-meeting-place .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1422 0%, #0f0a14 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-hippolyte-reveals-meeting-place .figure-speaker {
  position: absolute; bottom: 25%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1220 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hipr-speak 4s ease-in-out infinite;
}
.scn-hippolyte-reveals-meeting-place .figure-listener {
  position: absolute; bottom: 25%; right: 20%; width: 55px; height: 85px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: hipr-listen 6s ease-in-out infinite;
}
.scn-hippolyte-reveals-meeting-place .letter {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e8dcc8 0%, #baa88a 100%);
  border-radius: 15% 10% 10% 15%;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: hipr-letter 8s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-meeting-place .lamp-glow {
  position: absolute; bottom: 50%; left: 45%; width: 60px; height: 70px;
  background: radial-gradient(circle, #ffd699 0%, #cc8844 40%, transparent 70%);
  filter: blur(8px);
  animation: hipr-lamp 5s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-meeting-place .lamp-base {
  position: absolute; bottom: 50%; left: 47%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #8a6e4a 0%, #4a3622 100%);
  border-radius: 20%;
  box-shadow: 0 0 15px rgba(200, 150, 80, 0.4);
}
.scn-hippolyte-reveals-meeting-place .shadow-door {
  position: absolute; right: 5%; top: 10%; width: 60px; height: 80%;
  background: linear-gradient(180deg, #0e0a14 0%, #1a1422 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  opacity: 0.8;
  animation: hipr-door 15s ease-in-out infinite alternate;
}
@keyframes hipr-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hipr-speak {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(8deg) translateY(-3px); }
  40% { transform: rotate(-5deg) translateY(0); }
  60% { transform: rotate(12deg) translateY(-5px); }
  80% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes hipr-listen {
  0% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(-2deg) scale(0.98); }
  60% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes hipr-letter {
  0% { transform: translateX(-50%) rotate(-10deg) scale(1); }
  50% { transform: translateX(-45%) rotate(0deg) scale(1.05); }
  100% { transform: translateX(-55%) rotate(-20deg) scale(0.95); }
}
@keyframes hipr-lamp {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes hipr-door {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(0.95); opacity: 0.6; }
  100% { transform: scaleX(1.05); opacity: 1; }
}

/* Scene: prince-incredulous */
.scn-prince-incredulous {
  background: linear-gradient(180deg, #0f1420 0%, #070a12 50%, #02040a 100%),
              radial-gradient(ellipse at 30% 20%, #1a2235 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-prince-incredulous .bg-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, #0a0e18 0%, transparent 60%);
  animation: prin-ambient 10s ease-in-out infinite alternate;
}
.scn-prince-incredulous .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, transparent 60%, rgba(0,0,0,0.4) 100%);
  animation: prin-shadow 8s ease-in-out infinite alternate;
}
.scn-prince-incredulous .figure-prince {
  position: absolute; bottom: 20%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #12121d 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: prin-figure 3s ease-in-out infinite;
}
.scn-prince-incredulous .hand-gesture {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3e3e5a 0%, #1e1e2e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: prin-hand 2s ease-in-out infinite;
}
.scn-prince-incredulous .fly {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 6px;
  background: #3a3a4a;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(150,150,200,0.3);
  animation: prin-fly 8s linear infinite;
}
.scn-prince-incredulous .lamp-glow {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 50px;
  background: radial-gradient(circle, #aaccff 0%, #334466 40%, transparent 70%);
  filter: blur(5px);
  animation: prin-lamp 4s ease-in-out infinite alternate;
}
.scn-prince-incredulous .lamp-base {
  position: absolute; bottom: 35%; left: 22%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #556688 0%, #223344 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px rgba(100, 150, 220, 0.3);
}
@keyframes prin-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes prin-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes prin-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(1px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes prin-hand {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-40deg) scale(0.9); }
  50% { transform: rotate(20deg) scale(1.1); }
  75% { transform: rotate(-50deg) scale(0.8); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes prin-fly {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); }
  25% { transform: translate(30px, -20px) rotate(45deg) scale(0.8); }
  50% { transform: translate(-10px, -40px) rotate(180deg) scale(1.2); }
  75% { transform: translate(50px, -10px) rotate(270deg) scale(0.9); }
  100% { transform: translate(0, 0) rotate(360deg) scale(1); }
}
@keyframes prin-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* nastasia-defends */
.scn-nastasia-defends {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #0a0808 100%), radial-gradient(ellipse at 30% 70%, #3a2a22 0%, transparent 70%);
}
.scn-nastasia-defends .wall-left { position: absolute; top:0; left:0; width:45%; height:65%; background: linear-gradient(90deg, #3a2a22 0%, #2a1e1a 100%); border-radius: 0 0 20% 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.5); }
.scn-nastasia-defends .wall-right { position: absolute; top:0; right:0; width:55%; height:70%; background: linear-gradient(90deg, #2a1e1a 0%, #1a1210 100%); border-radius: 0 0 0 20%; box-shadow: inset 8px 0 20px rgba(0,0,0,.5); }
.scn-nastasia-defends .floor { position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 60% 40% 0 0; }
.scn-nastasia-defends .table { position: absolute; bottom:22%; left:50%; width:120px; height:8px; transform:translateX(-50%); background: #3a2a22; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-nastasia-defends .lamp { position: absolute; bottom:30%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, #8a5a30 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #b07040, 0 0 60px 20px rgba(176,112,64,.4); animation: nd-lamp 4s ease-in-out infinite alternate; }
.scn-nastasia-defends .figure-nastasia { position: absolute; bottom:25%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-nastasia 5s ease-in-out infinite; }
.scn-nastasia-defends .figure-other { position: absolute; bottom:25%; right:35%; width:22px; height:52px; background: linear-gradient(180deg, #2a1e1a 0%, #0a0808 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: nd-other 5s ease-in-out infinite reverse; }
.scn-nastasia-defends .shadow-left { position: absolute; bottom:20%; left:10%; width:30%; height:30%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(10px); animation: nd-shadow 8s ease-in-out infinite alternate; }
.scn-nastasia-defends .shadow-right { position: absolute; bottom:20%; right:10%; width:25%; height:25%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(12px); animation: nd-shadow 8s ease-in-out infinite alternate-reverse; }
@keyframes nd-lamp { 0% { opacity: .7; box-shadow: 0 0 20px 6px #8a5a30,0 0 40px 12px rgba(138,90,48,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 14px #c08040,0 0 80px 24px rgba(192,128,64,.5); } 100% { opacity: .8; box-shadow: 0 0 25px 8px #8a5a30,0 0 50px 15px rgba(138,90,48,.35); } }
@keyframes nd-nastasia { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nd-other { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 70% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nd-shadow { 0% { transform: scale(1) translateX(0); opacity: .5; } 50% { transform: scale(1.1) translateX(5px); opacity: .7; } 100% { transform: scale(0.95) translateX(-3px); opacity: .4; } }

/* prince-intervenes */
.scn-prince-intervenes {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121e 40%, #0a0a16 100%), radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-prince-intervenes .bg-dark { position: absolute; inset:0; background: linear-gradient(135deg, #0a0a16 0%, #15152a 100%); }
.scn-prince-intervenes .floor-board { position: absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-prince-intervenes .wall-panel { position: absolute; top:0; left:10%; width:80%; height:70%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 4px 30px rgba(0,0,0,.5); }
.scn-prince-intervenes .rug { position: absolute; bottom:15%; left:20%; width:60%; height:18%; background: linear-gradient(135deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: pi-rug 12s ease-in-out infinite alternate; }
.scn-prince-intervenes .figure-prince { position: absolute; bottom:22%; left:45%; width:24px; height:56px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: pi-prince 3s ease-in-out infinite; }
.scn-prince-intervenes .figure-nastasia { position: absolute; bottom:22%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pi-nastasia 5s ease-in-out infinite alternate; }
.scn-prince-intervenes .figure-rogojin { position: absolute; bottom:22%; right:30%; width:22px; height:54px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a16 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pi-rogojin 4s ease-in-out infinite; }
.scn-prince-intervenes .lamp-tense { position: absolute; top:20%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #b89050 0%, #7a5a30 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 14px #a07040, 0 0 80px 24px rgba(160,112,64,.3); animation: pi-lamp 2s ease-in-out infinite alternate; }
.scn-prince-intervenes .shadow-sharp { position: absolute; bottom:0; left:35%; width:30%; height:50%; background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(2px); animation: pi-shadow 6s ease-in-out infinite alternate; }
@keyframes pi-lamp { 0% { opacity: .6; box-shadow: 0 0 20px 6px #7a5a30,0 0 40px 12px rgba(122,90,48,.2); } 50% { opacity: 1; box-shadow: 0 0 50px 18px #b89050,0 0 100px 30px rgba(184,144,80,.4); } 100% { opacity: .7; box-shadow: 0 0 30px 10px #7a5a30,0 0 60px 18px rgba(122,90,48,.25); } }
@keyframes pi-prince { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-1px) rotate(1deg) scaleX(1.02); } 50% { transform: translateY(0) rotate(0deg) scaleX(1); } 75% { transform: translateY(-1px) rotate(-1deg) scaleX(0.98); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes pi-nastasia { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pi-rogojin { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(1px) rotate(-1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(1deg); } }
@keyframes pi-rug { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.02) translateX(3px); } 100% { transform: scale(0.98) translateX(-2px); } }
@keyframes pi-shadow { 0% { transform: skewX(10deg) scaleX(0.9); opacity: .6; } 50% { transform: skewX(-5deg) scaleX(1.1); opacity: .8; } 100% { transform: skewX(10deg) scaleX(0.9); opacity: .6; } }

/* nastasia-accuses-of-fear */
.scn-nastasia-accuses-of-fear {
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 40%, #020101 100%), radial-gradient(ellipse at 40% 60%, #3a1a10 0%, transparent 70%);
}
.scn-nastasia-accuses-of-fear .bg-abyss { position: absolute; inset:0; background: linear-gradient(135deg, #0a0604 0%, #1a0e0a 100%); }
.scn-nastasia-accuses-of-fear .candle { position: absolute; bottom:35%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.7); animation: naf-candle 7s ease-in-out infinite; }
.scn-nastasia-accuses-of-fear .candle-glow { position: absolute; bottom:38%; left:45%; width:30px; height:50px; transform:translate(-50%, -50%); background: radial-gradient(circle, #c08040 0%, #8a5a30 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px #b07040, 0 0 120px 40px rgba(176,112,64,.3); animation: naf-glow 4s ease-in-out infinite alternate; }
.scn-nastasia-accuses-of-fear .figure-nastasia-profile { position: absolute; bottom:25%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: naf-profile 6s ease-in-out infinite alternate; }
.scn-nastasia-accuses-of-fear .figure-aglaya { position: absolute; bottom:25%; right:32%; width:20px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: naf-aglaya 6s ease-in-out infinite; }
.scn-nastasia-accuses-of-fear .table-corner { position: absolute; bottom:20%; left:42%; width:80px; height:6px; background: #3a2a22; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-nastasia-accuses-of-fear .shadow-long { position: absolute; bottom:0; left:15%; width:60%; height:80%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); transform: skewX(-20deg); animation: naf-shadow 8s ease-in-out infinite alternate; }
@keyframes naf-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes naf-glow { 0% { opacity: .7; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: .8; transform: translate(-50%, -50%) scale(0.95); } }
@keyframes naf-profile { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes naf-aglaya { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(1px) rotate(-1deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes naf-shadow { 0% { transform: skewX(-20deg) scaleX(1); opacity: .5; } 50% { transform: skewX(-15deg) scaleX(1.1); opacity: .7; } 100% { transform: skewX(-20deg) scaleX(1); opacity: .5; } }

/* nastasia-explains */
.scn-nastasia-explains {
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 50%, #020101 100%), radial-gradient(ellipse at 50% 80%, #2a1212 0%, transparent 60%);
}
.scn-nastasia-explains .bg-void { position: absolute; inset:0; background: linear-gradient(135deg, #0a0606 0%, #1a0e0e 100%); }
.scn-nastasia-explains .candle-close { position: absolute; bottom:30%; left:40%; width:10px; height:50px; background: linear-gradient(180deg, #9a6a3a 0%, #5a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.8); animation: ne-candle 8s ease-in-out infinite; }
.scn-nastasia-explains .flame-glow { position: absolute; bottom:33%; left:40%; width:40px; height:60px; transform:translate(-15%, -50%); background: radial-gradient(circle, #d09050 0%, #a06030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px #c08040, 0 0 160px 50px rgba(192,128,64,.3); animation: ne-glow 3s ease-in-out infinite alternate; }
.scn-nastasia-explains .hand-nastasia { position: absolute; bottom:28%; left:43%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 40% 40% 20% 20%; transform: rotate(20deg); transform-origin: bottom left; animation: ne-hand 5s ease-in-out infinite alternate; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-nastasia-explains .face-profile { position: absolute; bottom:30%; left:30%; width:22px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ne-face 7s ease-in-out infinite; box-shadow: -2px 0 4px rgba(0,0,0,.6); }
.scn-nastasia-explains .tear { position: absolute; bottom:35%; left:32%; width:4px; height:6px; background: rgba(200,180,160,.6); border-radius: 50%; filter: blur(1px); animation: ne-tear 4s ease-in-out infinite; }
.scn-nastasia-explains .shadow-drape { position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); animation: ne-drape 10s ease-in-out infinite alternate; }
.scn-nastasia-explains .dust-mote { position: absolute; top:20%; left:60%; width:4px; height:4px; background: rgba(255,200,150,.4); border-radius: 50%; filter: blur(2px); animation: ne-dust 15s linear infinite; }
@keyframes ne-candle { 0% { transform: scaleY(1) translateY(0); } 30% { transform: scaleY(1.03) translateY(-1px); } 70% { transform: scaleY(0.98) translateY(0); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ne-glow { 0% { opacity: .6; transform: translate(-15%, -50%) scale(0.85); } 50% { opacity: 1; transform: translate(-15%, -50%) scale(1.15); } 100% { opacity: .7; transform: translate(-15%, -50%) scale(0.9); } }
@keyframes ne-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ne-face { 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 ne-tear { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(6px) scale(0.8); opacity: .2; } 100% { transform: translateY(12px) scale(0.5); opacity: 0; } }
@keyframes ne-drape { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ne-dust { 0% { transform: translateX(0) translateY(0) scale(1); opacity: .4; } 50% { transform: translateX(-30px) translateY(20px) scale(1.5); opacity: .6; } 100% { transform: translateX(-60px) translateY(40px) scale(0.8); opacity: .2; } }

/* Scene: lebedev-house-villa-deal */
.scn-lebedev-house-villa-deal {
  background: linear-gradient(180deg, #fff8e7 0%, #e0d4b8 40%, #c4b08a 100%), radial-gradient(ellipse at 30% 100%, #fff5d6 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-lebedev-house-villa-deal .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #8ab8e0 50%, #6a9ac8 100%);
  animation: lv-sky 10s ease-in-out infinite alternate;
}
.scn-lebedev-house-villa-deal .garden {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a8a3a 0%, #5a6a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2);
  animation: lv-garden 15s ease-in-out infinite alternate;
}
.scn-lebedev-house-villa-deal .villa {
  position: absolute; bottom: 38%; left: 25%; width: 180px; height: 120px;
  background: linear-gradient(180deg, #f5e8c0 0%, #d4c090 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.3), inset 0 2px 10px rgba(255,255,200,0.3);
  animation: lv-villa 8s ease-in-out infinite;
}
.scn-lebedev-house-villa-deal .windows {
  position: absolute; bottom: 48%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #f0b060 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #f0b060, 0 0 40px 12px rgba(240,176,96,0.3);
  animation: lv-windows 3s ease-in-out infinite alternate;
}
.scn-lebedev-house-villa-deal .door {
  position: absolute; bottom: 38%; left: 42%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lv-door 6s ease-in-out infinite;
}
.scn-lebedev-house-villa-deal .sunbeam {
  position: absolute; top: 0; left: 30%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,248,200,0.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: lv-sunbeam 12s ease-in-out infinite alternate;
}
.scn-lebedev-house-villa-deal .cloud {
  position: absolute; top: 15%; left: 10%; width: 120px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lv-cloud 40s linear infinite;
}

@keyframes lv-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lv-garden { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes lv-villa { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lv-windows { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #f0b060; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #ffe080; } 100% { opacity: 0.9; box-shadow: 0 0 20px 5px #f0b060; } }
@keyframes lv-door { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lv-sunbeam { 0% { transform: skewX(-10deg) scaleX(1); opacity: 0.6; } 50% { transform: skewX(-8deg) scaleX(1.2); opacity: 0.8; } 100% { transform: skewX(-12deg) scaleX(1); opacity: 0.7; } }
@keyframes lv-cloud { 0% { transform: translateX(-150px); } 100% { transform: translateX(1200px); } }

/* Scene: lebedev-house-departure */
.scn-lebedev-house-departure {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 50%, #b8a890 100%), radial-gradient(ellipse at 40% 100%, #faf0e0 0%, transparent 60%);
}
.scn-lebedev-house-departure .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #8ab0d0 100%);
  animation: ld-sky 12s ease-in-out infinite alternate;
}
.scn-lebedev-house-departure .yard-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a888 0%, #a09078 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: ld-wall 10s ease-in-out infinite alternate;
}
.scn-lebedev-house-departure .path {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(90deg, #c8b898 0%, #d4c4a8 50%, #c8b898 100%);
  border-radius: 20px;
  animation: ld-path 8s ease-in-out infinite;
}
.scn-lebedev-house-departure .figure-a {
  position: absolute; bottom: 33%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ld-walka 4s ease-in-out infinite;
}
.scn-lebedev-house-departure .figure-b {
  position: absolute; bottom: 32%; left: 38%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ld-walkb 4.2s ease-in-out infinite 0.5s;
}
.scn-lebedev-house-departure .gate {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ld-gate 6s ease-in-out infinite alternate;
}
.scn-lebedev-house-departure .tree {
  position: absolute; bottom: 35%; right: 15%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ld-tree 20s ease-in-out infinite alternate;
}

@keyframes ld-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ld-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ld-path { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ld-walka { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes ld-walkb { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(7px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(14px) translateY(0) rotate(-1deg); } 75% { transform: translateX(21px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(28px) translateY(0) rotate(0); } }
@keyframes ld-gate { 0% { transform: rotateY(0); } 50% { transform: rotateY(-10deg); } 100% { transform: rotateY(0); } }
@keyframes ld-tree { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }

/* Scene: prince-rogogin-house-approach */
.scn-prince-rogogin-house-approach {
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 40%, #d4b880 100%), radial-gradient(ellipse at 80% 30%, #fff5e0 0%, transparent 60%);
}
.scn-prince-rogogin-house-approach .street-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c0e0 0%, #5070a0 100%);
  animation: pra-sky 14s ease-in-out infinite alternate;
}
.scn-prince-rogogin-house-approach .building-front {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #c0b098 0%, #907860 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3), 0 -10px 30px rgba(0,0,0,0.2);
  animation: pra-building 18s ease-in-out infinite;
}
.scn-prince-rogogin-house-approach .dark-windows {
  position: absolute; bottom: 50%; left: 20%; width: 10px; height: 14px; background: #1a1a2a; border-radius: 2px; box-shadow: 0 30px 0 #1a1a2a, 0 60px 0 #1a1a2a, 40px 0 0 #1a1a2a, 40px 30px 0 #1a1a2a; animation: pra-windows 8s ease-in-out infinite alternate; 
}
.scn-prince-rogogin-house-approach .figure-prince {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  animation: pra-walk 5s ease-in-out infinite;
}
.scn-prince-rogogin-house-approach .shadow-long {
  position: absolute; bottom: 25%; left: 28%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 10% 10%;
  filter: blur(4px);
  animation: pra-shadow 5s ease-in-out infinite;
}
.scn-prince-rogogin-house-approach .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0;
  animation: pra-ground 20s ease-in-out infinite alternate;
}

@keyframes pra-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pra-building { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes pra-windows { 0% { background: #1a1a2a; box-shadow: 0 30px 0 #1a1a2a, 0 60px 0 #1a1a2a, 40px 0 0 #1a1a2a, 40px 30px 0 #1a1a2a; } 50% { background: #2a2a3a; box-shadow: 0 30px 0 #2a2a3a, 0 60px 0 #2a2a3a, 40px 0 0 #2a2a3a, 40px 30px 0 #2a2a3a; } 100% { background: #1a1a2a; box-shadow: 0 30px 0 #1a1a2a, 0 60px 0 #1a1a2a, 40px 0 0 #1a1a2a, 40px 30px 0 #1a1a2a; } }
@keyframes pra-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes pra-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(6px) scale(1.1); opacity: 0.6; } 100% { transform: translateX(0) scale(1); opacity: 0.4; } }
@keyframes pra-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* Scene: rogojin-house-meeting */
.scn-rogojin-house-meeting {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 40%, #1a0a1a 100%), radial-gradient(ellipse at 40% 50%, #3a1a2a 0%, transparent 80%);
}
.scn-rogojin-house-meeting .interior-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  animation: rm-back 20s ease-in-out infinite alternate;
}
.scn-rogojin-house-meeting .door-open {
  position: absolute; bottom: 0; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: left center;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: rm-door 6s ease-in-out infinite alternate;
}
.scn-rogojin-house-meeting .figure-rogojin {
  position: absolute; bottom: 5%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5), inset 0 2px 4px rgba(100,50,50,0.1);
  animation: rm-rogojin 4s ease-in-out infinite;
}
.scn-rogojin-house-meeting .figure-prince {
  position: absolute; bottom: 5%; left: 55%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: rm-prince 4.5s ease-in-out infinite 0.3s;
}
.scn-rogojin-house-meeting .dim-window {
  position: absolute; top: 20%; right: 15%; width: 24px; height: 30px;
  background: radial-gradient(circle, #4a3a5a 0%, #1a0a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 4px rgba(200,180,220,0.1);
  animation: rm-window 8s ease-in-out infinite alternate;
}
.scn-rogojin-house-meeting .floor-shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: rm-floor 10s ease-in-out infinite alternate;
}

@keyframes rm-back { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rm-door { 0% { transform: perspective(400px) rotateY(0deg); } 50% { transform: perspective(400px) rotateY(-15deg); } 100% { transform: perspective(400px) rotateY(0deg); } }
@keyframes rm-rogojin { 0% { transform: translateY(0) scale(1) rotate(-1deg); } 25% { transform: translateY(-2px) scale(1.02) rotate(1deg); } 50% { transform: translateY(0) scale(1) rotate(-1deg); } 75% { transform: translateY(-1px) scale(1.01) rotate(2deg); } 100% { transform: translateY(0) scale(1) rotate(0); } }
@keyframes rm-prince { 0% { transform: translateY(0) scale(1) rotate(0); } 25% { transform: translateY(-1px) scale(1.01) rotate(-1deg); } 50% { transform: translateY(0) scale(1) rotate(0); } 75% { transform: translateY(1px) scale(0.99) rotate(1deg); } 100% { transform: translateY(0) scale(1) rotate(0); } }
@keyframes rm-window { 0% { opacity: 0.2; box-shadow: 0 0 10px 2px rgba(200,180,220,0.1); } 50% { opacity: 0.4; box-shadow: 0 0 25px 6px rgba(200,180,220,0.2); } 100% { opacity: 0.2; box-shadow: 0 0 10px 2px rgba(200,180,220,0.1); } }
@keyframes rm-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }

/* Scene: exit – two figures in chairs opposite, heavy curtain, dim lamp */
.scn-exit {
  background:
    linear-gradient(180deg, #0b0b15 0%, #1a1220 40%, #2a1a2a 100%),
    radial-gradient(ellipse at 30% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-exit .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 60%, #1a1628 100%);
  animation: exit-bg 12s ease-in-out infinite alternate;
}
.scn-exit .wall-shadow {
  position: absolute; inset: 20% 5% 30% 5%;
  background: radial-gradient(ellipse at 70% 50%, #0e0e1a 0%, transparent 80%);
  animation: exit-wall 15s ease-in-out infinite;
}
.scn-exit .curtain-left {
  position: absolute; left: 0; top: 0; bottom: 45%; width: 25%;
  background: linear-gradient(90deg, #1e162a 0%, #2a1a30 60%, #1e162a 100%);
  border-radius: 0 30% 80% 0 / 0 20% 60% 0;
  transform-origin: left center;
  animation: exit-curtain-l 8s ease-in-out infinite alternate;
}
.scn-exit .curtain-right {
  position: absolute; right: 0; top: 0; bottom: 45%; width: 25%;
  background: linear-gradient(270deg, #1e162a 0%, #2a1a30 60%, #1e162a 100%);
  border-radius: 30% 0 0 80% / 20% 0 0 60%;
  transform-origin: right center;
  animation: exit-curtain-r 8s ease-in-out infinite alternate;
}
.scn-exit .chair-left {
  position: absolute; bottom: 22%; left: 20%;
  width: 50px; height: 55px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: exit-chair-l 10s ease-in-out infinite;
}
.scn-exit .chair-right {
  position: absolute; bottom: 22%; right: 20%;
  width: 50px; height: 55px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: exit-chair-r 10s ease-in-out infinite;
}
.scn-exit .figure-left {
  position: absolute; bottom: 22%; left: 22%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a0e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: exit-fig-l 6s ease-in-out infinite alternate;
}
.scn-exit .figure-right {
  position: absolute; bottom: 22%; right: 22%;
  width: 30px; height: 58px;
  background: linear-gradient(180deg, #1a0e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: exit-fig-r 5s ease-in-out infinite alternate;
}
.scn-exit .dim-lamp {
  position: absolute; bottom: 45%; left: 48%;
  width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,130,40,0.4), 0 0 40px 16px rgba(200,130,40,0.15);
  animation: exit-lamp 4s ease-in-out infinite alternate;
}
@keyframes exit-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes exit-wall { 0% { opacity: 0.7 } 50% { opacity: 0.5 } 100% { opacity: 0.8 } }
@keyframes exit-curtain-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) translateX(2px) } 100% { transform: scaleX(1.02) } }
@keyframes exit-curtain-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) translateX(-2px) } 100% { transform: scaleX(1.02) } }
@keyframes exit-chair-l { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) rotate(-0.5deg) } }
@keyframes exit-chair-r { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes exit-fig-l { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes exit-fig-r { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes exit-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(200,130,40,0.4) } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,130,40,0.6) } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(200,130,40,0.3) } }

/* Scene: admission – prince leaning forward, shadow falling */
.scn-admission {
  background:
    linear-gradient(180deg, #0a0a12 0%, #12101e 50%, #1e1a2a 100%),
    radial-gradient(ellipse at 40% 60%, #1e1a2a 0%, transparent 80%);
}
.scn-admission .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0a16 0%, #14122a 50%, #1a1628 100%);
  animation: adm-bg 20s ease-in-out infinite alternate;
}
.scn-admission .chair {
  position: absolute; bottom: 20%; left: 25%;
  width: 70px; height: 60px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%);
  border-radius: 15% 15% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: adm-chair 10s ease-in-out infinite;
}
.scn-admission .figure-forward {
  position: absolute; bottom: 22%; left: 28%;
  width: 30px; height: 62px;
  background: linear-gradient(180deg, #160e14 0%, #080406 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: adm-fig 3s ease-in-out infinite alternate;
}
.scn-admission .figure-shadow {
  position: absolute; bottom: 10%; left: 15%;
  width: 50px; height: 20px;
  background: radial-gradient(ellipse, #110e1a 0%, transparent 70%);
  filter: blur(4px);
  animation: adm-shadow 4s ease-in-out infinite alternate;
}
.scn-admission .glow-spot {
  position: absolute; bottom: 42%; left: 40%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #d0a050 0%, #b07a30 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(180,120,40,0.4), 0 0 60px 20px rgba(180,120,40,0.1);
  animation: adm-glow 5s ease-in-out infinite alternate;
}
.scn-admission .floor-line {
  position: absolute; bottom: 18%; left: 10%; right: 10%;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, #2a1a30 50%, transparent 100%);
  opacity: 0.4;
  animation: adm-floor 8s linear infinite;
}
@keyframes adm-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes adm-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes adm-fig { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 50% { transform: translateX(8px) translateY(-4px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes adm-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.3) } 100% { opacity: 0.3; transform: scaleX(1) } }
@keyframes adm-glow { 0% { opacity: 0.5; box-shadow: 0 0 20px 8px rgba(180,120,40,0.3) } 50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(180,120,40,0.6) } 100% { opacity: 0.6; box-shadow: 0 0 25px 10px rgba(180,120,40,0.35) } }
@keyframes adm-floor { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* Scene: question-and-answer – curtain, two figures, dim light */
.scn-question-and-answer {
  background:
    linear-gradient(180deg, #0b0b15 0%, #15122a 40%, #1e1a30 100%),
    radial-gradient(ellipse at 50% 50%, #1e1a30 0%, transparent 70%);
}
.scn-question-and-answer .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0c0a16 0%, #14122a 60%, #1a1628 100%);
  animation: qa-bg 14s ease-in-out infinite alternate;
}
.scn-question-and-answer .curtain {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 50%;
  background: linear-gradient(180deg, #1e162a 0%, #2a1a30 50%, #1e162a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: qa-curtain 12s ease-in-out infinite alternate;
}
.scn-question-and-answer .figure-left {
  position: absolute; bottom: 22%; left: 20%;
  width: 28px; height: 58px;
  background: linear-gradient(180deg, #1a0e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: qa-fig-l 6s ease-in-out infinite alternate;
}
.scn-question-and-answer .figure-right {
  position: absolute; bottom: 22%; right: 20%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a0e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: qa-fig-r 6s ease-in-out infinite alternate;
}
.scn-question-and-answer .light-source {
  position: absolute; bottom: 45%; left: 46%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #d0a050 0%, #b07a30 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(180,120,40,0.5), 0 0 40px 14px rgba(180,120,40,0.2);
  animation: qa-light 3s ease-in-out infinite alternate;
}
.scn-question-and-answer .floor {
  position: absolute; bottom: 18%; left: 5%; right: 5%;
  height: 15%;
  background: linear-gradient(180deg, #1e162a 0%, #0e0a12 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  opacity: 0.6;
  animation: qa-floor 20s linear infinite;
}
@keyframes qa-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes qa-curtain { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.98) translateY(-2px) } 100% { transform: scaleY(1.02) translateY(0) } }
@keyframes qa-fig-l { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes qa-fig-r { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes qa-light { 0% { opacity: 0.5; box-shadow: 0 0 15px 5px rgba(180,120,40,0.4) } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(180,120,40,0.6) } 100% { opacity: 0.6; box-shadow: 0 0 20px 7px rgba(180,120,40,0.35) } }
@keyframes qa-floor { 0% { opacity: 0.4; transform: translateY(0) } 50% { opacity: 0.7; transform: translateY(1px) } 100% { opacity: 0.4; transform: translateY(0) } }

/* Scene: reasoning – table, candle, two figures, wall shadow */
.scn-reasoning {
  background:
    linear-gradient(180deg, #08080e 0%, #120e1c 40%, #1c1628 100%),
    radial-gradient(ellipse at 50% 40%, #1c1628 0%, transparent 70%);
}
.scn-reasoning .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0c0a16 0%, #14122a 60%, #1a1628 100%);
  animation: reas-bg 18s ease-in-out infinite alternate;
}
.scn-reasoning .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: reas-table 10s ease-in-out infinite;
}
.scn-reasoning .candle {
  position: absolute; bottom: 33%; left: 48%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0a050 0%, #b07a30 80%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: reas-candle 4s ease-in-out infinite alternate;
}
.scn-reasoning .figure-left {
  position: absolute; bottom: 22%; left: 18%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #160e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: reas-fig-l 5s ease-in-out infinite alternate;
}
.scn-reasoning .figure-right {
  position: absolute; bottom: 22%; right: 18%;
  width: 28px; height: 58px;
  background: linear-gradient(180deg, #160e14 0%, #0d0609 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: reas-fig-r 6s ease-in-out infinite alternate;
}
.scn-reasoning .candle-glow {
  position: absolute; bottom: 40%; left: 45%;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #b07a30 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(180,120,40,0.5), 0 0 80px 30px rgba(180,120,40,0.2);
  animation: reas-glow 3s ease-in-out infinite alternate;
}
.scn-reasoning .wall-shadow {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #100e1a 0%, transparent 80%);
  filter: blur(6px);
  animation: reas-shadow 12s ease-in-out infinite;
}
@keyframes reas-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes reas-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes reas-candle { 0% { transform: translateY(0) rotate(-1deg) scaleY(1) } 50% { transform: translateY(-2px) rotate(1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(-1deg) scaleY(0.98) } }
@keyframes reas-fig-l { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes reas-fig-r { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes reas-glow { 0% { opacity: 0.6; box-shadow: 0 0 30px 12px rgba(180,120,40,0.4) } 50% { opacity: 1; box-shadow: 0 0 60px 24px rgba(180,120,40,0.6) } 100% { opacity: 0.7; box-shadow: 0 0 35px 14px rgba(180,120,40,0.35) } }
@keyframes reas-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* scene 1: prince-fears-letters */
.scn-prince-fears-letters {
  background: linear-gradient(135deg, #0f0e1a 0%, #1c192e 40%, #2a2538 100%), radial-gradient(ellipse at 60% 100%, #3a2e4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-prince-fears-letters .bg-void {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0e0c1a 80%);
}
.scn-prince-fears-letters .desk {
  position: absolute;
  bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-prince-fears-letters .lamp {
  position: absolute;
  bottom: 32%; left: 15%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffb060 0%, #d08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d08030, 0 0 50px 12px rgba(208,128,48,.5);
  animation: pfl-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-fears-letters .letters {
  position: absolute;
  bottom: 10%; left: 10%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #ccc7b8 0%, #b8a88a 50%, #ccc7b8 100%);
  border-radius: 2px;
  box-shadow: 2px 4px 6px rgba(0,0,0,.5);
  transform: rotate(-5deg);
}
.scn-prince-fears-letters .figure {
  position: absolute;
  bottom: 18%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1826 0%, #0f0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfl-figure 4s ease-in-out infinite;
}
.scn-prince-fears-letters .shadow {
  position: absolute;
  bottom: 8%; left: 20%; width: 80px; height: 20px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: pfl-shadow 4s ease-in-out infinite;
}
.scn-prince-fears-letters .flicker {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 18% 64%, rgba(208,128,48,.08) 0%, transparent 70%);
  animation: pfl-flicker 2s ease-in-out infinite alternate;
}
@keyframes pfl-lamp {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 6px #d08030, 0 0 50px 12px rgba(208,128,48,.5); }
  50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 30px 10px #e09040, 0 0 70px 18px rgba(224,144,64,.6); }
  100% { transform: scale(0.95) rotate(-1deg); box-shadow: 0 0 18px 4px #c07030, 0 0 45px 10px rgba(192,112,48,.4); }
}
@keyframes pfl-figure {
  0% { transform: translate(0,0) rotate(2deg); }
  25% { transform: translate(2px,-1px) rotate(-1deg); }
  50% { transform: translate(0,-2px) rotate(1deg); }
  75% { transform: translate(-2px,-1px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(2deg); }
}
@keyframes pfl-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.15); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes pfl-flicker {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.2; }
}

/* scene 2: aglaya-braces */
.scn-aglaya-braces {
  background: linear-gradient(180deg, #0f0d1a 0%, #1a172e 40%, #2c2440 100%), radial-gradient(ellipse at 50% 20%, #3a2e52 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-aglaya-braces .bg-void {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(70,50,30,0.1) 50%, transparent 100%);
}
.scn-aglaya-braces .wall {
  position: absolute;
  left: 40%; right: 0; bottom: 0; top: 20%;
  background: linear-gradient(90deg, #1a1826 0%, #2a2636 100%);
  border-left: 8px solid #3a3248;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-aglaya-braces .figure {
  position: absolute;
  bottom: 15%; left: 30%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #1e1c2e 0%, #0e0c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-figure 5s ease-in-out infinite;
}
.scn-aglaya-braces .brace {
  position: absolute;
  bottom: 28%; left: 32%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #2a2636 0%, #1a1826 100%);
  border-radius: 4px;
  transform: rotate(-30deg);
  animation: ab-brace 5s ease-in-out infinite;
}
.scn-aglaya-braces .shadow-wall {
  position: absolute;
  left: 42%; bottom: 10%; width: 40px; height: 15px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(8px);
  animation: ab-shadow 5s ease-in-out infinite;
}
.scn-aglaya-braces .motes {
  position: absolute;
  top: 50%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,200,200,0.05) 0%, transparent 100%);
  filter: blur(2px);
  animation: ab-motes 12s linear infinite;
}
@keyframes ab-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ab-brace {
  0% { transform: rotate(-30deg) translate(0,0); }
  50% { transform: rotate(-25deg) translate(2px,-1px); }
  100% { transform: rotate(-30deg) translate(0,0); }
}
@keyframes ab-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(0.8) translateX(5px); opacity: 0.7; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
}
@keyframes ab-motes {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  50% { transform: translate(10px,-15px) scale(1.5); opacity: 0.3; }
  100% { transform: translate(-10px,30px) scale(0.8); opacity: 0; }
}

/* scene 3: aglaya-replies-to-letters */
.scn-aglaya-replies-to-letters {
  background: linear-gradient(180deg, #0e0c1a 0%, #1a172e 40%, #2a2238 100%), radial-gradient(ellipse at 70% 70%, #2e2844 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-aglaya-replies-to-letters .bg-void {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(40,30,20,0.05) 30%, transparent 100%);
}
.scn-aglaya-replies-to-letters .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-aglaya-replies-to-letters .figure {
  position: absolute;
  bottom: 15%; left: 45%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #1c1a2c 0%, #0e0c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: art-figure 4s ease-in-out infinite;
}
.scn-aglaya-replies-to-letters .letter {
  position: absolute;
  bottom: 22%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #b8a88a 0%, #d0c8b0 50%, #b8a88a 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,.4);
  transform: rotate(10deg);
  animation: art-letter 6s ease-in-out infinite;
}
.scn-aglaya-replies-to-letters .candle {
  position: absolute;
  bottom: 25%; left: 55%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffc060 0%, #e08030 50%, #a04010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px 4px #e08030, 0 0 30px 8px rgba(224,128,48,.4);
  animation: art-candle 2s ease-in-out infinite alternate;
}
.scn-aglaya-replies-to-letters .shadow-letter {
  position: absolute;
  bottom: 10%; left: 50%; width: 30px; height: 10px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: art-shadow-lett 4s ease-in-out infinite;
}
.scn-aglaya-replies-to-letters .drift {
  position: absolute;
  top: 40%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,255,255,0.02) 0%, transparent 100%);
  filter: blur(3px);
  animation: art-drift 20s linear infinite;
}
@keyframes art-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes art-letter {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes art-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 12px 4px #e08030, 0 0 30px 8px rgba(224,128,48,.4); }
  50% { transform: scaleY(0.9) scaleX(0.95); box-shadow: 0 0 18px 6px #f09040, 0 0 40px 12px rgba(240,144,64,.5); }
  100% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 12px 4px #e08030, 0 0 30px 8px rgba(224,128,48,.4); }
}
@keyframes art-shadow-lett {
  0% { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateY(-2px) scaleX(0.8); opacity: 0.7; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.5; }
}
@keyframes art-drift {
  0% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(-15px) translateY(10px) scale(1.1); }
  50% { transform: translateX(15px) translateY(-5px) scale(0.9); }
  75% { transform: translateX(-10px) translateY(15px) scale(1.05); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}

/* scene 4: aglaya-criticizes-nastasia */
.scn-aglaya-criticizes-nastasia {
  background: linear-gradient(180deg, #0f0d1a 0%, #1c192e 40%, #2a2538 100%), radial-gradient(ellipse at 30% 60%, #2e2844 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-aglaya-criticizes-nastasia .bg-void {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(30,20,40,0.1) 30%, transparent 100%);
}
.scn-aglaya-criticizes-nastasia .figure-a {
  position: absolute;
  bottom: 15%; left: 20%; width: 34px; height: 68px;
  background: linear-gradient(180deg, #1e1c2e 0%, #0e0c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acn-figure-a 4s ease-in-out infinite;
}
.scn-aglaya-criticizes-nastasia .figure-n {
  position: absolute;
  bottom: 12%; left: 55%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #1a1826 0%, #0c0a16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acn-figure-n 5s ease-in-out infinite;
}
.scn-aglaya-criticizes-nastasia .space {
  position: absolute;
  bottom: 20%; left: 35%; width: 20%; height: 40%;
  background: rgba(60,50,70,0.1);
  filter: blur(8px);
}
.scn-aglaya-criticizes-nastasia .light-shaft {
  position: absolute;
  top: 0; left: 30%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.03) 0%, transparent 100%);
  filter: blur(12px);
  animation: acn-light 8s ease-in-out infinite alternate;
}
.scn-aglaya-criticizes-nastasia .shadow-a {
  position: absolute;
  bottom: 8%; left: 18%; width: 60px; height: 16px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: acn-shadow-a 4s ease-in-out infinite;
}
.scn-aglaya-criticizes-nastasia .shadow-n {
  position: absolute;
  bottom: 6%; left: 52%; width: 50px; height: 14px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(6px);
  animation: acn-shadow-n 5s ease-in-out infinite;
}
@keyframes acn-figure-a {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(3px) rotate(5deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes acn-figure-n {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(-2px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes acn-light {
  0% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(1.3); opacity: 0.5; }
  100% { transform: scaleX(0.7); opacity: 0.1; }
}
@keyframes acn-shadow-a {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(0.8) translateX(5px); opacity: 0.8; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.6; }
}
@keyframes acn-shadow-n {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(0.9) translateX(-3px); opacity: 0.7; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
}

/* card-question - dark dim interior */
.scn-card-question {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-card-question .window {
  position:absolute; top:10%; left:10%; width:30%; height:20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a2a3a, 0 0 20px 6px rgba(100,140,180,0.2);
  animation: cq-window 6s ease-in-out infinite alternate;
}
.scn-card-question .table {
  position:absolute; bottom:20%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-card-question .chair-left {
  position:absolute; bottom:20%; left:15%; width:12%; height:25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cq-chair 8s ease-in-out infinite;
}
.scn-card-question .chair-right {
  position:absolute; bottom:20%; right:15%; width:12%; height:25%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cq-chair 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-card-question .cards {
  position:absolute; bottom:28%; left:45%; width:10%; height:8%;
  background: linear-gradient(135deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5), 0 0 4px rgba(200,180,160,0.3);
  animation: cq-cards 4s ease-in-out infinite alternate;
}
.scn-card-question .figure {
  position:absolute; bottom:20%; left:35%; width:16%; height:32%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cq-figure 6s ease-in-out infinite;
}
.scn-card-question .lamp {
  position:absolute; top:25%; left:45%; width:6%; height:12%;
  background: radial-gradient(circle at 50% 100%, #d0a060 0%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.6), 0 0 60px 20px rgba(200,160,80,0.2);
  animation: cq-lamp 3s ease-in-out infinite alternate;
}
@keyframes cq-window {
  0% { opacity:0.6; box-shadow:inset 0 0 0 2px #2a2a3a, 0 0 10px 3px rgba(100,140,180,0.1); }
  50% { opacity:0.8; box-shadow:inset 0 0 0 2px #3a3a4a, 0 0 20px 6px rgba(100,140,180,0.3); }
  100% { opacity:0.5; box-shadow:inset 0 0 0 2px #1a1a2a, 0 0 5px 1px rgba(100,140,180,0.05); }
}
@keyframes cq-chair {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-2px) rotate(1deg) scale(1.01); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes cq-cards {
  0% { transform: translateY(0) rotate(0deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.5); }
  50% { transform: translateY(-1px) rotate(2deg); box-shadow: 2px 3px 8px rgba(0,0,0,0.6); }
  100% { transform: translateY(0) rotate(0deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.5); }
}
@keyframes cq-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes cq-lamp {
  0% { opacity:0.7; transform: scaleY(1); box-shadow:0 0 30px 10px rgba(200,160,80,0.4); }
  50% { opacity:0.9; transform: scaleY(1.1); box-shadow:0 0 40px 15px rgba(200,160,80,0.7); }
  100% { opacity:0.6; transform: scaleY(0.95); box-shadow:0 0 25px 8px rgba(200,160,80,0.3); }
}

/* cards-earlier - dark dim interior close-up */
.scn-cards-earlier {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-cards-earlier .table-surface {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
}
.scn-cards-earlier .hand-left {
  position:absolute; bottom:10%; left:5%; width:20%; height:35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 60% 30% 50% / 60% 50% 40% 50%;
  transform-origin: bottom right;
  animation: ce-handl 5s ease-in-out infinite;
}
.scn-cards-earlier .hand-right {
  position:absolute; bottom:10%; right:5%; width:20%; height:35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 40% 50% 30% / 50% 60% 50% 40%;
  transform-origin: bottom left;
  animation: ce-handr 5s ease-in-out infinite;
  animation-delay: -2.5s;
}
.scn-cards-earlier .card-pile {
  position:absolute; bottom:20%; left:42%; width:16%; height:10%;
  background: linear-gradient(135deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: ce-pile 6s ease-in-out infinite;
}
.scn-cards-earlier .card-dealt {
  position:absolute; bottom:30%; left:35%; width:12%; height:8%;
  background: linear-gradient(135deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 3px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
  animation: ce-dealt 4s ease-in-out infinite;
}
.scn-cards-earlier .lamp {
  position:absolute; top:15%; left:42%; width:8%; height:15%;
  background: radial-gradient(circle at 50% 100%, #d0a060 0%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(200,160,80,0.5), 0 0 80px 30px rgba(200,160,80,0.2);
  animation: ce-lamp 3s ease-in-out infinite alternate;
}
@keyframes ce-handl {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  50% { transform: translateX(10px) translateY(-5px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes ce-handr {
  0% { transform: translateX(0) translateY(0) rotate(5deg); }
  50% { transform: translateX(-10px) translateY(-5px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(5deg); }
}
@keyframes ce-pile {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); box-shadow: 2px 3px 10px rgba(0,0,0,0.6); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ce-dealt {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-20px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ce-lamp {
  0% { opacity:0.6; transform: scaleY(1); box-shadow:0 0 30px 10px rgba(200,160,80,0.4); }
  50% { opacity:1; transform: scaleY(1.15); box-shadow:0 0 50px 20px rgba(200,160,80,0.7); }
  100% { opacity:0.5; transform: scaleY(0.9); box-shadow:0 0 20px 5px rgba(200,160,80,0.3); }
}

/* plan-to-check-evening - tense dim interior */
.scn-plan-to-check-evening {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a2a 0%, transparent 60%);
}
.scn-plan-to-check-evening .door {
  position:absolute; left:30%; right:30%; top:10%; bottom:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a1a0a, 0 4px 12px rgba(0,0,0,0.7);
  animation: pt-door 8s ease-in-out infinite;
}
.scn-plan-to-check-evening .figure {
  position:absolute; bottom:20%; left:40%; width:14%; height:35%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure 4s ease-in-out infinite;
}
.scn-plan-to-check-evening .clock {
  position:absolute; top:18%; left:55%; width:10%; height:10%;
  background: radial-gradient(circle at 50% 50%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 2px #5a4a3a, 0 0 10px rgba(0,0,0,0.5);
  animation: pt-clock 30s linear infinite;
}
.scn-plan-to-check-evening .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-plan-to-check-evening .window {
  position:absolute; top:12%; left:10%; width:16%; height:18%;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a2a3a, 0 0 15px 5px rgba(100,140,180,0.1);
  animation: pt-window 5s ease-in-out infinite alternate;
}
.scn-plan-to-check-evening .lamp {
  position:absolute; top:30%; left:25%; width:5%; height:10%;
  background: radial-gradient(circle at 50% 100%, #d0a060 0%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 25px 8px rgba(200,160,80,0.5), 0 0 50px 15px rgba(200,160,80,0.2);
  animation: pt-lamp 2s ease-in-out infinite alternate;
}
@keyframes pt-door {
  0% { transform: rotateY(0deg); box-shadow:inset 0 0 0 2px #2a1a0a, 0 4px 12px rgba(0,0,0,0.7); }
  50% { transform: rotateY(3deg); box-shadow:inset 0 0 0 2px #3a2a1a, 0 6px 18px rgba(0,0,0,0.8); }
  100% { transform: rotateY(0deg); box-shadow:inset 0 0 0 2px #2a1a0a, 0 4px 12px rgba(0,0,0,0.7); }
}
@keyframes pt-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes pt-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes pt-window {
  0% { opacity:0.3; box-shadow:inset 0 0 0 2px #2a2a3a, 0 0 10px 2px rgba(100,140,180,0.05); }
  50% { opacity:0.6; box-shadow:inset 0 0 0 2px #3a3a4a, 0 0 20px 6px rgba(100,140,180,0.2); }
  100% { opacity:0.2; box-shadow:inset 0 0 0 2px #1a1a2a, 0 0 5px 1px rgba(100,140,180,0.02); }
}
@keyframes pt-lamp {
  0% { opacity:0.8; transform: scaleY(1) translateY(0); box-shadow:0 0 25px 8px rgba(200,160,80,0.5); }
  50% { opacity:1; transform: scaleY(1.2) translateY(-2px); box-shadow:0 0 35px 12px rgba(200,160,80,0.8); }
  100% { opacity:0.6; transform: scaleY(0.9) translateY(1px); box-shadow:0 0 20px 5px rgba(200,160,80,0.3); }
}

/* prince-wanders - dark night street */
.scn-prince-wanders {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-prince-wanders .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: pw-sky 20s ease-in-out infinite alternate;
}
.scn-prince-wanders .street {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 0 0;
}
.scn-prince-wanders .building-left {
  position:absolute; bottom:20%; left:0; width:30%; height:60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 0 10% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
}
.scn-prince-wanders .building-right {
  position:absolute; bottom:20%; right:0; width:30%; height:60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 10% 0 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
}
.scn-prince-wanders .figure {
  position:absolute; bottom:20%; left:42%; width:8%; height:20%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-walk 6s ease-in-out infinite;
}
.scn-prince-wanders .lamp-post {
  position:absolute; bottom:20%; left:60%; width:3%; height:25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 2px;
}
.scn-prince-wanders .lamp-post::after {
  content: '';
  position:absolute; top:-5%; left:50%; transform:translateX(-50%);
  width:200%; height:15%;
  background: radial-gradient(circle at 50% 100%, #d0d0e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,200,220,0.4);
  animation: pw-lamp 4s ease-in-out infinite alternate;
}
.scn-prince-wanders .shadow {
  position:absolute; bottom:20%; left:40%; width:12%; height:3%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: pw-shadow 6s ease-in-out infinite;
}
@keyframes pw-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.5; }
}
@keyframes pw-walk {
  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(15px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes pw-lamp {
  0% { opacity:0.6; transform: translateX(-50%) scaleY(1); box-shadow:0 0 30px 10px rgba(200,200,220,0.3); }
  50% { opacity:0.9; transform: translateX(-50%) scaleY(1.2); box-shadow:0 0 40px 15px rgba(200,200,220,0.6); }
  100% { opacity:0.5; transform: translateX(-50%) scaleY(0.8); box-shadow:0 0 20px 5px rgba(200,200,220,0.2); }
}
@keyframes pw-shadow {
  0% { transform: translateX(0) scaleX(1); opacity:0.5; }
  50% { transform: translateX(10px) scaleX(0.9); opacity:0.7; }
  100% { transform: translateX(20px) scaleX(1); opacity:0.5; }
}

/* --- Scene 1: train-lebedeff-knowledge (warm dawn) --- */
.scn-train-lebedeff-knowledge {
  background:
    linear-gradient(180deg, #f2c88d 0%, #d6924a 20%, #8a4e2a 50%, #3a1e0e 100%),
    radial-gradient(ellipse at 60% 0%, #fbe9c3 0%, transparent 60%);
}
.scn-train-lebedeff-knowledge .train-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b87333 0%, #4a2a1a 100%); opacity: 0.45;
  animation: lk-bg 12s ease-in-out infinite alternate;
}
.scn-train-lebedeff-knowledge .window {
  position: absolute; top: 12%; left: 8%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #ffe8b0 0%, #f5c66a 40%, #c07a3a 100%);
  border-radius: 6% / 10%; box-shadow: inset 0 0 40px rgba(255,200,80,0.4);
  animation: lk-window 8s ease-in-out infinite alternate;
}
.scn-train-lebedeff-knowledge .sunrise-glow {
  position: absolute; top: 10%; left: 20%; width: 18%; height: 30%;
  background: radial-gradient(ellipse, #ffd58c 0%, rgba(255,200,80,0.3) 60%, transparent 100%);
  filter: blur(10px); animation: lk-glow 6s ease-in-out infinite alternate;
}
.scn-train-lebedeff-knowledge .seat {
  position: absolute; bottom: 20%; left: 5%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #5e3a2a 0%, #3a1e0e 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-train-lebedeff-knowledge .figure-clerk {
  position: absolute; bottom: 22%; left: 15%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lk-clerk 5s ease-in-out infinite;
}
.scn-train-lebedeff-knowledge .figure-prince {
  position: absolute; bottom: 22%; right: 12%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lk-prince 7s ease-in-out infinite alternate;
}
.scn-train-lebedeff-knowledge .lamp {
  position: absolute; top: 30%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd58c 0%, #d6924a 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.5);
  animation: lk-lamp 4s ease-in-out infinite alternate;
}
@keyframes lk-bg {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.02); }
  100% { opacity: 0.45; transform: scale(1); }
}
@keyframes lk-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,200,80,0.3); }
  50% { opacity: 0.9; box-shadow: inset 0 0 50px rgba(255,200,80,0.5); }
  100% { opacity: 0.75; box-shadow: inset 0 0 35px rgba(255,200,80,0.35); }
}
@keyframes lk-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 lk-clerk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5%) rotate(1deg); }
  50% { transform: translateX(10%) rotate(-1deg); }
  75% { transform: translateX(5%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lk-prince {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2%) scaleY(1.02); }
  100% { transform: translateY(1%) scaleY(0.98); }
}
@keyframes lk-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(255,200,80,0.4); transform: scale(0.95); }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,80,0.7); transform: scale(1.1); }
  100% { box-shadow: 0 0 25px 8px rgba(255,200,80,0.5); transform: scale(1); }
}

/* --- Scene 2: train-rogogin-jealousy (dark dawn) --- */
.scn-train-rogogin-jealousy {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2035 30%, #3a2a45 60%, #1e1225 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%);
}
.scn-train-rogogin-jealousy .car-bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1225 100%); opacity: 0.6;
  animation: rj-bg 15s ease-in-out infinite alternate;
}
.scn-train-rogogin-jealousy .window-dim {
  position: absolute; top: 10%; left: 5%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #6a6a8a 0%, #3a3a5e 40%, #1a1a3a 100%);
  border-radius: 8% / 12%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: rj-window 10s ease-in-out infinite alternate;
}
.scn-train-rogogin-jealousy .curtain {
  position: absolute; top: 8%; left: 4%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 0 40% 40% 0; opacity: 0.7;
  animation: rj-curtain 8s ease-in-out infinite;
}
.scn-train-rogogin-jealousy .figure-rog {
  position: absolute; bottom: 20%; left: 20%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rj-rog 6s ease-in-out infinite;
}
.scn-train-rogogin-jealousy .figure-leb {
  position: absolute; bottom: 22%; left: 45%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rj-leb 5s ease-in-out infinite alternate;
}
.scn-train-rogogin-jealousy .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: rj-shadow 12s ease-in-out infinite alternate;
}
@keyframes rj-bg {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.65; transform: scale(1.01); }
  100% { opacity: 0.55; transform: scale(1); }
}
@keyframes rj-window {
  0% { opacity: 0.3; background: linear-gradient(180deg, #5a5a7a 0%, #2a2a4a 100%); }
  50% { opacity: 0.5; background: linear-gradient(180deg, #7a7a9a 0%, #3a3a5a 100%); }
  100% { opacity: 0.35; background: linear-gradient(180deg, #5a5a7a 0%, #2a2a4a 100%); }
}
@keyframes rj-curtain {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(2%) scaleX(0.95); }
  50% { transform: translateX(4%) scaleX(0.9); }
  75% { transform: translateX(2%) scaleX(0.95); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes rj-rog {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(-3%) rotate(2deg); }
  60% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(3%) rotate(1deg); }
}
@keyframes rj-leb {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3%) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rj-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}

/* --- Scene 3: train-earring-story (tense dawn) --- */
.scn-train-earring-story {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #8a5a3a 30%, #c07a4a 60%, #7a4a2a 100%),
    radial-gradient(ellipse at 30% 20%, #e8a86a 0%, transparent 60%);
}
.scn-train-earring-story .comp-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a1e0e 0%, #5a2e1a 100%); opacity: 0.5;
  animation: es-bg 10s ease-in-out infinite alternate;
}
.scn-train-earring-story .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: es-table 7s ease-in-out infinite alternate;
}
.scn-train-earring-story .lamp-bright {
  position: absolute; top: 25%; left: 15%; width: 12%; height: 18%;
  background: radial-gradient(circle, #ffd58c 0%, #e8a86a 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,200,80,0.5);
  animation: es-lamp 3s ease-in-out infinite alternate;
}
.scn-train-earring-story .parcel {
  position: absolute; bottom: 28%; left: 35%; width: 20%; height: 14%;
  background: linear-gradient(135deg, #a07250 0%, #6a452a 100%);
  border-radius: 8% / 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: es-parcel 5s ease-in-out infinite;
}
.scn-train-earring-story .hands {
  position: absolute; bottom: 30%; left: 45%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #6a452a 0%, #3a1e0e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: es-hands 4s ease-in-out infinite;
}
.scn-train-earring-story .earring-sparkle {
  position: absolute; bottom: 32%; left: 38%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffe8b0 0%, #f5c66a 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,80,0.6);
  animation: es-sparkle 2s ease-in-out infinite alternate;
}
.scn-train-earring-story .shadow-tense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: es-shadow 8s ease-in-out infinite alternate;
}
@keyframes es-bg {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.45; }
}
@keyframes es-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes es-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(255,200,80,0.4); transform: scale(0.9); }
  50% { box-shadow: 0 0 50px 18px rgba(255,200,80,0.7); transform: scale(1.1); }
  100% { box-shadow: 0 0 35px 12px rgba(255,200,80,0.5); transform: scale(1); }
}
@keyframes es-parcel {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes es-hands {
  0% { transform: translate(0, 0) scaleY(1); }
  25% { transform: translate(-4%, -2%) scaleY(1.02); }
  50% { transform: translate(0, -1%) scaleY(0.98); }
  75% { transform: translate(4%, 0) scaleY(1.01); }
  100% { transform: translate(0, 0) scaleY(1); }
}
@keyframes es-sparkle {
  0% { opacity: 0.3; box-shadow: 0 0 10px 2px rgba(255,200,80,0.3); transform: scale(0.5); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,200,80,0.8); transform: scale(1.3); }
  100% { opacity: 0.4; box-shadow: 0 0 15px 4px rgba(255,200,80,0.4); transform: scale(0.7); }
}
@keyframes es-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}

/* --- Scene 4: train-fathers-anger (dark dawn) --- */
.scn-train-fathers-anger {
  background:
    linear-gradient(180deg, #1a0e1a 0%, #2a1a2a 30%, #3a2a3a 60%, #1a0e1a 100%),
    radial-gradient(ellipse at 70% 10%, #4a3a4a 0%, transparent 60%);
}
.scn-train-fathers-anger .bg-dark-anger {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a0e 0%, #1a121a 100%); opacity: 0.7;
  animation: fa-bg 18s ease-in-out infinite alternate;
}
.scn-train-fathers-anger .window-narrow {
  position: absolute; top: 8%; left: 5%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #5a4a5a 0%, #2a1a2a 100%);
  border-radius: 6% / 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  animation: fa-window 12s ease-in-out infinite alternate;
}
.scn-train-fathers-anger .curtain-heavy {
  position: absolute; top: 6%; left: 3%; width: 8%; height: 55%;
  background: linear-gradient(180deg, #4a3a4a 0%, #1a0e1a 100%);
  border-radius: 0 30% 30% 0; opacity: 0.8;
  animation: fa-curtain 9s ease-in-out infinite;
}
.scn-train-fathers-anger .figure-prince-observe {
  position: absolute; bottom: 22%; left: 15%; width: 18%; height: 42%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fa-prince 6s ease-in-out infinite alternate;
}
.scn-train-fathers-anger .figure-rog-silhouette {
  position: absolute; bottom: 20%; right: 10%; width: 22%; height: 48%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0e0a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-rog 5s ease-in-out infinite;
}
.scn-train-fathers-anger .shadow-father {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #1a0e1a 0%, rgba(0,0,0,0.8) 100%);
  border-radius: 50% 20% 40% 40% / 60% 30% 50% 50%;
  opacity: 0.5; filter: blur(8px);
  animation: fa-father 15s ease-in-out infinite alternate;
}
.scn-train-fathers-anger .chair {
  position: absolute; bottom: 15%; left: 30%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 10% 10% 5% 5%;
  animation: fa-chair 8s ease-in-out infinite;
}
@keyframes fa-bg {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.75; transform: scale(1.02); }
  100% { opacity: 0.65; transform: scale(1); }
}
@keyframes fa-window {
  0% { opacity: 0.2; background: linear-gradient(180deg, #4a3a4a 0%, #1a0e1a 100%); }
  50% { opacity: 0.35; background: linear-gradient(180deg, #6a5a6a 0%, #2a1a2a 100%); }
  100% { opacity: 0.25; background: linear-gradient(180deg, #4a3a4a 0%, #1a0e1a 100%); }
}
@keyframes fa-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(3%) scaleX(0.95); }
  100% { transform: translateX(0); }
}
@keyframes fa-prince {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(1deg); }
  100% { transform: translateY(1%) rotate(-1deg); }
}
@keyframes fa-rog {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-4%) rotate(1deg); }
  50% { transform: translateX(-8%) rotate(-1deg); }
  75% { transform: translateX(-4%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fa-father {
  0% { transform: scale(0.9) rotate(-3deg); opacity: 0.4; }
  50% { transform: scale(1.1) rotate(2deg); opacity: 0.6; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.45; }
}
@keyframes fa-chair {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}

.scn-crowd-at-darias {
  background: linear-gradient(180deg, #2c1a3a 0%, #4a2a4e 30%, #6a3a5e 60%, #3a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #6a4a5e 0%, transparent 70%);
}
.scn-crowd-at-darias .gate-arch {
  position: absolute; left: 30%; right: 30%; top: 10%; height: 70%;
  background: linear-gradient(135deg, #2a1a2a 0%, #3a2a3a 40%, #2a1a2a 100%);
  border-radius: 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: cad-arch 12s ease-in-out infinite alternate;
}
.scn-crowd-at-darias .gate-light {
  position: absolute; left: 35%; right: 35%; top: 15%; height: 60%;
  background: radial-gradient(ellipse at 50% 60%, #e08050 0%, #a04020 40%, transparent 70%);
  opacity: 0.5; mix-blend-mode: screen;
  animation: cad-glow 4s ease-in-out infinite alternate;
}
.scn-crowd-at-darias .crowd-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 6px, #2a2a3a 6px, #2a2a3a 12px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 70%);
  animation: cad-crowd-back 8s ease-in-out infinite alternate;
}
.scn-crowd-at-darias .crowd-mid {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 30%;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 8px, #3a3a4a 8px, #3a3a4a 16px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  animation: cad-crowd-mid 6s ease-in-out infinite alternate;
}
.scn-crowd-at-darias .crowd-front {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 10px, #4a4a5a 10px, #4a4a5a 20px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 80%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 80%, transparent 90%);
  animation: cad-crowd-front 4s ease-in-out infinite alternate;
}
.scn-crowd-at-darias .figure-keller {
  position: absolute; bottom: 10%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cad-keller 3s ease-in-out infinite;
}
.scn-crowd-at-darias .lantern {
  position: absolute; bottom: 35%; left: 22%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffc860 0%, #e08030 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(224,128,48,.6);
  animation: cad-lantern 5s ease-in-out infinite;
}
.scn-crowd-at-darias .dust-particles {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(200,180,160,.15) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 60%, rgba(200,180,160,.1) 0%, transparent 50%);
  animation: cad-dust 20s linear infinite;
}

@keyframes cad-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cad-glow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes cad-crowd-back { 0% { opacity: 0.9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.85; transform: translateY(0); } }
@keyframes cad-crowd-mid { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cad-crowd-front { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cad-keller { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cad-lantern { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cad-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-nastasia-ready {
  background: linear-gradient(180deg, #2a1a2e 0%, #3a2a3e 30%, #4a3a4e 60%, #2a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a5e 0%, transparent 70%);
}
.scn-nastasia-ready .room-wall {
  position: absolute; left: 10%; right: 10%; top: 10%; bottom: 10%;
  background: linear-gradient(135deg, #3a2a3a 0%, #4a3a4a 50%, #3a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
  animation: nar-wall 20s ease-in-out infinite alternate;
}
.scn-nastasia-ready .mirror-frame {
  position: absolute; left: 35%; right: 35%; top: 15%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-nastasia-ready .mirror-glass {
  position: absolute; left: 38%; right: 38%; top: 18%; height: 34%;
  background: linear-gradient(180deg, rgba(180,160,140,.2) 0%, rgba(100,80,60,.1) 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 0 10px rgba(220,200,180,.2);
  animation: nar-glass 5s ease-in-out infinite alternate;
}
.scn-nastasia-ready .ikon {
  position: absolute; left: 15%; top: 30%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: nar-ikon 8s ease-in-out infinite alternate;
}
.scn-nastasia-ready .figure-nastasia {
  position: absolute; bottom: 12%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nar-figure 6s ease-in-out infinite;
}
.scn-nastasia-ready .chair {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: nar-chair 10s ease-in-out infinite alternate;
}
.scn-nastasia-ready .window-dusk {
  position: absolute; right: 12%; top: 12%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #8a5a3a 60%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(200,100,50,.5);
  animation: nar-window 8s ease-in-out infinite alternate;
}
.scn-nastasia-ready .door {
  position: absolute; right: 5%; bottom: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: nar-door 12s ease-in-out infinite alternate;
}

@keyframes nar-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nar-glass { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.01); } 100% { opacity: 0.7; transform: scaleY(0.99); } }
@keyframes nar-ikon { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nar-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nar-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes nar-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nar-door { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-crowd-reaction {
  background: linear-gradient(180deg, #1a1520 0%, #2a1a2e 30%, #3a2a3e 60%, #1a1520 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a4e 0%, transparent 70%);
}
.scn-crowd-reaction .house-front {
  position: absolute; left: 20%; right: 20%; top: 10%; bottom: 20%;
  background: linear-gradient(135deg, #3a2a2a 0%, #4a3a3a 50%, #3a2a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: cre-house 15s ease-in-out infinite alternate;
}
.scn-crowd-reaction .doorway-frame {
  position: absolute; left: 38%; right: 38%; bottom: 30%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 0 30px rgba(0,0,0,.5);
}
.scn-crowd-reaction .doorway-light {
  position: absolute; left: 40%; right: 40%; bottom: 32%; height: 45%;
  background: radial-gradient(ellipse at 50% 80%, #e08040 0%, #a04020 40%, transparent 70%);
  opacity: 0.6;
  animation: cre-light 3s ease-in-out infinite alternate;
}
.scn-crowd-reaction .figure-nastasia-silhouette {
  position: absolute; bottom: 34%; left: 49%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cre-figure 4s ease-in-out infinite;
}
.scn-crowd-reaction .crowd-left {
  position: absolute; bottom: 18%; left: 5%; right: 50%; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, #2a2a3a 8px, #2a2a3a 16px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  animation: cre-crowd-left 5s ease-in-out infinite alternate;
}
.scn-crowd-reaction .crowd-right {
  position: absolute; bottom: 18%; left: 50%; right: 5%; height: 30%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, #2a2a3a 8px, #2a2a3a 16px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 70%, transparent 80%);
  animation: cre-crowd-right 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-crowd-reaction .shadow-pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50% / 100% 100% 0 0;
  animation: cre-pool 7s ease-in-out infinite alternate;
}

@keyframes cre-house { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cre-light { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes cre-figure { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(4px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateX(2px) rotate(0) scaleY(1.01); } 100% { transform: translateX(0) rotate(2deg) scaleY(1); } }
@keyframes cre-crowd-left { 0% { opacity: 0.8; transform: translateY(0) scaleX(1); } 50% { opacity: 1; transform: translateY(-2px) scaleX(1.02); } 100% { opacity: 0.85; transform: translateY(0) scaleX(0.98); } }
@keyframes cre-crowd-right { 0% { opacity: 0.8; transform: translateY(0) scaleX(1); } 50% { opacity: 1; transform: translateY(-2px) scaleX(0.98); } 100% { opacity: 0.85; transform: translateY(0) scaleX(1.02); } }
@keyframes cre-pool { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-nastasia-white {
  background: linear-gradient(180deg, #1a1520 0%, #2a1a2e 30%, #3a2a3e 60%, #1a1520 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a4e 0%, transparent 70%);
}
.scn-nastasia-white .carriage-body {
  position: absolute; left: 25%; right: 25%; bottom: 10%; height: 50%;
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6);
  animation: naw-body 12s ease-in-out infinite alternate;
}
.scn-nastasia-white .carriage-door {
  position: absolute; left: 40%; right: 40%; bottom: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: naw-door 8s ease-in-out infinite alternate;
}
.scn-nastasia-white .figure-white-dress {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #dad0c8 0%, #b0a098 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(200,180,160,.3);
  transform-origin: bottom center;
  animation: naw-figure 5s ease-in-out infinite;
}
.scn-nastasia-white .eyes-glowing {
  position: absolute; bottom: 50%; left: 49%; width: 4px; height: 4px;
  background: radial-gradient(circle, #e04040 0%, #a02020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(224,64,64,.6), 0 0 24px 8px rgba(224,64,64,.3);
  animation: naw-eyes 2s ease-in-out infinite alternate;
}
.scn-nastasia-white .crowd-close {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 6px, #2a2a3a 6px, #2a2a3a 12px);
  mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 70%);
  animation: naw-crowd 4s ease-in-out infinite alternate;
}
.scn-nastasia-white .ground-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50% / 100% 100% 0 0;
  animation: naw-shadow 6s ease-in-out infinite alternate;
}
.scn-nastasia-white .lamp-post {
  position: absolute; left: 15%; bottom: 10%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(200,160,80,.3);
  animation: naw-lamp 7s ease-in-out infinite alternate;
}

@keyframes naw-body { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes naw-door { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes naw-figure { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(4px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateX(2px) rotate(0) scaleY(1.01); } 100% { transform: translateX(0) rotate(1deg) scaleY(1); } }
@keyframes naw-eyes { 0% { box-shadow: 0 0 8px 2px rgba(224,64,64,.4), 0 0 16px 4px rgba(224,64,64,.2); opacity: 0.8; } 50% { box-shadow: 0 0 20px 8px rgba(224,64,64,.8), 0 0 40px 16px rgba(224,64,64,.4); opacity: 1; } 100% { box-shadow: 0 0 10px 3px rgba(224,64,64,.5), 0 0 20px 6px rgba(224,64,64,.25); opacity: 0.9; } }
@keyframes naw-crowd { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes naw-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes naw-lamp { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: after-speech-reactions (gaslit, tense) */
.scn-after-speech-reactions {
  background: linear-gradient(135deg, #2e2a1e 0%, #4a3f2a 40%, #1a1812 100%), radial-gradient(ellipse at 40% 50%, #c9a45b 0%, transparent 70%);
}
.scn-after-speech-reactions .asr-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 35% 45%, #b88a3a 0%, #2e2a1e 60%); opacity: 0.6; animation: asr-bg-pulse 4s ease-in-out infinite alternate;
}
.scn-after-speech-reactions .asr-table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 8%; background: linear-gradient(180deg, #5a4a32 0%, #3a2e1e 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: asr-drift 7s ease-in-out infinite;
}
.scn-after-speech-reactions .asr-lamp {
  position: absolute; bottom: 42%; left: 45%; width: 30px; height: 20px; background: radial-gradient(ellipse, #f0c868 0%, #c08a2a 70%); border-radius: 50%; box-shadow: 0 0 40px 15px #d09a3a, 0 0 80px 30px rgba(200,140,40,0.4); animation: asr-flicker 0.8s steps(3) infinite;
}
.scn-after-speech-reactions .asr-glass {
  position: absolute; bottom: 30%; left: 38%; width: 10px; height: 18px; background: linear-gradient(180deg, rgba(200,180,120,0.3) 0%, rgba(180,160,100,0.1) 100%); border: 1px solid #b8a060; border-radius: 2px 2px 4px 4px; transform: rotate(8deg); animation: asr-tilt 12s ease-in-out infinite;
}
.scn-after-speech-reactions .asr-bottle {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius: 4px 4px 6px 6px; box-shadow: -2px 0 6px rgba(0,0,0,0.4); animation: asr-drift 8s ease-in-out infinite reverse;
}
.scn-after-speech-reactions .asr-figure-left {
  position: absolute; bottom: 24%; left: 20%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a2618 0%, #1a1610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-figure-sway 6s ease-in-out infinite;
}
.scn-after-speech-reactions .asr-figure-right {
  position: absolute; bottom: 24%; right: 20%; width: 20px; height: 48px; background: linear-gradient(180deg, #3a3222 0%, #1a1610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-figure-sway 6s ease-in-out infinite 3s;
}
.scn-after-speech-reactions .asr-shadow {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: asr-shadow-move 10s ease-in-out infinite alternate;
}
@keyframes asr-bg-pulse { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes asr-flicker { 0% { box-shadow: 0 0 30px 10px #d09a3a; } 33% { box-shadow: 0 0 50px 18px #e0a840; } 66% { box-shadow: 0 0 20px 8px #b88830; } 100% { box-shadow: 0 0 40px 15px #d09a3a; } }
@keyframes asr-drift { 0% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes asr-tilt { 0% { transform: rotate(6deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes asr-figure-sway { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes asr-shadow-move { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.3; } }

/* Scene: gania-and-rogojin (dim-interior, tense) */
.scn-gania-and-rogojin {
  background: linear-gradient(180deg, #12121c 0%, #1c1a2a 50%, #2a2436 100%), radial-gradient(ellipse at 70% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-gania-and-rogojin .gr-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, #2a2e3a 0%, #0e0e18 80%); opacity: 0.8; animation: gr-bg-shift 15s ease-in-out infinite alternate;
}
.scn-gania-and-rogojin .gr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a2230 0%, #16121e 100%); border-radius: 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-gania-and-rogojin .gr-table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 6%; background: linear-gradient(180deg, #4a3e3a 0%, #2a2220 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: gr-table-bob 12s ease-in-out infinite;
}
.scn-gania-and-rogojin .gr-glass {
  position: absolute; bottom: 28%; left: 40%; width: 12px; height: 16px; background: linear-gradient(180deg, rgba(180,160,140,0.2) 0%, rgba(120,100,80,0.1) 100%); border: 1px solid #a09070; border-radius: 2px; transform: rotate(2deg); animation: gr-tilt 9s ease-in-out infinite;
}
.scn-gania-and-rogojin .gr-hat {
  position: absolute; bottom: 30%; right: 22%; width: 28px; height: 14px; background: #2a2420; border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: gr-hat-sway 14s ease-in-out infinite;
}
.scn-gania-and-rogojin .gr-figure-gania {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 56px; background: linear-gradient(180deg, #2a262e 0%, #16121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gr-lean 8s ease-in-out infinite;
}
.scn-gania-and-rogojin .gr-figure-rogojin {
  position: absolute; bottom: 22%; right: 25%; width: 26px; height: 58px; background: linear-gradient(180deg, #3a323a 0%, #1a141e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gr-lean 8s ease-in-out infinite reverse;
}
.scn-gania-and-rogojin .gr-window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #0e1018 100%); border: 2px solid #2a262e; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: gr-window-pulse 20s ease-in-out infinite alternate;
}
@keyframes gr-bg-shift { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes gr-table-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gr-tilt { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes gr-hat-sway { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes gr-lean { 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 gr-window-pulse { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(0,0,0,0.7); } 100% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }

/* Scene: concern-about-hippolyte (dim-interior, tense) */
.scn-concern-about-hippolyte {
  background: linear-gradient(180deg, #161218 0%, #241e26 40%, #1a1620 100%), radial-gradient(ellipse at 60% 20%, #2a2240 0%, transparent 70%);
}
.scn-concern-about-hippolyte .ch-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a24 0%, #0e0c14 100%); opacity: 0.7; animation: ch-bg-shimmer 10s ease-in-out infinite alternate;
}
.scn-concern-about-hippolyte .ch-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2632 0%, #1a1822 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-concern-about-hippolyte .ch-bed {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #3a3240 0%, #1e1a28 100%); border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: ch-bed-creak 15s ease-in-out infinite;
}
.scn-concern-about-hippolyte .ch-figure-hippolyte {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #e0d0c0 0%, #a09880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch-hippolyte-turn 12s ease-in-out infinite;
  box-shadow: 0 0 10px 2px rgba(200,180,160,0.2);
}
.scn-concern-about-hippolyte .ch-figure-prince {
  position: absolute; bottom: 22%; right: 22%; width: 22px; height: 50px; background: linear-gradient(180deg, #2a2632 0%, #16121c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch-prince-lean 8s ease-in-out infinite;
}
.scn-concern-about-hippolyte .ch-lamp {
  position: absolute; bottom: 40%; left: 15%; width: 16px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #f0c868 0%, #c08a2a 80%); border-radius: 50%; box-shadow: 0 0 30px 8px #b88830, 0 0 60px 20px rgba(180,120,40,0.3); animation: ch-lamp-flicker 1.2s steps(2) infinite;
}
.scn-concern-about-hippolyte .ch-shadow {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 8%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: ch-shadow-sway 20s ease-in-out infinite alternate;
}
@keyframes ch-bg-shimmer { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ch-bed-creak { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ch-hippolyte-turn { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ch-prince-lean { 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 ch-lamp-flicker { 0% { box-shadow: 0 0 25px 5px #b88830; } 50% { box-shadow: 0 0 40px 12px #d09a3a; } 100% { box-shadow: 0 0 25px 5px #b88830; } }
@keyframes ch-shadow-sway { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.1); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.2; } }

/* Scene: hippolyte-wakes (dark, dim-interior) */
.scn-hippolyte-wakes {
  background: linear-gradient(180deg, #0a0810 0%, #16121c 40%, #1c1824 100%), radial-gradient(ellipse at 50% 70%, #1a1622 0%, transparent 80%);
}
.scn-hippolyte-wakes .hw-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, #1c1a28 0%, #0a0812 100%); opacity: 0.8; animation: hw-bg-dim 8s ease-in-out infinite alternate;
}
.scn-hippolyte-wakes .hw-bed {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #2a2634 0%, #1a1622 100%); border-radius: 10px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: hw-bed-settle 20s ease-in-out infinite;
}
.scn-hippolyte-wakes .hw-figure {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 50px; background: linear-gradient(180deg, #c8b8a8 0%, #a89880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 12px 3px rgba(200,180,160,0.15); animation: hw-startle 1.5s ease-out infinite;
}
.scn-hippolyte-wakes .hw-arm {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 30px; background: linear-gradient(180deg, #b8a898 0%, #908070 100%); border-radius: 4px; transform-origin: bottom left; transform: rotate(-20deg); animation: hw-arm-move 3s ease-in-out infinite;
}
.scn-hippolyte-wakes .hw-lamp {
  position: absolute; bottom: 45%; right: 15%; width: 12px; height: 16px; background: radial-gradient(ellipse at 50% 30%, #d0a040 0%, #805020 100%); border-radius: 50%; box-shadow: 0 0 40px 15px #b08030, 0 0 80px 30px rgba(160,100,30,0.2); animation: hw-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-hippolyte-wakes .hw-shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: hw-shadow-pulse 12s ease-in-out infinite alternate;
}
.scn-hippolyte-wakes .hw-glow {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,130,60,0.15) 0%, transparent 100%); animation: hw-glow-spread 8s ease-in-out infinite alternate;
}
@keyframes hw-bg-dim { 0% { opacity: 0.7; } 100% { opacity: 0.9; } }
@keyframes hw-bed-settle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hw-startle { 0% { transform: translateY(0) rotate(0deg) scale(1); } 20% { transform: translateY(-6px) rotate(5deg) scale(1.05); } 40% { transform: translateY(0) rotate(-2deg) scale(1); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes hw-arm-move { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-20deg); } }
@keyframes hw-lamp-glow { 0% { box-shadow: 0 0 30px 10px #b08030; opacity: 0.7; } 50% { box-shadow: 0 0 50px 20px #d0a040; opacity: 1; } 100% { box-shadow: 0 0 30px 10px #b08030; opacity: 0.7; } }
@keyframes hw-shadow-pulse { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.3; } }
@keyframes hw-glow-spread { 0% { opacity: 0.1; transform: scaleY(0.8); } 50% { opacity: 0.2; transform: scaleY(1); } 100% { opacity: 0.1; transform: scaleY(0.8); } }

.scn-pavlofsk-villa-lebedeff-confession {
  background: linear-gradient(180deg, #1c1f3a 0%, #2a2e4f 50%, #3b314a 100%),
              radial-gradient(ellipse at 50% 20%, #2d3a5a 0%, transparent 60%);
}
.scn-pavlofsk-villa-lebedeff-confession .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2e4f 0%, #1f223d 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  animation: pc-room 20s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-lebedeff-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1c2e 0%, #252844 40%, #3a3350 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-pavlofsk-villa-lebedeff-confession .window {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 120px;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2140 100%);
  border: 6px solid #4a4a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.05);
}
.scn-pavlofsk-villa-lebedeff-confession .moon {
  position: absolute; top: 8%; left: 72%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d8f0 0%, #8a9ec0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,216,240,0.3);
  animation: pc-moon 30s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-lebedeff-confession .lamp {
  position: absolute; bottom: 35%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 10px 10px;
  transform-origin: bottom center;
  animation: pc-lamp-glow 5s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-lebedeff-confession .lamp::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 28px; height: 14px;
  background: radial-gradient(circle, #e8c870 0%, #b09040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(232,200,112,0.5);
}
.scn-pavlofsk-villa-lebedeff-confession .table {
  position: absolute; bottom: 22%; left: 25%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pavlofsk-villa-lebedeff-confession .figure-a {
  position: absolute; bottom: 24%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-breath-a 6s ease-in-out infinite;
}
.scn-pavlofsk-villa-lebedeff-confession .figure-b {
  position: absolute; bottom: 24%; right: 25%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-breath-b 7s ease-in-out infinite;
}
@keyframes pc-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pc-moon { 0% { transform: translateX(-10px) translateY(0); } 50% { transform: translateX(5px) translateY(-5px); } 100% { transform: translateX(-5px) translateY(0); } }
@keyframes pc-lamp-glow { 0% { transform: scaleY(1); box-shadow: 0 0 20px 4px rgba(232,200,112,0.3); } 50% { transform: scaleY(1.02); box-shadow: 0 0 35px 8px rgba(232,200,112,0.5); } 100% { transform: scaleY(0.98); box-shadow: 0 0 25px 5px rgba(232,200,112,0.35); } }
@keyframes pc-breath-a { 0%,100% { transform: scaleY(1); } 25% { transform: scaleY(1.02) translateY(-1px); } 50% { transform: scaleY(0.98) translateY(1px); } 75% { transform: scaleY(1.01); } }
@keyframes pc-breath-b { 0%,100% { transform: scaleY(1); } 30% { transform: scaleY(1.01) translateY(-0.5px); } 60% { transform: scaleY(0.99) translateY(0.5px); } }

.scn-pavlofsk-villa-evening-news {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1425 50%, #2a1a30 100%),
              radial-gradient(ellipse at 40% 60%, #2a1a30 0%, transparent 70%);
}
.scn-pavlofsk-villa-evening-news .dark-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #141425 0%, #1a1a30 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-pavlofsk-villa-evening-news .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #090912 0%, #18182a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-pavlofsk-villa-evening-news .table-dark {
  position: absolute; bottom: 18%; left: 40%; width: 100px; height: 12px;
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-pavlofsk-villa-evening-news .candle {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #e8c880 0%, #c8a060 80%, #8a6a3a 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 0 30px 8px rgba(232,200,128,0.6);
  animation: pn-candle 1.2s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-evening-news .figure-news {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figure-tremble 0.8s ease-in-out infinite;
}
.scn-pavlofsk-villa-evening-news .paper {
  position: absolute; bottom: 24%; left: 48%; width: 30px; height: 24px;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 50%, #a89878 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pn-paper-flutter 2.5s ease-in-out infinite;
}
.scn-pavlofsk-villa-evening-news .shadow-news {
  position: absolute; bottom: 10%; left: 28%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: pn-shadow-jitter 1s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-evening-news .chair {
  position: absolute; bottom: 16%; right: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 6px 6px 2px 2px;
}
@keyframes pn-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 25px 6px rgba(232,200,128,0.5); } 25% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 35px 10px rgba(232,200,128,0.7); } 50% { transform: scaleY(0.95) rotate(0deg); box-shadow: 0 0 20px 4px rgba(232,200,128,0.4); } 75% { transform: scaleY(1.02) rotate(-0.5deg); box-shadow: 0 0 30px 8px rgba(232,200,128,0.6); } 100% { transform: scaleY(1) rotate(0.5deg); box-shadow: 0 0 25px 6px rgba(232,200,128,0.5); } }
@keyframes pn-figure-tremble { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(-0.5deg); } 50% { transform: translateX(-1px) rotate(0.5deg); } 75% { transform: translateX(0.5px) rotate(-0.2deg); } }
@keyframes pn-paper-flutter { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(3px); } 60% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes pn-shadow-jitter { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(2px); } 100% { transform: scaleX(0.9) translateX(-1px); } }

.scn-pavlofsk-station-meeting {
  background: linear-gradient(180deg, #b0c8e0 0%, #e8f0f8 40%, #f0f4fa 100%),
              radial-gradient(ellipse at 50% 80%, #c0d0e0 0%, transparent 60%);
}
.scn-pavlofsk-station-meeting .station-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a0b8d0 0%, #d0dce8 100%);
  animation: sm-sky 15s ease-in-out infinite alternate;
}
.scn-pavlofsk-station-meeting .track {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 8px;
  background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 15px, #6a6a7a 15px, #6a6a7a 30px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-pavlofsk-station-meeting .platform {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #b0b0c0 0%, #c8c8d8 50%, #d8d8e8 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-pavlofsk-station-meeting .train {
  position: absolute; bottom: 28%; left: 65%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sm-train-steam 3s ease-in-out infinite;
}
.scn-pavlofsk-station-meeting .figure-a-station {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm-figure-nervous 2s ease-in-out infinite;
}
.scn-pavlofsk-station-meeting .figure-b-station {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sm-figure-nervous 2.5s ease-in-out infinite;
}
.scn-pavlofsk-station-meeting .shadow-a-station {
  position: absolute; bottom: 25%; left: 28%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: sm-shadow-pulse 3s ease-in-out infinite;
}
.scn-pavlofsk-station-meeting .shadow-b-station {
  position: absolute; bottom: 25%; left: 43%; width: 44px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: sm-shadow-pulse 3.5s ease-in-out infinite;
}
@keyframes sm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sm-train-steam { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sm-figure-nervous { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1.5deg) translateY(-2px); } 50% { transform: rotate(-1.5deg) translateY(0); } 75% { transform: rotate(0.5deg) translateY(-1px); } }
@keyframes sm-shadow-pulse { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

.scn-pavlofsk-villa-reconciliation {
  background: linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 50%, #d8c8b0 100%),
              radial-gradient(ellipse at 80% 20%, #f8f0e0 0%, transparent 50%);
}
.scn-pavlofsk-villa-reconciliation .room-sunlit {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8b0 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
}
.scn-pavlofsk-villa-reconciliation .window-sun {
  position: absolute; top: 10%; left: 70%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #b8d0e0 0%, #d0e0f0 100%);
  border: 8px solid #8a7a6a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.2), 0 0 20px rgba(255,255,200,0.3);
}
.scn-pavlofsk-villa-reconciliation .curtains {
  position: absolute; top: 10%; left: 68%; width: 120px; height: 140px;
  background: linear-gradient(90deg, #a89878 0%, #c8b898 50%, #a89878 100%);
  border-radius: 20px 20px 0 0;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 80% 90%, 70% 100%, 60% 95%, 50% 100%, 40% 93%, 30% 100%, 20% 95%, 0 100%);
  animation: vr-curtain 8s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-reconciliation .table-sun {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 14px;
  background: linear-gradient(0deg, #8a7a6a 0%, #b0a090 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-pavlofsk-villa-reconciliation .figure-madam {
  position: absolute; bottom: 15%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vr-figure-tense 3s ease-in-out infinite;
}
.scn-pavlofsk-villa-reconciliation .figure-other {
  position: absolute; bottom: 15%; right: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vr-figure-tense 3.5s ease-in-out infinite;
}
.scn-pavlofsk-villa-reconciliation .vase {
  position: absolute; bottom: 25%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 6px 6px 10px 10px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: vr-vase-shimmer 4s ease-in-out infinite alternate;
}
@keyframes vr-curtain { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-8px) skewX(2deg); } 100% { transform: translateX(8px) skewX(-2deg); } }
@keyframes vr-figure-tense { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } }
@keyframes vr-vase-shimmer { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.9; transform: scaleY(0.98); } }

/* lebedev-house-nephew-cynicism */
.scn-lebedev-house-nephew-cynicism {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1f1410 40%, #34251e 100%),
    radial-gradient(ellipse at 50% 30%, #3d2b22 0%, transparent 70%);
}
.scn-lebedev-house-nephew-cynicism .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3b2b22 0%, #261a14 100%);
  animation: lh1-wall 14s ease-in-out infinite alternate;
}
.scn-lebedev-house-nephew-cynicism .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e16 0%, #1f130d 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-lebedev-house-nephew-cynicism .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #4a352a 0%, #2d1f16 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.4);
  animation: lh1-table 9s ease-in-out infinite;
}
.scn-lebedev-house-nephew-cynicism .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 24px;
  background: radial-gradient(circle at 50% 0%, #d4a060 0%, #8a5e30 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(180,110,50,.4);
  animation: lh1-lamp 4s ease-in-out infinite alternate;
}
.scn-lebedev-house-nephew-cynicism .figure-left {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2c1e18 0%, #1a110d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lh1-figleft 5s ease-in-out infinite alternate;
}
.scn-lebedev-house-nephew-cynicism .figure-right {
  position: absolute; bottom: 16%; right: 22%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #3a2820 0%, #221611 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lh1-figright 6s ease-in-out infinite;
}
.scn-lebedev-house-nephew-cynicism .glass {
  position: absolute; bottom: 21%; left: 42%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #b8a080 0%, transparent 80%);
  border: 1px solid rgba(180,140,100,.3);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 6px 2px rgba(180,140,100,.2);
  animation: lh1-glass 3s ease-in-out infinite alternate;
}
.scn-lebedev-house-nephew-cynicism .shadow-move {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  filter: blur(4px);
  animation: lh1-shadow 8s ease-in-out infinite alternate;
}
@keyframes lh1-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lh1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lh1-lamp { 0% { box-shadow: 0 0 15px 4px rgba(180,110,50,.3); opacity: .8 } 50% { box-shadow: 0 0 25px 8px rgba(200,130,60,.6); opacity: 1 } 100% { box-shadow: 0 0 18px 5px rgba(180,110,50,.35); opacity: .9 } }
@keyframes lh1-figleft { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(-0.5deg) } 100% { transform: translateX(1px) rotate(0deg) } }
@keyframes lh1-figright { 0% { transform: translateY(0) rotate(0.5deg) } 25% { transform: translateY(-2px) rotate(-0.5deg) } 50% { transform: translateY(1px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-0.3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lh1-glass { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .8; transform: scale(1.05) } 100% { opacity: .5; transform: scale(.98) } }
@keyframes lh1-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* lebedev-house-name-confusion */
.scn-lebedev-house-name-confusion {
  background: 
    linear-gradient(180deg, #2f241e 0%, #1d1510 50%, #3a2b22 100%),
    radial-gradient(ellipse at 50% 40%, #45332a 0%, transparent 65%);
}
.scn-lebedev-house-name-confusion .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2f24 0%, #241a13 100%);
  animation: lh2-wall 12s ease-in-out infinite alternate;
}
.scn-lebedev-house-name-confusion .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1f17 0px, #2a1f17 8px, #35281e 8px, #35281e 16px);
  border-radius: 10% 80% 0 0 / 5% 40% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.5);
}
.scn-lebedev-house-name-confusion .sofa {
  position: absolute; bottom: 22%; left: 10%; width: 45%; height: 18%;
  background: linear-gradient(180deg, #4a382c 0%, #2e201a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: lh2-sofa 10s ease-in-out infinite;
}
.scn-lebedev-house-name-confusion .lamp-candle {
  position: absolute; bottom: 26%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c89040 0%, #8a6028 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 18px 6px #b07830, 0 0 30px 12px rgba(176,120,48,.4);
  animation: lh2-candle 4s ease-in-out infinite alternate;
}
.scn-lebedev-house-name-confusion .figure-seated {
  position: absolute; bottom: 20%; left: 18%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #34241c 0%, #1f140e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lh2-seated 5s ease-in-out infinite;
}
.scn-lebedev-house-name-confusion .figure-standing {
  position: absolute; bottom: 15%; right: 15%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #3c2a20 0%, #241710 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lh2-standing 6s ease-in-out infinite alternate;
}
.scn-lebedev-house-name-confusion .shadow-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: lh2-shpool 9s ease-in-out infinite alternate;
}
@keyframes lh2-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes lh2-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lh2-candle { 0% { box-shadow: 0 0 12px 4px #b07830, 0 0 20px 8px rgba(176,120,48,.3); opacity: .85 } 50% { box-shadow: 0 0 22px 8px #d09040, 0 0 36px 14px rgba(208,144,64,.5); opacity: 1 } 100% { box-shadow: 0 0 15px 5px #b07830, 0 0 24px 10px rgba(176,120,48,.35); opacity: .9 } }
@keyframes lh2-seated { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(2px) rotate(0.5deg) } 75% { transform: translateX(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lh2-standing { 0% { transform: translateY(0) rotate(-0.5deg) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-0.3deg) } 100% { transform: translateY(-1px) rotate(0.5deg) } }
@keyframes lh2-shpool { 0% { opacity: .2; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(.95) } }

/* lebedev-house-prince-questions */
.scn-lebedev-house-prince-questions {
  background: 
    linear-gradient(180deg, #1f1714 0%, #140f0c 40%, #2d1e18 100%),
    radial-gradient(ellipse at 50% 20%, #3a2820 0%, transparent 80%);
}
.scn-lebedev-house-prince-questions .dark-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #251d17 0%, #17100c 100%);
  animation: lh3-wall 16s ease-in-out infinite alternate;
}
.scn-lebedev-house-prince-questions .door {
  position: absolute; bottom: 30%; left: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2e221a 0%, #1a120d 100%);
  border: 2px solid #3a2a20;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  animation: lh3-door 8s ease-in-out infinite;
}
.scn-lebedev-house-prince-questions .prince-figure {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #18110c 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lh3-prince 7s ease-in-out infinite alternate;
}
.scn-lebedev-house-prince-questions .lebedev-figure {
  position: absolute; bottom: 22%; right: 25%; width: 26px; height: 45px;
  background: linear-gradient(180deg, #35261e 0%, #1d130e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lh3-lebedev 5s ease-in-out infinite;
}
.scn-lebedev-house-prince-questions .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #c89040 0%, #8a6028 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 24px 8px #b07830, 0 0 40px 16px rgba(176,120,48,.3);
  animation: lh3-lamp 4s ease-in-out infinite alternate;
}
.scn-lebedev-house-prince-questions .papers {
  position: absolute; bottom: 24%; left: 35%; width: 18%; height: 4%;
  background: linear-gradient(135deg, #6a5a48 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(-3deg);
  animation: lh3-papers 6s ease-in-out infinite alternate;
}
.scn-lebedev-house-prince-questions .shadow-trail {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  filter: blur(8px);
  animation: lh3-shadow 10s ease-in-out infinite alternate;
}
@keyframes lh3-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes lh3-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes lh3-prince { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-4px) rotate(1.5deg) } 66% { transform: translateY(2px) rotate(-0.5deg) } 100% { transform: translateY(-1px) rotate(0.8deg) } }
@keyframes lh3-lebedev { 0% { transform: scaleY(1) rotate(0.5deg) } 25% { transform: scaleY(1.02) rotate(-0.5deg) } 50% { transform: scaleY(0.98) rotate(1deg) } 75% { transform: scaleY(1.01) rotate(-0.8deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes lh3-lamp { 0% { box-shadow: 0 0 18px 6px #b07830, 0 0 30px 12px rgba(176,120,48,.3); opacity: .8 } 50% { box-shadow: 0 0 28px 10px #d09040, 0 0 44px 18px rgba(208,144,64,.5); opacity: 1 } 100% { box-shadow: 0 0 22px 8px #b07830, 0 0 34px 14px rgba(176,120,48,.35); opacity: .9 } }
@keyframes lh3-papers { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(1px) } }
@keyframes lh3-shadow { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }

/* lebedev-house-garden */
.scn-lebedev-house-garden {
  background: 
    linear-gradient(180deg, #87cefa 0%, #b0e0e6 30%, #f0e6c0 60%, #c8d8a0 80%, #8ba86a 100%),
    radial-gradient(ellipse at 70% 20%, #ffe0a0 0%, transparent 50%);
}
.scn-lebedev-house-garden .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #9acff5 0%, #e5f2ff 100%);
  animation: lh4-sky 20s ease-in-out infinite alternate;
}
.scn-lebedev-house-garden .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #7a9a5a 0%, #4a6a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,50,0,.3);
}
.scn-lebedev-house-garden .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: lh4-path 15s ease-in-out infinite alternate;
}
.scn-lebedev-house-garden .tree-left {
  position: absolute; bottom: 35%; left: 10%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(100,160,80,.2);
  animation: lh4-tree-l 12s ease-in-out infinite;
}
.scn-lebedev-house-garden .tree-right {
  position: absolute; bottom: 30%; right: 8%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 25px rgba(100,160,80,.3);
  animation: lh4-tree-r 14s ease-in-out infinite alternate;
}
.scn-lebedev-house-garden .fence {
  position: absolute; bottom: 28%; left: 5%; right: 5%; height: 6%;
  background: repeating-linear-gradient(90deg, #8a7048 0px, #8a7048 6px, transparent 6px, transparent 18px);
  border-bottom: 2px solid #7a5e38;
  box-shadow: 0 -2px 4px rgba(0,0,0,.2);
}
.scn-lebedev-house-garden .coffee-table {
  position: absolute; bottom: 14%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #c0a078 0%, #a08058 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: lh4-table 10s ease-in-out infinite;
}
.scn-lebedev-house-garden .coffee-cup {
  position: absolute; bottom: 16%; left: 45%; width: 6%; height: 6%;
  background: radial-gradient(circle at 50% 40%, #ffffff 0%, #e8e0d0 80%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: lh4-cup 8s ease-in-out infinite alternate;
}
.scn-lebedev-house-garden .butterfly {
  position: absolute; top: 25%; left: 50%; width: 10px; height: 8px;
  background: radial-gradient(ellipse at 40% 50%, #d07040 0%, #d0a060 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: lh4-butterfly 6s ease-in-out infinite;
}
@keyframes lh4-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes lh4-path { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lh4-tree-l { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(2deg) } }
@keyframes lh4-tree-r { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-4px) rotate(-1.5deg) } 66% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(-2px) rotate(-0.5deg) } }
@keyframes lh4-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lh4-cup { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes lh4-butterfly { 0% { transform: translate(0,0) rotate(-20deg) scale(1) } 25% { transform: translate(12px,-8px) rotate(-30deg) scale(1.1) } 50% { transform: translate(24px,-4px) rotate(-10deg) scale(1) } 75% { transform: translate(36px,-10px) rotate(-25deg) scale(1.1) } 100% { transform: translate(48px,-6px) rotate(-15deg) scale(1) } }

.scn-alexandra-considers-totski {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 30%, #c8a880 70%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-alexandra-considers-totski .room-back {
  position:absolute; inset:0; background: linear-gradient(135deg, #d9c2a0 0%, #b89a70 100%); opacity:0.4;
  animation: ac-back 20s ease-in-out infinite alternate;
}
.scn-alexandra-considers-totski .window {
  position:absolute; top:5%; left:10%; width:40%; height:55%; background: linear-gradient(180deg, #e8f0ff 0%, #b8d4ff 100%); border-radius:8% 8% 2% 2%; box-shadow: inset 0 0 40px 10px rgba(255,255,230,0.6);
  animation: ac-window 6s ease-in-out infinite alternate;
}
.scn-alexandra-considers-totski .curtain-l {
  position:absolute; top:3%; left:8%; width:12%; height:60%; background: linear-gradient(180deg, #b8886a 0%, #8a6040 100%); border-radius:0 40% 40% 0; transform-origin: top left;
  animation: ac-curtain 8s ease-in-out infinite alternate;
}
.scn-alexandra-considers-totski .curtain-r {
  position:absolute; top:3%; right:8%; width:12%; height:60%; background: linear-gradient(180deg, #b8886a 0%, #8a6040 100%); border-radius:40% 0 0 40%; transform-origin: top right;
  animation: ac-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-alexandra-considers-totski .desk {
  position:absolute; bottom:10%; left:30%; width:35%; height:18%; background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ac-desk 12s ease-in-out infinite;
}
.scn-alexandra-considers-totski .letter {
  position:absolute; bottom:18%; left:44%; width:14%; height:16%; background: linear-gradient(135deg, #f5eed0 0%, #dccc90 100%); border-radius:2% 8% 8% 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: ac-letter 5s ease-in-out infinite;
}
.scn-alexandra-considers-totski .figure {
  position:absolute; bottom:10%; left:48%; width:16%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ac-figure 4s ease-in-out infinite;
}
.scn-alexandra-considers-totski .lamp {
  position:absolute; bottom:28%; left:28%; width:8%; height:12%; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.5), 0 0 60px 20px rgba(255,200,80,0.2);
  animation: ac-lamp 3s ease-in-out infinite alternate;
}
@keyframes ac-back { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes ac-window { 0% { opacity:0.7; background-position:0% 0%; } 50% { opacity:1; background-position:0% 5%; } 100% { opacity:0.8; background-position:0% 0%; } }
@keyframes ac-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes ac-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ac-letter { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(2px,-1px) rotate(0deg); } 50% { transform: translate(0,0) rotate(1deg); } 75% { transform: translate(-1px,-1px) rotate(0deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes ac-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 75% { transform: rotate(-1deg) translateX(0); } 100% { transform: rotate(0deg); } }
@keyframes ac-lamp { 0% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.4), 0 0 40px 12px rgba(255,200,80,0.15); } 50% { box-shadow: 0 0 40px 14px rgba(255,200,80,0.6), 0 0 80px 24px rgba(255,200,80,0.3); } 100% { box-shadow: 0 0 25px 8px rgba(255,200,80,0.45), 0 0 50px 16px rgba(255,200,80,0.2); } }

.scn-nastasia-origin-story {
  background: linear-gradient(180deg, #1a0e0a 0%, #3a1e14 30%, #4a2a1a 60%, #2a1610 100%), radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, transparent 70%);
}
.scn-nastasia-origin-story .wall {
  position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%); border-radius:0 0 40% 40% / 0 0 20% 20%;
  animation: no-wall 20s ease-in-out infinite alternate;
}
.scn-nastasia-origin-story .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a1e14 0%, #1a0e0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: no-floor 15s ease-in-out infinite alternate;
}
.scn-nastasia-origin-story .fireplace {
  position:absolute; bottom:20%; left:50%; width:40%; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #5a321a 0%, #3a1e14 60%, #2a1610 100%); border-radius:10% 10% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: no-fireplace 12s ease-in-out infinite;
}
.scn-nastasia-origin-story .fire {
  position:absolute; bottom:22%; left:50%; width:18%; height:22%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffb040 0%, #c8553d 50%, #5a1a0a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 10px #c8553d, 0 0 80px 20px rgba(200,85,61,0.3);
  animation: no-fire 0.6s ease-in-out infinite alternate;
}
.scn-nastasia-origin-story .mantel {
  position:absolute; bottom:40%; left:50%; width:44%; height:6%; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4%;
  animation: no-mantel 10s ease-in-out infinite;
}
.scn-nastasia-origin-story .cradle {
  position:absolute; bottom:8%; left:30%; width:22%; height:18%; background: linear-gradient(135deg, #5a3a2a 0%, #3a221a 100%); border-radius:0 0 30% 30% / 0 0 60% 60%; transform-origin: bottom center;
  animation: no-cradle 3s ease-in-out infinite;
}
.scn-nastasia-origin-story .figure {
  position:absolute; bottom:8%; left:55%; width:14%; height:35%; background: linear-gradient(180deg, #2a1610 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: no-figure 5s ease-in-out infinite;
}
.scn-nastasia-origin-story .shadow {
  position:absolute; bottom:8%; left:55%; width:18%; height:10%; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(8px);
  animation: no-shadow 5s ease-in-out infinite;
}
@keyframes no-wall { 0% { background-position:0% 0%; } 50% { background-position:0% 5%; } 100% { background-position:0% 0%; } }
@keyframes no-floor { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes no-fireplace { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } }
@keyframes no-fire { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); } 100% { transform: translateX(-50%) scale(0.95) rotate(-2deg); } }
@keyframes no-mantel { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes no-cradle { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes no-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 no-shadow { 0%,100% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(2px) scale(1.1); opacity:0.6; } }

.scn-nastasia-education {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%), radial-gradient(ellipse at 50% 20%, #fffbf0 0%, transparent 70%);
}
.scn-nastasia-education .study-wall {
  position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 100%); border-radius:0 0 30% 30%;
  animation: ne-wall 20s ease-in-out infinite alternate;
}
.scn-nastasia-education .study-window {
  position:absolute; top:8%; left:15%; width:30%; height:50%; background: linear-gradient(180deg, #e8f0ff 0%, #c8d8f0 100%); border-radius:6% 6% 2% 2%; box-shadow: inset 0 0 30px 8px rgba(255,255,230,0.5);
  animation: ne-window 8s ease-in-out infinite alternate;
}
.scn-nastasia-education .bookcase {
  position:absolute; bottom:20%; right:10%; width:20%; height:50%; background: linear-gradient(180deg, #8a6040 0%, #5a3a2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ne-bookcase 12s ease-in-out infinite;
}
.scn-nastasia-education .desk {
  position:absolute; bottom:12%; left:30%; width:30%; height:16%; background: linear-gradient(180deg, #a07858 0%, #785038 100%); border-radius:4% 4% 0 0;
  animation: ne-desk 10s ease-in-out infinite;
}
.scn-nastasia-education .book {
  position:absolute; bottom:16%; left:36%; width:12%; height:14%; background: linear-gradient(135deg, #b8886a 0%, #8a6040 100%); border-radius:2% 6% 6% 2%; transform-origin: left center;
  animation: ne-book 6s ease-in-out infinite;
}
.scn-nastasia-education .chair {
  position:absolute; bottom:8%; left:42%; width:14%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:10% 10% 40% 40% / 40% 40% 20% 20%;
  animation: ne-chair 8s ease-in-out infinite;
}
.scn-nastasia-education .figure {
  position:absolute; bottom:8%; left:50%; width:14%; height:38%; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ne-figure 4s ease-in-out infinite;
}
.scn-nastasia-education .lamp-glare {
  position:absolute; top:12%; left:20%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(10px);
  animation: ne-glare 5s ease-in-out infinite alternate;
}
@keyframes ne-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ne-window { 0% { opacity:0.7; background-position:0% 0%; } 50% { opacity:1; background-position:0% 5%; } 100% { opacity:0.8; background-position:0% 0%; } }
@keyframes ne-bookcase { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ne-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ne-book { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes ne-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ne-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg) translateX(1px); } 50% { transform: rotate(2deg) translateX(-1px); } 75% { transform: rotate(-1deg) translateX(1px); } 100% { transform: rotate(0deg); } }
@keyframes ne-glare { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }

.scn-nastasia-rebellion {
  background: linear-gradient(180deg, #0e0a18 0%, #1a1428 30%, #2a1e38 60%, #1e1424 100%), radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 70%);
}
.scn-nastasia-rebellion .room-dark {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1e38 0%, #1a1428 50%, #0e0a18 100%); opacity:0.6;
  animation: nr-room 20s ease-in-out infinite alternate;
}
.scn-nastasia-rebellion .night-window {
  position:absolute; top:8%; left:12%; width:35%; height:50%; background: linear-gradient(180deg, #0e1628 0%, #1a2a4a 100%); border-radius:6% 6% 2% 2%; box-shadow: inset 0 0 30px 6px rgba(0,0,0,0.8);
  animation: nr-window 10s ease-in-out infinite alternate;
}
.scn-nastasia-rebellion .table {
  position:absolute; bottom:15%; left:50%; width:40%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  animation: nr-table 15s ease-in-out infinite;
}
.scn-nastasia-rebellion .letter-torn {
  position:absolute; bottom:20%; left:45%; width:16%; height:18%; background: linear-gradient(135deg, #e0c8a0 0%, #c8a880 100%); border-radius:2% 10% 10% 2%; clip-path: polygon(0% 0%, 100% 0%, 85% 70%, 100% 100%, 0% 100%, 15% 40%);
  animation: nr-letter 4s ease-in-out infinite;
}
.scn-nastasia-rebellion .figure {
  position:absolute; bottom:14%; left:50%; width:16%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #1a1428 0%, #0a0618 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: nr-figure 5s ease-in-out infinite;
}
.scn-nastasia-rebellion .candle {
  position:absolute; bottom:28%; left:60%; width:4%; height:14%; background: linear-gradient(180deg, #f5e6c0 0%, #c8a040 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 10px 2px rgba(255,200,80,0.3);
  animation: nr-candle 2s ease-in-out infinite alternate;
}
.scn-nastasia-rebellion .candle-glow {
  position:absolute; bottom:25%; left:58%; width:12%; height:18%; background: radial-gradient(ellipse, rgba(255,200,80,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px);
  animation: nr-candle-glow 2s ease-in-out infinite alternate;
}
.scn-nastasia-rebellion .shadow {
  position:absolute; bottom:10%; left:45%; width:25%; height:6%; background: rgba(0,0,0,0.6); border-radius:50%; filter: blur(7px);
  animation: nr-shadow 5s ease-in-out infinite;
}
@keyframes nr-room { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes nr-window { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes nr-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes nr-letter { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(-3deg); } 50% { transform: translate(-1px,0) rotate(2deg); } 75% { transform: translate(1px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes nr-figure { 0% { transform: translateX(-50%) rotate(0deg); } 20% { transform: translateX(-50%) rotate(-4deg) translateY(-2px); } 40% { transform: translateX(-50%) rotate(2deg) translateY(0); } 60% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } 80% { transform: translateX(-50%) rotate(3deg) translateY(0); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes nr-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes nr-candle-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes nr-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene: nastasia-rages */
.scn-nastasia-rages {
  background:
    linear-gradient(180deg, #1a1816 0%, #2c2420 40%, #1e1a18 100%),
    radial-gradient(ellipse at 40% 70%, #3a2e28 0%, transparent 60%);
}
.scn-nastasia-rages .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2824 0%, #1e1a18 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.6);
  animation: na-wall 12s ease-in-out infinite alternate;
}
.scn-nastasia-rages .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #251f1b 0%, #130f0d 100%);
  border-radius: 30% 10% 0 0 / 40% 10% 0 0;
}
.scn-nastasia-rages .window {
  position: absolute; top: 12%; left: 10%; width: 28%; height: 45%;
  background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2e 100%);
  border: 6px solid #2f2824; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 0 2px #3f3834;
  animation: na-window 10s ease-in-out infinite alternate;
}
.scn-nastasia-rages .lamp {
  position: absolute; top: 35%; left: 68%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8b878 0%, #c89450 40%, #7a5028 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(200,148,80,0.5), 0 0 80px 30px rgba(200,148,80,0.2);
  animation: na-lamp 4s ease-in-out infinite alternate;
}
.scn-nastasia-rages .figure {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1c1814 0%, #0f0d0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-figure 6s ease-in-out infinite;
}
.scn-nastasia-rages .arm {
  position: absolute; bottom: 48%; left: 50%; width: 50px; height: 10px;
  background: linear-gradient(90deg, #1c1814 0%, #130f0d 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: na-arm 3s ease-in-out infinite alternate;
}
.scn-nastasia-rages .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: na-shadow 6s ease-in-out infinite alternate;
}
.scn-nastasia-rages .dust {
  position: absolute; top: 15%; left: 20%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,70,60,0.1) 0%, transparent 60%);
  filter: blur(8px);
  animation: na-dust 20s linear infinite;
}
@keyframes na-wall {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(0.95); }
}
@keyframes na-window {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 0 2px #3f3834; }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.9), 0 0 0 3px #5a4e48; }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 0 2px #3f3834; }
}
@keyframes na-lamp {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; box-shadow: 0 0 60px 20px rgba(200,148,80,0.7); }
  100% { transform: scale(0.98) rotate(-1deg); opacity: 0.85; }
}
@keyframes na-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-5px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes na-arm {
  0% { transform: rotate(-20deg) translateX(0); }
  100% { transform: rotate(40deg) translateX(5px); }
}
@keyframes na-shadow {
  0% { transform: scaleX(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleX(1.2) translateY(3px); opacity: 0.8; }
  100% { transform: scaleX(0.9) translateY(-1px); opacity: 0.5; }
}
@keyframes na-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) scale(1.1); opacity: 0.1; }
  100% { transform: translateX(60px) scale(0.9); opacity: 0.2; }
}

/* Scene: nastasia-continues-rage */
.scn-nastasia-continues-rage {
  background:
    linear-gradient(180deg, #1e1a18 0%, #2c2420 30%, #14110e 100%),
    radial-gradient(ellipse at 60% 50%, #3a2e28 0%, transparent 70%);
}
.scn-nastasia-continues-rage .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2b2420 0%, #1a1614 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.5);
}
.scn-nastasia-continues-rage .wall {
  position: absolute; top: 0; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(135deg, #2f2723 0%, #1f1a17 100%);
  border-left: 4px solid #3f3733; border-right: 4px solid #3f3733;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: nc-wall 8s ease-in-out infinite alternate;
}
.scn-nastasia-continues-rage .door {
  position: absolute; top: 15%; right: 15%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #4a3e36 0%, #2d241f 100%);
  border: 4px solid #5c4e46;
  border-radius: 0 0 6px 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 4px 0 10px rgba(0,0,0,0.5);
  animation: nc-door 10s ease-in-out infinite alternate;
}
.scn-nastasia-continues-rage .lamp {
  position: absolute; top: 30%; right: 45%; width: 14px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #d4a060 0%, #b07838 50%, #6e4218 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 50px 20px rgba(176,120,56,0.5), 0 0 80px 30px rgba(176,120,56,0.2);
  animation: nc-lamp 5s ease-in-out infinite alternate;
}
.scn-nastasia-continues-rage .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 78px;
  background: linear-gradient(180deg, #1c1814 0%, #0f0d0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-figleft 7s ease-in-out infinite;
}
.scn-nastasia-continues-rage .figure-right {
  position: absolute; bottom: 28%; right: 20%; width: 32px; height: 82px;
  background: linear-gradient(180deg, #1e1a16 0%, #110e0c 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: nc-figright 9s ease-in-out infinite;
}
.scn-nastasia-continues-rage .gown {
  position: absolute; bottom: 22%; left: 22%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #401818 0%, #200c0c 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: nc-gown 6s ease-in-out infinite alternate;
}
.scn-nastasia-continues-rage .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #2c221e 0%, #1a1411 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: nc-carpet 12s ease-in-out infinite alternate;
}
@keyframes nc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nc-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateX(-3px); }
  100% { transform: scaleY(0.98); }
}
@keyframes nc-lamp {
  0% { transform: scale(1) rotate(-3deg); opacity: 0.8; }
  50% { transform: scale(1.07) rotate(4deg); opacity: 1; box-shadow: 0 0 70px 25px rgba(176,120,56,0.6); }
  100% { transform: scale(0.96) rotate(0deg); opacity: 0.85; }
}
@keyframes nc-figleft {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(4deg); }
  60% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nc-figright {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-6px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(4px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nc-gown {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.1) scaleY(1.05); opacity: 0.8; }
  100% { transform: scaleX(0.95) scaleY(0.95); opacity: 0.5; }
}
@keyframes nc-carpet {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}

/* Scene: prince-agonized */
.scn-prince-agonized {
  background:
    linear-gradient(180deg, #141210 0%, #1e1a18 40%, #0f0d0b 100%),
    radial-gradient(ellipse at 50% 45%, #2a2220 0%, transparent 70%);
}
.scn-prince-agonized .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f1b18 0%, #13100e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
}
.scn-prince-agonized .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #201b18 0%, #100d0b 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-prince-agonized .chair {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #2f2723 0%, #1a1512 100%);
  border-radius: 8% 8% 25% 25% / 12% 12% 20% 20%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.7);
  animation: pa-chair 8s ease-in-out infinite alternate;
}
.scn-prince-agonized .figure {
  position: absolute; bottom: 20%; left: 42%; width: 34px; height: 90px;
  background: linear-gradient(180deg, #1a1614 0%, #0d0b0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite;
}
.scn-prince-agonized .hands {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #1a1614 0%, #0d0b0a 100%);
  border-radius: 50%;
  transform-origin: center top;
  animation: pa-hands 3s ease-in-out infinite alternate;
}
.scn-prince-agonized .lamp {
  position: absolute; top: 8%; left: 48%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 20%, #d0a050 0%, #a07030 60%, #583818 100%);
  border-radius: 50% 50% 30% 30% / 35% 35% 30% 30%;
  box-shadow: 0 0 60px 25px rgba(160,112,48,0.5), 0 0 120px 50px rgba(160,112,48,0.15);
  animation: pa-lamp 5s ease-in-out infinite alternate;
}
.scn-prince-agonized .haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(40,30,20,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: pa-haze 15s ease-in-out infinite alternate;
}
@keyframes pa-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-0.5deg); }
}
@keyframes pa-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(3px) translateY(-5px) rotate(2deg); }
  40% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  60% { transform: translateX(0) translateY(0) rotate(0deg); }
  80% { transform: translateX(2px) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pa-hands {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.1); }
  100% { transform: translateY(0) scale(0.9); }
}
@keyframes pa-lamp {
  0% { transform: scale(1) rotate(-1deg); opacity: 0.7; }
  50% { transform: scale(1.08) rotate(3deg); opacity: 1; box-shadow: 0 0 80px 30px rgba(160,112,48,0.7); }
  100% { transform: scale(0.97) rotate(0deg); opacity: 0.8; }
}
@keyframes pa-haze {
  0% { opacity: 0.3; filter: blur(20px); }
  50% { opacity: 0.6; filter: blur(25px); }
  100% { opacity: 0.2; filter: blur(18px); }
}

/* Scene: both-wait */
.scn-both-wait {
  background:
    linear-gradient(180deg, #121010 0%, #1e1a18 40%, #0a0808 100%),
    radial-gradient(ellipse at 50% 60%, #2c2420 0%, transparent 60%);
}
.scn-both-wait .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1c1816 0%, #100e0c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-both-wait .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #1e1a16 0%, #0f0c0a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-both-wait .lamp-center {
  position: absolute; top: 5%; left: 50%; width: 18px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #d8a860 0%, #b08040 50%, #704020 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 70px 30px rgba(176,128,64,0.5), 0 0 120px 50px rgba(176,128,64,0.2);
  animation: bw-lamp 5s ease-in-out infinite alternate;
}
.scn-both-wait .figure-left {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 84px;
  background: linear-gradient(180deg, #1b1714 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-figleft 8s ease-in-out infinite;
}
.scn-both-wait .figure-right {
  position: absolute; bottom: 20%; right: 22%; width: 30px; height: 84px;
  background: linear-gradient(180deg, #1b1714 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-figright 8s ease-in-out infinite reverse;
}
.scn-both-wait .shadow.left {
  position: absolute; bottom: 12%; left: 15%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: bw-shadow 8s ease-in-out infinite alternate;
}
.scn-both-wait .shadow.right {
  position: absolute; bottom: 12%; right: 15%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: bw-shadow 8s ease-in-out infinite alternate-reverse;
}
.scn-both-wait .glow {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(160,120,80,0.1) 0%, transparent 60%);
  filter: blur(30px);
  animation: bw-glow 7s ease-in-out infinite alternate;
}
@keyframes bw-lamp {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.7; }
  50% { transform: translateX(-50%) scale(1.06) rotate(3deg); opacity: 1; box-shadow: 0 0 90px 35px rgba(176,128,64,0.6); }
  100% { transform: translateX(-50%) scale(0.98) rotate(0deg); opacity: 0.8; }
}
@keyframes bw-figleft {
  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 bw-figright {
  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 bw-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9) scaleY(0.9); opacity: 0.3; }
}
@keyframes bw-glow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.15; }
}

.scn-prince-chooses {
  background:
    linear-gradient(180deg, #1a1423 0%, #2a1a2a 40%, #1a1020 100%),
    radial-gradient(ellipse at 30% 60%, rgba(100,60,40,0.3) 0%, transparent 60%);
}
.scn-prince-chooses .bg-dim { position:absolute; inset:0; background:linear-gradient(135deg, #1a1423, #3a2a3a 40%, #2a1a2a); }
.scn-prince-chooses .wall   { position:absolute; inset:5% 10% 30% 5%; background:linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:4px; box-shadow:inset 0 0 40px rgba(0,0,0,.6); }
.scn-prince-chooses .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a1a2a 0%, #1a1020 100%); }
.scn-prince-chooses .window { position:absolute; top:12%; left:20%; width:30%; height:40%; background:linear-gradient(180deg, rgba(60,40,30,0.6) 0%, rgba(30,20,15,0.2) 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(80,50,30,0.8); animation: pc-window 8s ease-in-out infinite alternate; }
.scn-prince-chooses .prince-body { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a2a 0%, #1a1020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pc-prince-b 6s ease-in-out infinite; }
.scn-prince-chooses .prince-arm { position:absolute; bottom:42%; left:36%; width:30px; height:6px; background:#1a1020; border-radius:4px; transform-origin:left center; animation: pc-prince-a 3s ease-in-out infinite; }
.scn-prince-chooses .aglaya { position:absolute; bottom:25%; left:55%; width:18px; height:45px; background:linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; animation: pc-aglaya 4s ease-in-out infinite; }
.scn-prince-chooses .nastasia-shadow { position:absolute; bottom:15%; left:15%; width:25px; height:35px; background:radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%); opacity:0.6; animation: pc-nastasia 7s ease-in-out infinite; }
.scn-prince-chooses .lamp { position:absolute; bottom:40%; left:10%; width:8px; height:8px; background:radial-gradient(circle, #d49a6a 0%, #b07040 60%); border-radius:50%; box-shadow:0 0 20px 6px #b07040, 0 0 40px 12px rgba(176,112,64,.3); animation: pc-lamp 3s ease-in-out infinite alternate; }
@keyframes pc-window { 0% { opacity:.5; box-shadow:inset 0 0 20px rgba(80,50,30,.4); } 50% { opacity:.8; box-shadow:inset 0 0 40px rgba(80,50,30,.7); } 100% { opacity:.6; box-shadow:inset 0 0 30px rgba(80,50,30,.5); } }
@keyframes pc-prince-b { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(1deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(1px) rotate(0); } }
@keyframes pc-prince-a { 0%,100% { transform:rotate(0); } 50% { transform:rotate(-20deg); } 75% { transform:rotate(10deg); } }
@keyframes pc-aglaya { 0%,100% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(0.95); } }
@keyframes pc-nastasia { 0%,100% { opacity:.5; transform:scale(1); } 50% { opacity:.8; transform:scale(1.05); } }
@keyframes pc-lamp { 0% { opacity:.7; box-shadow:0 0 15px 4px #b07040; } 50% { opacity:1; box-shadow:0 0 30px 8px #d49a6a; } 100% { opacity:.8; box-shadow:0 0 20px 6px #b07040; } }

.scn-aglaya-flees {
  background:
    linear-gradient(180deg, #16101c 0%, #1a1423 40%, #0e0a14 100%),
    radial-gradient(ellipse at 70% 50%, rgba(40,30,20,.2) 0%, transparent 70%);
}
.scn-aglaya-flees .bg-dim { position:absolute; inset:0; background:linear-gradient(135deg, #16101c, #2a1a2a 40%, #1a1423); }
.scn-aglaya-flees .wall   { position:absolute; inset:5% 5% 30% 10%; background:linear-gradient(180deg, #2a1a2a 0%, #1a1423 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-aglaya-flees .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1423 0%, #0e0a14 100%); }
.scn-aglaya-flees .door   { position:absolute; top:15%; right:10%; width:20%; height:55%; background:linear-gradient(180deg, #3a2a3a 0%, #1a1423 100%); border-radius:4px 4px 0 0; transform-origin:right center; animation: af-door 6s ease-in-out infinite; }
.scn-aglaya-flees .aglaya { position:absolute; bottom:25%; right:25%; width:18px; height:45px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1423 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: af-aglaya 4s ease-in-out infinite; }
.scn-aglaya-flees .prince-reach { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a2a 0%, #0e0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: af-prince 4s ease-in-out infinite; }
.scn-aglaya-flees .lamp { position:absolute; bottom:50%; left:15%; width:8px; height:8px; background:radial-gradient(circle, #c08050 0%, #8a5a30 60%); border-radius:50%; box-shadow:0 0 20px 6px #8a5a30, 0 0 40px 12px rgba(138,90,48,.3); animation: af-lamp 3s ease-in-out infinite alternate; }
.scn-aglaya-flees .tear { position:absolute; bottom:38%; right:28%; width:4px; height:6px; background:radial-gradient(circle at 50% 100%, #a0b0c0 0%, transparent 100%); border-radius:50%; animation: af-tear 2s ease-in-out infinite; }
@keyframes af-door { 0%,100% { transform:rotateY(0); } 50% { transform:rotateY(-20deg); } 75% { transform:rotateY(10deg); } }
@keyframes af-aglaya { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(-5deg); } 50% { transform:translateY(-1px) rotate(5deg); } 75% { transform:translateY(0) rotate(0); } }
@keyframes af-prince { 0%,100% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(0.9); } }
@keyframes af-lamp { 0% { opacity:.7; box-shadow:0 0 15px 4px #8a5a30; } 50% { opacity:1; box-shadow:0 0 30px 8px #c08050; } 100% { opacity:.8; box-shadow:0 0 20px 6px #8a5a30; } }
@keyframes af-tear { 0%,100% { opacity:.6; transform:translate(0,0); } 50% { opacity:1; transform:translate(-2px,5px); } }

.scn-rogojin-follows {
  background:
    linear-gradient(180deg, #180e1a 0%, #241520 40%, #0e0a10 100%),
    radial-gradient(ellipse at 20% 50%, rgba(40,25,30,.3) 0%, transparent 70%);
}
.scn-rogojin-follows .bg-dim { position:absolute; inset:0; background:linear-gradient(135deg, #180e1a, #2a1a2a 40%, #1a1020); }
.scn-rogojin-follows .wall   { position:absolute; inset:5% 5% 30% 10%; background:linear-gradient(180deg, #2a1a2a 0%, #1a1020 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-rogojin-follows .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1020 0%, #0e0a10 100%); }
.scn-rogojin-follows .door   { position:absolute; top:15%; left:10%; width:15%; height:55%; background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:4px 4px 0 0; transform-origin:left center; animation: rf-door 3s ease-in-out infinite; }
.scn-rogojin-follows .rogojin { position:absolute; bottom:25%; left:8%; width:20px; height:50px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rf-rogojin 5s ease-in-out infinite; }
.scn-rogojin-follows .prince-rush { position:absolute; bottom:25%; left:40%; width:18px; height:48px; background:linear-gradient(180deg, #2a1a2a 0%, #0e0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rf-prince 4s ease-in-out infinite; }
.scn-rogojin-follows .nastasia-hold { position:absolute; bottom:25%; left:30%; width:22px; height:45px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rf-nastasia 6s ease-in-out infinite; }
.scn-rogojin-follows .lamp { position:absolute; bottom:45%; left:55%; width:8px; height:8px; background:radial-gradient(circle, #c08050 0%, #8a5a30 60%); border-radius:50%; box-shadow:0 0 20px 6px #8a5a30, 0 0 40px 12px rgba(138,90,48,.3); animation: rf-lamp 3s ease-in-out infinite alternate; }
@keyframes rf-door { 0%,100% { transform:rotateY(0); } 50% { transform:rotateY(15deg); } 75% { transform:rotateY(-5deg); } }
@keyframes rf-rogojin { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(2deg); } 50% { transform:translateY(0) rotate(-2deg); } 75% { transform:translateY(1px) rotate(0); } }
@keyframes rf-prince { 0%,100% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(0.9); } }
@keyframes rf-nastasia { 0%,100% { transform:translate(0,0) scale(1); } 25% { transform:translate(2px,-1px) scale(1.02); } 50% { transform:translate(-1px,0) scale(0.98); } 75% { transform:translate(1px,1px) scale(1.01); } }
@keyframes rf-lamp { 0% { opacity:.7; box-shadow:0 0 15px 4px #8a5a30; } 50% { opacity:1; box-shadow:0 0 30px 8px #c08050; } 100% { opacity:.8; box-shadow:0 0 20px 6px #8a5a30; } }

.scn-prince-cradles-nastasia {
  background:
    linear-gradient(180deg, #1a1020 0%, #2a1a2a 40%, #0e0a14 100%),
    radial-gradient(ellipse at 50% 40%, rgba(60,40,30,.2) 0%, transparent 70%);
}
.scn-prince-cradles-nastasia .bg-dim { position:absolute; inset:0; background:linear-gradient(135deg, #1a1020, #3a2a3a 40%, #1a1423); }
.scn-prince-cradles-nastasia .wall   { position:absolute; inset:5% 5% 30% 10%; background:linear-gradient(180deg, #2a1a2a 0%, #1a1423 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-prince-cradles-nastasia .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1423 0%, #0e0a14 100%); }
.scn-prince-cradles-nastasia .armchair { position:absolute; bottom:20%; left:50%; width:40px; height:35px; transform: translateX(-50%); background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:inset 0 0 20px rgba(0,0,0,.4); animation: pcn-chair 8s ease-in-out infinite; }
.scn-prince-cradles-nastasia .prince-lean { position:absolute; bottom:28%; left:45%; width:18px; height:50px; background:linear-gradient(180deg, #2a1a2a 0%, #0e0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pcn-prince 5s ease-in-out infinite; }
.scn-prince-cradles-nastasia .nastasia-slump { position:absolute; bottom:20%; left:52%; width:16px; height:35px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:50% 50% 40% 40% / 40% 40% 30% 30%; transform:rotate(-10deg); animation: pcn-nastasia 6s ease-in-out infinite; }
.scn-prince-cradles-nastasia .table { position:absolute; bottom:15%; left:30%; width:30px; height:4px; background:linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%); border-radius:2px; }
.scn-prince-cradles-nastasia .glass { position:absolute; bottom:19%; left:33%; width:6px; height:10px; background:rgba(80,60,50,0.6); border-radius:0 0 50% 50%; animation: pcn-glass 4s ease-in-out infinite; }
.scn-prince-cradles-nastasia .lamp { position:absolute; bottom:50%; left:20%; width:8px; height:8px; background:radial-gradient(circle, #c08050 0%, #8a5a30 60%); border-radius:50%; box-shadow:0 0 20px 6px #8a5a30, 0 0 40px 12px rgba(138,90,48,.3); animation: pcn-lamp 3s ease-in-out infinite alternate; }
@keyframes pcn-chair { 0%,100% { transform:translatex(-50%) translateY(0); } 50% { transform:translatex(-50%) translateY(-1px); } }
@keyframes pcn-prince { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-1px) rotate(3deg); } 50% { transform:translateY(0) rotate(-2deg); } 75% { transform:translateY(1px) rotate(1deg); } }
@keyframes pcn-nastasia { 0%,100% { transform:rotate(-10deg) translateY(0); } 25% { transform:rotate(-8deg) translateY(-1px); } 50% { transform:rotate(-12deg) translateY(0); } 75% { transform:rotate(-9deg) translateY(-1px); } }
@keyframes pcn-glass { 0%,100% { opacity:.6; } 50% { opacity:.9; } }
@keyframes pcn-lamp { 0% { opacity:.7; box-shadow:0 0 15px 4px #8a5a30; } 50% { opacity:1; box-shadow:0 0 30px 8px #c08050; } 100% { opacity:.8; box-shadow:0 0 20px 6px #8a5a30; } }

/* aglaya-accuses-of-vanity */
.scn-aglaya-accuses-of-vanity {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a3a5a 70%, #1e1e32 100%), radial-gradient(ellipse at 70% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-aglaya-accuses-of-vanity .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2c2c44 0%, #1a1a2e 50%, #12122a 100%);
  opacity: 0.8;
  animation: aa-wall 6s ease-in-out infinite alternate;
}
.scn-aglaya-accuses-of-vanity .shadow-arch {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, transparent 30%, rgba(0,0,0,0.5) 70%);
  animation: aa-arch 8s ease-in-out infinite alternate;
}
.scn-aglaya-accuses-of-vanity .lamp {
  position: absolute; top: 15%; right: 10%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 0%, #f0d080 0%, #806020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 60px 20px rgba(240,208,128,0.3);
  animation: aa-lamp 3s ease-in-out infinite;
}
.scn-aglaya-accuses-of-vanity .figure-accuser {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aa-accuser 2s ease-in-out infinite alternate;
}
.scn-aglaya-accuses-of-vanity .figure-accused {
  position: absolute; bottom: 22%; right: 25%; width: 38px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 40% 40%;
  transform-origin: bottom center;
  animation: aa-accused 2.5s ease-in-out infinite alternate;
}
.scn-aglaya-accuses-of-vanity .glow-orb {
  position: absolute; top: 30%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5);
  animation: aa-orb 4s ease-in-out infinite;
}
.scn-aglaya-accuses-of-vanity .dust {
  position: absolute; top: 10%; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 40% 60%, rgba(200,200,200,0.1) 0%, transparent 80%);
  animation: aa-dust 12s linear infinite;
}
@keyframes aa-wall {
  0% { opacity: 0.75; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes aa-arch {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(0.95); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes aa-lamp {
  0% { box-shadow: 0 0 40px 10px rgba(240,208,128,0.2); transform: rotate(-2deg); }
  50% { box-shadow: 0 0 70px 25px rgba(240,208,128,0.5); transform: rotate(2deg); }
  100% { box-shadow: 0 0 45px 12px rgba(240,208,128,0.3); transform: rotate(-1deg); }
}
@keyframes aa-accuser {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(5px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(3px) rotate(0deg); }
}
@keyframes aa-accused {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes aa-orb {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes aa-dust {
  0% { opacity: 0; }
  25% { opacity: 0.2; }
  50% { opacity: 0.1; }
  75% { opacity: 0.3; }
  100% { opacity: 0; }
}

/* aglaya-presses */
.scn-aglaya-presses {
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5a 60%, #1e1e32 100%), radial-gradient(ellipse at 30% 60%, #2a2a44 0%, transparent 70%);
}
.scn-aglaya-presses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: ap-floor 10s ease-in-out infinite alternate;
}
.scn-aglaya-presses .backwall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1e1e34 0%, #2a2a44 40%, #15152a 100%);
  opacity: 0.7;
}
.scn-aglaya-presses .door {
  position: absolute; bottom: 15%; right: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: ap-door 6s ease-in-out infinite alternate;
}
.scn-aglaya-presses .figure-press {
  position: absolute; bottom: 22%; left: 30%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ap-press 1.5s ease-in-out infinite alternate;
}
.scn-aglaya-presses .figure-retreat {
  position: absolute; bottom: 24%; right: 25%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 45% 40% 30% 30% / 50% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ap-retreat 2s ease-in-out infinite alternate;
}
.scn-aglaya-presses .candle {
  position: absolute; bottom: 30%; left: 15%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #806020 100%);
  border-radius: 50% 50% 20% 20%;
  animation: ap-candle 3s ease-in-out infinite;
}
.scn-aglaya-presses .candle-glow {
  position: absolute; bottom: 28%; left: 14%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.4);
  animation: ap-glow 2.5s ease-in-out infinite alternate;
}
.scn-aglaya-presses .shadow-stripe {
  position: absolute; top: 10%; left: 40%; width: 10%; height: 80%;
  background: rgba(0,0,0,0.3);
  filter: blur(5px);
  animation: ap-stripe 8s ease-in-out infinite alternate;
}
@keyframes ap-floor {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.97); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ap-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); opacity: 0.9; }
  100% { transform: rotate(0deg); }
}
@keyframes ap-press {
  0% { transform: translateX(0) rotate(-1deg); }
  33% { transform: translateX(6px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(3px) rotate(0deg); }
}
@keyframes ap-retreat {
  0% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(-5px) scaleY(0.95); }
  50% { transform: translateX(-10px) scaleY(0.92); }
  75% { transform: translateX(-3px) scaleY(0.97); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ap-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ap-glow {
  0% { opacity: 0.4; box-shadow: 0 0 30px 10px rgba(255,208,128,0.3); }
  50% { opacity: 0.7; box-shadow: 0 0 50px 20px rgba(255,208,128,0.6); }
  100% { opacity: 0.5; box-shadow: 0 0 35px 12px rgba(255,208,128,0.4); }
}
@keyframes ap-stripe {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.4; transform: translateX(5px); }
  100% { opacity: 0.1; transform: translateX(-3px); }
}

/* aglaya-mocks */
.scn-aglaya-mocks {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5a 60%, #1e1e32 100%), radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 70%);
}
.scn-aglaya-mocks .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 0 0 40% 40%;
  animation: am-ceiling 8s ease-in-out infinite alternate;
}
.scn-aglaya-mocks .pillar {
  position: absolute; bottom: 10%; left: 15%; width: 12%; height: 80%;
  background: linear-gradient(90deg, #3a3a52 0%, #4a4a62 30%, #2a2a42 100%);
  border-radius: 5%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: am-pillar 12s ease-in-out infinite alternate;
}
.scn-aglaya-mocks .figure-mocker {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 72px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: am-mocker 1.8s ease-in-out infinite;
}
.scn-aglaya-mocks .figure-humiliated {
  position: absolute; bottom: 22%; right: 20%; width: 36px; height: 62px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 50% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: am-humiliated 2.2s ease-in-out infinite alternate;
}
.scn-aglaya-mocks .table {
  position: absolute; bottom: 18%; left: 45%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: am-table 5s ease-in-out infinite alternate;
}
.scn-aglaya-mocks .wine-glass {
  position: absolute; bottom: 20%; left: 48%; width: 10px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 10px rgba(200,180,160,0.3);
  animation: am-glass 4s ease-in-out infinite;
}
.scn-aglaya-mocks .lamp-bright {
  position: absolute; top: 5%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 0%, #fff4c0 0%, #b89a40 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,244,192,0.4);
  animation: am-lamp 3s ease-in-out infinite alternate;
}
.scn-aglaya-mocks .sparks {
  position: absolute; top: 15%; left: 45%; width: 100%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,244,192,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: am-sparks 6s linear infinite;
}
@keyframes am-ceiling {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(1px); }
}
@keyframes am-pillar {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(0.98) translateX(-2px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes am-mocker {
  0% { transform: translateX(0) rotate(-2deg); }
  20% { transform: translateX(8px) rotate(4deg); }
  40% { transform: translateX(-4px) rotate(-3deg); }
  60% { transform: translateX(10px) rotate(2deg); }
  80% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes am-humiliated {
  0% { transform: translateX(0) scaleY(1) rotate(0); }
  25% { transform: translateX(-6px) scaleY(0.9) rotate(-3deg); }
  50% { transform: translateX(2px) scaleY(1) rotate(2deg); }
  75% { transform: translateX(-4px) scaleY(0.95) rotate(-1deg); }
  100% { transform: translateX(0) scaleY(1) rotate(0); }
}
@keyframes am-table {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes am-glass {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes am-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 60px 20px rgba(255,244,192,0.3); }
  50% { opacity: 0.9; box-shadow: 0 0 100px 40px rgba(255,244,192,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 70px 25px rgba(255,244,192,0.4); }
}
@keyframes am-sparks {
  0% { opacity: 0; transform: translateY(0); }
  25% { opacity: 0.3; transform: translateY(-10px); }
  50% { opacity: 0.1; transform: translateY(-20px); }
  75% { opacity: 0.4; transform: translateY(-5px); }
  100% { opacity: 0; transform: translateY(0); }
}

/* nastasia-retorts */
.scn-nastasia-retorts {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5a 60%, #1e1e32 100%), radial-gradient(ellipse at 60% 40%, #3a3a5a 0%, transparent 70%);
}
.scn-nastasia-retorts .bg-curtain {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a44 0%, #1a1a2e 50%, #12122a 100%);
  opacity: 0.9;
  animation: nr-curtain 10s ease-in-out infinite alternate;
}
.scn-nastasia-retorts .chair {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(5deg);
  animation: nr-chair 6s ease-in-out infinite alternate;
}
.scn-nastasia-retorts .retort-figure {
  position: absolute; bottom: 22%; left: 35%; width: 38px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: nr-retort 2s ease-in-out infinite alternate;
}
.scn-nastasia-retorts .sitting-figure {
  position: absolute; bottom: 20%; right: 20%; width: 36px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%);
  border-radius: 45% 35% 30% 30% / 50% 45% 40% 40%;
  transform-origin: bottom center;
  animation: nr-sitting 3s ease-in-out infinite;
}
.scn-nastasia-retorts .fan {
  position: absolute; bottom: 30%; right: 28%; width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: 50% 0%;
  animation: nr-fan 1s ease-in-out infinite alternate;
}
.scn-nastasia-retorts .lamplight {
  position: absolute; top: 10%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,208,128,0.3);
  animation: nr-light 4s ease-in-out infinite alternate;
}
.scn-nastasia-retorts .smoke {
  position: absolute; top: 20%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,0.1) 0%, transparent 80%);
  filter: blur(4px);
  animation: nr-smoke 8s linear infinite;
}
@keyframes nr-curtain {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; transform: scale(1.01); }
  100% { opacity: 0.7; }
}
@keyframes nr-chair {
  0% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes nr-retort {
  0% { transform: translateX(0) rotate(-2deg); }
  33% { transform: translateX(8px) rotate(3deg); }
  66% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(4px) rotate(0deg); }
}
@keyframes nr-sitting {
  0% { transform: scaleY(1) rotate(0); }
  25% { transform: scaleY(0.98) rotate(-2deg); }
  50% { transform: scaleY(1) rotate(1deg); }
  75% { transform: scaleY(0.97) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes nr-fan {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes nr-light {
  0% { opacity: 0.5; box-shadow: 0 0 60px 20px rgba(255,208,128,0.2); }
  50% { opacity: 0.8; box-shadow: 0 0 100px 35px rgba(255,208,128,0.5); }
  100% { opacity: 0.6; box-shadow: 0 0 70px 25px rgba(255,208,128,0.3); }
}
@keyframes nr-smoke {
  0% { opacity: 0; transform: translateY(0) translateX(0); }
  25% { opacity: 0.2; transform: translateY(-10px) translateX(5px); }
  50% { opacity: 0.1; transform: translateY(-20px) translateX(-3px); }
  75% { opacity: 0.3; transform: translateY(-5px) translateX(8px); }
  100% { opacity: 0; transform: translateY(0) translateX(0); }
}

/* Scene 1: prince-queries-porter */
.scn-prince-queries-porter { background: linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 40%, #b89b6c 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-prince-queries-porter .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fdf4da 0%, #d4c4a0 100%); animation: pqp-sky 12s ease-in-out infinite alternate; }
.scn-prince-queries-porter .sun { position:absolute; top:8%; left:72%; width:40px; height:40px; background: radial-gradient(circle, #fff8d0 0%, #f0d080 50%, transparent 70%); border-radius:50%; filter: blur(4px); animation: pqp-sun 8s ease-in-out infinite alternate; }
.scn-prince-queries-porter .facade { position:absolute; bottom:25%; left:10%; right:10%; height:50%; background: linear-gradient(90deg, #c9b38a 0%, #dbc7a3 50%, #c4ad82 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15); animation: pqp-facade 20s ease-in-out infinite; }
.scn-prince-queries-porter .door { position:absolute; bottom:25%; left:45%; width:60px; height:90px; background: linear-gradient(180deg, #6b4f32 0%, #4d3720 100%); border-radius:8% 8% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: pqp-door 15s ease-in-out infinite; }
.scn-prince-queries-porter .porter { position:absolute; bottom:25%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #3a2c1e 0%, #1e150c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqp-walk 6s ease-in-out infinite; }
.scn-prince-queries-porter .prince { position:absolute; bottom:25%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqp-approach 8s ease-in-out infinite; }
.scn-prince-queries-porter .shadow-cast { position:absolute; bottom:25%; left:35%; width:80px; height:10px; background: rgba(0,0,0,0.35); border-radius:50%; filter: blur(3px); animation: pqp-shadow 6s ease-in-out infinite; }
.scn-prince-queries-porter .heat-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(255,255,200,0.08) 0%, transparent 70%); filter: blur(8px); animation: pqp-haze 10s ease-in-out infinite alternate; }
@keyframes pqp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pqp-sun { 0% { transform: translate(0,0) scale(1); opacity:0.9 } 50% { transform: translate(8px,-4px) scale(1.1); opacity:1 } 100% { transform: translate(4px,2px) scale(0.95); opacity:0.85 } }
@keyframes pqp-facade { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pqp-door { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes pqp-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(12px) translateY(0) rotate(-1deg) } 100% { transform: translateX(18px) translateY(0) rotate(0) } }
@keyframes pqp-approach { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-8px) scale(1.02) } 100% { transform: translateX(4px) scale(0.98) } }
@keyframes pqp-shadow { 0% { transform: scaleX(1) opacity:0.35 } 50% { transform: scaleX(1.1) opacity:0.45 } 100% { transform: scaleX(0.9) opacity:0.3 } }
@keyframes pqp-haze { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* Scene 2: porter-evasive */
.scn-porter-evasive { background: linear-gradient(135deg, #e6d7b8 0%, #d4be9a 50%, #b89b72 100%), radial-gradient(ellipse at 30% 50%, #f0e0c8 0%, transparent 80%); }
.scn-porter-evasive .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d9c8a8 0%, #c4ae8a 100%); animation: eva-wall 20s ease-in-out infinite; }
.scn-porter-evasive .door { position:absolute; bottom:20%; left:20%; width:50px; height:90px; background: linear-gradient(180deg, #5a4430 0%, #3f2c1c 100%); border-radius:6% 6% 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.25); animation: eva-door 12s ease-in-out infinite; }
.scn-porter-evasive .porter-back { position:absolute; bottom:22%; left:28%; width:32px; height:58px; background: linear-gradient(180deg, #3e3224 0%, #1f1810 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: eva-turn 9s ease-in-out infinite; }
.scn-porter-evasive .keys { position:absolute; bottom:42%; left:32%; width:12px; height:16px; background: #c0a060; border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px #e0c080; animation: eva-keys 4s ease-in-out infinite; }
.scn-porter-evasive .sunbeam { position:absolute; top:10%; left:40%; width:180px; height:300px; background: linear-gradient(180deg, rgba(255,245,190,0.15) 0%, rgba(255,245,190,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(6px); animation: eva-beam 14s ease-in-out infinite alternate; }
.scn-porter-evasive .floor-shadow { position:absolute; bottom:20%; left:18%; width:100px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: eva-shadow 9s ease-in-out infinite; }
.scn-porter-evasive .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, rgba(200,180,130,0.06) 0%, transparent 60%); filter: blur(3px); animation: eva-dust 18s linear infinite; }
@keyframes eva-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes eva-door { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes eva-turn { 0% { transform: rotate(0) } 40% { transform: rotate(8deg) } 60% { transform: rotate(-5deg) } 100% { transform: rotate(2deg) } }
@keyframes eva-keys { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(-8deg) } }
@keyframes eva-beam { 0% { opacity:0.3; transform: skewX(-2deg) } 50% { opacity:0.6; transform: skewX(2deg) } 100% { opacity:0.4; transform: skewX(0) } }
@keyframes eva-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.35; transform: scaleX(0.95) } }
@keyframes eva-dust { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: 0% 10%; } }

/* Scene 3: prince-sees-face */
.scn-prince-sees-face { background: linear-gradient(180deg, #e3d4b8 0%, #c9b694 50%, #a1856a 100%), radial-gradient(ellipse at 50% 100%, #d4c4a0 0%, transparent 70%); }
.scn-prince-sees-face .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8efd8 0%, #d4c6a8 100%); animation: psf-sky 10s ease-in-out infinite alternate; }
.scn-prince-sees-face .facade-stone { position:absolute; bottom:20%; left:5%; right:5%; height:60%; background: linear-gradient(90deg, #b8a080 0%, #cdb694 50%, #b39b7a 100%); border-radius:6% 6% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15); animation: psf-facade 18s ease-in-out infinite; }
.scn-prince-sees-face .window-frame { position:absolute; bottom:38%; left:45%; width:70px; height:80px; background: #6a5a48; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: psf-window 14s ease-in-out infinite; }
.scn-prince-sees-face .blind { position:absolute; bottom:38%; left:45%; width:70px; height:80px; background: linear-gradient(180deg, #4a3828 0%, #2c1e14 100%); border-radius:4px; clip-path: inset(0 0 70% 0); animation: psf-blind 8s ease-in-out infinite; }
.scn-prince-sees-face .face-silhouette { position:absolute; bottom:53%; left:47%; width:20px; height:28px; background: #1a120c; border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; box-shadow: 0 0 4px rgba(0,0,0,0.5); animation: psf-face 4s ease-in-out infinite; }
.scn-prince-sees-face .ground-shadow { position:absolute; bottom:20%; left:30%; width:140px; height:12px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(5px); animation: psf-ground 20s ease-in-out infinite alternate; }
.scn-prince-sees-face .pavement { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #9a8a78 0%, #726254 100%); animation: psf-pave 12s ease-in-out infinite; }
@keyframes psf-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes psf-facade { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes psf-window { 0% { box-shadow: 0 4px 12px rgba(0,0,0,0.3) } 50% { box-shadow: 0 2px 8px rgba(0,0,0,0.4) } 100% { box-shadow: 0 6px 14px rgba(0,0,0,0.25) } }
@keyframes psf-blind { 0% { clip-path: inset(0 0 70% 0) } 50% { clip-path: inset(0 0 40% 0) } 100% { clip-path: inset(0 0 75% 0) } }
@keyframes psf-face { 0% { opacity:0; transform: translateY(0) scale(0.8) } 30% { opacity:1; transform: translateY(-2px) scale(1) } 70% { opacity:0.8; transform: translateY(-4px) scale(0.95) } 100% { opacity:0; transform: translateY(-6px) scale(0.8) } }
@keyframes psf-ground { 0% { transform: scaleX(1) opacity:0.2 } 50% { transform: scaleX(1.2) opacity:0.3 } 100% { transform: scaleX(0.9) opacity:0.18 } }
@keyframes psf-pave { 0%,100% { opacity:0.85 } 50% { opacity:1 } }

/* Scene 4: face-at-blinds */
.scn-face-at-blinds { background: linear-gradient(180deg, #d6c8aa 0%, #bcaa8a 50%, #9a886c 100%), radial-gradient(ellipse at 40% 30%, #e8dcc4 0%, transparent 70%); }
.scn-face-at-blinds .close-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e4cc 0%, #d0c0a4 100%); animation: fab-sky 16s ease-in-out infinite alternate; }
.scn-face-at-blinds .building-wall { position:absolute; bottom:20%; left:0; right:0; height:70%; background: linear-gradient(135deg, #b6a082 0%, #a58d70 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.1); animation: fab-wall 14s ease-in-out infinite; }
.scn-face-at-blinds .blind-wide { position:absolute; top:30%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #5a4634 0%, #3a2c1e 100%); border-radius: 2px; clip-path: inset(0 0 60% 0); animation: fab-blind 10s ease-in-out infinite; }
.scn-face-at-blinds .corner-gap { position:absolute; top:30%; left:20%; width:60%; height:40%; background: transparent; border: 2px solid rgba(0,0,0,0.2); border-radius: 2px; animation: fab-gap 8s ease-in-out infinite; }
.scn-face-at-blinds .face-glimpse { position:absolute; top:40%; left:38%; width:18px; height:24px; background: #1a120c; border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; box-shadow: 0 0 8px rgba(0,0,0,0.6); animation: fab-face 5s ease-in-out infinite; }
.scn-face-at-blinds .shadow-in { position:absolute; top:20%; left:10%; width:80%; height:60%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.15) 0%, transparent 60%); filter: blur(10px); animation: fab-shade 18s ease-in-out infinite alternate; }
@keyframes fab-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fab-wall { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes fab-blind { 0% { clip-path: inset(0 0 60% 0) } 50% { clip-path: inset(0 0 40% 0) } 100% { clip-path: inset(0 0 65% 0) } }
@keyframes fab-gap { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes fab-face { 0% { opacity:0; transform: translateY(0) scale(0.7) } 25% { opacity:1; transform: translateY(-2px) scale(1) } 75% { opacity:0.9; transform: translateY(-4px) scale(0.95) } 100% { opacity:0; transform: translateY(-6px) scale(0.7) } }
@keyframes fab-shade { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.15 } }

.scn-nihilistic-motives {
  background:
    linear-gradient(180deg, #b8c4d0 0%, #8a9da8 40%, #5e6f7a 100%),
    radial-gradient(ellipse at 80% 50%, #4a5a66 0%, transparent 70%);
}
.scn-nihilistic-motives .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8d4de 0%, #a0b2c0 60%, transparent 100%); animation: nm-sky 20s ease-in-out infinite alternate; }
.scn-nihilistic-motives .ground { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #7a8a94 0%, #4e5a62 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-nihilistic-motives .door-frame { position:absolute; bottom:30%; left:20%; width:30%; height:45%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%); border-radius: 30% 30% 4% 4% / 60% 60% 4% 4%; box-shadow: 6px 0 12px rgba(0,0,0,.3); }
.scn-nihilistic-motives .prince { position:absolute; bottom:32%; left:22%; width:8%; height:18%; background: linear-gradient(180deg, #2a2a36 0%, #12121c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nm-prince 6s ease-in-out infinite; }
.scn-nihilistic-motives .lady { position:absolute; bottom:30%; left:35%; width:7%; height:14%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: nm-lady 8s ease-in-out infinite; }
.scn-nihilistic-motives .shadow { position:absolute; bottom:30%; left:20%; width:25%; height:2%; background: radial-gradient(ellipse, #2a2a36 0%, transparent 80%); opacity:0.4; animation: nm-shadow 6s linear infinite; }
.scn-nihilistic-motives .cloud { position:absolute; top:15%; left:40%; width:20%; height:6%; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(8px); animation: nm-cloud 60s linear infinite; }
@keyframes nm-sky { 0% { opacity:1; background-position: 0% 0%; } 50% { opacity:0.8; background-position: 5% 10%; } 100% { opacity:0.95; background-position: -5% -5%; } }
@keyframes nm-prince { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(30px) translateY(0) rotate(-1deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0deg); } }
@keyframes nm-lady { 0% { transform: translateX(0) translateY(0) scale(1) rotate(-5deg); } 30% { transform: translateX(2px) translateY(-3px) scale(1.02) rotate(0deg); } 60% { transform: translateX(-1px) translateY(-1px) scale(0.98) rotate(5deg); } 100% { transform: translateX(0) translateY(0) scale(1) rotate(-3deg); } }
@keyframes nm-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { opacity:0.3; transform: scaleX(0.9); } }
@keyframes nm-cloud { 0% { transform: translateX(0); } 50% { transform: translateX(50px); } 100% { transform: translateX(-30px); } }

.scn-public-opinion {
  background:
    linear-gradient(180deg, #a9b7c4 0%, #7a8d9c 40%, #4c5e6e 100%),
    radial-gradient(ellipse at 30% 60%, #5a6e7e 0%, transparent 70%);
}
.scn-public-opinion .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c4d2de 0%, #a4b6c4 50%, transparent 100%); animation: po-sky 15s ease-in-out infinite alternate; }
.scn-public-opinion .ground { position:absolute; bottom:0; left:0; right:0; height:48%; background: linear-gradient(180deg, #6a7c8a 0%, #3e4e5a 100%); border-radius: 30% 70% 0 0 / 20% 60% 0 0; }
.scn-public-opinion .house { position:absolute; bottom:45%; width:12%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 2px 0 6px rgba(0,0,0,.3); }
.scn-public-opinion .house-1 { left:12%; }
.scn-public-opinion .house-2 { left:42%; }
.scn-public-opinion .house-3 { left:72%; }
.scn-public-opinion .window { position:absolute; bottom:58%; width:5%; height:8%; background: radial-gradient(circle, #d0d8e0 0%, #8a9aaa 70%); border-radius: 20%; box-shadow: inset 0 0 4px #2a3a4a; animation: po-window 8s ease-in-out infinite; }
.scn-public-opinion .win-1 { left:15%; animation-delay: 0s; }
.scn-public-opinion .win-2 { left:45%; animation-delay: 2s; }
.scn-public-opinion .win-3 { left:75%; animation-delay: 4s; }
.scn-public-opinion .figure { position:absolute; bottom:58%; width:4%; height:10%; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: po-figure 4s ease-in-out infinite; }
.scn-public-opinion .fig-1 { left:16%; animation-delay: 0s; }
.scn-public-opinion .fig-2 { left:46%; animation-delay: 1.3s; }
.scn-public-opinion .fig-3 { left:76%; animation-delay: 2.7s; }
@keyframes po-sky { 0% { opacity:0.9; } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.85; } }
@keyframes po-window { 0% { box-shadow: inset 0 0 4px #2a3a4a; opacity:0.8; } 50% { box-shadow: inset 0 0 8px #4a5a6a; opacity:1; } 100% { box-shadow: inset 0 0 2px #1a2a3a; opacity:0.7; } }
@keyframes po-figure { 0% { transform: translateY(0) scale(1) rotate(-2deg); } 25% { transform: translateY(-2px) scale(1.02) rotate(1deg); } 50% { transform: translateY(0) scale(0.98) rotate(0deg); } 75% { transform: translateY(1px) scale(1) rotate(-1deg); } 100% { transform: translateY(0) scale(1) rotate(2deg); } }

.scn-wedding-rumoured {
  background:
    linear-gradient(180deg, #9aacbe 0%, #6a7e92 40%, #3a4e5e 100%),
    radial-gradient(ellipse at 50% 30%, #5a6e82 0%, transparent 70%);
}
.scn-wedding-rumoured .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8c8d6 0%, #889aac 60%, transparent 100%); animation: wr-sky 12s ease-in-out infinite alternate; }
.scn-wedding-rumoured .ground { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #5a6a76 0%, #2e3a42 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-wedding-rumoured .church { position:absolute; bottom:42%; left:50%; width:28%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2e 0%, #2a1e12 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 -4px 12px rgba(0,0,0,.4); }
.scn-wedding-rumoured .spire { position:absolute; bottom:90%; left:50%; width:6%; height:12%; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); }
.scn-wedding-rumoured .door { position:absolute; bottom:42%; left:50%; width:8%; height:18%; transform: translateX(-50%); background: #1a1a1a; border-radius: 30% 30% 4% 4% / 60% 60% 4% 4%; }
.scn-wedding-rumoured .groom { position:absolute; bottom:44%; left:43%; width:6%; height:16%; background: linear-gradient(180deg, #2a2a3a 0%, #12121c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: wr-groom 4s ease-in-out infinite; }
.scn-wedding-rumoured .bride { position:absolute; bottom:44%; left:52%; width:7%; height:18%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: wr-bride 4s ease-in-out infinite; }
.scn-wedding-rumoured .priest { position:absolute; bottom:44%; left:48%; width:4%; height:14%; background: linear-gradient(180deg, #2a2a36 0%, #0e0e14 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; animation: wr-priest 6s ease-in-out infinite; }
.scn-wedding-rumoured .shadow { position:absolute; bottom:42%; left:30%; width:40%; height:4%; background: radial-gradient(ellipse, #1a1a24 0%, transparent 80%); opacity:0.3; animation: wr-shadow 8s ease-in-out infinite; }
@keyframes wr-sky { 0% { opacity:0.85; } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.9; } }
@keyframes wr-groom { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes wr-bride { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes wr-priest { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes wr-shadow { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(1.1); } 100% { opacity:0.25; transform: scaleX(0.9); } }

.scn-wedding-arrangements {
  background:
    linear-gradient(180deg, #a3b1be 0%, #6e7e8e 40%, #3e4e5a 100%),
    radial-gradient(ellipse at 70% 40%, #4a5a6a 0%, transparent 70%);
}
.scn-wedding-arrangements .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #7a8a96 0%, #4a5a66 100%); }
.scn-wedding-arrangements .desk { position:absolute; bottom:20%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-wedding-arrangements .lebedeff { position:absolute; bottom:22%; left:25%; width:8%; height:20%; background: linear-gradient(180deg, #2a2a3e 0%, #121222 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: wa-fig 6s ease-in-out infinite; }
.scn-wedding-arrangements .keller { position:absolute; bottom:22%; left:60%; width:7%; height:18%; background: linear-gradient(180deg, #2e2e42 0%, #141428 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: wa-fig 6s ease-in-out infinite 0.5s; }
.scn-wedding-arrangements .nastasia { position:absolute; bottom:24%; left:45%; width:6%; height:24%; background: linear-gradient(180deg, #3a2a3e 0%, #1a1020 100%); border-radius: 45% 45% 30% 30% / 65% 65% 30% 30%; animation: wa-stand 8s ease-in-out infinite; }
.scn-wedding-arrangements .papers { position:absolute; bottom:24%; left:40%; width:12%; height:4%; background: #d0c8b8; border-radius: 2px; box-shadow: 3px 2px 6px rgba(0,0,0,.2); animation: wa-paper 4s ease-in-out infinite; }
.scn-wedding-arrangements .lamp { position:absolute; bottom:60%; left:30%; width:8%; height:10%; background: radial-gradient(circle, #e8d8c0 0%, #b8a88a 60%, transparent 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px rgba(200,180,140,.5); animation: wa-lamp 3s ease-in-out infinite alternate; }
.scn-wedding-arrangements .window { position:absolute; top:10%; right:10%; width:20%; height:30%; background: linear-gradient(180deg, #b8c8d6 0%, #889aac 100%); border: 4px solid #2a1e1a; border-radius: 6px; opacity:0.6; }
@keyframes wa-fig { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 25% { transform: translateY(-2px) rotate(1deg) scale(1.02); } 50% { transform: translateY(0) rotate(0deg) scale(0.98); } 75% { transform: translateY(1px) rotate(-1deg) scale(1); } 100% { transform: translateY(0) rotate(2deg) scale(1); } }
@keyframes wa-stand { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes wa-paper { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes wa-lamp { 0% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(200,180,140,.4); } 100% { opacity:1; box-shadow: 0 0 30px 10px rgba(220,200,160,.6); } }

.scn-prince-goes-to-lodging {
  background: linear-gradient(180deg, #8bb4d6 0%, #c9e1f0 40%, #f4e7c3 100%), radial-gradient(ellipse at 70% 20%, #fee9a0 0%, transparent 60%);
}
.scn-prince-goes-to-lodging .sky-pgl {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a9ec4 0%, #b0d4ee 80%);
  animation: pgl-sky 15s ease-in-out infinite alternate;
}
.scn-prince-goes-to-lodging .sun-pgl {
  position: absolute; top: 10%; left: 72%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffecb0 0%, #f5c842 60%, transparent 70%);
  border-radius: 50%;
  animation: pgl-sun 8s ease-in-out infinite alternate;
}
.scn-prince-goes-to-lodging .bldg-bg-pgl {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #b8a894 0%, #8c7a64 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pgl-bldg 20s ease-in-out infinite;
}
.scn-prince-goes-to-lodging .bldg-fg-pgl {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 55%;
  background: linear-gradient(180deg, #d4c4aa 0%, #a08b70 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.4);
  animation: pgl-bldg 25s ease-in-out infinite reverse;
}
.scn-prince-goes-to-lodging .figure-pgl {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2c2418 0%, #1a140e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgl-figure 5s ease-in-out infinite;
}
.scn-prince-goes-to-lodging .shadow-pgl {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: pgl-shadow 5s ease-in-out infinite;
}
.scn-prince-goes-to-lodging .window-pgl {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 24px;
  background: radial-gradient(circle at 30% 30%, #ffd080 0%, #b08040 80%);
  border: 2px solid #6a5a44;
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.6);
  animation: pgl-window 3s ease-in-out infinite alternate;
}
.scn-prince-goes-to-lodging .door-pgl {
  position: absolute; bottom: 15%; left: 47%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6a52 0%, #4a3e2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: pgl-door 2s ease-in-out infinite alternate;
}
@keyframes pgl-sky {
  0% { opacity: 0.85; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes pgl-sun {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 10px #f5c842; }
  50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 60px 15px #f5c842; }
  100% { transform: translateY(2px) scale(0.95); box-shadow: 0 0 30px 8px #f5c842; }
}
@keyframes pgl-bldg {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pgl-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(-2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes pgl-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(16px) scaleX(1.2); opacity: 0.3; }
  100% { transform: translateX(32px) scaleX(1); opacity: 0.4; }
}
@keyframes pgl-window {
  0% { box-shadow: 0 0 12px 4px rgba(192,128,64,0.5); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 10px rgba(255,208,96,0.8); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px rgba(192,128,64,0.6); opacity: 0.85; }
}
@keyframes pgl-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.96); }
  100% { transform: scaleX(1); }
}

.scn-no-trace {
  background: linear-gradient(180deg, #d4e8f0 0%, #f0ebd8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 0%, #fffce0 0%, transparent 60%);
}
.scn-no-trace .wall-nt {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c4b698 0%, #a09170 100%);
  border-bottom: 4px solid #8a7a5a;
  animation: nt-wall 10s ease-in-out infinite alternate;
}
.scn-no-trace .door-nt {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3e2a 0%, #2a2010 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.6);
  animation: nt-door 12s ease-in-out infinite;
}
.scn-no-trace .light-nt {
  position: absolute; bottom: 30%; left: 36%; width: 55px; height: 80px;
  background: linear-gradient(135deg, rgba(255,240,200,0.9) 0%, rgba(255,240,200,0) 100%);
  filter: blur(8px);
  animation: nt-light 4s ease-in-out infinite alternate;
}
.scn-no-trace .figures-nt {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nt-figures 6s ease-in-out infinite;
}
.scn-no-trace .prince-nt {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a241e 0%, #140e0a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: nt-prince 3s ease-in-out infinite alternate;
}
.scn-no-trace .ground-nt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a62 100%);
  animation: nt-ground 15s ease-in-out infinite;
}
.scn-no-trace .shadow-nt {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: nt-shadow 3s ease-in-out infinite alternate;
}
@keyframes nt-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes nt-door {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes nt-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes nt-figures {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nt-prince {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-2px) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nt-ground {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nt-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(0.8); opacity: 0.2; }
  100% { transform: scaleX(1.2); opacity: 0.35; }
}

.scn-prince-tells-story {
  background: linear-gradient(180deg, #1a1620 0%, #2a202e 40%, #3c2840 100%), radial-gradient(ellipse at 50% 30%, #4a3050 0%, transparent 70%);
}
.scn-prince-tells-story .wall-pts {
  position: absolute; inset: 0 10% 20% 10%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: pts-wall 20s ease-in-out infinite;
}
.scn-prince-tells-story .window-pts {
  position: absolute; top: 10%; left: 65%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 60%, #3a5a7a 0%, #1a2a3a 80%);
  border: 3px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: pts-window 8s ease-in-out infinite alternate;
}
.scn-prince-tells-story .table-pts {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a4a36 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: pts-table 15s ease-in-out infinite;
}
.scn-prince-tells-story .lady1-pts {
  position: absolute; bottom: 20%; left: 32%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pts-lady1 4s ease-in-out infinite alternate;
}
.scn-prince-tells-story .lady2-pts {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pts-lady2 5s ease-in-out infinite alternate;
}
.scn-prince-tells-story .candle-pts {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0d080 0%, #b88a40 100%);
  border-radius: 2px;
  animation: pts-candle 2s ease-in-out infinite alternate;
}
.scn-prince-tells-story .glow-pts {
  position: absolute; bottom: 28%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: pts-glow 3s ease-in-out infinite alternate;
}
.scn-prince-tells-story .shadow-pts {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: pts-shadow 6s ease-in-out infinite;
}
@keyframes pts-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(0.995); }
}
@keyframes pts-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(255,255,200,0.1); }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
  100% { opacity: 0.5; box-shadow: inset 0 0 5px rgba(255,255,200,0.05); }
}
@keyframes pts-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pts-lady1 {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pts-lady2 {
  0% { transform: translateX(0) rotate(0deg); }
  40% { transform: translateX(-2px) rotate(-2deg); }
  70% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pts-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: 0.75; }
}
@keyframes pts-glow {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 0.9; }
  100% { transform: scale(0.9); opacity: 0.5; }
}
@keyframes pts-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

.scn-prince-collapses {
  background: linear-gradient(180deg, #0a0808 0%, #1a1010 30%, #201818 60%, #2a1a1a 100%), radial-gradient(ellipse at 40% 60%, #3a2020 0%, transparent 70%);
}
.scn-prince-collapses .floor-pc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #140c08 100%);
  animation: pc-floor 20s ease-in-out infinite alternate;
}
.scn-prince-collapses .wall-pc {
  position: absolute; inset: 0 10% 25% 10%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: pc-wall 25s ease-in-out infinite;
}
.scn-prince-collapses .chair-pc {
  position: absolute; bottom: 22%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a281c 0%, #1e120e 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.6);
  animation: pc-chair 10s ease-in-out infinite;
}
.scn-prince-collapses .figure-pc {
  position: absolute; bottom: 15%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 2s ease-in-out infinite alternate;
}
.scn-prince-collapses .lamp-pc {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c89040 0%, #8a5a20 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,144,64,0.5);
  animation: pc-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-collapses .lamp-light-pc {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,144,64,0.4) 0%, transparent 80%);
  filter: blur(12px);
  animation: pc-light 4s ease-in-out infinite alternate;
}
.scn-prince-collapses .shadow-pc {
  position: absolute; bottom: 12%; left: 50%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: pc-shadow 2s ease-in-out infinite alternate;
}
@keyframes pc-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pc-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.002); }
  100% { transform: scaleY(0.998); }
}
@keyframes pc-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pc-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(4px) rotate(10deg); }
  60% { transform: translateX(1px) translateY(2px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pc-lamp {
  0% { transform: rotate(-3deg); box-shadow: 0 0 15px 4px rgba(200,144,64,0.4); }
  50% { transform: rotate(3deg); box-shadow: 0 0 25px 8px rgba(200,144,64,0.7); }
  100% { transform: rotate(-2deg); box-shadow: 0 0 18px 5px rgba(200,144,64,0.5); }
}
@keyframes pc-light {
  0% { transform: scale(0.9); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(0.95); opacity: 0.6; }
}
@keyframes pc-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(0.8) translateX(-5px); opacity: 0.4; }
  100% { transform: scaleX(1.1) translateX(3px); opacity: 0.55; }
}

/* Scene: nastasia-aware-of-aglaya */
.scn-nastasia-aware-of-aglaya {
  background: linear-gradient(135deg, #0e0e1c 0%, #1a1a30 50%, #0c0c18 100%), radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-nastasia-aware-of-aglaya .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #16162a 0%, #0a0a14 100%);
  animation: naa1-backdrop 10s ease-in-out infinite alternate;
}
.scn-nastasia-aware-of-aglaya .wall {
  position: absolute; inset: 5% 10% 30% 10%;
  background: linear-gradient(135deg, #1c1c34 0%, #28284a 50%, #141428 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: naa1-wall 12s ease-in-out infinite;
}
.scn-nastasia-aware-of-aglaya .window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at center, #2a4060 0%, #0e1a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px #1a2a4e, inset 0 0 10px #3a5a80;
  animation: naa1-window 8s ease-in-out infinite alternate;
}
.scn-nastasia-aware-of-aglaya .light-beam {
  position: absolute; top: 14%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(80,120,180,.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: naa1-beam 6s ease-in-out infinite alternate;
}
.scn-nastasia-aware-of-aglaya .figure {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #0a0a14 0%, #16162a 50%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: naa1-figure 4s ease-in-out infinite;
}
.scn-nastasia-aware-of-aglaya .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  pointer-events: none;
  animation: naa1-shadow 12s ease-in-out infinite;
}
@keyframes naa1-backdrop { 0% {opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes naa1-wall { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.01)} 100%{transform:scaleY(1)} }
@keyframes naa1-window { 0%{box-shadow:0 0 20px #1a2a4e,inset 0 0 5px #3a5a80} 50%{box-shadow:0 0 40px #2a4a6e,inset 0 0 15px #5a8ab0} 100%{box-shadow:0 0 25px #1a2a4e,inset 0 0 8px #3a5a80} }
@keyframes naa1-beam { 0%{opacity:.4;transform:translateX(0)} 50%{opacity:.6;transform:translateX(2%)} 100%{opacity:.3;transform:translateX(-1%)} }
@keyframes naa1-figure { 0%{transform:rotate(-2deg) translateY(0)} 25%{transform:rotate(1deg) translateY(-1%)} 50%{transform:rotate(-1deg) translateY(0)} 75%{transform:rotate(2deg) translateY(-2%)} 100%{transform:rotate(-2deg) translateY(0)} }
@keyframes naa1-shadow { 0%{opacity:.6} 50%{opacity:.8} 100%{opacity:.5} }

/* Scene: nastasia-plays-rumour */
.scn-nastasia-plays-rumour {
  background: linear-gradient(180deg, #0e0e1a 0%, #1c1c2e 40%, #0a0a12 100%), radial-gradient(ellipse at 40% 70%, #2a2a3e 0%, transparent 60%);
}
.scn-nastasia-plays-rumour .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141426 0%, #1a1a30 50%, #0e0e1e 100%);
  animation: npr1-bg 15s ease-in-out infinite alternate;
}
.scn-nastasia-plays-rumour .table {
  position: absolute; bottom: 16%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: npr1-table 8s ease-in-out infinite;
}
.scn-nastasia-plays-rumour .candle {
  position: absolute; bottom: 22%; left: 42%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 40%, #a08060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 6px #f0e0c0;
  animation: npr1-candle 6s ease-in-out infinite alternate;
}
.scn-nastasia-plays-rumour .flame-glow {
  position: absolute; bottom: 32%; left: 40%; width: 8%; height: 10%;
  background: radial-gradient(circle, #f0c060 0%, #e09040 40%, transparent 70%);
  filter: blur(4px);
  animation: npr1-flame 2s ease-in-out infinite alternate;
}
.scn-nastasia-plays-rumour .figure-profile {
  position: absolute; bottom: 12%; left: 38%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 0 60% 40% 50% / 0 50% 30% 50%;
  transform-origin: bottom center;
  animation: npr1-figure 5s ease-in-out infinite;
}
.scn-nastasia-plays-rumour .cast-shadow {
  position: absolute; bottom: 12%; left: 20%; width: 40%; height: 20%;
  background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: npr1-shadow 6s ease-in-out infinite alternate;
}
@keyframes npr1-bg { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.8} }
@keyframes npr1-table { 0%{transform:translateY(0)} 50%{transform:translateY(-1%)} 100%{transform:translateY(0)} }
@keyframes npr1-candle { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.05)} 100%{transform:scaleY(.98)} }
@keyframes npr1-flame { 0%{opacity:.6;transform:scale(.9) translateY(0)} 50%{opacity:1;transform:scale(1.1) translateY(-2%)} 100%{opacity:.7;transform:scale(.95) translateY(1%)} }
@keyframes npr1-figure { 0%{transform:rotate(-1deg) translateX(0)} 25%{transform:rotate(2deg) translateX(1%)} 50%{transform:rotate(0) translateX(0)} 75%{transform:rotate(-3deg) translateX(-1%)} 100%{transform:rotate(-1deg) translateX(0)} }
@keyframes npr1-shadow { 0%{opacity:.4;transform:scaleX(.9)} 50%{opacity:.6;transform:scaleX(1.1)} 100%{opacity:.3;transform:scaleX(1)} }

/* Scene: drive-past-house */
.scn-drive-past-house {
  background: linear-gradient(180deg, #a0c0e0 0%, #e0f0ff 40%, #b0d0f0 100%), radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 70%);
}
.scn-drive-past-house .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #80b0e0 0%, #c0e0ff 100%);
  animation: dph1-sky 20s linear infinite;
}
.scn-drive-past-house .house {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #c09060 0%, #a07050 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 8px 0 15px rgba(0,0,0,.2);
  animation: dph1-house 20s linear infinite;
}
.scn-drive-past-house .tree {
  position: absolute; bottom: 28%; left: 55%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,.15);
  animation: dph1-tree 20s linear infinite;
}
.scn-drive-past-house .window-frame {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 90%;
  border: 12px solid #3a2a1a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  pointer-events: none;
}
.scn-drive-past-house .passenger-silhouette {
  position: absolute; bottom: 10%; left: 10%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dph1-passenger 3s ease-in-out infinite;
}
.scn-drive-past-house .motion-blur {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.1) 0%, transparent 20%, transparent 80%, rgba(0,0,0,.1) 100%);
  pointer-events: none;
  animation: dph1-blur 4s ease-in-out infinite alternate;
}
@keyframes dph1-sky { 0%{transform:translateX(0)} 100%{transform:translateX(-15%)} }
@keyframes dph1-house { 0%{transform:translateX(0)} 100%{transform:translateX(-20%)} }
@keyframes dph1-tree { 0%{transform:translateX(0)} 100%{transform:translateX(-30%)} }
@keyframes dph1-passenger { 0%{transform:rotate(-2deg) translateY(0)} 30%{transform:rotate(1deg) translateY(-2%)} 60%{transform:rotate(-1deg) translateY(1%)} 100%{transform:rotate(0) translateY(0)} }
@keyframes dph1-blur { 0%{opacity:.3} 50%{opacity:.5} 100%{opacity:.2} }

/* Scene: pre-wedding-days */
.scn-pre-wedding-days {
  background: linear-gradient(180deg, #b0b8c8 0%, #d0d8e0 40%, #c0c8d0 100%), radial-gradient(ellipse at 50% 100%, #e0e4e8 0%, transparent 70%);
}
.scn-pre-wedding-days .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8c8d0 0%, #d8dce0 50%, #b8b8c0 100%);
  animation: pwd1-bg 25s ease-in-out infinite alternate;
}
.scn-pre-wedding-days .window {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at center, #e0e8f0 0%, #b0c0d0 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px #a0b0c0, 0 0 30px rgba(160,176,192,.3);
  animation: pwd1-window 15s ease-in-out infinite alternate;
}
.scn-pre-wedding-days .diffuse-light {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(200,210,220,.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: pwd1-light 20s ease-in-out infinite alternate;
}
.scn-pre-wedding-days .chair {
  position: absolute; bottom: 12%; left: 32%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 4px 4px 8px rgba(0,0,0,.15);
  animation: pwd1-chair 8s ease-in-out infinite;
}
.scn-pre-wedding-days .figure {
  position: absolute; bottom: 18%; left: 38%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #5a5a6a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pwd1-figure 6s ease-in-out infinite;
}
.scn-pre-wedding-days .table {
  position: absolute; bottom: 8%; left: 45%; width: 18%; height: 6%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: pwd1-table 10s ease-in-out infinite alternate;
}
.scn-pre-wedding-days .ornament {
  position: absolute; bottom: 12%; left: 48%; width: 6%; height: 4%;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px #c0b090;
  animation: pwd1-ornament 7s ease-in-out infinite alternate;
}
@keyframes pwd1-bg { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.95} }
@keyframes pwd1-window { 0%{box-shadow:inset 0 0 15px #a0b0c0,0 0 20px rgba(160,176,192,.2)} 50%{box-shadow:inset 0 0 25px #b0c0d0,0 0 40px rgba(176,192,208,.4)} 100%{box-shadow:inset 0 0 18px #a0b0c0,0 0 25px rgba(160,176,192,.25)} }
@keyframes pwd1-light { 0%{opacity:.4;transform:translateY(0)} 50%{opacity:.6;transform:translateY(-2%)} 100%{opacity:.5;transform:translateY(1%)} }
@keyframes pwd1-chair { 0%{transform:translateY(0)} 50%{transform:translateY(-1%)} 100%{transform:translateY(0)} }
@keyframes pwd1-figure { 0%{transform:rotate(-1deg) scaleY(1)} 30%{transform:rotate(1deg) scaleY(1.01)} 60%{transform:rotate(0) scaleY(.98)} 100%{transform:rotate(-1deg) scaleY(1)} }
@keyframes pwd1-table { 0%{transform:translateY(0)} 50%{transform:translateY(-1%)} 100%{transform:translateY(0)} }
@keyframes pwd1-ornament { 0%{opacity:.7;transform:scale(1) rotate(0)} 50%{opacity:.9;transform:scale(1.1) rotate(5deg)} 100%{opacity:.8;transform:scale(1)} }

.scn-general-uses-prince { background: linear-gradient(180deg, #c8a065 0%, #a07a4a 60%, #7a5a3a 100%), radial-gradient(ellipse at 70% 30%, #e0b080 0%, transparent 60%); }
.scn-general-uses-prince .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4b88a 0%, #b8945a 100%); animation: gup-haze 14s ease-in-out infinite alternate; }
.scn-general-uses-prince .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a6a44 0%, #5a3e22 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-general-uses-prince .doorway { position:absolute; bottom:15%; left:20%; width:100px; height:140px; background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 0 4px #6a4a30; animation: gup-door 20s ease-in-out infinite; }
.scn-general-uses-prince .prince-figure { position:absolute; bottom:22%; left:32%; width:30px; height:80px; background: linear-gradient(180deg, #c8a884 0%, #a08060 40%, #6a5040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gup-bow 6s ease-in-out infinite; }
.scn-general-uses-prince .general-figure { position:absolute; bottom:22%; right:25%; width:34px; height:76px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1e12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: gup-fidget 3s ease-in-out infinite; }
.scn-general-uses-prince .lamp { position:absolute; top:15%; right:35%; width:20px; height:30px; background: radial-gradient(ellipse, #ffe0a0 0%, #d0a060 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 24px rgba(255,208,128,.4); animation: gup-glow 4s ease-in-out infinite alternate; }
.scn-general-uses-prince .shadow-1 { position:absolute; bottom:20%; left:15%; width:120px; height:30px; background: linear-gradient(180deg, rgba(40,20,10,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: gup-shift 12s ease-in-out infinite alternate; }
.scn-general-uses-prince .shadow-2 { position:absolute; bottom:18%; right:10%; width:140px; height:25px; background: linear-gradient(180deg, rgba(30,15,5,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: gup-shift 15s ease-in-out infinite alternate-reverse; }
@keyframes gup-haze { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes gup-door { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes gup-bow { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(6px) rotate(-8deg) } 60% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gup-fidget { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2px) rotate(3deg) } 40% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(1px) rotate(1deg) } 80% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gup-glow { 0% { box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,.3); opacity:.85 } 50% { box-shadow: 0 0 50px 16px #ffe0a0, 0 0 100px 32px rgba(255,224,160,.5); opacity:1 } 100% { box-shadow: 0 0 35px 10px #ffd080, 0 0 70px 20px rgba(255,208,128,.35); opacity:.9 } }
@keyframes gup-shift { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(12px) scaleX(1.1) } 100% { transform: translateX(-8px) scaleX(.95) } }

.scn-mrs-epanchin-reluctance { background: linear-gradient(180deg, #b0a8a0 0%, #8a8280 50%, #6a6260 100%), radial-gradient(ellipse at 30% 50%, #c8c0b8 0%, transparent 70%); }
.scn-mrs-epanchin-reluctance .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8c0b4 0%, #a09888 100%); animation: mer-flicker 8s ease-in-out infinite; }
.scn-mrs-epanchin-reluctance .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-mrs-epanchin-reluctance .mrs-figure { position:absolute; bottom:18%; left:25%; width:36px; height:82px; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 60%, #1a0e2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mer-turn 5s ease-in-out infinite; }
.scn-mrs-epanchin-reluctance .general-figure { position:absolute; bottom:18%; right:22%; width:34px; height:78px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1e12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mer-plead 3s ease-in-out infinite; }
.scn-mrs-epanchin-reluctance .window { position:absolute; top:10%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 0 6px #5a4a3a, 0 8px 20px rgba(0,0,0,.3); animation: mer-window 10s ease-in-out infinite; }
.scn-mrs-epanchin-reluctance .shadow { position:absolute; bottom:15%; left:30%; width:160px; height:40px; background: linear-gradient(180deg, rgba(30,20,15,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: mer-long 9s ease-in-out infinite alternate; }
.scn-mrs-epanchin-reluctance .clock-pendulum { position:absolute; top:8%; left:50%; width:4px; height:60px; background: linear-gradient(180deg, #c8b888 0%, #a08858 100%); border-radius: 20%; transform-origin: top center; animation: mer-swing 2s ease-in-out infinite; }
@keyframes mer-flicker { 0% { opacity:.85 } 30% { opacity:1 } 60% { opacity:.9 } 100% { opacity:.85 } }
@keyframes mer-turn { 0% { transform: translateX(0) rotate(0); opacity:1 } 25% { transform: translateX(8px) rotate(-12deg); opacity:.95 } 50% { transform: translateX(-4px) rotate(4deg); opacity:1 } 75% { transform: translateX(6px) rotate(-6deg); opacity:.9 } 100% { transform: translateX(0) rotate(0); opacity:1 } }
@keyframes mer-plead { 0% { transform: translateX(0) translateY(0) rotate(0) } 20% { transform: translateX(4px) translateY(-2px) rotate(6deg) } 40% { transform: translateX(-6px) translateY(1px) rotate(-4deg) } 60% { transform: translateX(3px) translateY(-1px) rotate(3deg) } 80% { transform: translateX(-2px) translateY(0) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mer-window { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.02); opacity:1 } 100% { transform: scale(.98); opacity:.85 } }
@keyframes mer-long { 0% { transform: translateX(0) scaleX(1); opacity:.6 } 50% { transform: translateX(20px) scaleX(1.2); opacity:.8 } 100% { transform: translateX(-15px) scaleX(.95); opacity:.5 } }
@keyframes mer-swing { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-15deg) } }

.scn-daughters-welcome-prince { background: linear-gradient(180deg, #d4b888 0%, #b89860 50%, #9a7a4a 100%), radial-gradient(ellipse at 50% 80%, #e8c888 0%, transparent 60%); }
.scn-daughters-welcome-prince .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0c898 0%, #c8a870 100%); animation: dwp-warm 12s ease-in-out infinite alternate; }
.scn-daughters-welcome-prince .table { position:absolute; bottom:15%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4), 0 -4px 12px rgba(0,0,0,.2); }
.scn-daughters-welcome-prince .prince-figure { position:absolute; bottom:28%; left:38%; width:28px; height:72px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 60%, #5a3e2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dwp-seat 8s ease-in-out infinite; }
.scn-daughters-welcome-prince .daughter-1 { position:absolute; bottom:26%; left:52%; width:30px; height:70px; background: linear-gradient(180deg, #d8b898 0%, #b09070 50%, #7a5a44 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: dwp-bow 5s ease-in-out infinite; }
.scn-daughters-welcome-prince .daughter-2 { position:absolute; bottom:26%; left:58%; width:28px; height:68px; background: linear-gradient(180deg, #d0b090 0%, #a88868 50%, #6a4e3a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: dwp-bow 6s ease-in-out infinite -2s; }
.scn-daughters-welcome-prince .candle { position:absolute; bottom:42%; left:48%; width:8px; height:24px; background: linear-gradient(180deg, #e8d8b8 0%, #c8a870 100%); border-radius: 20% 20% 10% 10%; animation: dwp-candle 3s ease-in-out infinite; }
.scn-daughters-welcome-prince .warm-glow { position:absolute; bottom:38%; left:44%; width:80px; height:80px; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: dwp-pulse 5s ease-in-out infinite alternate; }
@keyframes dwp-warm { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dwp-seat { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dwp-bow { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(8deg) } 60% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dwp-candle { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(.95); opacity:.85 } }
@keyframes dwp-pulse { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:.9 } 100% { transform: scale(.95); opacity:.5 } }

.scn-prince-meets-family { background: linear-gradient(180deg, #d0b080 0%, #b09060 50%, #8a6e44 100%), radial-gradient(ellipse at 60% 40%, #e8c898 0%, transparent 50%); }
.scn-prince-meets-family .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #dcc090 0%, #c8a868 100%); animation: pmf-haze 16s ease-in-out infinite alternate; }
.scn-prince-meets-family .group-father { position:absolute; bottom:18%; left:12%; width:32px; height:74px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1e12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pmf-gather 7s ease-in-out infinite; }
.scn-prince-meets-family .group-mother { position:absolute; bottom:18%; left:22%; width:36px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 60%, #3a2a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pmf-gather 9s ease-in-out infinite -3s; }
.scn-prince-meets-family .group-daughters { position:absolute; bottom:18%; left:32%; width:28px; height:68px; background: linear-gradient(180deg, #c8b098 0%, #a08870 50%, #6a5040 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pmf-gather 8s ease-in-out infinite -1s; }
.scn-prince-meets-family .prince-figure { position:absolute; bottom:18%; right:25%; width:30px; height:76px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 60%, #5a3e2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pmf-write 4s ease-in-out infinite; }
.scn-prince-meets-family .album { position:absolute; bottom:32%; right:30%; width:40px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-6deg); animation: pmf-album 6s ease-in-out infinite; }
.scn-prince-meets-family .lamp { position:absolute; top:12%; right:45%; width:18px; height:28px; background: radial-gradient(ellipse, #ffe8b0 0%, #d0a868 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 12px #ffd890, 0 0 80px 24px rgba(255,216,144,.4); animation: pmf-glow 5s ease-in-out infinite alternate; }
.scn-prince-meets-family .warm-haze { position:absolute; top:5%; left:10%; width:200px; height:100px; background: linear-gradient(180deg, rgba(255,224,160,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(20px); animation: pmf-drift 25s linear infinite; }
@keyframes pmf-haze { 0% { opacity:.75; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } 100% { opacity:.85; transform: scale(.97) } }
@keyframes pmf-gather { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(-2deg) } 60% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pmf-write { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(6deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pmf-album { 0% { transform: rotate(-6deg) scale(1) } 50% { transform: rotate(-4deg) scale(1.02) } 100% { transform: rotate(-6deg) scale(1) } }
@keyframes pmf-glow { 0% { box-shadow: 0 0 30px 8px #ffd890, 0 0 60px 16px rgba(255,216,144,.3); opacity:.85 } 50% { box-shadow: 0 0 50px 16px #ffe8b0, 0 0 100px 32px rgba(255,232,176,.5); opacity:1 } 100% { box-shadow: 0 0 35px 10px #ffd890, 0 0 70px 20px rgba(255,216,144,.35); opacity:.9 } }
@keyframes pmf-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* Scene: prince-theorizes (calm, dim interior) */
.scn-prince-theorizes {
  background: 
    linear-gradient(180deg, #3a2a1e 0%, #1e1208 60%, #0a0602 100%),
    radial-gradient(circle at 30% 20%, #4a3828 0%, transparent 70%);
}
.scn-prince-theorizes .pt-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  animation: pt-bg 30s ease-in-out infinite alternate;
}
.scn-prince-theorizes .pt-desk {
  position: absolute; bottom: 20%; left: 10%; width: 55%; height: 8%;
  background: linear-gradient(180deg, #5a3a1e 0%, #3a2210 100%);
  border-radius: 2% 2% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: pt-desk 12s ease-in-out infinite alternate;
}
.scn-prince-theorizes .pt-candle {
  position: absolute; bottom: 28%; left: 18%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 40%, #8a6030 100%);
  border-radius: 40% 40% 20% 20% / 20% 20% 60% 60%;
  box-shadow: 0 0 20px 8px rgba(200, 160, 60, 0.5);
  animation: pt-candle 3s ease-in-out infinite;
}
.scn-prince-theorizes .pt-flame {
  position: absolute; bottom: 40%; left: 18%; width: 3%; height: 7%;
  background: radial-gradient(circle, #ffd060 0%, #e08820 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #e08820, 0 0 60px 30px rgba(224, 136, 32, 0.4);
  animation: pt-flame 2s ease-in-out infinite alternate;
}
.scn-prince-theorizes .pt-figure {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 28%;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #1a1208 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-figure 8s ease-in-out infinite;
}
.scn-prince-theorizes .pt-book {
  position: absolute; bottom: 21%; left: 24%; width: 10%; height: 4%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 4% 4% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: pt-book 6s ease-in-out infinite alternate;
}
.scn-prince-theorizes .pt-shadow {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 2%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: pt-shadow 12s ease-in-out infinite alternate;
}
@keyframes pt-bg {
  0% { opacity: .9; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes pt-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pt-candle {
  0% { transform: scaleY(1) scaleX(1); }
  50% { transform: scaleY(1.02) scaleX(0.98); }
  100% { transform: scaleY(0.99) scaleX(1.01); }
}
@keyframes pt-flame {
  0% { transform: translateY(0) rotate(-2deg); opacity: .9; }
  50% { transform: translateY(-3px) rotate(2deg); opacity: 1; box-shadow: 0 0 35px 18px #e08820, 0 0 70px 35px rgba(224,136,32,.5); }
  100% { transform: translateY(0) rotate(-1deg); opacity: .85; box-shadow: 0 0 25px 12px #d07820, 0 0 50px 25px rgba(208,120,32,.3); }
}
@keyframes pt-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pt-book {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(1px); }
  100% { transform: rotate(-5.5deg) translateX(0); }
}
@keyframes pt-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.05); opacity: .7; }
  100% { transform: scaleX(1); opacity: .55; }
}

/* Scene: prince-reasons (calm, dim interior) */
.scn-prince-reasons {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0e04 50%, #0a0602 100%),
    radial-gradient(circle at 60% 30%, #3a2816 0%, transparent 70%);
}
.scn-prince-reasons .pr-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1208 0%, #0a0602 100%);
  animation: pr-bg 30s ease-in-out infinite alternate;
}
.scn-prince-reasons .pr-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-prince-reasons .pr-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(180deg, #3a2816 0%, #2a1a0e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-prince-reasons .pr-figure {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 40%;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #120a04 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure 6s ease-in-out infinite;
}
.scn-prince-reasons .pr-chair {
  position: absolute; bottom: 20%; left: 50%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pr-chair 10s ease-in-out infinite;
}
.scn-prince-reasons .pr-lamp {
  position: absolute; bottom: 40%; left: 70%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #c89050 0%, #8a6020 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 60% 60%;
  box-shadow: 0 0 20px 6px #a07030;
  animation: pr-lamp 4s ease-in-out infinite alternate;
}
.scn-prince-reasons .pr-shadow {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: pr-shadow 8s ease-in-out infinite alternate;
}
@keyframes pr-bg {
  0% { opacity: .9; }
  50% { opacity: .85; }
  100% { opacity: .95; }
}
@keyframes pr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pr-chair {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes pr-lamp {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 15px 4px #a07030; }
  50% { transform: scaleY(1.03) scaleX(0.97); opacity: 1; box-shadow: 0 0 25px 8px #b08040; }
  100% { transform: scaleY(0.98) scaleX(1.02); opacity: .85; box-shadow: 0 0 18px 5px #906028; }
}
@keyframes pr-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .5; }
  50% { transform: translateX(4px) scaleX(1.1); opacity: .7; }
  100% { transform: translateX(0) scaleX(1); opacity: .4; }
}

/* Scene: prince-concludes-illness (dark, dim interior) */
.scn-prince-concludes-illness {
  background: 
    linear-gradient(180deg, #0a0602 0%, #1a0e04 40%, #0a0602 100%),
    radial-gradient(circle at 40% 60%, #1a1208 0%, transparent 80%);
}
.scn-prince-concludes-illness .pci-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0602 0%, #1a0e04 40%, #0a0602 100%);
  animation: pci-bg 40s ease-in-out infinite alternate;
}
.scn-prince-concludes-illness .pci-couch {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 20px rgba(0,0,0,.7);
}
.scn-prince-concludes-illness .pci-figure {
  position: absolute; bottom: 18%; left: 25%; width: 20%; height: 25%;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #1a1208 0%, #0a0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pci-figure 12s ease-in-out infinite;
}
.scn-prince-concludes-illness .pci-table {
  position: absolute; bottom: 12%; left: 55%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2816 0%, #2a1a0e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-prince-concludes-illness .pci-candle {
  position: absolute; bottom: 22%; left: 58%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #cc8840 0%, #8a5020 100%);
  border-radius: 40% 40% 20% 20% / 20% 20% 60% 60%;
  box-shadow: 0 0 10px 4px #804020;
  animation: pci-candle 5s ease-in-out infinite;
}
.scn-prince-concludes-illness .pci-drape {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 20% 60%, 0 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: pci-drape 15s ease-in-out infinite alternate;
}
.scn-prince-concludes-illness .pci-clock {
  position: absolute; top: 15%; left: 10%; width: 10%; height: 10%;
  background: radial-gradient(circle, #4a3820 0%, #2a1a0e 100%);
  border-radius: 50%;
  border: 2px solid #5a3a1e;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.6);
  animation: pci-clock 8s ease-in-out infinite;
}
@keyframes pci-bg {
  0% { opacity: .9; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes pci-figure {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes pci-candle {
  0% { opacity: .5; filter: brightness(1); }
  50% { opacity: .6; filter: brightness(0.9); }
  100% { opacity: .4; filter: brightness(0.8); }
}
@keyframes pci-drape {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes pci-clock {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}

/* Scene: prince-ignores-wedding (calm, dim interior) */
.scn-prince-ignores-wedding {
  background: 
    linear-gradient(180deg, #1e1208 0%, #2a1a0e 50%, #1a0e04 100%),
    radial-gradient(circle at 50% 30%, #3a2816 0%, transparent 70%);
}
.scn-prince-ignores-wedding .piw-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1208 0%, #0a0602 100%);
  animation: piw-bg 30s ease-in-out infinite alternate;
}
.scn-prince-ignores-wedding .piw-window {
  position: absolute; top: 10%; left: 10%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 15px 5px rgba(0,0,0,.3);
  animation: piw-window 15s ease-in-out infinite alternate;
}
.scn-prince-ignores-wedding .piw-figure {
  position: absolute; bottom: 15%; left: 35%; width: 15%; height: 45%;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #1a1208 0%, #0a0602 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: piw-figure 8s ease-in-out infinite;
}
.scn-prince-ignores-wedding .piw-table {
  position: absolute; bottom: 12%; left: 60%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2816 0%, #2a1a0e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-prince-ignores-wedding .piw-ring {
  position: absolute; bottom: 16%; left: 65%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c09050 0%, #806030 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(192, 144, 80, 0.4);
  animation: piw-ring 3s ease-in-out infinite;
}
.scn-prince-ignores-wedding .piw-drape-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #3a2816 0%, #1a0e04 100%);
  clip-path: polygon(0 0, 100% 0, 70% 50%, 100% 100%, 0 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,.5);
  animation: piw-drape-left 12s ease-in-out infinite alternate;
}
.scn-prince-ignores-wedding .piw-drape-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #3a2816 0%, #1a0e04 100%);
  clip-path: polygon(100% 0, 100% 100%, 30% 100%, 0 50%, 30% 0);
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: piw-drape-right 12s ease-in-out infinite alternate;
}
.scn-prince-ignores-wedding .piw-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e04 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
@keyframes piw-bg {
  0% { opacity: .9; }
  50% { opacity: .85; }
  100% { opacity: .95; }
}
@keyframes piw-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1.02); }
}
@keyframes piw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes piw-ring {
  0% { opacity: .6; box-shadow: 0 0 8px 2px rgba(192,144,80,.3); }
  50% { opacity: .9; box-shadow: 0 0 15px 5px rgba(192,144,80,.5); }
  100% { opacity: .5; box-shadow: 0 0 6px 1px rgba(192,144,80,.2); }
}
@keyframes piw-drape-left {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes piw-drape-right {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}

.scn-item-black-cloak {
  background: linear-gradient(180deg, #0b0e2a 0%, #161a3a 40%, #20254a 70%, #2a3058 100%), radial-gradient(ellipse at 50% 60%, #1e2440 0%, transparent 70%);
}
.scn-item-black-cloak .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0d1130 0%, #191e40 100%); animation: cl-sky 8s ease-in-out infinite alternate; }
.scn-item-black-cloak .moon { position: absolute; top: 12%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #d4d8f0 0%, #a0a8d0 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(160,168,208,.3), 0 0 80px 20px rgba(160,168,208,.15); animation: cl-moon 12s ease-in-out infinite alternate; }
.scn-item-black-cloak .figure { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a3050 0%, #101520 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cl-figure 4s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite; }
.scn-item-black-cloak .cloak { position: absolute; bottom: 25%; left: 35%; width: 50px; height: 70px; background: radial-gradient(ellipse at 50% 30%, #1a2040 0%, #0a0e20 80%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: cl-cloak 4s ease-in-out infinite; }
.scn-item-black-cloak .hand { position: absolute; bottom: 30%; left: 52%; width: 12px; height: 14px; background: linear-gradient(180deg, #c0c8e0 0%, #8088a0 100%); border-radius: 40% 40% 20% 20%; animation: cl-hand 4s ease-in-out infinite; }
.scn-item-black-cloak .money { position: absolute; bottom: 33%; left: 56%; width: 10px; height: 8px; background: #d4c8a0; border-radius: 10% 10% 30% 30%; box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: cl-money 4s ease-in-out infinite; }
.scn-item-black-cloak .shadow { position: absolute; bottom: 16%; left: 38%; width: 80px; height: 20px; background: radial-gradient(ellipse, #0a0e20 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: cl-shadow 5s ease-in-out infinite alternate; }
@keyframes cl-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes cl-moon { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 10px rgba(160,168,208,.3); } 50% { transform: translate(2px, -3px) scale(1.02); box-shadow: 0 0 50px 15px rgba(160,168,208,.4); } 100% { transform: translate(-1px, 2px) scale(.98); box-shadow: 0 0 35px 8px rgba(160,168,208,.25); } }
@keyframes cl-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cl-cloak { 0% { transform: translateX(-5px) rotate(-5deg); } 30% { transform: translateX(8px) rotate(5deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(-5px) rotate(-5deg); } }
@keyframes cl-hand { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(8px, -4px) rotate(15deg); } 70% { transform: translate(4px, -2px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes cl-money { 0% { opacity: 0; transform: translate(0, 0) scale(0.5); } 30% { opacity: 1; transform: translate(6px, -5px) scale(1); } 70% { opacity: 1; transform: translate(4px, -3px) scale(1); } 100% { opacity: 0; transform: translate(2px, 0) scale(0.5); } }
@keyframes cl-shadow { 0% { filter: blur(5px); opacity: .5; } 50% { filter: blur(8px); opacity: .8; transform: translateX(5px); } 100% { filter: blur(4px); opacity: .6; transform: translateX(0); } }

.scn-news-reaches-church {
  background: linear-gradient(180deg, #0c1028 0%, #181e3a 40%, #242a4a 70%, #30365a 100%), radial-gradient(ellipse at 50% 30%, #1c2240 0%, transparent 70%);
}
.scn-news-reaches-church .bg-arch { position: absolute; inset: 0; background: linear-gradient(180deg, #202640 0%, #101828 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-news-reaches-church .wall-left { position: absolute; top: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(90deg, #0c1020 0%, #141830 100%); }
.scn-news-reaches-church .wall-right { position: absolute; top: 0; right: 0; width: 20%; height: 100%; background: linear-gradient(270deg, #0c1020 0%, #141830 100%); }
.scn-news-reaches-church .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a1e34 0%, #0a0e1c 100%); }
.scn-news-reaches-church .pews { position: absolute; bottom: 15%; left: 22%; right: 22%; height: 30%; background: repeating-linear-gradient(90deg, #1c2238 0px, #1c2238 8px, #242a42 8px, #242a42 16px); border-radius: 4px 4px 0 0; animation: nc-pews 6s ease-in-out infinite alternate; }
.scn-news-reaches-church .figures { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%; background: radial-gradient(ellipse at 50% 70%, #2a3050 0%, #1a1e38 60%, transparent 80%); border-radius: 50%; animation: nc-figures 3s ease-in-out infinite; }
.scn-news-reaches-church .altar-light { position: absolute; bottom: 40%; left: 48%; width: 8px; height: 12px; background: radial-gradient(circle, #f0e0a0 0%, #c8b070 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,176,112,.4), 0 0 60px 20px rgba(200,176,112,.2); animation: nc-light 1.5s ease-in-out infinite alternate; }
.scn-news-reaches-church .shadow-torch { position: absolute; bottom: 18%; left: 35%; width: 120px; height: 30px; background: radial-gradient(ellipse, #0a0e20 0%, transparent 70%); filter: blur(8px); animation: nc-shadow 4s ease-in-out infinite alternate; }
@keyframes nc-pews { 0% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(.98); opacity: .7; } }
@keyframes nc-figures { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-3px) scale(1.02); } 60% { transform: translateY(2px) scale(.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes nc-light { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 25px 8px rgba(200,176,112,.3); } 50% { transform: translateY(-4px) scale(1.1); box-shadow: 0 0 40px 15px rgba(200,176,112,.5); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 25px 8px rgba(200,176,112,.3); } }
@keyframes nc-shadow { 0% { transform: translateX(0) scale(1); opacity: .6; } 50% { transform: translateX(10px) scale(1.1); opacity: .8; } 100% { transform: translateX(-5px) scale(1); opacity: .5; } }

.scn-prince-quiet {
  background: linear-gradient(180deg, #0a0e28 0%, #141838 40%, #1c2248 70%, #242a50 100%), radial-gradient(ellipse at 70% 50%, #1a2040 0%, transparent 60%);
}
.scn-prince-quiet .window-frame { position: absolute; bottom: 20%; left: 10%; width: 40%; height: 60%; border: 4px solid #2a3050; border-radius: 4px; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-prince-quiet .window-glass { position: absolute; top: 2%; left: 2%; width: 96%; height: 96%; background: linear-gradient(180deg, rgba(200,208,240,.15) 0%, rgba(100,120,180,.2) 100%); border-radius: 2px; animation: pq-glass 10s ease-in-out infinite alternate; }
.scn-prince-quiet .figure-sit { position: absolute; bottom: 18%; left: 22%; width: 28px; height: 50px; background: linear-gradient(180deg, #1a1e38 0%, #0a0e1c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pq-figure 6s ease-in-out infinite; }
.scn-prince-quiet .chair { position: absolute; bottom: 15%; left: 18%; width: 40px; height: 20px; background: linear-gradient(180deg, #2a3048 0%, #1a1e30 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pq-chair 6s ease-in-out infinite; }
.scn-prince-quiet .chair-shadow { position: absolute; bottom: 12%; left: 17%; width: 44px; height: 8px; background: radial-gradient(ellipse, #0a0e20 0%, transparent 70%); filter: blur(4px); animation: pq-chair-shadow 6s ease-in-out infinite; }
.scn-prince-quiet .moon { position: absolute; top: 8%; left: 75%; width: 40px; height: 40px; background: radial-gradient(circle, #d4d8f0 0%, #a0a8d0 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(160,168,208,.25); animation: pq-moon 20s ease-in-out infinite alternate; }
.scn-prince-quiet .stars { position: absolute; top: 2%; left: 0; right: 0; height: 50%; background: radial-gradient(1px 1px at 10% 15%, #e8ecf8, transparent), radial-gradient(1px 1px at 30% 10%, #e8ecf8, transparent), radial-gradient(1px 1px at 50% 20%, #e8ecf8, transparent), radial-gradient(1px 1px at 70% 5%, #e8ecf8, transparent), radial-gradient(1px 1px at 90% 12%, #e8ecf8, transparent), radial-gradient(1px 1px at 20% 30%, #e8ecf8, transparent), radial-gradient(1px 1px at 60% 35%, #e8ecf8, transparent), radial-gradient(1px 1px at 80% 25%, #e8ecf8, transparent); animation: pq-stars 30s linear infinite; }
@keyframes pq-glass { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes pq-figure { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes pq-chair { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes pq-chair-shadow { 0%, 100% { filter: blur(4px); } 50% { filter: blur(6px); } }
@keyframes pq-moon { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.01); } 100% { transform: translate(-2px, 1px) scale(.99); } }
@keyframes pq-stars { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .6; } }

.scn-prince-returns-home {
  background: linear-gradient(180deg, #0c1028 0%, #181e3a 40%, #242a4a 70%, #30365a 100%), radial-gradient(ellipse at 50% 70%, #1c2240 0%, transparent 70%);
}
.scn-prince-returns-home .street { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a3050 0%, #1a1e34 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-prince-returns-home .house-left { position: absolute; bottom: 20%; left: 2%; width: 30%; height: 50%; background: linear-gradient(180deg, #1c2240 0%, #10182c 100%); border-radius: 6% 6% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-prince-returns-home .house-right { position: absolute; bottom: 20%; right: 2%; width: 30%; height: 50%; background: linear-gradient(180deg, #1c2240 0%, #10182c 100%); border-radius: 6% 6% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-prince-returns-home .lanterns { position: absolute; bottom: 30%; left: 20%; width: 8px; height: 12px; background: radial-gradient(circle, #f0e0a0 0%, #c8b070 60%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,176,112,.3), 0 0 60px 20px rgba(200,176,112,.15); animation: pr-lantern 3s ease-in-out infinite alternate; }
.scn-prince-returns-home .group-figures { position: absolute; bottom: 22%; left: 30%; width: 40%; height: 30%; background: radial-gradient(ellipse at 50% 90%, #2a3050 0%, #1a1e38 60%, transparent 90%); border-radius: 50%; animation: pr-group 8s ease-in-out infinite; }
.scn-prince-returns-home .prince-figure { position: absolute; bottom: 22%; left: 48%; width: 14px; height: 35px; background: linear-gradient(180deg, #2a3050 0%, #10152c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pr-prince 6s ease-in-out infinite; }
.scn-prince-returns-home .shadow-long { position: absolute; bottom: 0; left: 45%; width: 30%; height: 20%; background: radial-gradient(ellipse, #0a0e20 0%, transparent 70%); filter: blur(8px); animation: pr-shadow 6s ease-in-out infinite; }
@keyframes pr-lantern { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 25px 8px rgba(200,176,112,.3); } 50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 40px 15px rgba(200,176,112,.5); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 25px 8px rgba(200,176,112,.3); } }
@keyframes pr-group { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(-5px) scale(1.02); } 50% { transform: translateX(0) scale(1); } 75% { transform: translateX(5px) scale(.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes pr-prince { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-1px) rotate(1deg); } 40% { transform: translateY(0) rotate(0deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pr-shadow { 0% { filter: blur(8px); opacity: .5; } 50% { filter: blur(12px); opacity: .8; transform: translateX(15px); } 100% { filter: blur(8px); opacity: .5; transform: translateX(0); } }

/* scn-keller-offers-pistol */
.scn-keller-offers-pistol {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 35%, #d4b88a 65%, #b89a6a 100%),
    radial-gradient(ellipse at 40% 30%, #fff5d6 0%, transparent 60%),
    linear-gradient(135deg, #ffe080 0%, transparent 50%, #c8a060 100%);
  position: relative;
  overflow: hidden;
}
.scn-keller-offers-pistol .sky-warm {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #e8f0d0 100%);
  animation: kp-sky 12s ease-in-out infinite alternate;
}
.scn-keller-offers-pistol .sunbeam {
  position: absolute; top: 8%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,180,0.5) 0%, transparent 100%);
  transform: rotate(18deg); filter: blur(12px);
  animation: kp-beam 8s ease-in-out infinite alternate;
}
.scn-keller-offers-pistol .town-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background:
    linear-gradient(90deg, #c8a878 0%, #d4b888 15%, #c09868 30%, #d4b888 50%, #b89858 70%, #c8a068 85%, #c8a878 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(160,120,80,0.3) 20px, rgba(160,120,80,0.3) 22px);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  animation: kp-town 20s ease-in-out infinite alternate;
}
.scn-keller-offers-pistol .inn-sign {
  position: absolute; bottom: 38%; left: 55%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #e8c070 0%, #c89840 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: kp-sign 4s ease-in-out infinite;
}
.scn-keller-offers-pistol .pistol-out {
  position: absolute; bottom: 28%; left: 46%; width: 50px; height: 12px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 40%, #6a6a7a 100%);
  border-radius: 40% 10% 10% 40% / 50% 30% 30% 50%;
  transform: rotate(-25deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: kp-pistol 2s ease-in-out infinite;
}
.scn-keller-offers-pistol .figure-a {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kp-fig-a 3s ease-in-out infinite;
}
.scn-keller-offers-pistol .figure-b {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kp-fig-b 3.2s ease-in-out infinite 0.5s;
}
.scn-keller-offers-pistol .dust-puff {
  position: absolute; bottom: 26%; left: 48%; width: 16px; height: 12px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: kp-dust 4s ease-in-out infinite;
}
@keyframes kp-sky { 0% { opacity:1; } 50% { opacity:0.85; } 100% { opacity:0.9; } }
@keyframes kp-beam { 0% { transform: rotate(16deg) scaleX(1); opacity:0.6; } 50% { transform: rotate(20deg) scaleX(1.1); opacity:0.8; } 100% { transform: rotate(16deg) scaleX(1); opacity:0.6; } }
@keyframes kp-town { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes kp-sign { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kp-pistol { 0% { transform: rotate(-25deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(4px); } 100% { transform: rotate(-25deg) translateX(0); } }
@keyframes kp-fig-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes kp-fig-b { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(-2px) rotate(-1deg) scaleY(1.02); } 60% { transform: translateX(2px) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes kp-dust { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.7; transform: translateY(-6px) scale(1.3); } 100% { opacity:0.3; transform: translateY(0) scale(1); } }

/* scn-lebedeff-intrigues */
.scn-lebedeff-intrigues {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lebedeff-intrigues .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(80,60,40,0.15) 30px, rgba(80,60,40,0.15) 32px);
  animation: li-wall 20s ease-in-out infinite alternate;
}
.scn-lebedeff-intrigues .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: li-desk 12s ease-in-out infinite alternate;
}
.scn-lebedeff-intrigues .candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a870 40%, #8a6a3a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: translateX(-50%);
  animation: li-candle 5s ease-in-out infinite;
}
.scn-lebedeff-intrigues .candle-glow {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,180,80,0.15) 40%, transparent 70%);
  transform: translate(-50%, -20px);
  border-radius: 50%;
  animation: li-glow 3s ease-in-out infinite alternate;
}
.scn-lebedeff-intrigues .papers {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.4);
  animation: li-papers 7s ease-in-out infinite;
}
.scn-lebedeff-intrigues .leb-fig {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: li-leb 4s ease-in-out infinite;
}
.scn-lebedeff-intrigues .shadow-warp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: li-shadow 15s ease-in-out infinite alternate;
}
@keyframes li-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes li-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes li-candle { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes li-glow { 0% { opacity:0.6; transform: translate(-50%, -20px) scale(0.9); } 50% { opacity:0.9; transform: translate(-50%, -24px) scale(1.1); } 100% { opacity:0.6; transform: translate(-50%, -18px) scale(0.95); } }
@keyframes li-papers { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes li-leb { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(3px) rotate(2deg) scaleY(1.01); } 50% { transform: translateX(-2px) rotate(-1deg) scaleY(0.99); } 75% { transform: translateX(3px) rotate(1deg) scaleY(1); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes li-shadow { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

/* scn-lebedeff-confesses */
.scn-lebedeff-confesses {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lebedeff-confesses .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background:
    linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 60%, #0a0a0a 100%),
    repeating-linear-gradient(45deg, transparent 0px, transparent 20px, rgba(60,40,60,0.1) 20px, rgba(60,40,60,0.1) 22px);
  animation: lc-wall 18s ease-in-out infinite alternate;
}
.scn-lebedeff-confesses .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 6px, #3a2a1a 12px);
  animation: lc-floor 12s ease-in-out infinite alternate;
}
.scn-lebedeff-confesses .prince-silhouette {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: lc-prince 5s ease-in-out infinite;
}
.scn-lebedeff-confesses .leb-bow {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: lc-bow 3s ease-in-out infinite;
}
.scn-lebedeff-confesses .lamp-glow {
  position: absolute; top: 15%; left: 45%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,180,120,0.3) 0%, rgba(255,140,80,0.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: lc-lamp 4s ease-in-out infinite alternate;
}
.scn-lebedeff-confesses .confetti-mote {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px;
  background: rgba(255,220,160,0.6); border-radius: 50%;
  animation: lc-mote-a 6s ease-in-out infinite;
}
.scn-lebedeff-confesses .confetti-mote-two {
  position: absolute; top: 30%; right: 25%; width: 5px; height: 5px;
  background: rgba(255,200,140,0.5); border-radius: 50%;
  animation: lc-mote-b 7s ease-in-out infinite 1s;
}
@keyframes lc-wall { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.75; } }
@keyframes lc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes lc-prince { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 60% { transform: translateX(-1px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes lc-bow { 0% { transform: translateX(0) rotate(-3deg) scaleY(1); } 25% { transform: translateX(2px) rotate(0deg) scaleY(0.98); } 50% { transform: translateX(-2px) rotate(3deg) scaleY(1.02); } 75% { transform: translateX(1px) rotate(1deg) scaleY(1); } 100% { transform: translateX(0) rotate(-3deg) scaleY(1); } }
@keyframes lc-lamp { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes lc-mote-a { 0% { opacity:0; transform: translateY(0) rotate(0deg); } 20% { opacity:0.6; transform: translateY(20px) rotate(30deg); } 50% { opacity:0.3; transform: translateY(50px) rotate(80deg); } 80% { opacity:0.5; transform: translateY(80px) rotate(140deg); } 100% { opacity:0; transform: translateY(100px) rotate(180deg); } }
@keyframes lc-mote-b { 0% { opacity:0; transform: translateY(0) rotate(0deg); } 20% { opacity:0.5; transform: translateY(-15px) rotate(-20deg); } 50% { opacity:0.3; transform: translateY(-40px) rotate(-60deg); } 80% { opacity:0.4; transform: translateY(-70px) rotate(-110deg); } 100% { opacity:0; transform: translateY(-90px) rotate(-180deg); } }

/* scn-lebedeff-consults-lawyer */
.scn-lebedeff-consults-lawyer {
  background:
    linear-gradient(180deg, #2a2218 0%, #1e1a12 40%, #2a2218 100%),
    radial-gradient(ellipse at 50% 35%, #3a2e20 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lebedeff-consults-lawyer .study-panel {
  position: absolute; inset: 0 0 20% 0;
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(60,40,20,0.1) 40px, rgba(60,40,20,0.1) 42px);
  animation: ll-panel 20s ease-in-out infinite alternate;
}
.scn-lebedeff-consults-lawyer .bookshelf {
  position: absolute; bottom: 30%; left: 5%; width: 18%; height: 40%;
  background:
    linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 20%, #3a2a1a 80%, #2a1a0a 100%),
    repeating-linear-gradient(180deg, transparent 0px, transparent 15px, rgba(80,60,40,0.2) 15px, rgba(80,60,40,0.2) 17px);
  border-radius: 2px; box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: ll-shelf 15s ease-in-out infinite alternate;
}
.scn-lebedeff-consults-lawyer .lawyer-desk {
  position: absolute; bottom: 18%; left: 35%; right: 10%; height: 16%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 -3px 6px rgba(0,0,0,0.5);
  animation: ll-desk 12s ease-in-out infinite alternate;
}
.scn-lebedeff-consults-lawyer .lawyer-fig {
  position: absolute; bottom: 16%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ll-lawyer 5s ease-in-out infinite;
}
.scn-lebedeff-consults-lawyer .leb-fig-two {
  position: absolute; bottom: 16%; left: 38%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ll-leb-two 4.5s ease-in-out infinite 0.3s;
}
.scn-lebedeff-consults-lawyer .paper-stack {
  position: absolute; bottom: 20%; left: 44%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 50%, #b8a888 100%);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: ll-paper 8s ease-in-out infinite;
}
.scn-lebedeff-consults-lawyer .inkwell {
  position: absolute; bottom: 21%; left: 42%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  animation: ll-ink 6s ease-in-out infinite;
}
@keyframes ll-panel { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes ll-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ll-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ll-lawyer { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(-1px) rotate(-1deg) scaleY(0.99); } 75% { transform: translateX(2px) rotate(0.5deg) scaleY(1); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ll-leb-two { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 20% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98); } 40% { transform: translateX(1px) rotate(0deg) scaleY(1.02); } 60% { transform: translateX(-1px) rotate(1deg) scaleY(0.99); } 80% { transform: translateX(2px) rotate(-1deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes ll-paper { 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 ll-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* ===== prince-wants-to-explain-to-aglaya ===== */
.scn-prince-wants-to-explain-to-aglaya {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #1c1511 100%),
    radial-gradient(ellipse at 50% 70%, #3a2518 0%, transparent 60%);
}
.scn-prince-wants-to-explain-to-aglaya .wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
  animation: pwe-wall 12s ease-in-out infinite alternate;
}
.scn-prince-wants-to-explain-to-aglaya .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #120c09 0%, #1c120c 40%, #2a1a10 100%);
  box-shadow: inset 0 8px 12px #0000003a;
  animation: pwe-floor 15s ease-in-out infinite alternate;
}
.scn-prince-wants-to-explain-to-aglaya .prince-body {
  position:absolute; bottom:22%; left:50%; width:70px; height:120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #1a120e 0%, #0c0806 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: 0 4px 12px #0000005a;
  animation: pwe-body 4s ease-in-out infinite;
}
.scn-prince-wants-to-explain-to-aglaya .prince-hands {
  position:absolute; bottom:34%; left:50%; width:24px; height:18px;
  transform: translateX(-50%) scaleX(1.3);
  background: radial-gradient(ellipse at 50% 50%, #20150e 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pwe-hands 2s ease-in-out infinite;
}
.scn-prince-wants-to-explain-to-aglaya .candle {
  position:absolute; bottom:30%; left:62%; width:10px; height:40px;
  background: linear-gradient(180deg, #e0c090 0%, #b09060 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
}
.scn-prince-wants-to-explain-to-aglaya .flame {
  position:absolute; bottom:67%; left:62%; width:8px; height:14px;
  margin-left:1px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e08030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px #ffb060;
  animation: pwe-flame 0.4s ease-in-out infinite;
}
.scn-prince-wants-to-explain-to-aglaya .glow {
  position:absolute; bottom:55%; left:60%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,200,100,0.25) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: pwe-glow 1.8s ease-in-out infinite alternate;
}
@keyframes pwe-wall { 0% { opacity:.85; box-shadow: inset 0 0 30px #0000002a; } 100% { opacity:.95; box-shadow: inset 0 0 60px #0000004a; } }
@keyframes pwe-floor { 0% { opacity:.9; } 100% { opacity:1; } }
@keyframes pwe-body { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes pwe-hands { 0%,100% { transform: translateX(-50%) scaleX(1.3) rotate(0deg); } 50% { transform: translateX(-50%) scaleX(1.3) rotate(-2deg) scaleY(1.05); } }
@keyframes pwe-flame { 0% { transform: scale(1,1); opacity:.9; } 25% { transform: scale(1.05,1.1); } 50% { transform: scale(0.95,0.9); opacity:1; } 75% { transform: scale(1.08,1.05); } 100% { transform: scale(1,1); opacity:.9; } }
@keyframes pwe-glow { 0% { opacity:.4; transform: translate(-50%,-50%) scale(1); } 100% { opacity:.7; transform: translate(-50%,-50%) scale(1.2); } }

/* ===== evgenie-refuses ===== */
.scn-evgenie-refuses {
  background:
    linear-gradient(180deg, #1e1814 0%, #2c221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 30% 50%, #3a2518 0%, transparent 70%);
}
.scn-evgenie-refuses .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2c221c 0%, #1e1814 100%);
  animation: erf-wall 14s ease-in-out infinite alternate;
}
.scn-evgenie-refuses .door-frame {
  position:absolute; top:0; bottom:40%; left:45%; width:20%;
  background: linear-gradient(0deg, #0f0a08 0%, #1a1410 100%);
  border-left: 6px solid #0c0806;
  border-right: 6px solid #0c0806;
  box-shadow: inset 0 0 20px #0000005a;
  animation: erf-door 18s ease-in-out infinite alternate;
}
.scn-evgenie-refuses .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #0f0a08 0%, #1c120e 100%);
  box-shadow: inset 0 8px 12px #0000003a;
}
.scn-evgenie-refuses .figure-fore {
  position:absolute; bottom:15%; left:52%; width:60px; height:110px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #20150e 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px #0000005a;
  animation: erf-figure-fore 3s ease-in-out infinite;
}
.scn-evgenie-refuses .figure-back {
  position:absolute; bottom:18%; left:42%; width:50px; height:100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #1a120e 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 4px 8px #0000005a;
  animation: erf-figure-back 4s ease-in-out infinite;
}
.scn-evgenie-refuses .lamp {
  position:absolute; bottom:50%; left:35%; width:12px; height:18px;
  background: linear-gradient(180deg, #c09050 0%, #a07040 100%);
  border-radius: 2px;
  transform: rotate(3deg);
}
.scn-evgenie-refuses .lamp-glow {
  position:absolute; bottom:48%; left:35%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(240,200,120,0.2) 0%, transparent 60%);
  transform: translate(-50%, -50%);
  animation: erf-glow 2.5s ease-in-out infinite alternate;
}
@keyframes erf-wall { 0% { opacity:.8; } 100% { opacity:1; } }
@keyframes erf-door { 0% { box-shadow: inset 0 0 10px #0000003a; } 100% { box-shadow: inset 0 0 30px #0000006a; } }
@keyframes erf-figure-fore { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } }
@keyframes erf-figure-back { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } }
@keyframes erf-glow { 0% { opacity:.3; transform: translate(-50%,-50%) scale(1); } 100% { opacity:.6; transform: translate(-50%,-50%) scale(1.2); } }

/* ===== evgenie-questions-marriage ===== */
.scn-evgenie-questions-marriage {
  background:
    linear-gradient(180deg, #1c1814 0%, #2a2018 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #3a2518 0%, transparent 50%);
}
.scn-evgenie-questions-marriage .bg {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1c1814 100%);
  border-radius: 0 0 10% 10% / 0 0 4% 4%;
}
.scn-evgenie-questions-marriage .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #120c0a 0%, #1c1410 100%);
  box-shadow: inset 0 6px 12px #0000003a;
}
.scn-evgenie-questions-marriage .table {
  position:absolute; bottom:18%; left:50%; width:90px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3525 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px #0000005a;
  animation: eqm-table 8s ease-in-out infinite alternate;
}
.scn-evgenie-questions-marriage .figure-left {
  position:absolute; bottom:22%; left:35%; width:45px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #20150e 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: eqm-fig-left 4s ease-in-out infinite;
}
.scn-evgenie-questions-marriage .figure-right {
  position:absolute; bottom:22%; left:65%; width:45px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #1a120e 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: eqm-fig-right 4.5s ease-in-out infinite;
}
.scn-evgenie-questions-marriage .candle {
  position:absolute; bottom:40%; left:50%; width:8px; height:28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 2px;
}
.scn-evgenie-questions-marriage .flame {
  position:absolute; bottom:63%; left:50%; width:6px; height:12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #d08030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eqm-flame 0.5s ease-in-out infinite;
}
.scn-evgenie-questions-marriage .glow {
  position:absolute; bottom:55%; left:50%; width:70px; height:70px;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: eqm-glow 2s ease-in-out infinite alternate;
}
@keyframes eqm-table { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(0.97); } }
@keyframes eqm-fig-left { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes eqm-fig-right { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } }
@keyframes eqm-flame { 0% { transform: scale(1,1); opacity:.9; } 25% { transform: scale(1.05,1.1); } 50% { transform: scale(0.95,0.9); opacity:1; } 75% { transform: scale(1.08,1.05); } 100% { transform: scale(1,1); opacity:.9; } }
@keyframes eqm-glow { 0% { opacity:.3; transform: translate(-50%,-50%) scale(1); } 100% { opacity:.6; transform: translate(-50%,-50%) scale(1.15); } }

/* ===== prince-contradicts-own-love ===== */
.scn-prince-contradicts-own-love {
  background:
    linear-gradient(180deg, #181210 0%, #261c16 50%, #16100c 100%),
    radial-gradient(ellipse at 60% 50%, #302018 0%, transparent 60%);
}
.scn-prince-contradicts-own-love .bg {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #261c16 0%, #181210 100%);
  border-radius: 0 0 12% 12% / 0 0 6% 6%;
  animation: pco-bg 16s ease-in-out infinite alternate;
}
.scn-prince-contradicts-own-love .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #0e0a08 0%, #16100c 100%);
  box-shadow: inset 0 6px 10px #0000003a;
}
.scn-prince-contradicts-own-love .figure {
  position:absolute; bottom:15%; left:50%; width:65px; height:110px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #1a120e 0%, #0c0806 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px #0000005a;
  animation: pco-figure 5s ease-in-out infinite;
}
.scn-prince-contradicts-own-love .letter {
  position:absolute; bottom:30%; left:50%; width:30px; height:20px;
  transform: translateX(-50%) rotate(-8deg);
  background: linear-gradient(135deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px #0000004a;
  animation: pco-letter 6s ease-in-out infinite;
}
.scn-prince-contradicts-own-love .lamp {
  position:absolute; bottom:48%; left:65%; width:10px; height:22px;
  background: linear-gradient(180deg, #c09050 0%, #a07040 100%);
  border-radius: 2px;
  transform: rotate(4deg);
}
.scn-prince-contradicts-own-love .light {
  position:absolute; bottom:45%; left:65%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(240,200,120,0.15) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: pco-light 2.5s ease-in-out infinite alternate;
}
@keyframes pco-bg { 0% { opacity:.85; } 100% { opacity:1; } }
@keyframes pco-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } }
@keyframes pco-letter { 0%,100% { transform: translateX(-50%) rotate(-8deg); } 50% { transform: translateX(-50%) rotate(-10deg) translateY(-1px); } }
@keyframes pco-light { 0% { opacity:.3; transform: translate(-50%,-50%) scale(1); } 100% { opacity:.6; transform: translate(-50%,-50%) scale(1.1); } }

.scn-prince-and-hippolyte {
  background: linear-gradient(135deg, #2c1e12 0%, #4a3220 50%, #3a2518 100%),
              radial-gradient(ellipse at 30% 20%, #5c4028 0%, transparent 60%);
}
.scn-prince-and-hippolyte .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2518 100%);
  animation: pah-wall 14s ease-in-out infinite alternate;
}
.scn-prince-and-hippolyte .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6b4d32 0%, #4a3220 100%);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.6);
  animation: pah-table 6s ease-in-out infinite;
}
.scn-prince-and-hippolyte .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #1e1310 0%, #120b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pah-fig1 9s ease-in-out infinite;
}
.scn-prince-and-hippolyte .figure-right {
  position: absolute; bottom: 20%; right: 15%; width: 36px; height: 62px;
  background: linear-gradient(180deg, #221510 0%, #140c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pah-fig2 10s ease-in-out infinite alternate;
}
.scn-prince-and-hippolyte .candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #d9a85c 0%, #a07a3c 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pah-candle 4s ease-in-out infinite alternate;
}
.scn-prince-and-hippolyte .glow {
  position: absolute; bottom: 26%; left: 44%; width: 16px; height: 16px;
  background: radial-gradient(circle, rgba(230,190,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(230,190,100,0.5);
  animation: pah-glow 4s ease-in-out infinite alternate;
}
.scn-prince-and-hippolyte .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.4) 90%);
  pointer-events: none;
  animation: pah-shadow 20s ease-in-out infinite;
}
@keyframes pah-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes pah-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes pah-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 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 pah-fig2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pah-candle { 0% { height:12px; opacity:.8 } 50% { height:14px; opacity:1 } 100% { height:11px; opacity:.9 } }
@keyframes pah-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.6; transform: scale(1.1) } }
@keyframes pah-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

.scn-hippolyte-reveals-paper {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e16 50%, #1a0f0a 100%),
              radial-gradient(ellipse at 60% 40%, #3a251a 0%, transparent 65%);
}
.scn-hippolyte-reveals-paper .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%);
  animation: hrp-wall 16s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-paper .table {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2518 100%);
  border-radius: 12px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: hrp-table 5s ease-in-out infinite;
}
.scn-hippolyte-reveals-paper .figure-left {
  position: absolute; bottom: 22%; left: 18%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1e0f08 0%, #0d0704 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrp-fig1 8s ease-in-out infinite;
}
.scn-hippolyte-reveals-paper .arm {
  position: absolute; bottom: 32%; left: 26%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #1e0f08 0%, #0d0704 100%);
  border-radius: 40% 20% 20% 40%;
  transform-origin: left center;
  animation: hrp-arm 5s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-paper .paper {
  position: absolute; bottom: 34%; left: 34%; width: 50px; height: 36px;
  background: linear-gradient(135deg, #e8dcc4 0%, #c4b49a 100%);
  border: 2px solid #8a7a62;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hrp-paper 6s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-paper .figure-right {
  position: absolute; bottom: 20%; right: 12%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #22120a 0%, #120804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrp-fig2 9s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-paper .lamp {
  position: absolute; bottom: 36%; right: 25%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #d9a85c 0%, #a07a3c 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hrp-lamp 3s ease-in-out infinite alternate;
}
.scn-hippolyte-reveals-paper .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(0,0,0,0.6) 80%);
  pointer-events: none;
  animation: hrp-shadow 12s ease-in-out infinite;
}
@keyframes hrp-wall { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes hrp-table { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } }
@keyframes hrp-fig1 { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(2deg) } 66% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hrp-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes hrp-paper { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hrp-fig2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hrp-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes hrp-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.45 } }

.scn-sealed-packet {
  background: linear-gradient(135deg, #1e1410 0%, #2a1a12 40%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 30%, #3a2218 0%, transparent 70%);
}
.scn-sealed-packet .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%);
  animation: sp-wall 18s ease-in-out infinite alternate;
}
.scn-sealed-packet .table {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: sp-table 4s ease-in-out infinite;
}
.scn-sealed-packet .packet {
  position: absolute; bottom: 22%; left: 38%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #e8dcc4 0%, #c4b49a 100%);
  border: 3px solid #9a8a72;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: sp-packet 10s ease-in-out infinite;
}
.scn-sealed-packet .seal {
  position: absolute; bottom: 30%; left: 44%; width: 18px; height: 18px;
  background: radial-gradient(circle, #a0461a 0%, #702c10 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,70,26,0.5);
  animation: sp-seal 3s ease-in-out infinite alternate;
}
.scn-sealed-packet .left-hand {
  position: absolute; bottom: 20%; left: 28%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sp-hand-l 7s ease-in-out infinite;
}
.scn-sealed-packet .right-hand {
  position: absolute; bottom: 20%; right: 28%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sp-hand-r 7s ease-in-out infinite alternate;
}
.scn-sealed-packet .candle {
  position: absolute; bottom: 36%; left: 48%; width: 7px; height: 14px;
  background: linear-gradient(180deg, #d9a85c 0%, #a07a3c 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sp-candle 5s ease-in-out infinite alternate;
}
.scn-sealed-packet .glow {
  position: absolute; bottom: 34%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(230,190,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 30px rgba(230,190,100,0.3);
  animation: sp-glow 5s ease-in-out infinite alternate;
}
@keyframes sp-wall { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes sp-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes sp-packet { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sp-seal { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes sp-hand-l { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(4px) rotate(3deg) } 66% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes sp-hand-r { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sp-candle { 0% { height:14px; opacity:.8 } 50% { height:16px; opacity:1 } 100% { height:13px; opacity:.85 } }
@keyframes sp-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.4) } 100% { opacity:.5; transform: scale(1.1) } }

.scn-decision-to-read {
  background: linear-gradient(180deg, #1c140e 0%, #2a1a10 40%, #1a0e08 100%),
              radial-gradient(ellipse at 70% 30%, #3a2216 0%, transparent 70%);
}
.scn-decision-to-read .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1408 100%);
  animation: dr-wall 15s ease-in-out infinite alternate;
}
.scn-decision-to-read .table {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  animation: dr-table 6s ease-in-out infinite;
}
.scn-decision-to-read .packet {
  position: absolute; bottom: 24%; left: 36%; width: 70px; height: 44px;
  background: linear-gradient(135deg, #e8dcc4 0%, #c4b49a 100%);
  border: 3px solid #9a8a72;
  border-radius: 5px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dr-packet 9s ease-in-out infinite;
}
.scn-decision-to-read .royal-hand {
  position: absolute; bottom: 22%; left: 46%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0704 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: dr-hand 4s ease-in-out infinite alternate;
}
.scn-decision-to-read .figure-prince {
  position: absolute; bottom: 18%; left: 20%; width: 38px; height: 66px;
  background: linear-gradient(180deg, #1e0f08 0%, #0d0704 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-prince 10s ease-in-out infinite alternate;
}
.scn-decision-to-read .figure-evgenie {
  position: absolute; bottom: 16%; right: 18%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #22120a 0%, #120804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-evgenie 11s ease-in-out infinite;
}
.scn-decision-to-read .figure-other {
  position: absolute; bottom: 20%; right: 38%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #1e130c 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-other 12s ease-in-out infinite alternate;
}
.scn-decision-to-read .lamp {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #d9a85c 0%, #a07a3c 100%);
  border-radius: 30% 30% 10% 10%;
  animation: dr-lamp 4s ease-in-out infinite alternate;
}
.scn-decision-to-read .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 20%, rgba(0,0,0,0.5) 80%);
  pointer-events: none;
  animation: dr-shadow 14s ease-in-out infinite;
}
@keyframes dr-wall { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes dr-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.015) } }
@keyframes dr-packet { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dr-hand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dr-prince { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dr-evgenie { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(5px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dr-other { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dr-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes dr-shadow { 0% { opacity:.3 } 50% { opacity:.55 } 100% { opacity:.35 } }

.scn-train-muishkin-story {
  background:
    linear-gradient(180deg, #ffb56b 0%, #e8843a 30%, #4d2a12 60%, #1a0e06 100%),
    radial-gradient(ellipse at 40% 25%, #ffd8a0 0%, transparent 50%);
}
.scn-train-muishkin-story .window {
  position: absolute; inset: 8% 10% auto 60%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #ffe6b0 0%, #ffa84d 80%);
  border-radius: 4px; box-shadow: 0 0 40px 12px rgba(255, 180, 80, 0.5);
  animation: stm-window 12s ease-in-out infinite alternate;
}
.scn-train-muishkin-story .curtain {
  position: absolute; inset: 8% 10% auto 60%; width: 28%; height: 50%;
  background: linear-gradient(180deg, rgba(120, 60, 20, 0.4) 0%, rgba(60, 30, 10, 0.6) 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: stm-curtain 15s ease-in-out infinite;
}
.scn-train-muishkin-story .seat {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #5e3a1e 0%, #2a180a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: stm-seat 8s ease-in-out infinite;
}
.scn-train-muishkin-story .figure-muishkin {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stm-fig-l 6s ease-in-out infinite;
}
.scn-train-muishkin-story .figure-other {
  position: absolute; bottom: 30%; left: 56%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a12 0%, #0a0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stm-fig-r 7s ease-in-out infinite alternate;
}
.scn-train-muishkin-story .light-shaft {
  position: absolute; inset: 0 0 0 62%; width: 5%; height: 100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 70%);
  transform: skewX(-8deg);
  animation: stm-lshaft 20s ease-in-out infinite;
}
.scn-train-muishkin-story .shadow {
  position: absolute; inset: 40% 0 0 0; background: rgba(10,6,3,0.5);
  animation: stm-shadow 10s ease-in-out infinite alternate;
}
@keyframes stm-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.03); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes stm-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
  100% { transform: translateX(2px); }
}
@keyframes stm-seat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes stm-fig-l {
  0% { transform: translate(0,0) rotate(-1deg); }
  25% { transform: translate(2px,-1px) rotate(0deg); }
  50% { transform: translate(4px,-2px) rotate(1deg); }
  75% { transform: translate(2px,-1px) rotate(0deg); }
  100% { transform: translate(0,0) rotate(-1deg); }
}
@keyframes stm-fig-r {
  0% { transform: translate(0,0) rotate(1deg); }
  100% { transform: translate(-2px,-1px) rotate(-1deg); }
}
@keyframes stm-lshaft {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes stm-shadow {
  0% { opacity: 0.4; }
  100% { opacity: 0.6; }
}

.scn-train-russian-doctors {
  background:
    linear-gradient(180deg, #ffcc80 0%, #b87038 40%, #3d1e0c 100%),
    radial-gradient(circle at 30% 20%, #ffe0a0 0%, transparent 50%);
}
.scn-train-russian-doctors .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #a05a30 0%, #2e180a 100%);
  animation: str-bg 14s ease-in-out infinite alternate;
}
.scn-train-russian-doctors .window {
  position: absolute; inset: 5% 20% auto 20%; height: 55%;
  background: linear-gradient(180deg, #ffe6a0 0%, #ffac4a 80%);
  border-radius: 6px; box-shadow: 0 0 30px 10px rgba(255,160,60,0.4);
  animation: str-window 10s ease-in-out infinite;
}
.scn-train-russian-doctors .figure-left {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom left;
  animation: str-fig-l 3s ease-in-out infinite alternate;
}
.scn-train-russian-doctors .figure-right {
  position: absolute; bottom: 30%; right: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a180e 0%, #0a0a06 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform-origin: bottom right;
  animation: str-fig-r 3.5s ease-in-out infinite alternate;
}
.scn-train-russian-doctors .gesture-hand {
  position: absolute; bottom: 42%; left: 36%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #c8a080 0%, #6a3a1a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 70% 70%;
  transform-origin: 50% 80%;
  animation: str-hand 5s ease-in-out infinite;
}
.scn-train-russian-doctors .hat {
  position: absolute; bottom: 64%; right: 30%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: str-hat 4s ease-in-out infinite;
}
@keyframes str-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes str-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.96); }
  100% { transform: scaleY(1.02); }
}
@keyframes str-fig-l {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(3px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes str-fig-r {
  0% { transform: rotate(4deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-2px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes str-hand {
  0% { transform: rotate(-10deg) scale(1); }
  40% { transform: rotate(20deg) scale(1.1); }
  70% { transform: rotate(-5deg) scale(0.95); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes str-hat {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-6px) rotate(8deg); }
  50% { transform: translateY(-2px) rotate(-4deg); }
  75% { transform: translateY(-8px) rotate(6deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-train-pavlicheff-death {
  background:
    linear-gradient(180deg, #b08654 0%, #5e3a1e 40%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 15%, #c89048 0%, transparent 60%);
}
.scn-train-pavlicheff-death .window-tall {
  position: absolute; left: 40%; right: 40%; top: 0; bottom: 50%;
  background: linear-gradient(180deg, #ffd68a 0%, #b07030 80%);
  border-radius: 4px 4px 0 0; box-shadow: 0 0 30px 8px rgba(200,130,50,0.5);
  animation: stp-window 18s ease-in-out infinite alternate;
}
.scn-train-pavlicheff-death .light-beam {
  position: absolute; left: 42%; width: 16%; top: 0; bottom: 0;
  background: linear-gradient(180deg, rgba(255,200,100,0.25) 0%, transparent 70%);
  transform: skewX(6deg); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: stp-beam 22s ease-in-out infinite;
}
.scn-train-pavlicheff-death .figure-sitting {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: stp-fig 9s ease-in-out infinite alternate;
}
.scn-train-pavlicheff-death .seat-shadow {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(180deg, #2a180a 0%, #0e0804 100%);
  border-radius: 20% 20% 50% 50%; transform: scaleX(1.2);
  animation: stp-seat 12s ease-in-out infinite;
}
.scn-train-pavlicheff-death .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,200,120,0.15) 0%, transparent 20%),
              radial-gradient(circle at 70% 40%, rgba(255,200,120,0.1) 0%, transparent 15%);
  animation: stp-dust 25s linear infinite;
}
.scn-train-pavlicheff-death .bundle {
  position: absolute; bottom: 25%; left: 52%; width: 22px; height: 18px;
  background: linear-gradient(180deg, #5e3a1a 0%, #2a180a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: stp-bundle 14s ease-in-out infinite alternate;
}
@keyframes stp-window {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes stp-beam {
  0% { opacity: 0.1; }
  50% { opacity: 0.4; }
  100% { opacity: 0.2; }
}
@keyframes stp-fig {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(1px,-2px) rotate(-2deg); }
  100% { transform: translate(-1px,0) rotate(1deg); }
}
@keyframes stp-seat {
  0% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.8; transform: scaleX(1.3); }
}
@keyframes stp-dust {
  0% { background-position: 0 0; }
  100% { background-position: 100% 100%; }
}
@keyframes stp-bundle {
  0% { transform: translate(0,0) rotate(-3deg); }
  100% { transform: translate(2px,-1px) rotate(2deg); }
}

.scn-train-bundle-traveler {
  background:
    linear-gradient(180deg, #c89050 0%, #6a3a1e 50%, #2a180a 100%),
    radial-gradient(circle at 50% 40%, #e0a060 0%, transparent 60%);
}
.scn-train-bundle-traveler .seat {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #4a2a12 0%, #1a0e06 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: stb-seat 10s ease-in-out infinite;
}
.scn-train-bundle-traveler .bundle {
  position: absolute; bottom: 42%; left: 42%; width: 28px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0e 100%);
  border-radius: 40% 60% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: stb-bundle 6s ease-in-out infinite alternate;
}
.scn-train-bundle-traveler .hand-reaching {
  position: absolute; bottom: 36%; left: 34%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #c89870 0%, #6a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: 50% 90%;
  animation: stb-hand 4s ease-in-out infinite;
}
.scn-train-bundle-traveler .face-profile {
  position: absolute; bottom: 48%; right: 28%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 50% 60% 40% 50% / 60% 70% 30% 40%;
  transform-origin: bottom right;
  animation: stb-face 5s ease-in-out infinite alternate;
}
.scn-train-bundle-traveler .shadow {
  position: absolute; inset: 30% 10% 5% 10%; background: rgba(0,0,0,0.4);
  animation: stb-shadow 8s ease-in-out infinite alternate;
}
.scn-train-bundle-traveler .curtain {
  position: absolute; inset: 5% 85% auto 5%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(120,60,20,0.5) 0%, rgba(60,30,10,0.8) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: stb-curtain 15s ease-in-out infinite;
}
@keyframes stb-seat {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes stb-bundle {
  0% { transform: rotate(-5deg) translate(0,0); }
  50% { transform: rotate(10deg) translate(3px,-2px); }
  100% { transform: rotate(-3deg) translate(-1px,1px); }
}
@keyframes stb-hand {
  0% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(15deg) scale(1.05); }
  60% { transform: rotate(-5deg) scale(0.95); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes stb-face {
  0% { transform: rotate(-2deg) translateY(0); }
  100% { transform: rotate(4deg) translateY(-3px); }
}
@keyframes stb-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.5; }
}
@keyframes stb-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(2px); }
}

/* evgenie-helps – wide horizon overcast */
.scn-evgenie-helps {
  background:
    linear-gradient(180deg, #bcc9d4 0%, #8a9aaa 40%, #6b7b8a 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a9a 0%, transparent 70%);
}
.scn-evgenie-helps .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #c8d4de 0%, #9aaabc 100%); animation:eh-sky 20s ease-in-out infinite alternate; }
.scn-evgenie-helps .mountain-range { position:absolute; bottom:35%; left:0; right:0; height:30%; background:linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 60% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation:eh-mount 15s ease-in-out infinite alternate; }
.scn-evgenie-helps .hill-fore { position:absolute; bottom:22%; left:-5%; right:-5%; height:22%; background:linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 50% 50% 0 0; transform:scale(1.1); box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation:eh-hill 12s ease-in-out infinite alternate; }
.scn-evgenie-helps .path { position:absolute; bottom:20%; left:35%; width:30%; height:6%; background:linear-gradient(90deg, transparent 0%, #7a7a6a 30%, #5a5a4a 70%, transparent 100%); border-radius: 20%; transform:skewX(-10deg); filter:blur(1px); animation:eh-path 8s ease-in-out infinite; }
.scn-evgenie-helps .figure-left { position:absolute; bottom:19%; left:30%; width:10px; height:28px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:eh-walkl 5s ease-in-out infinite; }
.scn-evgenie-helps .figure-right { position:absolute; bottom:19%; left:54%; width:10px; height:28px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:eh-walkr 5s ease-in-out infinite 0.5s; }
.scn-evgenie-helps .cloud-a { position:absolute; top:12%; left:10%; width:120px; height:20px; background:linear-gradient(180deg, rgba(200,212,222,.6) 0%, rgba(200,212,222,.1) 100%); border-radius:50%; filter:blur(8px); animation:eh-drift-a 40s linear infinite; }
.scn-evgenie-helps .cloud-b { position:absolute; top:8%; left:60%; width:90px; height:16px; background:linear-gradient(180deg, rgba(200,212,222,.5) 0%, transparent 100%); border-radius:50%; filter:blur(6px); animation:eh-drift-b 55s linear infinite; }
@keyframes eh-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes eh-mount { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes eh-hill { 0% { transform:scale(1.1) translateY(0) } 50% { transform:scale(1.12) translateY(-1px) } 100% { transform:scale(1.1) translateY(0) } }
@keyframes eh-path { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes eh-walkl { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(8px) rotate(1deg) } 50% { transform:translateX(16px) rotate(-2deg) } 75% { transform:translateX(8px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes eh-walkr { 0% { transform:translateX(0) rotate(2deg) } 25% { transform:translateX(-8px) rotate(-1deg) } 50% { transform:translateX(-16px) rotate(2deg) } 75% { transform:translateX(-8px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes eh-drift-a { 0% { transform:translateX(-40px) } 100% { transform:translateX(120vw) } }
@keyframes eh-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-150vw) } }

/* schneider-fears – interior cutaway, overcast study */
.scn-schneider-fears {
  background:
    linear-gradient(180deg, #4a4f54 0%, #3a3f44 50%, #2a2f34 100%),
    radial-gradient(ellipse at 50% 20%, #5a5f64 0%, transparent 70%);
}
.scn-schneider-fears .room-wall { position:absolute; inset:0; background:linear-gradient(135deg, #4a4f54 0%, #3a3f44 100%); border:2px solid #2a2f34; box-shadow:inset 0 0 40px rgba(0,0,0,.3); }
.scn-schneider-fears .window-light { position:absolute; top:15%; left:15%; width:60%; height:40%; background:radial-gradient(ellipse at center, #9aabbe 0%, #6a7b8e 70%, transparent 100%); border-radius:4px; filter:blur(4px); opacity:.3; animation:sf-window 12s ease-in-out infinite alternate; }
.scn-schneider-fears .bookshelf { position:absolute; top:10%; right:8%; width:25%; height:75%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:inset 0 0 10px rgba(0,0,0,.5); }
.scn-schneider-fears .desk { position:absolute; bottom:5%; left:10%; width:60%; height:20%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 -4px 8px rgba(0,0,0,.3); transform:perspective(400px) rotateX(5deg); }
.scn-schneider-fears .chair { position:absolute; bottom:10%; left:45%; width:20%; height:30%; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; transform:rotate(3deg); }
.scn-schneider-fears .figure-doctor { position:absolute; bottom:18%; left:40%; width:14%; height:35%; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:sf-figure 8s ease-in-out infinite; }
.scn-schneider-fears .lamp-glow { position:absolute; bottom:25%; left:30%; width:8%; height:8%; background:radial-gradient(circle, #d0c8b0 0%, transparent 100%); border-radius:50%; opacity:.15; animation:sf-lamp 6s ease-in-out infinite alternate; }
@keyframes sf-window { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.4; transform:scale(1.02) } 100% { opacity:.25; transform:scale(1) } }
@keyframes sf-figure { 0% { transform:translateY(0) rotate(0deg) } 33% { transform:translateY(-2px) rotate(1deg) } 66% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes sf-lamp { 0% { opacity:.1; transform:scale(1) } 50% { opacity:.2; transform:scale(1.1) } 100% { opacity:.15; transform:scale(1) } }

/* evgenie-letters – close-up desk with letter, overcast */
.scn-evgenie-letters {
  background:
    linear-gradient(180deg, #5a5f5a 0%, #4a4f4a 50%, #3a3f3a 100%),
    radial-gradient(ellipse at 30% 50%, #6a6f6a 0%, transparent 70%);
}
.scn-evgenie-letters .desk-surface { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:8px 8px 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.5); transform:perspective(600px) rotateX(3deg); }
.scn-evgenie-letters .letter { position:absolute; bottom:15%; left:25%; width:50%; height:30%; background:linear-gradient(135deg, #d8ccc0 0%, #b8aca0 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 4px 8px rgba(0,0,0,.3); animation:el-letter 10s ease-in-out infinite; }
.scn-evgenie-letters .inkwell { position:absolute; bottom:25%; left:65%; width:6%; height:10%; background:linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:el-inkwell 8s ease-in-out infinite 0.2s; }
.scn-evgenie-letters .pen { position:absolute; bottom:28%; left:55%; width:2%; height:25%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; transform:rotate(15deg); transform-origin:bottom center; animation:el-pen 6s ease-in-out infinite; }
.scn-evgenie-letters .hand-writing { position:absolute; bottom:20%; left:40%; width:12%; height:20%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 30% 30% / 40% 40% 20% 20%; transform:rotate(5deg); animation:el-hand 7s ease-in-out infinite; }
.scn-evgenie-letters .wax-seal { position:absolute; bottom:18%; left:55%; width:4%; height:4%; background:radial-gradient(circle, #a04030 0%, #702020 100%); border-radius:50%; box-shadow:0 0 6px 2px rgba(160,64,48,.3); animation:el-seal 12s ease-in-out infinite alternate; }
.scn-evgenie-letters .dust-mote-1 { position:absolute; top:20%; left:30%; width:2px; height:2px; background:#d0d0d0; border-radius:50%; filter:blur(1px); animation:el-dust1 20s linear infinite; }
.scn-evgenie-letters .dust-mote-2 { position:absolute; top:40%; left:60%; width:3px; height:3px; background:#c0c0c0; border-radius:50%; filter:blur(1px); animation:el-dust2 25s linear infinite 5s; }
@keyframes el-letter { 0%,100% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-4px) } }
@keyframes el-inkwell { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes el-pen { 0% { transform:rotate(12deg) translateY(0) } 50% { transform:rotate(17deg) translateY(-3px) } 100% { transform:rotate(12deg) translateY(0) } }
@keyframes el-hand { 0% { transform:rotate(5deg) translateX(0) } 33% { transform:rotate(3deg) translateX(2px) } 66% { transform:rotate(6deg) translateX(-1px) } 100% { transform:rotate(5deg) translateX(0) } }
@keyframes el-seal { 0% { opacity:.7; box-shadow:0 0 4px 1px rgba(160,64,48,.2) } 50% { opacity:1; box-shadow:0 0 8px 3px rgba(160,64,48,.4) } 100% { opacity:.8; box-shadow:0 0 5px 2px rgba(160,64,48,.3) } }
@keyframes el-dust1 { 0% { transform:translate(0,0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translate(40px,-60px); opacity:0 } }
@keyframes el-dust2 { 0% { transform:translate(0,0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform:translate(-50px,-80px); opacity:0 } }

/* vera-correspondence – window scene, figure writing, overcast */
.scn-vera-correspondence {
  background:
    linear-gradient(180deg, #5a6068 0%, #4a5058 50%, #3a4048 100%),
    radial-gradient(ellipse at 80% 30%, #7a8088 0%, transparent 70%);
}
.scn-vera-correspondence .window-frame { position:absolute; top:5%; left:10%; width:80%; height:90%; background:linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.3); }
.scn-vera-correspondence .window-glass { position:absolute; top:8%; left:13%; width:74%; height:84%; background:linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%); opacity:.3; filter:blur(2px); animation:vc-glass 15s ease-in-out infinite alternate; }
.scn-vera-correspondence .outside-landscape { position:absolute; top:8%; left:13%; width:74%; height:84%; background:linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); clip-path:polygon(0 0,100% 0,100% 100%,0 100%); animation:vc-outside 20s ease-in-out infinite alternate; }
.scn-vera-correspondence .figure-vera { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:vc-figure 9s ease-in-out infinite; }
.scn-vera-correspondence .desk-vera { position:absolute; bottom:8%; left:20%; width:60%; height:12%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 -2px 4px rgba(0,0,0,.3); transform:perspective(400px) rotateX(4deg); }
.scn-vera-correspondence .letter-vera { position:absolute; bottom:10%; left:35%; width:30%; height:18%; background:linear-gradient(135deg, #c8bcb0 0%, #a89c90 100%); transform:rotate(-3deg); border-radius:1px; box-shadow:0 2px 4px rgba(0,0,0,.2); animation:vc-letter 12s ease-in-out infinite; }
.scn-vera-correspondence .lamp-vera { position:absolute; bottom:20%; left:58%; width:6%; height:12%; background:linear-gradient(180deg, #b0a890 0%, #8a8270 100%); border-radius:50% 50% 10% 10%/40% 40% 10% 10%; animation:vc-lamp 7s ease-in-out infinite alternate; }
@keyframes vc-glass { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.4; transform:scale(1.01) } 100% { opacity:.25; transform:scale(1) } }
@keyframes vc-outside { 0% { opacity:.5; filter:brightness(.8) } 50% { opacity:.7; filter:brightness(1) } 100% { opacity:.6; filter:brightness(.9) } }
@keyframes vc-figure { 0% { transform:translateY(0) rotate(0deg) } 33% { transform:translateY(-2px) rotate(1deg) } 66% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes vc-letter { 0%,100% { transform:rotate(-3deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } }
@keyframes vc-lamp { 0% { opacity:.6; transform:scale(1) } 50% { opacity:.9; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }

.scn-prince-park-contemplation {
  background: linear-gradient(180deg, #87CEEB 0%, #e0f0ff 40%, #f5e6c8 100%),
              radial-gradient(ellipse at 70% 20%, #fff5e6 0%, transparent 60%);
}
.scn-prince-park-contemplation .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #c8e6ff 60%, transparent 100%);
  animation: ppc-sky 20s ease-in-out infinite alternate;
}
.scn-prince-park-contemplation .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd699 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,214,120,0.4);
  animation: ppc-sun 15s ease-in-out infinite alternate;
}
.scn-prince-park-contemplation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7aab5a 0%, #5c8a3f 30%, #3d6b2e 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  animation: ppc-ground 12s ease-in-out infinite alternate;
}
.scn-prince-park-contemplation .tree-trunk {
  position: absolute; bottom: 40%; left: 22%; width: 18px; height: 150px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4d351f 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform-origin: bottom; animation: ppc-trunk 8s ease-in-out infinite;
}
.scn-prince-park-contemplation .tree-leaves {
  position: absolute; bottom: 73%; left: 10%; width: 140px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #5f9e4a 0%, #3b6b2a 70%, transparent 100%),
              radial-gradient(ellipse at 30% 40%, #79b360 0%, transparent 50%);
  border-radius: 50% 60% 70% 40% / 60% 50% 50% 60%;
  filter: blur(2px);
  animation: ppc-leaves 18s ease-in-out infinite alternate;
}
.scn-prince-park-contemplation .bench {
  position: absolute; bottom: 32%; left: 38%; width: 60px; height: 16px;
  background: linear-gradient(180deg, #8c7a5e 0%, #5e4f3a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: ppc-bench 14s ease-in-out infinite;
}
.scn-prince-park-contemplation .prince {
  position: absolute; bottom: 36%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppc-prince 6s ease-in-out infinite;
}
.scn-prince-park-contemplation .flower {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,160,96,0.5);
  animation: ppc-flower 10s ease-in-out infinite alternate;
}
@keyframes ppc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ppc-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(5px,-3px); } 100% { transform: scale(0.95) translate(-3px,2px); } }
@keyframes ppc-ground { 0% { border-radius: 30% 40% 0 0 / 50% 60% 0 0; } 50% { border-radius: 35% 45% 0 0 / 55% 65% 0 0; transform: translateY(-2px); } 100% { border-radius: 30% 40% 0 0 / 50% 60% 0 0; } }
@keyframes ppc-trunk { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ppc-leaves { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-4px); } 100% { transform: scale(0.98) translateY(2px); } }
@keyframes ppc-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ppc-prince { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ppc-flower { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.9); } }

.scn-prince-petersburg-side {
  background: linear-gradient(180deg, #2c3e60 0%, #4a6270 35%, #8a9aa0 70%, #c0b0a0 100%),
              radial-gradient(ellipse at 30% 40%, #e0c080 0%, transparent 60%);
}
.scn-prince-petersburg-side .dusk-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 40%, #d0b080 100%);
  animation: pps-sky 25s ease-in-out infinite alternate;
}
.scn-prince-petersburg-side .river {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a5a7a 0%, #6a8a9a 50%, #8aa0b0 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: pps-river 10s ease-in-out infinite alternate;
}
.scn-prince-petersburg-side .buildings {
  position: absolute; bottom: 50%; left: -10%; width: 120%; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 60%, #0a1a2a 100%);
  clip-path: polygon(0% 100%, 2% 50%, 6% 50%, 8% 80%, 12% 80%, 14% 40%, 18% 40%, 20% 70%, 24% 70%, 26% 30%, 30% 30%, 32% 60%, 36% 60%, 38% 20%, 42% 20%, 44% 50%, 48% 50%, 50% 10%, 54% 10%, 56% 40%, 60% 40%, 62% 15%, 66% 15%, 68% 35%, 72% 35%, 74% 25%, 78% 25%, 80% 45%, 84% 45%, 86% 30%, 90% 30%, 92% 55%, 96% 55%, 98% 60%, 100% 100%);
  animation: pps-buildings 30s linear infinite;
}
.scn-prince-petersburg-side .bridge {
  position: absolute; bottom: 45%; left: 20%; width: 200px; height: 20px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.4);
  animation: pps-bridge 15s ease-in-out infinite alternate;
}
.scn-prince-petersburg-side .prince-walk {
  position: absolute; bottom: 42%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pps-prince 4s ease-in-out infinite;
}
.scn-prince-petersburg-side .children {
  position: absolute; bottom: 44%; left: 45%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pps-children 6s ease-in-out infinite;
}
.scn-prince-petersburg-side .children::before {
  content: ''; position: absolute; top: -8px; left: 6px; width: 10px; height: 10px;
  background: linear-gradient(180deg, #3a4a5a, #0a1a2a);
  border-radius: 50%;
}
.scn-prince-petersburg-side .lamp-post {
  position: absolute; bottom: 48%; left: 60%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a, #1a2a3a);
  border-radius: 20% 20% 10% 10%;
  animation: pps-lamp 8s ease-in-out infinite;
}
@keyframes pps-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pps-river { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes pps-buildings { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes pps-bridge { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes pps-prince { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(24px) rotate(-1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes pps-children { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pps-lamp { 0% { box-shadow: 0 0 8px 2px rgba(200,170,100,0.3); } 50% { box-shadow: 0 0 14px 4px rgba(200,170,100,0.6); } 100% { box-shadow: 0 0 8px 2px rgba(200,170,100,0.3); } }

.scn-prince-hotel-attack {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-prince-hotel-attack .doorway {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 250px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px 5px #000;
  animation: pha-doorway 10s ease-in-out infinite alternate;
}
.scn-prince-hotel-attack .stairs {
  position: absolute; bottom: 0; left: 35%; width: 80px; height: 100px;
  background: repeating-linear-gradient(0deg, #1a1a2a 0px, #1a1a2a 10px, #2a2a3e 10px, #2a2a3e 20px);
  border-radius: 10% 10% 0 0;
  animation: pha-stairs 8s ease-in-out infinite;
}
.scn-prince-hotel-attack .figure-dark {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0f0f1a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: pha-figure 5s ease-in-out infinite;
}
.scn-prince-hotel-attack .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(180,200,220,0.15) 8px, rgba(180,200,220,0.15) 10px);
  animation: pha-rain 0.8s linear infinite;
}
.scn-prince-hotel-attack .flash {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 30%, rgba(255,255,240,0.9) 0%, transparent 50%);
  opacity: 0;
  animation: pha-flash 4s ease-in-out infinite;
}
.scn-prince-hotel-attack .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 150px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: pha-shadow 6s ease-in-out infinite;
}
.scn-prince-hotel-attack .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
@keyframes pha-doorway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes pha-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pha-figure { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-3deg) scaleY(1.02); } 50% { transform: rotate(2deg) scaleY(0.98); } 75% { transform: rotate(-1deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes pha-rain { 0% { transform: translate(0,0); } 100% { transform: translate(20px,20px); } }
@keyframes pha-flash { 0%, 90%, 100% { opacity: 0; } 5%, 15% { opacity: 0.8; } 10%, 20% { opacity: 0; } 30%, 40% { opacity: 0.5; } 35%, 45% { opacity: 0; } }
@keyframes pha-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }

.scn-prince-hotel-aftermath {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #1a1a12 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a2a 0%, transparent 70%);
}
.scn-prince-hotel-aftermath .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a1a 100%);
  animation: phm-wall 20s ease-in-out infinite alternate;
}
.scn-prince-hotel-aftermath .bed {
  position: absolute; bottom: 15%; left: 25%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  animation: phm-bed 6s ease-in-out infinite;
}
.scn-prince-hotel-aftermath .prince-hurt {
  position: absolute; bottom: 18%; left: 34%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phm-prince 8s ease-in-out infinite;
}
.scn-prince-hotel-aftermath .doctor {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: phm-doctor 12s ease-in-out infinite;
}
.scn-prince-hotel-aftermath .lamp-glow {
  position: absolute; top: 30%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0b050 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(224,176,80,0.4);
  animation: phm-lamp 5s ease-in-out infinite alternate;
}
.scn-prince-hotel-aftermath .bandage {
  position: absolute; bottom: 35%; left: 37%; width: 12px; height: 6px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(10deg);
  filter: blur(0.5px);
  animation: phm-bandage 7s ease-in-out infinite;
}
.scn-prince-hotel-aftermath .window-drapes {
  position: absolute; top: 5%; right: 5%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a12 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: phm-drapes 15s ease-in-out infinite alternate;
}
@keyframes phm-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes phm-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes phm-prince { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(-1px); } 75% { transform: rotate(-0.5deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes phm-doctor { 0% { transform: rotate(0deg); } 33% { transform: rotate(2deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes phm-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes phm-bandage { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes phm-drapes { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }

.scn-pavlofsk-villa-birthday {
  background: linear-gradient(180deg, #0b0b2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 60%);
}
.scn-pavlofsk-villa-birthday .night-sky {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, #b0c4de 0%, transparent 40%), linear-gradient(180deg, #0b0b2e 0%, #12123a 100%);
  animation: pvb-sky 20s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-birthday .moon-glow {
  position: absolute; top: 8%; left: 65%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(176,196,222,0.6) 0%, rgba(176,196,222,0.1) 60%, transparent 100%);
  border-radius: 50%; filter: blur(10px); animation: pvb-moon 8s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-birthday .verandah-roof {
  position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2e1a0d 0%, #1a0e06 100%);
  border-radius: 0 0 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-pavlofsk-villa-birthday .verandah-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-pavlofsk-villa-birthday .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 18px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5c3a1a 0%, #2e1a0d 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pavlofsk-villa-birthday .bottle {
  position: absolute; bottom: 23%; left: 48%; width: 16px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #9ac791 0%, #2e5c2e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: pvb-bottle 12s ease-in-out infinite;
}
.scn-pavlofsk-villa-birthday .figure-rog {
  position: absolute; bottom: 19%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pvb-figure-rog 4s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-birthday .figure-mys {
  position: absolute; bottom: 19%; left: 55%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pvb-figure-mys 5s ease-in-out infinite alternate;
}
.scn-pavlofsk-villa-birthday .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(12px); animation: pvb-shadow 8s ease-in-out infinite alternate;
}
@keyframes pvb-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.95; } }
@keyframes pvb-moon { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes pvb-bottle { 0% { transform: translate(-50%, 0) rotate(0deg); } 50% { transform: translate(-50%, -2px) rotate(2deg); } 100% { transform: translate(-50%, 1px) rotate(-1deg); } }
@keyframes pvb-figure-rog { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pvb-figure-mys { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.02); } 100% { transform: translateX(1px) scaleY(0.98); } }
@keyframes pvb-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-lebedevs-party {
  background: linear-gradient(180deg, #4a3020 0%, #6b4a2a 40%, #8a6a3a 100%), radial-gradient(ellipse at 50% 100%, #d4af37 0%, transparent 70%);
}
.scn-lebedevs-party .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 100%);
  animation: ldp-room 15s ease-in-out infinite alternate;
}
.scn-lebedevs-party .chandelier {
  position: absolute; top: 2%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #d4af37 0%, #8a6a20 100%); border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(212,175,55,0.5); animation: ldp-chandelier 6s ease-in-out infinite;
}
.scn-lebedevs-party .gas-lamp {
  position: absolute; top: 8%; width: 20px; height: 30px; background: radial-gradient(circle, #f5e6c8 0%, #d4af37 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 15px rgba(212,175,55,0.4);
}
.scn-lebedevs-party .gas-lamp.left { left: 15%; animation: ldp-lamp-left 5s ease-in-out infinite alternate; }
.scn-lebedevs-party .gas-lamp.right { right: 15%; animation: ldp-lamp-right 7s ease-in-out infinite alternate; }
.scn-lebedevs-party .guest-1 {
  position: absolute; bottom: 18%; left: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #5e2e1a 0%, #3a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ldp-guest1 3s ease-in-out infinite alternate;
}
.scn-lebedevs-party .guest-2 {
  position: absolute; bottom: 20%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a1a2e 0%, #2a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ldp-guest2 4s ease-in-out infinite alternate;
}
.scn-lebedevs-party .table-food {
  position: absolute; bottom: 14%; left: 50%; width: 140px; height: 16px; transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-lebedevs-party .balloon {
  position: absolute; width: 20px; height: 24px; border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ldp-balloon 10s linear infinite;
}
.scn-lebedevs-party .balloon.red { left: 20%; bottom: 40%; background: radial-gradient(circle at 30% 30%, #d4553d 0%, #a0461a 100%); animation-delay: 0s; }
.scn-lebedevs-party .balloon.blue { left: 70%; bottom: 35%; background: radial-gradient(circle at 30% 30%, #3d6ed4 0%, #1a3e8a 100%); animation-delay: 3s; }
@keyframes ldp-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ldp-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 33% { transform: translateX(-50%) rotate(1deg); } 66% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ldp-lamp-left { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes ldp-lamp-right { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(1.03); } 100% { transform: rotate(2deg) scaleY(0.97); } }
@keyframes ldp-guest1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes ldp-guest2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-2deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ldp-balloon { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-20px) scale(1.1); } 50% { transform: translateY(-40px) scale(1); } 75% { transform: translateY(-60px) scale(0.9); } 100% { transform: translateY(-80px) scale(1); opacity: 0; } }

.scn-debate-on-cannibalism {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #7a5a2a 100%), radial-gradient(ellipse at 50% 50%, #d4af37 0%, transparent 70%);
}
.scn-debate-on-cannibalism .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a0e 0%, #4a2a1a 100%);
  animation: doc-wall 12s ease-in-out infinite alternate;
}
.scn-debate-on-cannibalism .debate-table {
  position: absolute; bottom: 20%; left: 50%; width: 180px; height: 14px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6b4226 0%, #3a2010 100%); border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,0.6);
}
.scn-debate-on-cannibalism .speaker {
  position: absolute; bottom: 24%; left: 35%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: doc-speaker 4s ease-in-out infinite alternate;
}
.scn-debate-on-cannibalism .listener-1 {
  position: absolute; bottom: 22%; left: 60%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: doc-listener1 5s ease-in-out infinite alternate;
}
.scn-debate-on-cannibalism .listener-2 {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: doc-listener2 3s ease-in-out infinite alternate;
}
.scn-debate-on-cannibalism .plate {
  position: absolute; bottom: 26%; left: 48%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, #d4af37 0%, #8a6a20 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: doc-plate 2s ease-in-out infinite;
}
.scn-debate-on-cannibalism .cutlery {
  position: absolute; bottom: 26%; left: 54%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: doc-cutlery 4s ease-in-out infinite alternate;
}
.scn-debate-on-cannibalism .candle {
  position: absolute; bottom: 28%; left: 42%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4af37 100%); border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(212,175,55,0.6); animation: doc-candle 3s ease-in-out infinite alternate;
}
@keyframes doc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes doc-speaker { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(3deg) scaleY(1.05); } 100% { transform: translateY(2px) rotate(-1deg) scaleY(0.98); } }
@keyframes doc-listener1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes doc-listener2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.03); } 100% { transform: translateX(1px) scaleY(0.97); } }
@keyframes doc-plate { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(-1px) rotate(-3deg); } }
@keyframes doc-cutlery { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes doc-candle { 0% { box-shadow: 0 0 15px 5px rgba(212,175,55,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 30px 12px rgba(245,230,200,0.7); opacity: 1; } 100% { box-shadow: 0 0 18px 6px rgba(212,175,55,0.5); opacity: 0.85; } }

.scn-lebedevs-speech {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%), radial-gradient(ellipse at 50% 30%, #d4af37 0%, transparent 70%);
}
.scn-lebedevs-speech .dark-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  animation: lds-bg 10s ease-in-out infinite alternate;
}
.scn-lebedevs-speech .spotlight {
  position: absolute; top: 0; left: 50%; width: 120px; height: 100%; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(245,230,200,0.3) 0%, transparent 60%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: lds-spotlight 6s ease-in-out infinite alternate;
}
.scn-lebedevs-speech .podium {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-lebedevs-speech .lebedev-body {
  position: absolute; bottom: 32%; left: 50%; width: 32px; height: 70px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2e1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: lds-body 4s ease-in-out infinite alternate;
}
.scn-lebedevs-speech .lebedev-arm {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 6px; transform-origin: right center;
  background: linear-gradient(180deg, #3a1a0e 0%, #2a0e06 100%); border-radius: 30% 30% 10% 10%;
  animation: lds-arm 3s ease-in-out infinite alternate;
}
.scn-lebedevs-speech .audience-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
}
.scn-lebedevs-speech .light-beam {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(245,230,200,0.4) 0%, transparent 70%);
  filter: blur(8px); animation: lds-beam 8s ease-in-out infinite alternate;
}
@keyframes lds-bg { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }
@keyframes lds-spotlight { 0% { opacity: 0.3; transform: translateX(-50%) scaleX(0.95); } 50% { opacity: 0.6; transform: translateX(-50%) scaleX(1.05); } 100% { opacity: 0.4; transform: translateX(-50%) scaleX(1); } }
@keyframes lds-body { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes lds-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(-10deg); } }
@keyframes lds-beam { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.9); } 50% { opacity: 0.5; transform: translateX(-50%) scaleY(1.2); } 100% { opacity: 0.3; transform: translateX(-50%) scaleY(0.95); } }

.scn-pavlofsk-villa-arrival {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0e6c5 40%, #8a9a5b 60%, #6b4423 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255, 230, 150, 0.3) 0%, transparent 50%);
}
.scn-pavlofsk-villa-arrival .sky-pva { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0d4f0 0%, #b9a78c 100%); animation: pva-sky 20s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-arrival .villa-pva { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #e4d5b7 0%, #c4a67a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: pva-bld 15s ease-in-out infinite; }
.scn-pavlofsk-villa-arrival .windows-pva { position:absolute; bottom:40%; left:45%; width:4%; height:6%; background: radial-gradient(circle, #ffeebb 0%, #d4b878 70%); border-radius:30%; box-shadow: 0 0 12px 4px #d4b878, 0 0 24px 8px rgba(212,184,120,0.4); animation: pva-win 3s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-arrival .trees-pva { position:absolute; bottom:40%; left:5%; width:20%; height:30%; background: radial-gradient(ellipse 60% 50%, #4a6b2a 0%, #2b421a 100%); border-radius:50% 50% 20% 20%; filter: blur(2px); animation: pva-tree 25s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-arrival .path-pva { position:absolute; bottom:18%; left:40%; width:20%; height:6%; background: linear-gradient(180deg, #d4b090 0%, #a07858 100%); border-radius:50% / 20%; transform: rotate(5deg); animation: pva-path 12s ease-in-out infinite; }
.scn-pavlofsk-villa-arrival .figure-pva { position:absolute; bottom:20%; left:42%; width:6%; height:12%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pva-walk 8s ease-in-out infinite; }
.scn-pavlofsk-villa-arrival .carriage-pva { position:absolute; bottom:16%; left:30%; width:12%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pva-car 12s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-arrival .cloud-pva { position:absolute; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.15) 100%); border-radius:50%; filter: blur(8px); }
.scn-pavlofsk-villa-arrival .cloud-a-pva { top:10%; left:-10%; width:35%; height:12%; animation: pva-drift-a 40s linear infinite; }
.scn-pavlofsk-villa-arrival .cloud-b-pva { top:20%; right:-10%; width:25%; height:10%; opacity:0.6; animation: pva-drift-b 55s linear infinite reverse; }
@keyframes pva-sky   { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pva-bld   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pva-win   { 0% { box-shadow: 0 0 8px 2px #d4b878, 0 0 16px 5px rgba(212,184,120,0.3); opacity:0.8; } 50% { box-shadow: 0 0 18px 6px #ffeebb, 0 0 36px 12px rgba(255,238,187,0.5); opacity:1; } 100% { box-shadow: 0 0 10px 3px #d4b878, 0 0 20px 6px rgba(212,184,120,0.35); opacity:0.9; } }
@keyframes pva-tree  { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes pva-path  { 0%,100% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.05); } }
@keyframes pva-walk  { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3%) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6%) translateY(0) rotate(-2deg); } 75% { transform: translateX(9%) translateY(-1px) rotate(2deg); } 100% { transform: translateX(12%) translateY(0) rotate(0deg); } }
@keyframes pva-car   { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2%) rotate(-1deg); } }
@keyframes pva-drift-a { 0% { transform: translateX(-30vw); } 100% { transform: translateX(120vw); } }
@keyframes pva-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-pavlofsk-villa-visit {
  background: 
    linear-gradient(180deg, #a8d0e6 0%, #f5e6c8 35%, #d4c4a0 60%, #8b7d6b 100%),
    radial-gradient(ellipse at 60% 40%, rgba(255,225,150,0.3) 0%, transparent 60%);
}
.scn-pavlofsk-villa-visit .terrace-pvv { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #d4c4a0 0%, #b8a88a 100%); border-radius:2% 2% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.15); animation: pvv-terr 25s ease-in-out infinite; }
.scn-pavlofsk-villa-visit .villa-wall-pvv { position:absolute; bottom:40%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%); border-radius:4% 4% 0 0; animation: pvv-wall 20s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-visit .door-pvv { position:absolute; bottom:20%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pvv-door 15s ease-in-out infinite; }
.scn-pavlofsk-villa-visit .lady-pvv { position:absolute; bottom:25%; left:30%; width:4%; height:14%; background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pvv-lady 8s ease-in-out infinite; }
.scn-pavlofsk-villa-visit .lebedeff-pvv { position:absolute; bottom:25%; left:55%; width:5%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 50% 50% 30% 30%; animation: pvv-leb 6s ease-in-out infinite; }
.scn-pavlofsk-villa-visit .prince-pvv { position:absolute; bottom:25%; left:40%; width:4%; height:13%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pvv-prince 9s ease-in-out infinite; }
.scn-pavlofsk-villa-visit .tree-pvv { position:absolute; bottom:30%; right:10%; width:15%; height:35%; background: radial-gradient(ellipse 60% 50%, #5a7a3a 0%, #2a4a1a 100%); border-radius:50% 50% 10% 10%; filter: blur(1px); animation: pvv-tree 30s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-visit .railing-pvv { position:absolute; bottom:23%; left:10%; width:80%; height:2%; background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 50%, #8a7a5a 100%); border-radius:2px; animation: pvv-rail 12s ease-in-out infinite; }
@keyframes pvv-terr   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pvv-wall   { 0% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); } 50% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); } }
@keyframes pvv-door   { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pvv-lady   { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2%) rotate(-2deg); } 60% { transform: translateX(4%) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pvv-leb    { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-1px) rotate(3deg); } 80% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pvv-prince { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pvv-tree   { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes pvv-rail   { 0%,100% { opacity:0.8; } 50% { opacity:1; } }

.scn-epanchin-anger-aftermath {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a8a7a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 70%);
}
.scn-epanchin-anger-aftermath .sky-eea { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); animation: eea-sky 18s ease-in-out infinite alternate; }
.scn-epanchin-anger-aftermath .building-eea { position:absolute; bottom:30%; left:25%; width:50%; height:35%; background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%); border-radius:3% 3% 1% 1%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3), 0 6px 12px rgba(0,0,0,0.4); animation: eea-bld 10s ease-in-out infinite; }
.scn-epanchin-anger-aftermath .window-eea { position:absolute; bottom:45%; left:40%; width:6%; height:8%; background: radial-gradient(circle, #3a4a5a 0%, #1a2a3a 70%); border-radius:10%; border: 2px solid #2a3a3a; box-shadow: 0 0 8px 2px rgba(0,0,0,0.5); animation: eea-win 4s ease-in-out infinite alternate; }
.scn-epanchin-anger-aftermath .prince-eea { position:absolute; bottom:25%; left:45%; width:5%; height:14%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eea-prince 7s ease-in-out infinite; }
.scn-epanchin-anger-aftermath .fence-eea { position:absolute; bottom:22%; left:20%; width:60%; height:6%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: eea-fence 12s ease-in-out infinite; }
.scn-epanchin-anger-aftermath .shadow-eea { position:absolute; bottom:18%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%); animation: eea-shadow 8s ease-in-out infinite alternate; }
.scn-epanchin-anger-aftermath .leaf-eea { position:absolute; width:3%; height:3%; background: radial-gradient(circle, #6a7a4a 0%, #4a5a2a 100%); border-radius:50% 0 50% 0; filter: blur(1px); }
.scn-epanchin-anger-aftermath .leaf-a-eea { top:15%; left:10%; animation: eea-leaf-a 30s linear infinite; }
.scn-epanchin-anger-aftermath .leaf-b-eea { top:25%; left:60%; animation: eea-leaf-b 42s linear infinite reverse; }
@keyframes eea-sky    { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes eea-bld    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes eea-win    { 0% { box-shadow: 0 0 4px 1px rgba(0,0,0,0.6); } 50% { box-shadow: 0 0 12px 3px rgba(0,0,0,0.8); } 100% { box-shadow: 0 0 4px 1px rgba(0,0,0,0.6); } }
@keyframes eea-prince { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eea-fence  { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes eea-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes eea-leaf-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.6; } 25% { transform: translateX(10vw) translateY(5vh) rotate(90deg); opacity:0.8; } 50% { transform: translateX(20vw) translateY(10vh) rotate(180deg); opacity:0.5; } 75% { transform: translateX(30vw) translateY(5vh) rotate(270deg); opacity:0.7; } 100% { transform: translateX(40vw) translateY(0) rotate(360deg); opacity:0.3; } }
@keyframes eea-leaf-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.4; } 33% { transform: translateX(-10vw) translateY(8vh) rotate(-120deg); opacity:0.7; } 66% { transform: translateX(-20vw) translateY(4vh) rotate(-240deg); opacity:0.5; } 100% { transform: translateX(-30vw) translateY(0) rotate(-360deg); opacity:0.2; } }

.scn-pavlofsk-villa-keller-visit {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 60%);
}
.scn-pavlofsk-villa-keller-visit .night-sky-pvk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); animation: pvk-sky 25s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-keller-visit .room-bg-pvk { position:absolute; bottom:0; left:0; right:0; top:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); animation: pvk-room 30s ease-in-out infinite; }
.scn-pavlofsk-villa-keller-visit .window-pvk { position:absolute; top:10%; left:70%; width:15%; height:20%; background: radial-gradient(circle at 50% 50%, #3a4a6a 0%, #1a2a3a 70%, #0a0a1a 100%); border-radius:5px; border:2px solid #4a4a5a; box-shadow: 0 0 20px 4px rgba(60,80,120,0.3); animation: pvk-win 6s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-keller-visit .candle-pvk { position:absolute; bottom:35%; left:35%; width:2%; height:6%; background: linear-gradient(180deg, #d4a060 0%, #a08040 80%, #6a5020 100%); border-radius:2px; box-shadow: 0 0 16px 6px #a08040, 0 0 32px 12px rgba(160,128,64,0.4); animation: pvk-candle 2s ease-in-out infinite alternate; }
.scn-pavlofsk-villa-keller-visit .keller-pvk { position:absolute; bottom:22%; left:30%; width:6%; height:15%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pvk-keller 8s ease-in-out infinite; }
.scn-pavlofsk-villa-keller-visit .prince-pvk { position:absolute; bottom:22%; left:55%; width:5%; height:14%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pvk-prince 10s ease-in-out infinite; }
.scn-pavlofsk-villa-keller-visit .chair-pvk { position:absolute; bottom:20%; left:45%; width:10%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pvk-chair 12s ease-in-out infinite; }
.scn-pavlofsk-villa-keller-visit .curtain-pvk { position:absolute; top:30%; left:5%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:20% 0 0 20%; filter: blur(1px); animation: pvk-curt 20s ease-in-out infinite alternate; }
@keyframes pvk-sky    { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes pvk-room   { 0%,100% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 8px 20px rgba(0,0,0,0.8); } }
@keyframes pvk-win    { 0% { opacity:0.5; box-shadow: 0 0 12px 2px rgba(60,80,120,0.2); } 50% { opacity:0.8; box-shadow: 0 0 24px 6px rgba(60,80,120,0.4); } 100% { opacity:0.6; box-shadow: 0 0 16px 3px rgba(60,80,120,0.3); } }
@keyframes pvk-candle { 0% { box-shadow: 0 0 10px 3px #a08040, 0 0 20px 8px rgba(160,128,64,0.3); opacity:0.8; } 50% { box-shadow: 0 0 18px 6px #c0a060, 0 0 36px 14px rgba(192,160,96,0.5); opacity:1; } 100% { box-shadow: 0 0 12px 4px #a08040, 0 0 24px 10px rgba(160,128,64,0.35); opacity:0.9; } }
@keyframes pvk-keller { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2%) rotate(3deg); } 60% { transform: translateX(-2%) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pvk-prince { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pvk-chair  { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes pvk-curt   { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }

/* Scene: split-walk */
.scn-split-walk {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #0d0d1a 40%, #12122a 70%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 0%, #0d0d1a 0%, transparent 60%);
}
.scn-split-walk .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: sw-street 10s ease-in-out infinite alternate;
}
.scn-split-walk .building-left {
  position: absolute; bottom: 25%; left: 0; width: 40%; height: 65%;
  background: linear-gradient(180deg, #1e1e32 0%, #121226 100%);
  border-radius: 4% 0 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.4);
  animation: sw-building 14s ease-in-out infinite;
}
.scn-split-walk .building-right {
  position: absolute; bottom: 25%; right: 0; width: 40%; height: 65%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f20 100%);
  border-radius: 0 4% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.4);
  animation: sw-building 14s ease-in-out infinite reverse;
}
.scn-split-walk .lamp {
  position: absolute; bottom: 32%; width: 4px; height: 20px;
  background: #2a2a3e;
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,.3);
}
.scn-split-walk .lamp-a {
  left: 20%;
  animation: sw-lamp 4s ease-in-out infinite;
}
.scn-split-walk .lamp-b {
  left: 70%;
  animation: sw-lamp 4s ease-in-out infinite 2s;
}
.scn-split-walk .lamp::after {
  content: ''; position: absolute; top: -6px; left: -3px; width: 10px; height: 10px;
  background: radial-gradient(circle, #c08040 0%, #604020 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(192,128,64,.6), 0 0 24px 8px rgba(192,128,64,.3);
  animation: sw-glow 3s ease-in-out infinite alternate;
}
.scn-split-walk .figure-left {
  position: absolute; bottom: 26%; left: 15%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sw-walk-left 5s ease-in-out infinite;
}
.scn-split-walk .figure-right {
  position: absolute; bottom: 26%; right: 15%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sw-walk-right 5s ease-in-out infinite 0.5s;
}
.scn-split-walk .shadow-left {
  position: absolute; bottom: 26%; left: 12%; width: 60px; height: 6px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: sw-shadow 5s ease-in-out infinite;
}
.scn-split-walk .shadow-right {
  position: absolute; bottom: 26%; right: 12%; width: 60px; height: 6px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: sw-shadow 5s ease-in-out infinite 0.5s;
}

@keyframes sw-street {
  0% { opacity: .5; transform: scaleY(1); }
  50% { opacity: .6; transform: scaleY(1.02); }
  100% { opacity: .5; transform: scaleY(1); }
}
@keyframes sw-building {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sw-lamp {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes sw-glow {
  0% { box-shadow: 0 0 8px 2px rgba(192,128,64,.4), 0 0 16px 4px rgba(192,128,64,.2); opacity: .8; }
  50% { box-shadow: 0 0 16px 6px rgba(192,128,64,.7), 0 0 32px 12px rgba(192,128,64,.4); opacity: 1; }
  100% { box-shadow: 0 0 10px 3px rgba(192,128,64,.5), 0 0 20px 6px rgba(192,128,64,.3); opacity: .9; }
}
@keyframes sw-walk-left {
  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 sw-walk-right {
  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 sw-shadow {
  0% { width: 60px; opacity: .5; }
  50% { width: 80px; opacity: .3; }
  100% { width: 60px; opacity: .5; }
}

/* Scene: prince-signals */
.scn-prince-signals {
  background: 
    linear-gradient(180deg, #0b0b18 0%, #111128 40%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 70%, #0d0d1a 0%, transparent 80%);
}
.scn-prince-signals .wall {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 70%; height: 85%;
  background: linear-gradient(180deg, #1e1e32 0%, #141428 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: ps-wall 12s ease-in-out infinite alternate;
}
.scn-prince-signals .window-frame {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-prince-signals .window-pane {
  position: absolute; bottom: 33%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f22 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
}
.scn-prince-signals .blind {
  position: absolute; bottom: 33%; left: 50%; transform: translateX(-50%); width: 70px; height: 90px;
  background: repeating-linear-gradient(
    0deg,
    rgba(255,255,255,.1) 0px,
    rgba(255,255,255,.1) 4px,
    transparent 4px,
    transparent 8px
  );
  border-radius: 4px;
  animation: ps-blind 6s ease-in-out infinite alternate;
}
.scn-prince-signals .figure-outside {
  position: absolute; bottom: 24%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ps-raise-arm 3s ease-in-out infinite;
}
.scn-prince-signals .figure-outside::after {
  content: ''; position: absolute; top: 10px; left: 12px; width: 12px; height: 3px;
  background: #0a0a14;
  transform-origin: left center;
  border-radius: 2px;
  animation: ps-arm-move 3s ease-in-out infinite;
}
.scn-prince-signals .figure-inside {
  position: absolute; bottom: 36%; left: 50%; transform: translateX(-40%); width: 16px; height: 34px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ps-inside-shift 5s ease-in-out infinite;
}
.scn-prince-signals .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
.scn-prince-signals .shadow-outside {
  position: absolute; bottom: 24%; left: 27%; width: 40px; height: 5px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: ps-shadow 3s ease-in-out infinite;
}

@keyframes ps-wall {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ps-blind {
  0% { opacity: .7; transform: translateX(-50%) rotate(0deg); }
  50% { opacity: .9; transform: translateX(-50%) rotate(1deg); }
  100% { opacity: .7; transform: translateX(-50%) rotate(0deg); }
}
@keyframes ps-raise-arm {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ps-arm-move {
  0% { transform: rotate(-10deg); }
  30% { transform: rotate(30deg); }
  60% { transform: rotate(-10deg); }
  100% { transform: rotate(50deg); }
}
@keyframes ps-inside-shift {
  0% { transform: translateX(-40%) translateY(0); }
  50% { transform: translateX(-40%) translateY(-2px); }
  100% { transform: translateX(-40%) translateY(0); }
}
@keyframes ps-shadow {
  0% { width: 40px; opacity: .6; }
  50% { width: 50px; opacity: .4; }
  100% { width: 40px; opacity: .6; }
}

/* Scene: entrance */
.scn-entrance {
  background: 
    linear-gradient(180deg, #080814 0%, #0d0d1a 40%, #12122e 70%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 0%, #0a0a18 0%, transparent 50%);
}
.scn-entrance .night-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a14 0%, #0d0d1a 60%, transparent 100%);
  animation: en-sky 15s ease-in-out infinite alternate;
}
.scn-entrance .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: en-street 20s ease-in-out infinite;
}
.scn-entrance .house-old-lady {
  position: absolute; bottom: 20%; left: 5%; width: 40%; height: 75%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: en-house 14s ease-in-out infinite;
}
.scn-entrance .house-rogojin {
  position: absolute; bottom: 20%; right: 5%; width: 40%; height: 75%;
  background: linear-gradient(180deg, #1c1c30 0%, #101022 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: en-house 14s ease-in-out infinite reverse;
}
.scn-entrance .windows-open {
  position: absolute; bottom: 40%; left: 15%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at center, #b08040 0%, #604020 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(176,128,64,.4), 0 0 40px 12px rgba(176,128,64,.2);
  animation: en-window-glow 4s ease-in-out infinite alternate;
}
.scn-entrance .windows-shut {
  position: absolute; bottom: 40%; right: 18%; width: 60px; height: 50px;
  background: repeating-linear-gradient(
    0deg,
    rgba(255,255,255,.15) 0px,
    rgba(255,255,255,.15) 6px,
    #1a1a2e 6px,
    #1a1a2e 12px
  );
  border-radius: 4px;
  box-shadow: inset 0 0 6px rgba(0,0,0,.5);
  animation: en-blinds 8s ease-in-out infinite;
}
.scn-entrance .figure-prince {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: en-tremble 0.5s ease-in-out infinite;
}
.scn-entrance .shadow-prince {
  position: absolute; bottom: 22%; left: 39%; width: 50px; height: 5px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: en-shadow-tremble 0.5s ease-in-out infinite;
}

@keyframes en-sky {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}
@keyframes en-street {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes en-house {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes en-window-glow {
  0% { box-shadow: 0 0 12px 4px rgba(176,128,64,.3), 0 0 24px 8px rgba(176,128,64,.15); opacity: .7; }
  50% { box-shadow: 0 0 24px 8px rgba(176,128,64,.6), 0 0 48px 16px rgba(176,128,64,.3); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px rgba(176,128,64,.4), 0 0 32px 10px rgba(176,128,64,.2); opacity: .8; }
}
@keyframes en-blinds {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}
@keyframes en-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(0.5px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes en-shadow-tremble {
  0% { transform: skew(0deg); }
  25% { transform: skew(2deg); }
  50% { transform: skew(-1deg); }
  75% { transform: skew(1deg); }
  100% { transform: skew(0deg); }
}

/* Scene: quiet-entrance */
.scn-quiet-entrance {
  background: 
    linear-gradient(180deg, #080812 0%, #0c0c1a 40%, #141428 100%),
    radial-gradient(ellipse at 90% 70%, #0a0a14 0%, transparent 80%);
}
.scn-quiet-entrance .facade {
  position: absolute; bottom: 0; left: 0; right: 0; height: 95%;
  background: linear-gradient(180deg, #1e1e32 0%, #121226 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: qe-facade 20s ease-in-out infinite alternate;
}
.scn-quiet-entrance .doorway {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 20%; height: 70%;
  background: linear-gradient(180deg, #0a0a18 0%, #050510 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: qe-doorway 8s ease-in-out infinite;
}
.scn-quiet-entrance .door {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 18%; height: 68%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-quiet-entrance .keyhole {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 6px; height: 10px;
  background: radial-gradient(ellipse, #c08040 0%, #604020 60%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(192,128,64,.5), 0 0 16px 4px rgba(192,128,64,.2);
  animation: qe-keyhole 4s ease-in-out infinite alternate;
}
.scn-quiet-entrance .figure-rogojin {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qe-enter 6s ease-in-out infinite;
}
.scn-quiet-entrance .figure-rogojin::after {
  content: ''; position: absolute; top: 12px; right: -4px; width: 6px; height: 2px;
  background: #0a0a14;
  transform-origin: right center;
  border-radius: 2px;
  animation: qe-arm-key 6s ease-in-out infinite;
}
.scn-quiet-entrance .figure-prince {
  position: absolute; bottom: 25%; left: 48%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #0a0a14 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qe-follow 6s ease-in-out infinite 0.3s;
}
.scn-quiet-entrance .shadow-rogojin {
  position: absolute; bottom: 24%; left: 39%; width: 50px; height: 5px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: qe-shadow 6s ease-in-out infinite;
}
.scn-quiet-entrance .lamp-outside {
  position: absolute; bottom: 30%; left: 15%; width: 6px; height: 18px;
  background: #2a2a3e;
  border-radius: 2px;
}
.scn-quiet-entrance .lamp-outside::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #604020 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(192,128,64,.5), 0 0 32px 8px rgba(192,128,64,.2);
  animation: qe-lamp 3s ease-in-out infinite alternate;
}

@keyframes qe-facade {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.005); }
  100% { transform: scaleY(1); }
}
@keyframes qe-doorway {
  0% { opacity: .8; }
  50% { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes qe-keyhole {
  0% { opacity: .6; box-shadow: 0 0 4px 1px rgba(192,128,64,.3); }
  50% { opacity: 1; box-shadow: 0 0 12px 4px rgba(192,128,64,.6); }
  100% { opacity: .7; box-shadow: 0 0 6px 2px rgba(192,128,64,.4); }
}
@keyframes qe-enter {
  0%,100% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(5px) scaleX(0.95); }
  50% { transform: translateX(10px) scaleX(1); }
  75% { transform: translateX(5px) scaleX(0.95); }
}
@keyframes qe-arm-key {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(20deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(15deg); }
}
@keyframes qe-follow {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(4px); }
  50% { transform: translateX(8px); }
  75% { transform: translateX(4px); }
}
@keyframes qe-shadow {
  0% { width: 50px; opacity: .6; }
  50% { width: 70px; opacity: .4; }
  100% { width: 50px; opacity: .6; }
}
@keyframes qe-lamp {
  0% { opacity: .7; box-shadow: 0 0 8px 2px rgba(192,128,64,.3); }
  50% { opacity: 1; box-shadow: 0 0 20px 6px rgba(192,128,64,.6); }
  100% { opacity: .8; box-shadow: 0 0 12px 3px rgba(192,128,64,.4); }
}

/* nastasia-merry – calm sunlit interior cutaway */
.scn-nastasia-merry {
  background:
    linear-gradient(135deg, #f5e6d3 0%, #dac5b0 40%, #c0a88c 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 60%);
}
.scn-nastasia-merry .wall   {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0dcc8 0%, #e0cbb4 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08);
  animation: nm-wall 20s ease-in-out infinite alternate;
}
.scn-nastasia-merry .window {
  position: absolute; top: 8%; left: 15%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #b8d4d8 0%, #cce0e3 50%, #dceef0 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px rgba(255,235,200,0.3);
  animation: nm-window 8s ease-in-out infinite alternate;
}
.scn-nastasia-merry .sunbeam{
  position: absolute; top: 10%; left: 18%; width: 30%; height: 70%;
  background: linear-gradient(135deg, rgba(255,245,210,0.25) 0%, rgba(255,245,210,0.05) 100%);
  border-radius: 0 0 60% 60%;
  filter: blur(6px);
  animation: nm-beam 12s ease-in-out infinite alternate;
}
.scn-nastasia-merry .prince-silhouette {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%);
  border-radius: 45% 40% 50% 40% / 60% 65% 40% 35%;
  transform-origin: bottom center;
  animation: nm-prince 6s ease-in-out infinite;
}
.scn-nastasia-merry .nastasia-silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%);
  border-radius: 40% 45% 45% 40% / 70% 65% 35% 40%;
  transform-origin: bottom center;
  animation: nm-nastasia 7s ease-in-out infinite;
}
.scn-nastasia-merry .chair  {
  position: absolute; bottom: 20%; right: 8%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #6b4c3b 0%, #4a3225 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: nm-chair 10s ease-in-out infinite alternate;
}
.scn-nastasia-merry .table  {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #7a5a42 0%, #5c3f2d 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: nm-table 14s ease-in-out infinite;
}
.scn-nastasia-merry .candle {
  position: absolute; bottom: 24%; left: 42%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #c8a47c 0%, #a07a58 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(255,200,120,0.5);
  animation: nm-candle 4s ease-in-out infinite alternate;
}
@keyframes nm-wall {
  0%   { opacity: 0.9; }
  50%  { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes nm-window {
  0%   { background: linear-gradient(135deg, #b8d4d8 0%, #cce0e3 50%, #dceef0 100%); }
  50%  { background: linear-gradient(135deg, #c8e0e3 0%, #d8ecef 50%, #e4f2f4 100%); transform: scaleY(1.02); }
  100% { background: linear-gradient(135deg, #b8d4d8 0%, #cce0e3 50%, #dceef0 100%); }
}
@keyframes nm-beam {
  0%   { opacity: 0.6; transform: rotate(0deg) translateX(0); }
  50%  { opacity: 0.8; transform: rotate(2deg) translateX(4px); }
  100% { opacity: 0.7; transform: rotate(0deg) translateX(0); }
}
@keyframes nm-prince {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nm-nastasia {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nm-chair {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes nm-table {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes nm-candle {
  0%   { box-shadow: 0 0 8px 2px rgba(255,200,120,0.3); }
  50%  { box-shadow: 0 0 18px 6px rgba(255,220,150,0.7); }
  100% { box-shadow: 0 0 10px 3px rgba(255,200,120,0.4); }
}

/* colia-reconciles – calm overcast discussion grouping */
.scn-colia-reconciles {
  background:
    linear-gradient(180deg, #b0b8b0 0%, #8a948a 30%, #6a746a 100%),
    radial-gradient(ellipse at 50% 80%, #9aa49a 0%, transparent 70%);
}
.scn-colia-reconciles .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #c8ccc8 0%, #a0a8a0 100%);
  animation: cr-room 20s ease-in-out infinite alternate;
}
.scn-colia-reconciles .window-diffuse {
  position: absolute; top: 10%; right: 5%; width: 35%; height: 50%;
  background: linear-gradient(135deg, #d0d8d0 0%, #e0e6e0 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 20px rgba(200,210,200,0.3);
  filter: blur(2px);
  animation: cr-window 12s ease-in-out infinite alternate;
}
.scn-colia-reconciles .colia {
  position: absolute; bottom: 20%; left: 15%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #3a403a 0%, #1a201a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: cr-colia 5s ease-in-out infinite;
}
.scn-colia-reconciles .prince {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a302a 0%, #0a100a 100%);
  border-radius: 45% 40% 45% 40% / 60% 65% 35% 40%;
  animation: cr-prince 6s ease-in-out infinite;
}
.scn-colia-reconciles .nina {
  position: absolute; bottom: 20%; right: 30%; width: 11%; height: 37%;
  background: linear-gradient(180deg, #4a504a 0%, #2a302a 100%);
  border-radius: 40% 45% 40% 45% / 65% 60% 35% 40%;
  animation: cr-nina 7s ease-in-out infinite;
}
.scn-colia-reconciles .lebedeff {
  position: absolute; bottom: 20%; right: 10%; width: 9%; height: 34%;
  background: linear-gradient(180deg, #3a403a 0%, #1a201a 100%);
  border-radius: 40% 40% 45% 45% / 55% 55% 40% 40%;
  animation: cr-lebedeff 8s ease-in-out infinite;
}
.scn-colia-reconciles .table-discussion {
  position: absolute; bottom: 16%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #6a726a 0%, #4a524a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: cr-table 15s ease-in-out infinite alternate;
}
.scn-colia-reconciles .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #c0c8c0 0%, #a0a8a0 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 14px 4px rgba(200,210,200,0.4);
  animation: cr-lamp 6s ease-in-out infinite alternate;
}
@keyframes cr-room {
  0%   { opacity: 0.95; }
  50%  { opacity: 1; }
  100% { opacity: 0.97; }
}
@keyframes cr-window {
  0%   { filter: blur(2px) brightness(0.95); }
  50%  { filter: blur(2px) brightness(1); }
  100% { filter: blur(2px) brightness(0.96); }
}
@keyframes cr-colia {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cr-prince {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cr-nina {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cr-lebedeff {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cr-table {
  0%   { transform: scaleY(1); }
  50%  { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes cr-lamp {
  0%   { box-shadow: 0 0 10px 2px rgba(200,210,200,0.3); }
  50%  { box-shadow: 0 0 20px 6px rgba(220,230,220,0.6); }
  100% { box-shadow: 0 0 12px 3px rgba(200,210,200,0.35); }
}

/* keller-visits – funny sunlit doorway scene */
.scn-keller-visits {
  background:
    linear-gradient(180deg, #f5e0c0 0%, #e0c8a0 30%, #c8a880 100%),
    radial-gradient(ellipse at 50% 100%, #d4b898 0%, transparent 70%);
}
.scn-keller-visits .doorway {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 0;
  background: radial-gradient(ellipse at 50% 100%, #d4b898 0%, #b89878 100%);
  border: 4px solid #8a6a4a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: kv-doorway 10s ease-in-out infinite alternate;
}
.scn-keller-visits .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b89878 0%, #987858 100%);
  animation: kv-floor 14s ease-in-out infinite;
}
.scn-keller-visits .keller {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%);
  border-radius: 45% 40% 45% 40% / 60% 65% 40% 35%;
  transform-origin: bottom center;
  animation: kv-keller 3s ease-in-out infinite;
}
.scn-keller-visits .prince-inside {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a2020 0%, #0a0808 100%);
  border-radius: 40% 45% 40% 45% / 65% 60% 35% 40%;
  animation: kv-prince 5s ease-in-out infinite;
}
.scn-keller-visits .sunlight-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%);
  filter: blur(8px);
  animation: kv-sunlight 12s ease-in-out infinite alternate;
}
.scn-keller-visits .shadow-floor {
  position: absolute; bottom: 20%; left: 42%; width: 18%; height: 6%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: kv-shadow 4s ease-in-out infinite;
}
.scn-keller-visits .curtain-left {
  position: absolute; top: 0; left: 25%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 10% 10% 0;
  animation: kv-curtain 15s ease-in-out infinite alternate;
}
.scn-keller-visits .curtain-right {
  position: absolute; top: 0; right: 25%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 0 0 10%;
  animation: kv-curtain 15s ease-in-out infinite alternate reverse;
}
@keyframes kv-doorway {
  0%   { box-shadow: inset 0 0 20px rgba(0,0,0,0.1); }
  50%  { box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
  100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.15); }
}
@keyframes kv-floor {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kv-keller {
  0%   { transform: translateX(0) rotate(0deg) scale(1); }
  25%  { transform: translateX(8px) rotate(10deg) scale(1.05); }
  50%  { transform: translateX(0) rotate(0deg) scale(1); }
  75%  { transform: translateX(-8px) rotate(-10deg) scale(1.05); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes kv-prince {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kv-sunlight {
  0%   { opacity: 0.4; transform: rotate(0deg) translateX(0); }
  50%  { opacity: 0.7; transform: rotate(3deg) translateX(6px); }
  100% { opacity: 0.45; transform: rotate(0deg) translateX(0); }
}
@keyframes kv-shadow {
  0%   { transform: scaleX(1) translateX(0); }
  50%  { transform: scaleX(1.2) translateX(4px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes kv-curtain {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* keller-praises-prince – funny close-up with gestures */
.scn-keller-praises-prince {
  background:
    linear-gradient(135deg, #f0d8b8 0%, #dcc0a0 50%, #c8a888 100%),
    radial-gradient(ellipse at 70% 40%, #ffe8c8 0%, transparent 60%);
}
.scn-keller-praises-prince .close-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d0b0 0%, #d0b898 100%);
  animation: kp-bg 20s ease-in-out infinite alternate;
}
.scn-keller-praises-prince .keller-face {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: kp-face 4s ease-in-out infinite;
}
.scn-keller-praises-prince .keller-hand {
  position: absolute; top: 25%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: 0% 100%;
  animation: kp-hand 3s ease-in-out infinite;
}
.scn-keller-praises-prince .prince-profile {
  position: absolute; top: 20%; right: 15%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%);
  border-radius: 40% 40% 45% 45% / 55% 55% 45% 45%;
  animation: kp-profile 5s ease-in-out infinite;
}
.scn-keller-praises-prince .praise-burst {
  position: absolute; top: 10%; left: 35%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: kp-burst 2s ease-in-out infinite alternate;
}
.scn-keller-praises-prince .chair-back {
  position: absolute; bottom: 10%; right: 5%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #6b4c3b 0%, #4a3225 100%);
  border-radius: 8% 8% 4% 4%;
  animation: kp-chair 8s ease-in-out infinite alternate;
}
.scn-keller-praises-prince .warm-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,240,200,0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: kp-light 6s ease-in-out infinite alternate;
}
@keyframes kp-bg {
  0%   { opacity: 0.9; }
  50%  { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes kp-face {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(6px) rotate(8deg); }
  50%  { transform: translateX(0) rotate(0deg); }
  75%  { transform: translateX(-6px) rotate(-8deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kp-hand {
  0%   { transform: rotate(0deg) scale(1); }
  25%  { transform: rotate(30deg) scale(1.1); }
  50%  { transform: rotate(0deg) scale(1); }
  75%  { transform: rotate(-20deg) scale(0.9); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes kp-profile {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kp-burst {
  0%   { opacity: 0.4; transform: scale(0.8); }
  100% { opacity: 0.9; transform: scale(1.2); }
}
@keyframes kp-chair {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.03); }
  100% { transform: scale(1); }
}
@keyframes kp-light {
  0%   { opacity: 0.6; }
  50%  { opacity: 0.9; }
  100% { opacity: 0.65; }
}

/* general-dies */
.scn-general-dies {
  background: linear-gradient(180deg, #7b8a94 0%, #5a6872 50%, #3e4a52 100%), radial-gradient(ellipse at 50% 80%, #4a5a65 0%, transparent 70%);
}
.scn-general-dies .gd-window {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 48%;
  background: linear-gradient(180deg, #b8c4cc 0%, #9aa8b2 70%, transparent 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,255,0.1);
  animation: gd-weather 20s ease-in-out infinite alternate;
}
.scn-general-dies .gd-curtain {
  position: absolute; top: 6%; left: 18%; width: 22%; height: 52%;
  background: linear-gradient(90deg, #6b7a84 0%, #4b5a64 80%);
  border-radius: 0 40% 40% 0; filter: blur(2px);
  animation: gd-drape 15s ease-in-out infinite alternate;
}
.scn-general-dies .gd-bed {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 32%;
  background: linear-gradient(180deg, #756a5e 0%, #5a5045 80%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gd-bed-breathe 8s ease-in-out infinite;
}
.scn-general-dies .gd-figure {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 60% 40% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: gd-figure-lie 12s ease-in-out infinite alternate;
}
.scn-general-dies .gd-chair {
  position: absolute; bottom: 20%; right: 20%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #504840 0%, #2a2520 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: gd-chair-rock 14s ease-in-out infinite;
}
.scn-general-dies .gd-lamp {
  position: absolute; bottom: 44%; left: 62%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #d4c8a0 0%, #b8a880 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(200,180,140,0.3);
  animation: gd-lamp-flicker 4s ease-in-out infinite alternate;
}
@keyframes gd-weather { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes gd-drape { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(1.02); } 100% { transform: translateX(2px) scaleX(0.98); } }
@keyframes gd-bed-breathe { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes gd-figure-lie { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.005) rotate(0.5deg); } 100% { transform: scaleY(1) rotate(-0.5deg); } }
@keyframes gd-chair-rock { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes gd-lamp-flicker { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }

/* funeral */
.scn-funeral {
  background: linear-gradient(180deg, #6b6f75 0%, #50555a 40%, #383c40 100%), radial-gradient(ellipse at 50% 30%, #7a8085 0%, transparent 60%);
}
.scn-funeral .fun-bg-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #50555a 0%, #383c40 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  opacity: 0.8;
  animation: fun-arch-fade 30s ease-in-out infinite alternate;
}
.scn-funeral .fun-window {
  position: absolute; top: 8%; left: 25%; width: 50%; height: 45%;
  background: linear-gradient(180deg, #8a9096 0%, #60666b 70%);
  border-radius: 4px;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: fun-window-cloud 40s linear infinite;
}
.scn-funeral .fun-pew {
  position: absolute; bottom: 18%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a403a 0%, #2e2622 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.6);
  animation: fun-pew-slide 20s ease-in-out infinite alternate;
}
.scn-funeral .fun-congregation {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  opacity: 0.9;
  animation: fun-crowd-sway 14s ease-in-out infinite;
}
.scn-funeral .fun-casket {
  position: absolute; bottom: 25%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(180deg, #5a4e44 0%, #3a3028 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fun-casket-lift 12s ease-in-out infinite;
}
.scn-funeral .fun-candle {
  position: absolute; bottom: 35%; left: 48%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #ffd080 0%, #ccaa60 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.4);
  animation: fun-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-funeral .fun-shadow {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fun-shadow-pulse 18s ease-in-out infinite alternate;
}
@keyframes fun-arch-fade { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes fun-window-cloud { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } background-size: 200% 100%; }
@keyframes fun-pew-slide { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes fun-crowd-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes fun-casket-lift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fun-candle-flicker { 0% { opacity: 0.8; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.85; transform: scaleY(0.98); } }
@keyframes fun-shadow-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* rogojin-at-funeral */
.scn-rogojin-at-funeral {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #05050a 100%), radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-rogojin-at-funeral .raf-bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a12 0%, #12121c 100%);
  animation: raf-deep-pulse 25s ease-in-out infinite alternate;
}
.scn-rogojin-at-funeral .raf-pillar-left {
  position: absolute; top: 5%; left: 8%; width: 8%; height: 90%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 4px 0 15px rgba(0,0,0,0.6);
}
.scn-rogojin-at-funeral .raf-pillar-right {
  position: absolute; top: 5%; right: 8%; width: 8%; height: 90%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: -4px 0 15px rgba(0,0,0,0.6);
}
.scn-rogojin-at-funeral .raf-candles {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, #ffcc80 0%, #cc8840 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,140,60,0.3);
  animation: raf-candle-glow 5s ease-in-out infinite alternate;
}
.scn-rogojin-at-funeral .raf-prince {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: raf-prince-turn 10s ease-in-out infinite;
}
.scn-rogojin-at-funeral .raf-rogozhin {
  position: absolute; bottom: 22%; right: 30%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #1a1a2e 0%, #05050a 100%);
  border-radius: 50% 30% 30% 50% / 40% 40% 50% 50%;
  filter: blur(1px);
  animation: raf-rogozhin-shift 15s ease-in-out infinite alternate;
}
.scn-rogojin-at-funeral .raf-glow {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(circle at 50% 50%, rgba(180,120,60,0.15) 0%, transparent 70%);
  animation: raf-glow-pulse 8s ease-in-out infinite alternate;
}
@keyframes raf-deep-pulse { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes raf-candle-glow { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1.02); } }
@keyframes raf-prince-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes raf-rogozhin-shift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes raf-glow-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* rogojin-confirmed */
.scn-rogojin-confirmed {
  background: linear-gradient(180deg, #0a0a14 0%, #141420 50%, #000005 100%), radial-gradient(ellipse at 50% 50%, #1a1a30 0%, transparent 60%);
}
.scn-rogojin-confirmed .rc-bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #050510 0%, #0e0e1c 100%);
  animation: rc-bg-swirl 30s ease-in-out infinite alternate;
}
.scn-rogojin-confirmed .rc-column {
  position: absolute; top: 5%; left: 20%; width: 6%; height: 90%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%);
  border-radius: 4px;
  box-shadow: 3px 0 12px rgba(0,0,0,0.5);
}
.scn-rogojin-confirmed .rc-figure-prince {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1e1e30 0%, #0a0a18 100%);
  border-radius: 40% 40% 30% 30% / 50% 45% 40% 40%;
  transform-origin: bottom center;
  animation: rc-prince-lean 12s ease-in-out infinite;
}
.scn-rogojin-confirmed .rc-figure-rogozhin {
  position: absolute; bottom: 18%; right: 25%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #0a0a1a 0%, #020208 100%);
  border-radius: 30% 50% 50% 30% / 40% 40% 50% 50%;
  filter: blur(2px);
  animation: rc-rogozhin-sink 20s ease-in-out infinite alternate;
}
.scn-rogojin-confirmed .rc-eyes-glow {
  position: absolute; bottom: 38%; right: 28%; width: 4%; height: 2%;
  background: radial-gradient(circle at 50% 50%, #ffcc66 0%, #ccaa44 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,204,102,0.5);
  animation: rc-eyes-pulse 3s ease-in-out infinite alternate;
}
.scn-rogojin-confirmed .rc-doorway {
  position: absolute; bottom: 0; right: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #0a0a18 0%, #000005 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: rc-doorway-recede 25s ease-in-out infinite alternate;
}
@keyframes rc-bg-swirl { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes rc-prince-lean { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } }
@keyframes rc-rogozhin-sink { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.95); } 100% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes rc-eyes-pulse { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes rc-doorway-recede { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.02); } }

.scn-next-morning-calm {
  background: linear-gradient(180deg, #f5e6d3 0%, #fff5e6 40%, #e8d5c4 100%),
              radial-gradient(ellipse at 30% 50%, #fff0dc 0%, transparent 60%);
}
.scn-next-morning-calm .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ecdcc8 0%, #d9c4b0 100%);
}
.scn-next-morning-calm .window {
  position: absolute; top: 15%; left: 20%; width: 35%; height: 50%;
  background: linear-gradient(135deg, #b0d4f0 0%, #8bc1e8 100%);
  border: 6px solid #c8b098; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: nmc-window 10s ease-in-out infinite alternate;
}
.scn-next-morning-calm .sunbeam {
  position: absolute; top: 15%; left: 20%; width: 45%; height: 60%;
  background: linear-gradient(135deg, rgba(255,250,230,0.5) 0%, rgba(255,250,230,0) 100%);
  filter: blur(6px); clip-path: polygon(0 0, 100% 10%, 90% 100%, 0 100%);
  animation: nmc-beam 14s ease-in-out infinite alternate;
}
.scn-next-morning-calm .mirror {
  position: absolute; bottom: 25%; right: 15%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border: 4px solid #b09880; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: nmc-mirror 12s ease-in-out infinite;
}
.scn-next-morning-calm .table {
  position: absolute; bottom: 10%; right: 20%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-next-morning-calm .figure {
  position: absolute; bottom: 22%; right: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #b09880 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nmc-fig 6s ease-in-out infinite alternate;
}
.scn-next-morning-calm .maid {
  position: absolute; bottom: 18%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nmc-maid 8s ease-in-out infinite alternate;
  animation-delay: -3s;
}
@keyframes nmc-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,0.5); }
  100% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
}
@keyframes nmc-beam {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05) translateY(-2px); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes nmc-mirror {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes nmc-fig {
  0% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0px) rotate(0deg); }
}
@keyframes nmc-maid {
  0% { transform: translateX(0px) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0px) rotate(-2deg); }
}

.scn-wedding-day {
  background: linear-gradient(180deg, #f0d8b8 0%, #e8c090 30%, #d0a070 60%, #b08050 100%),
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
}
.scn-wedding-day .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6eb0e8 0%, #b0d8f0 100%);
}
.scn-wedding-day .house {
  position: absolute; bottom: 25%; left: 10%; width: 40%; height: 45%;
  background: linear-gradient(180deg, #c89870 0%, #a07050 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-wedding-day .door {
  position: absolute; bottom: 25%; left: 25%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  animation: wd-door 3s ease-in-out infinite alternate;
}
.scn-wedding-day .crowd-1 {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  clip-path: polygon(0% 100%, 8% 70%, 15% 100%, 25% 60%, 35% 100%, 45% 65%, 55% 100%, 65% 70%, 75% 100%, 85% 60%, 95% 100%, 100% 100%);
  animation: wd-crowd 8s ease-in-out infinite alternate;
}
.scn-wedding-day .crowd-2 {
  position: absolute; bottom: 8%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  clip-path: polygon(0% 100%, 10% 65%, 20% 100%, 30% 70%, 40% 100%, 50% 60%, 60% 100%, 70% 75%, 80% 100%, 90% 65%, 100% 100%);
  animation: wd-crowd 10s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-wedding-day .carriage {
  position: absolute; bottom: 30%; right: 5%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: wd-carr 12s ease-in-out infinite;
}
.scn-wedding-day .shadow-line {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent, #2a1a0a 20%, #2a1a0a 80%, transparent);
  filter: blur(2px);
  animation: wd-shadow 6s ease-in-out infinite alternate;
}
@keyframes wd-door {
  0% { transform: rotateY(-5deg); }
  50% { transform: rotateY(5deg); }
  100% { transform: rotateY(-5deg); }
}
@keyframes wd-crowd {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(3px); }
}
@keyframes wd-carr {
  0% { transform: translateX(0px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0px) rotate(-1deg); }
}
@keyframes wd-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.5); }
  100% { opacity: 0.3; transform: scaleY(1); }
}

.scn-church-fills {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #3a3a5e 60%, #4a4a6e 100%),
              radial-gradient(ellipse at 50% 30%, #6a5a8e 0%, transparent 70%);
}
.scn-church-fills .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0e0e1a 100%);
}
.scn-church-fills .arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-church-fills .column-l {
  position: absolute; top: 0; left: 20%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 4px;
}
.scn-church-fills .column-r {
  position: absolute; top: 0; right: 20%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 4px;
}
.scn-church-fills .window {
  position: absolute; top: 10%; left: 38%; width: 24%; height: 30%;
  background: linear-gradient(135deg, #b08040 0%, #e0b060 50%, #f0c080 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 40px rgba(240,192,128,0.6), 0 0 60px rgba(240,192,128,0.3);
  animation: cf-window 4s ease-in-out infinite alternate;
}
.scn-church-fills .light-ray {
  position: absolute; top: 10%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(135deg, rgba(240,200,160,0.4) 0%, rgba(240,200,160,0) 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  filter: blur(4px);
  animation: cf-ray 6s ease-in-out infinite alternate;
}
.scn-church-fills .pews {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1a3a 0px, #2a1a3a 8px, #3a2a4a 8px, #3a2a4a 12px);
  border-radius: 4px;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-church-fills .crowd {
  position: absolute; bottom: 10%; left: 18%; width: 64%; height: 35%;
  background: linear-gradient(180deg, #1a0a2a 0%, #0a001a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  clip-path: polygon(0% 100%, 5% 80%, 10% 100%, 15% 75%, 20% 100%, 25% 85%, 30% 100%, 35% 70%, 40% 100%, 45% 80%, 50% 100%, 55% 75%, 60% 100%, 65% 85%, 70% 100%, 75% 70%, 80% 100%, 85% 80%, 90% 100%, 95% 75%, 100% 100%);
  animation: cf-crowd 8s ease-in-out infinite alternate;
}
@keyframes cf-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(240,192,128,0.4), 0 0 40px rgba(240,192,128,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(240,192,128,0.8), 0 0 80px rgba(240,192,128,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(240,192,128,0.4), 0 0 40px rgba(240,192,128,0.2); }
}
@keyframes cf-ray {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1) translateY(-5px); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes cf-crowd {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}

.scn-prince-arrives-at-church {
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a6e 30%, #4a4a8e 60%, #2a2a4e 100%),
              radial-gradient(ellipse at 50% 0%, #6a6aae 0%, transparent 70%);
}
.scn-prince-arrives-at-church .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a8e 0%, #6a6aae 50%, #8a8ace 100%);
  animation: pca-sky 15s ease-in-out infinite alternate;
}
.scn-prince-arrives-at-church .church-sil {
  position: absolute; bottom: 20%; left: 50%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2e 100%);
  clip-path: polygon(10% 100%, 10% 20%, 25% 0%, 40% 20%, 40% 100%, 60% 100%, 60% 30%, 75% 10%, 90% 30%, 90% 100%);
}
.scn-prince-arrives-at-church .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%);
  border-radius: 4px 4px 0 0;
}
.scn-prince-arrives-at-church .carriage {
  position: absolute; bottom: 8%; left: 10%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pca-carr 10s ease-in-out infinite;
}
.scn-prince-arrives-at-church .horse {
  position: absolute; bottom: 10%; left: 5%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pca-horse 8s ease-in-out infinite alternate;
}
.scn-prince-arrives-at-church .lantern {
  position: absolute; bottom: 30%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #f0c060 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,0.6), 0 0 60px 20px rgba(240,192,96,0.3);
  animation: pca-lantern 3s ease-in-out infinite alternate;
}
.scn-prince-arrives-at-church .figure {
  position: absolute; bottom: 12%; left: 20%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pca-fig 6s ease-in-out infinite alternate;
}
@keyframes pca-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pca-carr {
  0% { transform: translateX(0px) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(0px) rotate(0deg); }
}
@keyframes pca-horse {
  0% { transform: translateY(0px) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0px) rotate(-2deg); }
}
@keyframes pca-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(240,192,96,0.4), 0 0 40px 10px rgba(240,192,96,0.2); }
  50% { box-shadow: 0 0 40px 15px rgba(240,192,96,0.8), 0 0 80px 25px rgba(240,192,96,0.5); }
  100% { box-shadow: 0 0 20px 5px rgba(240,192,96,0.4), 0 0 40px 10px rgba(240,192,96,0.2); }
}
@keyframes pca-fig {
  0% { transform: translateY(0px) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0px) rotate(-1deg); }
}

.scn-moonlit {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 70% 30%, #5a5a8e 0%, transparent 70%);
}
.scn-moonlit .window-frame {
  position: absolute; top: 8%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #2a2a4e, #1a1a3e);
  border: 2px solid #6a6a9e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(90,90,142,.3);
  animation: ml-frame 8s ease-in-out infinite alternate;
}
.scn-moonlit .moonlight-beam {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 70%;
  background: linear-gradient(135deg, rgba(180,180,255,.25) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px); animation: ml-beam 12s ease-in-out infinite alternate;
}
.scn-moonlit .figure-seated {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, #1a1a3e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ml-figure 6s ease-in-out infinite;
}
.scn-moonlit .chair {
  position: absolute; bottom: 12%; left: 32%; width: 26%; height: 12%;
  background: linear-gradient(180deg, #3a3a5e, #1a1a3e);
  border-radius: 20% 20% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: ml-chair 10s ease-in-out infinite alternate;
}
.scn-moonlit .side-table {
  position: absolute; bottom: 10%; right: 15%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #4a4a6e, #2a2a4e);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ml-table 14s ease-in-out infinite alternate;
}
.scn-moonlit .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: ml-shadow 10s ease-in-out infinite alternate;
}
.scn-moonlit .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(200,200,255,.3); border-radius: 50%; filter: blur(2px);
  box-shadow: 30px 40px 0 rgba(200,200,255,.2), 60px 10px 0 rgba(200,200,255,.15), 90px 50px 0 rgba(200,200,255,.1);
  animation: ml-dust 20s linear infinite;
}
@keyframes ml-frame { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes ml-beam { 0% { opacity: .3; transform: rotate(-2deg); } 50% { opacity: .6; transform: rotate(0); } 100% { opacity: .4; transform: rotate(2deg); } }
@keyframes ml-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ml-chair { 0% { box-shadow: 0 2px 6px rgba(0,0,0,.6); } 50% { box-shadow: 0 8px 16px rgba(0,0,0,.8); } 100% { box-shadow: 0 2px 4px rgba(0,0,0,.5); } }
@keyframes ml-table { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(.98); } }
@keyframes ml-shadow { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes ml-dust { 0% { transform: translateY(0) translateX(0); opacity: .3; } 50% { transform: translateY(-20px) translateX(10px); opacity: .5; } 100% { transform: translateY(-40px) translateX(-10px); opacity: .2; } }

.scn-confession {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 40%, #5a5a8e 0%, transparent 80%);
}
.scn-confession .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border-radius: 0 0 30% 30%; animation: cf-wall 12s ease-in-out infinite alternate;
}
.scn-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e, #0e0e1e);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
  animation: cf-floor 15s ease-in-out infinite alternate;
}
.scn-confession .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 18%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, #1a1a3e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: cf-left 8s ease-in-out infinite alternate;
}
.scn-confession .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 20%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, #1a1a3e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: cf-right 8s ease-in-out infinite alternate;
}
.scn-confession .table {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #4a4a6e, #2a2a4e);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: cf-table 10s ease-in-out infinite alternate;
}
.scn-confession .moon-shaft {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 80%;
  background: linear-gradient(180deg, rgba(180,180,255,.15) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  filter: blur(6px); animation: cf-shaft 14s ease-in-out infinite alternate;
}
.scn-confession .shadow-left {
  position: absolute; bottom: 0; left: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.7));
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cf-sleft 10s ease-in-out infinite alternate;
}
.scn-confession .shadow-right {
  position: absolute; bottom: 0; right: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.8));
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cf-sright 10s ease-in-out infinite alternate;
}
@keyframes cf-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes cf-floor { 0% { box-shadow: inset 0 8px 16px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 12px 24px rgba(0,0,0,.8); } 100% { box-shadow: inset 0 4px 8px rgba(0,0,0,.5); } }
@keyframes cf-left { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes cf-right { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes cf-table { 0% { box-shadow: 0 6px 12px rgba(0,0,0,.6); } 50% { box-shadow: 0 10px 20px rgba(0,0,0,.8); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,.5); } }
@keyframes cf-shaft { 0% { opacity: .2; transform: scaleY(1); } 50% { opacity: .5; transform: scaleY(1.05); } 100% { opacity: .3; transform: scaleY(.95); } }
@keyframes cf-sleft { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }
@keyframes cf-sright { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

.scn-pointing-to-curtain {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 30%, #5a5a8e 0%, transparent 60%);
}
.scn-pointing-to-curtain .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: pt-wall 15s ease-in-out infinite alternate;
}
.scn-pointing-to-curtain .curtain {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #4a3a5e, #2a1a3e);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px rgba(0,0,0,.5), inset 0 0 20px rgba(90,70,110,.3);
  animation: pt-curtain 12s ease-in-out infinite alternate;
}
.scn-pointing-to-curtain .figure-pointing {
  position: absolute; bottom: 15%; left: 25%; width: 18%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, #1a1a3e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  transform-origin: 70% 80%; animation: pt-point 5s ease-in-out infinite;
}
.scn-pointing-to-curtain .figure-other {
  position: absolute; bottom: 18%; right: 20%; width: 20%; height: 42%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, #1a1a3e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pt-other 8s ease-in-out infinite alternate;
}
.scn-pointing-to-curtain .moon-shaft {
  position: absolute; top: 2%; left: 45%; width: 10%; height: 90%;
  background: linear-gradient(180deg, rgba(180,180,255,.2) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  filter: blur(5px); animation: pt-shaft 14s ease-in-out infinite alternate;
}
.scn-pointing-to-curtain .floor-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 2px;
  background: rgba(90,90,110,.5); box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pt-floor 10s ease-in-out infinite alternate;
}
.scn-pointing-to-curtain .dust {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,200,255,.2); border-radius: 50%;
  box-shadow: 20px 30px 0 rgba(200,200,255,.15), 50px 60px 0 rgba(200,200,255,.1);
  filter: blur(2px); animation: pt-dust 25s linear infinite;
}
@keyframes pt-wall { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes pt-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(-2px); } 100% { transform: scaleX(.98) translateX(2px); } }
@keyframes pt-point { 0% { transform: rotate(0); } 25% { transform: rotate(-15deg) translateY(-2px); } 50% { transform: rotate(-20deg) translateY(-4px); } 75% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(0); } }
@keyframes pt-other { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes pt-shaft { 0% { opacity: .2; transform: rotate(-1deg); } 50% { opacity: .4; transform: rotate(0); } 100% { opacity: .3; transform: rotate(1deg); } }
@keyframes pt-floor { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes pt-dust { 0% { transform: translateY(0) translateX(0); opacity: .2; } 50% { transform: translateY(-30px) translateX(15px); opacity: .4; } 100% { transform: translateY(-60px) translateX(-10px); opacity: .1; } }

.scn-behind-curtain {
  background:
    linear-gradient(180deg, #0a0a14 0%, #12121a 50%, #1a1a24 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a24 0%, #05050a 100%);
}
.scn-behind-curtain .darkness {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.9) 100%);
  animation: bc-dark 20s ease-in-out infinite alternate;
}
.scn-behind-curtain .curtain-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #2a1a3e, #1a0a2e);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  box-shadow: 6px 0 20px rgba(0,0,0,.6);
  animation: bc-left 15s ease-in-out infinite alternate;
}
.scn-behind-curtain .curtain-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #2a1a3e, #1a0a2e);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  box-shadow: -6px 0 20px rgba(0,0,0,.6);
  animation: bc-right 15s ease-in-out infinite alternate;
}
.scn-behind-curtain .figure-shadow {
  position: absolute; bottom: 15%; left: 50%; width: 18%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, #0a0a1e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: bc-shadow 10s ease-in-out infinite alternate;
}
.scn-behind-curtain .figure-outline {
  position: absolute; bottom: 12%; left: 50%; width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, #0a0a1e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(.95); opacity: .3;
  animation: bc-outline 10s ease-in-out infinite alternate;
}
.scn-behind-curtain .floor-board {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 2px;
  background: rgba(80,80,90,.3); box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: bc-floor 18s ease-in-out infinite alternate;
}
@keyframes bc-dark { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes bc-left { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes bc-right { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes bc-shadow { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(.98); } }
@keyframes bc-outline { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }
@keyframes bc-floor { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }

.scn-hippolyte-warns-of-rogojin { background: linear-gradient(110deg, #0e0a12 0%, #2a1a1a 30%, #1a1528 60%, #0a0810 100%), radial-gradient(ellipse at 30% 55%, #d49040 0%, transparent 45%); }
.scn-hippolyte-warns-of-rogojin .wall-back    { position:absolute; inset:0; background: linear-gradient(135deg, #1a1528 0%, #2a1a1a 50%, #0e0a12 100%); animation: hr1-breath 20s ease-in-out infinite alternate; }
.scn-hippolyte-warns-of-rogojin .wall-shadow  { position:absolute; left:40%; top:10%; width:50%; height:70%; background: linear-gradient(180deg, #0a0810 0%, transparent 100%); filter: blur(14px); animation: hr1-creep 16s ease-in-out infinite alternate; }
.scn-hippolyte-warns-of-rogojin .bed-post     { position:absolute; left:22%; bottom:22%; width:8px; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:2px; box-shadow: 4px 0 10px rgba(0,0,0,.5); transform-origin: bottom center; animation: hr1-post 6s ease-in-out infinite; }
.scn-hippolyte-warns-of-rogojin .figure-mother{ position:absolute; right:15%; bottom:25%; width:28px; height:52px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 55% 40% 45%; transform-origin: bottom center; filter: blur(.5px); animation: hr1-mother 5s ease-in-out infinite alternate; }
.scn-hippolyte-warns-of-rogojin .figure-sick  { position:absolute; left:28%; bottom:28%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform: rotate(-8deg); animation: hr1-sick 4s ease-in-out infinite; }
.scn-hippolyte-warns-of-rogojin .candle-flame { position:absolute; left:32%; bottom:50%; width:5px; height:12px; background: radial-gradient(ellipse, #ffd680 0%, #d49040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px #f0c060; animation: hr1-flicker 1.5s ease-in-out infinite alternate; }
.scn-hippolyte-warns-of-rogojin .candle-halo  { position:absolute; left:31%; bottom:49%; width:20px; height:24px; background: radial-gradient(ellipse, rgba(240,192,96,.3) 0%, transparent 70%); filter: blur(6px); animation: hr1-halo 3s ease-in-out infinite alternate; }
.scn-hippolyte-warns-of-rogojin .floor-line   { position:absolute; bottom:22%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #2a1a1a 30%, #4a3a2a 50%, #2a1a1a 70%, transparent 100%); opacity:.5; }
@keyframes hr1-breath  { 0% { opacity:.75; transform:scale(1) } 50% { opacity:.9; transform:scale(1.015) } 100% { opacity:.8; transform:scale(1) } }
@keyframes hr1-creep   { 0% { opacity:.3; transform:translateX(0) scaleY(1) } 50% { opacity:.55; transform:translateX(4px) scaleY(1.04) } 100% { opacity:.35; transform:translateX(-2px) scaleY(.97) } }
@keyframes hr1-post    { 0% { transform:rotate(0) } 50% { transform:rotate(1deg) } 100% { transform:rotate(-.5deg) } }
@keyframes hr1-mother  { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 50% { transform:translateX(-3px) translateY(-2px) rotate(1.5deg) } 100% { transform:translateX(1px) translateY(0) rotate(-.5deg) } }
@keyframes hr1-sick    { 0% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(-6deg) translateY(-2px) } 100% { transform:rotate(-9deg) translateY(0) } }
@keyframes hr1-flicker { 0% { opacity:.7; transform:scaleY(.85) scaleX(1) } 50% { opacity:1; transform:scaleY(1.1) scaleX(.95) } 100% { opacity:.8; transform:scaleY(.9) scaleX(1.02) } }
@keyframes hr1-halo    { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.9; transform:scale(1.15) } 100% { opacity:.6; transform:scale(.95) } }

.scn-hippolyte-advises-flight { background: linear-gradient(135deg, #1a1220 0%, #2e1e1a 40%, #0c0812 100%), radial-gradient(ellipse at 40% 50%, #b87850 0%, transparent 50%); }
.scn-hippolyte-advises-flight .chamber-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1220 0%, #2e1e1a 40%, #0c0812 100%); animation: ha2-bloom 18s ease-in-out infinite alternate; }
.scn-hippolyte-advises-flight .bed-rail    { position:absolute; left:20%; bottom:20%; width:55%; height:8px; background: linear-gradient(90deg, transparent 0%, #3a2a1a 20%, #5a4a3a 50%, #3a2a1a 80%, transparent 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform-origin: center; animation: ha2-rail 8s ease-in-out infinite; }
.scn-hippolyte-advises-flight .figure-up   { position:absolute; left:30%; bottom:26%; width:24px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: ha2-situp 4s ease-in-out infinite; }
.scn-hippolyte-advises-flight .pillow-drift{ position:absolute; left:27%; bottom:40%; width:32px; height:16px; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:50%; filter: blur(1px); box-shadow: 0 2px 6px rgba(0,0,0,.4); transform-origin: center; animation: ha2-pillow 10s ease-in-out infinite alternate; }
.scn-hippolyte-advises-flight .cover-fold  { position:absolute; left:22%; bottom:22%; width:50%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 50%, #1a0e0a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; filter: blur(1px); animation: ha2-cover 6s ease-in-out infinite alternate; }
.scn-hippolyte-advises-flight .wick-glow   { position:absolute; left:60%; bottom:44%; width:4px; height:10px; background: radial-gradient(ellipse, #ffd680 0%, #d49040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 10px 3px #f0c060; animation: ha2-wick 1.8s ease-in-out infinite alternate; }
.scn-hippolyte-advises-flight .wall-hollow { position:absolute; right:10%; top:25%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 40%, #1a1520 0%, transparent 70%); filter: blur(10px); opacity:.5; animation: ha2-hollow 14s ease-in-out infinite alternate; }
@keyframes ha2-bloom   { 0% { opacity:.7; transform:scale(1) } 50% { opacity:.95; transform:scale(1.02) } 100% { opacity:.75; transform:scale(.98) } }
@keyframes ha2-rail    { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(-1px) } }
@keyframes ha2-situp   { 0% { transform:rotate(-4deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-3px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes ha2-pillow  { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(2px) scaleX(1.04) } 100% { transform:translateX(-1px) scaleX(.97) } }
@keyframes ha2-cover   { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(3px) scaleY(1.02) } 100% { transform:translateY(-1px) scaleY(.97) } }
@keyframes ha2-wick    { 0% { opacity:.6; transform:scaleY(.8) } 50% { opacity:1; transform:scaleY(1.15) scaleX(.93) } 100% { opacity:.7; transform:scaleY(.85) scaleX(1.02) } }
@keyframes ha2-hollow  { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.05) } 100% { opacity:.35; transform:scale(.96) } }

.scn-prince-alarmed { background: linear-gradient(150deg, #0c0812 0%, #2a1a1a 30%, #1a1220 70%, #08060c 100%), radial-gradient(ellipse at 50% 45%, #c08040 0%, transparent 55%); }
.scn-prince-alarmed .room-wall     { position:absolute; inset:0; background: linear-gradient(135deg, #0c0812 0%, #2a1a1a 40%, #1a1220 80%, #08060c 100%); animation: pa3-pulse 22s ease-in-out infinite alternate; }
.scn-prince-alarmed .table-plank   { position:absolute; bottom:28%; left:30%; width:40%; height:6px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.6); transform-origin: center; animation: pa3-table 7s ease-in-out infinite; }
.scn-prince-alarmed .figure-prince { position:absolute; right:18%; bottom:24%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: pa3-prince 5.5s ease-in-out infinite alternate; }
.scn-prince-alarmed .figure-hippo  { position:absolute; left:25%; bottom:26%; width:22px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: pa3-hippo 4.5s ease-in-out infinite alternate; }
.scn-prince-alarmed .candle-stem   { position:absolute; left:47%; bottom:32%; width:6px; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform-origin: bottom center; animation: pa3-stem 3s ease-in-out infinite; }
.scn-prince-alarmed .flame-bloom   { position:absolute; left:47%; bottom:50%; width:6px; height:14px; margin-left:-3px; background: radial-gradient(ellipse, #ffd680 0%, #d49040 55%, transparent 100%); border-radius:50%; box-shadow: 0 0 14px 4px #f0c060; animation: pa3-flame 1.6s ease-in-out infinite alternate; }
.scn-prince-alarmed .shadow-arch   { position:absolute; left:10%; top:15%; width:80%; height:50%; background: radial-gradient(ellipse at 50% 0%, #0a0810 0%, transparent 70%); filter: blur(14px); opacity:.5; animation: pa3-arch 20s ease-in-out infinite alternate; }
.scn-prince-alarmed .floor-shadow  { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: radial-gradient(ellipse, #0a0810 0%, transparent 90%); filter: blur(6px); opacity:.6; animation: pa3-floorsh 12s ease-in-out infinite alternate; }
@keyframes pa3-pulse   { 0% { opacity:.7; transform:scale(1) } 50% { opacity:.95; transform:scale(1.018) } 100% { opacity:.75; transform:scale(.985) } }
@keyframes pa3-table   { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(-1px) } }
@keyframes pa3-prince  { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(-4px) rotate(3deg) } 100% { transform:translateX(1px) rotate(-1deg) } }
@keyframes pa3-hippo   { 0% { transform:translateX(0) rotate(2deg) } 50% { transform:translateX(3px) rotate(-3deg) } 100% { transform:translateX(-1px) rotate(1deg) } }
@keyframes pa3-stem    { 0% { transform:rotate(0) } 50% { transform:rotate(.5deg) } 100% { transform:rotate(-.3deg) } }
@keyframes pa3-flame   { 0% { opacity:.65; transform:scaleY(.8) scaleX(1) } 50% { opacity:1; transform:scaleY(1.15) scaleX(.92) } 100% { opacity:.75; transform:scaleY(.85) scaleX(1.03) } }
@keyframes pa3-arch    { 0% { opacity:.3; transform:scaleY(1) } 50% { opacity:.55; transform:scaleY(1.06) } 100% { opacity:.35; transform:scaleY(.95) } }
@keyframes pa3-floorsh { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.08) } 100% { opacity:.45; transform:scaleX(.96) } }

.scn-hippolyte-final-warning-about-aglaya { background: linear-gradient(160deg, #0a0610 0%, #2a1a1a 35%, #1a1220 65%, #060408 100%), radial-gradient(ellipse at 45% 50%, #b87040 0%, transparent 50%); }
.scn-hippolyte-final-warning-about-aglaya .chamber-deep  { position:absolute; inset:0; background: linear-gradient(135deg, #0a0610 0%, #2a1a1a 40%, #1a1220 80%, #060408 100%); animation: hw4-drift 24s ease-in-out infinite alternate; }
.scn-hippolyte-final-warning-about-aglaya .door-frame    { position:absolute; right:10%; bottom:10%; width:18%; height:70%; border: 2px solid #3a2a1a; border-bottom:none; background: linear-gradient(180deg, #0e0a12 0%, #1a1220 100%); border-radius:2px 2px 0 0; box-shadow: inset 0 0 12px rgba(0,0,0,.6); transform-origin: bottom center; animation: hw4-door 15s ease-in-out infinite alternate; }
.scn-hippolyte-final-warning-about-aglaya .figure-warning{ position:absolute; left:28%; bottom:24%; width:24px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: hw4-warn 4s ease-in-out infinite alternate; }
.scn-hippolyte-final-warning-about-aglaya .figure-recoil  { position:absolute; right:30%; bottom:22%; width:22px; height:46px; background: linear-gradient(180deg, #4a3a2a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw4-recoil 4s ease-in-out infinite; }
.scn-hippolyte-final-warning-about-aglaya .candle-flare   { position:absolute; left:43%; bottom:48%; width:5px; height:13px; background: radial-gradient(ellipse, #ffd680 0%, #d49040 55%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 3px #f0c060; animation: hw4-flare 1.7s ease-in-out infinite alternate; }
.scn-hippolyte-final-warning-about-aglaya .arm-reach      { position:absolute; left:38%; bottom:44%; width:16px; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform-origin: right center; transform: rotate(-20deg); animation: hw4-arm 3.5s ease-in-out infinite alternate; }
.scn-hippolyte-final-warning-about-aglaya .shadow-stain   { position:absolute; left:15%; bottom:10%; width:70%; height:15%; background: radial-gradient(ellipse, #0a0810 0%, transparent 80%); filter: blur(8px); opacity:.55; animation: hw4-stain 18s ease-in-out infinite alternate; }
@keyframes hw4-drift  { 0% { opacity:.7; transform:scale(1) } 50% { opacity:.9; transform:scale(1.02) } 100% { opacity:.75; transform:scale(.98) } }
@keyframes hw4-door   { 0% { transform:translateX(0) } 50% { transform:translateX(-2px) } 100% { transform:translateX(1px) } }
@keyframes hw4-warn   { 0% { transform:translateX(0) rotate(2deg) } 33% { transform:translateX(3px) rotate(-3deg) } 66% { transform:translateX(-2px) rotate(4deg) } 100% { transform:translateX(1px) rotate(-1deg) } }
@keyframes hw4-recoil { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(-4px) rotate(2deg) } 50% { transform:translateX(-6px) rotate(-1deg) } 75% { transform:translateX(-3px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes hw4-flare  { 0% { opacity:.6; transform:scaleY(.75) scaleX(1) } 50% { opacity:1; transform:scaleY(1.2) scaleX(.9) } 100% { opacity:.7; transform:scaleY(.8) scaleX(1.03) } }
@keyframes hw4-arm    { 0% { transform:rotate(-20deg) translateY(0) } 50% { transform:rotate(-35deg) translateY(-2px) } 100% { transform:rotate(-15deg) translateY(1px) } }
@keyframes hw4-stain  { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.65; transform:scale(1.06) } 100% { opacity:.45; transform:scale(.95) } }

/* one block per scene id. Append to style.css. */
.scn-nastasia-hatred { background: linear-gradient(180deg, #1a1210 0%, #2b1e1a 40%, #1f1512 100%), radial-gradient(ellipse at 40% 60%, #2a1c16 0%, transparent 60%); }
.scn-nastasia-hatred .bg-wall  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2f221e 0%, #1c1411 100%); animation: nh-wall 20s ease-in-out infinite alternate; }
.scn-nastasia-hatred .floor    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-nastasia-hatred .chair    { position:absolute; bottom:30%; left:45%; width:70px; height:60px; background: linear-gradient(135deg, #3b2b24 0%, #1f1512 100%); border-radius: 8% 8% 40% 40% / 8% 8% 60% 60%; transform-origin: bottom center; animation: nh-chair 8s ease-in-out infinite; }
.scn-nastasia-hatred .figure   { position:absolute; bottom:35%; left:48%; width:22px; height:45px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nh-figure 6s ease-in-out infinite; }
.scn-nastasia-hatred .lamp     { position:absolute; bottom:50%; left:35%; width:12px; height:18px; background: radial-gradient(circle, #d4a060 0%, #b08040 60%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 6px rgba(180,120,60,.5), 0 0 48px 12px rgba(180,120,60,.2); animation: nh-lamp 3s ease-in-out infinite alternate; }
.scn-nastasia-hatred .shadow   { position:absolute; bottom:25%; left:30%; width:100px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation: nh-shadow 8s ease-in-out infinite; }
.scn-nastasia-hatred .curtain  { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #3b221a 0%, #2b1812 50%, transparent 100%); border-radius: 0 40% 40% 0; filter: blur(2px); animation: nh-curtain 15s ease-in-out infinite alternate; }
@keyframes nh-wall    { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes nh-chair   { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nh-figure  { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nh-lamp    { 0% { box-shadow: 0 0 18px 4px rgba(180,120,60,.4), 0 0 36px 8px rgba(180,120,60,.15); opacity:.8 } 50% { box-shadow: 0 0 30px 8px rgba(200,140,70,.6), 0 0 60px 16px rgba(200,140,70,.3); opacity:1 } 100% { box-shadow: 0 0 22px 5px rgba(180,120,60,.45), 0 0 40px 10px rgba(180,120,60,.2); opacity:.85 } }
@keyframes nh-shadow  { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(.9) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes nh-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

.scn-totski-calculations { background: linear-gradient(180deg, #1c1613 0%, #2a1d18 40%, #16100d 100%), radial-gradient(ellipse at 50% 40%, #2a1d18 0%, transparent 70%); }
.scn-totski-calculations .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1d18 0%, #1c1613 100%); animation: tc-wall 18s ease-in-out infinite alternate; }
.scn-totski-calculations .desk   { position:absolute; bottom:20%; left:25%; right:25%; height:25%; background: linear-gradient(180deg, #3b2b24 0%, #1f1512 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-totski-calculations .chair  { position:absolute; bottom:30%; left:40%; width:55px; height:65px; background: linear-gradient(135deg, #3b2b24 0%, #1a1210 100%); border-radius: 10% 10% 35% 35% / 10% 10% 55% 55%; transform-origin: bottom center; animation: tc-chair 10s ease-in-out infinite; }
.scn-totski-calculations .figure { position:absolute; bottom:33%; left:42%; width:24px; height:48px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite; }
.scn-totski-calculations .lamp   { position:absolute; bottom:38%; left:50%; width:10px; height:16px; background: radial-gradient(circle, #d4a060 0%, #a07a40 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 5px rgba(160,120,60,.5), 0 0 40px 10px rgba(160,120,60,.2); animation: tc-lamp 2.5s ease-in-out infinite alternate; }
.scn-totski-calculations .papers { position:absolute; bottom:22%; left:30%; width:30px; height:40px; background: linear-gradient(135deg, #d4c0a0 0%, #b09878 100%); border-radius: 4%; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: tc-papers 7s ease-in-out infinite; }
.scn-totski-calculations .shadow { position:absolute; bottom:15%; left:20%; right:20%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: tc-shadow 8s ease-in-out infinite; }
@keyframes tc-wall    { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes tc-chair   { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-figure  { 0% { transform: translateY(0) rotate(-2deg) } 40% { transform: translateY(-1px) rotate(2deg) } 80% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-lamp    { 0% { box-shadow: 0 0 15px 3px rgba(160,120,60,.4), 0 0 30px 6px rgba(160,120,60,.15); opacity:.85 } 50% { box-shadow: 0 0 25px 7px rgba(180,140,70,.6), 0 0 50px 14px rgba(180,140,70,.25); opacity:1 } 100% { box-shadow: 0 0 18px 4px rgba(160,120,60,.45), 0 0 35px 8px rgba(160,120,60,.2); opacity:.9 } }
@keyframes tc-papers  { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes tc-shadow  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.15) } 100% { transform: scaleY(1) } }

.scn-nastasia-destructive-impulse { background: linear-gradient(180deg, #120e0c 0%, #1f1613 30%, #140f0d 100%), radial-gradient(ellipse at 60% 50%, #1a1210 0%, transparent 60%); }
.scn-nastasia-destructive-impulse .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1210 0%, #120e0c 100%); animation: ndi-wall 22s ease-in-out infinite alternate; }
.scn-nastasia-destructive-impulse .floor  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #100b09 0%, #080504 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 10px 18px rgba(0,0,0,.5); }
.scn-nastasia-destructive-impulse .window { position:absolute; top:10%; right:20%; width:30%; height:60%; background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%); border-radius: 4% 4% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: ndi-window 15s ease-in-out infinite; }
.scn-nastasia-destructive-impulse .bars   { position:absolute; top:10%; right:20%; width:30%; height:60%; background: repeating-linear-gradient(0deg, transparent 0%, transparent 8%, #3b2b24 8%, #3b2b24 10%); mask: linear-gradient(180deg, #000, #000); -webkit-mask: linear-gradient(180deg, #000, #000); animation: ndi-bars 12s ease-in-out infinite; }
.scn-nastasia-destructive-impulse .figure { position:absolute; bottom:20%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndi-figure 4s ease-in-out infinite; }
.scn-nastasia-destructive-impulse .shards { position:absolute; bottom:10%; left:5%; width:80px; height:40px; background: linear-gradient(135deg, #604030 0%, #2a1d18 50%, transparent 100%); clip-path: polygon(0 0, 20% 30%, 40% 0, 60% 40%, 80% 10%, 100% 50%, 90% 70%, 60% 80%, 30% 60%, 10% 80%); animation: ndi-shards 5s ease-in-out infinite; }
.scn-nastasia-destructive-impulse .lamp   { position:absolute; bottom:45%; left:15%; width:10px; height:14px; background: radial-gradient(circle, #d4a060 0%, #8a6a30 70%); border-radius: 50%; box-shadow: 0 0 18px 4px rgba(140,110,60,.4), 0 0 36px 8px rgba(140,110,60,.15); animation: ndi-lamp 2s ease-in-out infinite alternate; }
@keyframes ndi-wall    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ndi-window  { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ndi-bars    { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ndi-figure  { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ndi-shards  { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(-5px) } 100% { transform: scale(1) translateX(0) } }
@keyframes ndi-lamp    { 0% { box-shadow: 0 0 14px 3px rgba(140,110,60,.35), 0 0 28px 6px rgba(140,110,60,.1); opacity:.8 } 50% { box-shadow: 0 0 22px 6px rgba(160,130,70,.55), 0 0 44px 12px rgba(160,130,70,.2); opacity:1 } 100% { box-shadow: 0 0 16px 4px rgba(140,110,60,.4), 0 0 32px 8px rgba(140,110,60,.15); opacity:.85 } }

.scn-nastasia-petersburg-life { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #1a1410 100%), radial-gradient(ellipse at 30% 70%, #2a1e18 0%, transparent 60%); }
.scn-nastasia-petersburg-life .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); animation: npl-wall 25s ease-in-out infinite alternate; }
.scn-nastasia-petersburg-life .carpet { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1e18 0%, #140f0d 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-nastasia-petersburg-life .drape  { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(90deg, transparent 0%, #3b2b24 30%, #2a1e18 100%); border-radius: 40% 0 0 40%; filter: blur(3px); animation: npl-drape 20s ease-in-out infinite alternate; }
.scn-nastasia-petersburg-life .sofa   { position:absolute; bottom:15%; left:20%; width:55%; height:30%; background: linear-gradient(180deg, #3b2b24 0%, #1f1512 100%); border-radius: 8% 8% 30% 30% / 8% 8% 50% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: npl-sofa 12s ease-in-out infinite; }
.scn-nastasia-petersburg-life .table  { position:absolute; bottom:18%; left:60%; width:40px; height:25px; background: linear-gradient(135deg, #4a3a30 0%, #2a1e18 100%); border-radius: 6% 6% 40% 40%; transform-origin: bottom center; animation: npl-table 9s ease-in-out infinite; }
.scn-nastasia-petersburg-life .figure { position:absolute; bottom:20%; left:35%; width:20px; height:42px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npl-figure 7s ease-in-out infinite; }
.scn-nastasia-petersburg-life .lamp   { position:absolute; bottom:35%; left:55%; width:14px; height:20px; background: radial-gradient(circle, #d4a060 0%, #b08040 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 8px rgba(180,120,60,.5), 0 0 60px 16px rgba(180,120,60,.2); animation: npl-lamp 3s ease-in-out infinite alternate; }
@keyframes npl-wall   { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes npl-drape  { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes npl-sofa   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes npl-table  { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes npl-figure { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes npl-lamp   { 0% { box-shadow: 0 0 22px 5px rgba(180,120,60,.4), 0 0 44px 10px rgba(180,120,60,.15); opacity:.85 } 50% { box-shadow: 0 0 36px 10px rgba(200,140,70,.6), 0 0 72px 20px rgba(200,140,70,.25); opacity:1 } 100% { box-shadow: 0 0 26px 6px rgba(180,120,60,.45), 0 0 50px 12px rgba(180,120,60,.2); opacity:.9 } }

.scn-prince-forgets { background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%), radial-gradient(ellipse at 30% 50%, #7a8a9a 0%, transparent 70%); }
.scn-prince-forgets .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%); }
.scn-prince-forgets .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%); }
.scn-prince-forgets .window { position: absolute; top: 12%; left: 20%; width: 30%; height: 50%; background: linear-gradient(180deg, #8a9aaa 0%, #7a8a9a 100%); border: 4px solid #3a4a5a; border-radius: 4px; box-shadow: inset 0 0 12px rgba(255,255,255,0.1); animation: pf-window 8s ease-in-out infinite alternate; }
.scn-prince-forgets .desk { position: absolute; bottom: 22%; left: 30%; width: 30%; height: 14%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-prince-forgets .chair { position: absolute; bottom: 22%; left: 60%; width: 18%; height: 22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: pf-chair 6s ease-in-out infinite; }
.scn-prince-forgets .figure { position: absolute; bottom: 22%; left: 45%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-figure 5s ease-in-out infinite; }
.scn-prince-forgets .papers { position: absolute; bottom: 30%; left: 34%; width: 8%; height: 6%; background: #d0d0d0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pf-papers 7s ease-in-out infinite; }
.scn-prince-forgets .lamp { position: absolute; bottom: 33%; left: 35%; width: 4%; height: 6%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #b09050, 0 0 24px 8px rgba(192,160,96,0.4); animation: pf-lamp 4s ease-in-out infinite alternate; }
@keyframes pf-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pf-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pf-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pf-papers { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px,2px) scale(1.02); } 100% { transform: translate(-2px,1px) scale(0.98); } }
@keyframes pf-lamp { 0% { box-shadow: 0 0 8px 2px #c0a050, 0 0 16px 4px rgba(192,160,80,0.3); } 50% { box-shadow: 0 0 16px 4px #d0b060, 0 0 32px 8px rgba(208,176,96,0.5); } 100% { box-shadow: 0 0 8px 2px #c0a050, 0 0 16px 4px rgba(192,160,80,0.3); } }

.scn-prince-free-agent { background: linear-gradient(180deg, #7a8a7a 0%, #6a7a6a 30%, #5a6a5a 100%), radial-gradient(ellipse at 50% 0%, #8a9a8a 0%, transparent 70%); }
.scn-prince-free-agent .sky { position: absolute; top: 0; left: 0; right: 0; bottom: 40%; background: linear-gradient(180deg, #8a9a8a 0%, #7a8a7a 100%); animation: pfa-sky 15s ease-in-out infinite alternate; }
.scn-prince-free-agent .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); }
.scn-prince-free-agent .path { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%; background: linear-gradient(90deg, #6a5a4a 0%, #7a6a5a 50%, #6a5a4a 100%); border-radius: 20% 20% 10% 10%; animation: pfa-path 10s ease-in-out infinite; }
.scn-prince-free-agent .tree-left { position: absolute; bottom: 35%; left: 15%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: pfa-tree-left 8s ease-in-out infinite; }
.scn-prince-free-agent .tree-right { position: absolute; bottom: 35%; right: 15%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: pfa-tree-right 10s ease-in-out infinite; }
.scn-prince-free-agent .figure { position: absolute; bottom: 25%; left: 48%; width: 10%; height: 25%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pfa-figure 6s ease-in-out infinite; }
.scn-prince-free-agent .bird { position: absolute; top: 20%; left: 70%; width: 6%; height: 4%; background: #2a2a2a; border-radius: 50%; animation: pfa-bird 12s linear infinite; }
@keyframes pfa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pfa-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pfa-tree-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pfa-tree-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes pfa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pfa-bird { 0% { transform: translateX(-20px) translateY(0) rotate(0deg); } 25% { transform: translateX(20px) translateY(-10px) rotate(-5deg); } 50% { transform: translateX(60px) translateY(0) rotate(0deg); } 75% { transform: translateX(100px) translateY(-5px) rotate(5deg); } 100% { transform: translateX(140px) translateY(0) rotate(0deg); } }

.scn-prince-spends-time-with-nastasia { background: linear-gradient(180deg, #8a8a6a 0%, #7a7a5a 30%, #6a6a4a 100%), radial-gradient(ellipse at 50% 100%, #9a9a7a 0%, transparent 70%); }
.scn-prince-spends-time-with-nastasia .sky { position: absolute; top: 0; left: 0; right: 0; bottom: 35%; background: linear-gradient(180deg, #8a8a6a 0%, #7a7a5a 100%); animation: psw-sky 12s ease-in-out infinite alternate; }
.scn-prince-spends-time-with-nastasia .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6a6a4a 0%, #5a5a3a 100%); }
.scn-prince-spends-time-with-nastasia .path { position: absolute; bottom: 22%; left: 10%; width: 80%; height: 12%; background: linear-gradient(90deg, #7a6a4a 0%, #8a7a5a 50%, #7a6a4a 100%); border-radius: 30% 30% 15% 15%; }
.scn-prince-spends-time-with-nastasia .figure-prince { position: absolute; bottom: 20%; left: 35%; width: 10%; height: 24%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psw-walk 5s ease-in-out infinite; }
.scn-prince-spends-time-with-nastasia .figure-nastasia { position: absolute; bottom: 20%; left: 50%; width: 10%; height: 22%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psw-walk 5s ease-in-out infinite 2.5s; }
.scn-prince-spends-time-with-nastasia .figure-nastasia::after { content: ''; position: absolute; top: -30%; left: -20%; width: 60%; height: 40%; background: #b87878; border-radius: 50%; opacity: 0.6; }
.scn-prince-spends-time-with-nastasia .tree { position: absolute; bottom: 30%; right: 15%; width: 15%; height: 45%; background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: psw-tree 9s ease-in-out infinite; }
.scn-prince-spends-time-with-nastasia .bush { position: absolute; bottom: 22%; left: 15%; width: 12%; height: 10%; background: #4a6a3a; border-radius: 50%; animation: psw-bush 6s ease-in-out infinite alternate; }
.scn-prince-spends-time-with-nastasia .lamp-warm { position: absolute; bottom: 28%; left: 45%; width: 3%; height: 5%; background: #d0a060; border-radius: 50%; box-shadow: 0 0 16px 6px #c09050, 0 0 32px 12px rgba(192,144,80,0.4); animation: psw-lamp 4s ease-in-out infinite alternate; }
@keyframes psw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes psw-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(-2deg); } }
@keyframes psw-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes psw-bush { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes psw-lamp { 0% { box-shadow: 0 0 12px 4px #c09050, 0 0 24px 8px rgba(192,144,80,0.3); } 50% { box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 14px rgba(208,160,96,0.5); } 100% { box-shadow: 0 0 12px 4px #c09050, 0 0 24px 8px rgba(192,144,80,0.3); } }

.scn-prince-visits-epanchins { background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%); }
.scn-prince-visits-epanchins .sky { position: absolute; top: 0; left: 0; right: 0; bottom: 45%; background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%); animation: pve-sky 10s ease-in-out infinite alternate; }
.scn-prince-visits-epanchins .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-prince-visits-epanchins .building-wall { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border: 2px solid #2a2a3a; border-radius: 4px 4px 0 0; }
.scn-prince-visits-epanchins .door-closed { position: absolute; bottom: 20%; left: 44%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: inset 0 0 8px rgba(0,0,0,0.5); animation: pve-door 3s ease-in-out infinite; }
.scn-prince-visits-epanchins .window-tense { position: absolute; bottom: 40%; left: 30%; width: 15%; height: 20%; background: linear-gradient(180deg, #7a7a8a 0%, #6a6a7a 100%); border: 2px solid #2a2a3a; border-radius: 2px; box-shadow: inset 0 0 12px rgba(255,255,255,0.05); animation: pve-window 2s ease-in-out infinite alternate; }
.scn-prince-visits-epanchins .figure-outside { position: absolute; bottom: 22%; left: 25%; width: 10%; height: 28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pve-figure 4s ease-in-out infinite; }
.scn-prince-visits-epanchins .fence { position: absolute; bottom: 18%; left: 10%; width: 80%; height: 6%; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 8px, transparent 8px, transparent 20px); animation: pve-fence 5s linear infinite; }
@keyframes pve-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pve-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pve-window { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pve-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pve-fence { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }

/* nastasia-defiant */
.scn-nastasia-defiant {
  background:
    linear-gradient(180deg, #1c1620 0%, #2a1f2e 40%, #1a121a 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a3a 0%, transparent 60%);
}
.scn-nastasia-defiant .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,60,50,0.3) 0%, transparent 50%);
}
.scn-nastasia-defiant .wall {
  position: absolute; inset: 0 0 25% 0%;
  background: linear-gradient(135deg, #2a2228 0%, #1a1216 60%);
  border-right: 2px solid #4a3a3a;
}
.scn-nastasia-defiant .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a201a 0%, #1a120e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-nastasia-defiant .figure {
  position: absolute; bottom: 20%; left: 40%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: nsd-figure 4s ease-in-out infinite;
}
.scn-nastasia-defiant .dress {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3030 0%, #2a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: nsd-dress 5s ease-in-out infinite;
}
.scn-nastasia-defiant .light-beam {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, rgba(200,170,120,0.15) 0%, transparent 70%);
  transform: rotate(-20deg); transform-origin: top left;
  box-shadow: 0 0 30px 10px rgba(200,170,120,0.08);
  animation: nsd-light 3s ease-in-out infinite alternate;
}
.scn-nastasia-defiant .shadow {
  position: absolute; bottom: 25%; left: 36%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: nsd-shadow 6s ease-in-out infinite alternate;
}
.scn-nastasia-defiant .window {
  position: absolute; top: 12%; right: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a303a 0%, #1a121a 100%);
  border: 2px solid #3a2a2a; border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,200,150,0.1);
  animation: nsd-window 8s ease-in-out infinite;
}
@keyframes nsd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes nsd-dress {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes nsd-light {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes nsd-shadow {
  0% { transform: skewX(-20deg) scaleX(1); }
  50% { transform: skewX(-15deg) scaleX(1.1); }
  100% { transform: skewX(-25deg) scaleX(0.9); }
}
@keyframes nsd-window {
  0%, 100% { box-shadow: inset 0 0 5px rgba(255,200,150,0.05); }
  50% { box-shadow: inset 0 0 15px rgba(255,200,150,0.2); }
}

/* worry-about-aglaya */
.scn-worry-about-aglaya {
  background:
    linear-gradient(180deg, #1e1a22 0%, #2a2430 40%, #16121a 100%),
    radial-gradient(ellipse at 70% 50%, #3a2e3e 0%, transparent 50%);
}
.scn-worry-about-aglaya .bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1620 0%, #2a2430 100%);
}
.scn-worry-about-aglaya .door {
  position: absolute; bottom: 20%; right: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3a2e3a 0%, #1e1820 100%);
  border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: waa-door 10s ease-in-out infinite;
}
.scn-worry-about-aglaya .figure {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2228 0%, #1a121a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: waa-figure 5s ease-in-out infinite;
}
.scn-worry-about-aglaya .lamp {
  position: absolute; bottom: 55%; right: 15%; width: 14px; height: 20px;
  background: radial-gradient(circle, #c8a870 0%, #a08050 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,168,112,0.5), 0 0 40px 12px rgba(200,168,112,0.2);
  animation: waa-lamp 4s ease-in-out infinite alternate;
}
.scn-worry-about-aglaya .clock {
  position: absolute; bottom: 35%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 50%; border: 2px solid #6a5a5a;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
  animation: waa-clock 6s linear infinite;
}
.scn-worry-about-aglaya .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2218 0%, #1a120e 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-worry-about-aglaya .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 100%);
  transform: skewX(10deg);
  animation: waa-shadow 5s ease-in-out infinite alternate;
}
.scn-worry-about-aglaya .curtain {
  position: absolute; top: 10%; left: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2e32 0%, #1e161a 100%);
  border-radius: 4px; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: waa-curtain 7s ease-in-out infinite;
}
@keyframes waa-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
}
@keyframes waa-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(0); }
  50% { transform: translateX(8px) rotate(1deg); }
  75% { transform: translateX(4px) rotate(0); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes waa-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes waa-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes waa-shadow {
  0% { transform: skewX(10deg) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(12deg) scaleX(1.2); opacity: 0.8; }
  100% { transform: skewX(8deg) scaleX(0.9); opacity: 0.4; }
}
@keyframes waa-curtain {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}

/* midnight-panic */
.scn-midnight-panic {
  background:
    linear-gradient(180deg, #0c0a10 0%, #1a1420 40%, #0e0a12 100%),
    radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 70%);
}
.scn-midnight-panic .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #120e16 0%, #0a0810 100%);
}
.scn-midnight-panic .door {
  position: absolute; bottom: 20%; left: 40%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: mip-door 2s ease-in-out infinite alternate;
}
.scn-midnight-panic .lock {
  position: absolute; bottom: 50%; left: 47%; width: 10px; height: 16px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px rgba(200,180,120,0.3);
}
.scn-midnight-panic .figure {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: mip-figure 1.5s ease-in-out infinite alternate;
}
.scn-midnight-panic .candle {
  position: absolute; bottom: 18%; right: 25%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #c0a060 0%, #5a3010 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px rgba(200,160,80,0.6);
  animation: mip-candle 2s ease-in-out infinite alternate;
}
.scn-midnight-panic .shadow {
  position: absolute; bottom: 20%; left: 36%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 100%);
  transform: skewX(0deg);
  animation: mip-shadow 3s ease-in-out infinite alternate;
}
.scn-midnight-panic .window {
  position: absolute; top: 10%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 2px solid #2a2a3a;
  box-shadow: inset 0 0 10px rgba(100,140,180,0.2);
  animation: mip-window 6s ease-in-out infinite;
}
.scn-midnight-panic .tear {
  position: absolute; top: 30%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #6080a0 0%, #305070 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: mip-tear 4s ease-in-out infinite;
}
@keyframes mip-door {
  0% { transform: translateX(-2px); }
  100% { transform: translateX(2px); }
}
@keyframes mip-figure {
  0% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(2px) rotate(2deg); }
}
@keyframes mip-candle {
  0% { opacity: 0.5; box-shadow: 0 0 10px 4px rgba(200,160,80,0.4); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(200,160,80,0.7); }
  100% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(200,160,80,0.5); }
}
@keyframes mip-shadow {
  0% { transform: skewX(-5deg) scaleX(1); }
  50% { transform: skewX(0deg) scaleX(1.2); }
  100% { transform: skewX(5deg) scaleX(0.8); }
}
@keyframes mip-window {
  0% { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
  50% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); }
  100% { background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
}
@keyframes mip-tear {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(10px) scaleY(0.6); opacity: 0.2; }
}

/* nastasia-kneels */
.scn-nastasia-kneels {
  background:
    linear-gradient(180deg, #1a1420 0%, #2a2030 40%, #120e16 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-nastasia-kneels .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2230 0%, #1a1620 60%);
}
.scn-nastasia-kneels .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a201a 0%, #1a120e 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.6);
}
.scn-nastasia-kneels .figure-kneeling {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1014 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: nak-kneeling 2s ease-in-out infinite alternate;
}
.scn-nastasia-kneels .figure-standing {
  position: absolute; bottom: 20%; left: 42%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #2a2228 0%, #1a121a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: nak-standing 5s ease-in-out infinite;
}
.scn-nastasia-kneels .embrace {
  position: absolute; bottom: 18%; left: 34%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a2a 0%, #1a1014 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  clip-path: polygon(0% 50%, 100% 50%, 80% 100%, 20% 100%);
  animation: nak-embrace 3s ease-in-out infinite alternate;
}
.scn-nastasia-kneels .light {
  position: absolute; top: 15%; right: 30%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 0%, rgba(200,180,150,0.12) 0%, transparent 70%);
  transform: rotate(30deg);
  animation: nak-light 4s ease-in-out infinite alternate;
}
.scn-nastasia-kneels .shadow {
  position: absolute; bottom: 20%; left: 28%; width: 70px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: nak-shadow 5s ease-in-out infinite alternate;
}
.scn-nastasia-kneels .chair {
  position: absolute; bottom: 22%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1612 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
  animation: nak-chair 7s ease-in-out infinite;
}
@keyframes nak-kneeling {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(1px); }
}
@keyframes nak-standing {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes nak-embrace {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(-2deg); }
  100% { transform: scale(0.95) rotate(2deg); }
}
@keyframes nak-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes nak-shadow {
  0% { transform: skewX(-10deg) scaleX(1); }
  50% { transform: skewX(-5deg) scaleX(1.2); }
  100% { transform: skewX(-15deg) scaleX(0.8); }
}
@keyframes nak-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* nastasia-considers-gania – calm, dim-interior */
.scn-nastasia-considers-gania {
  background:
    linear-gradient(180deg, #1e1612 0%, #2a1f18 40%, #3a2a20 70%, #2a1f18 100%),
    radial-gradient(ellipse at 50% 100%, #4a3528 0%, transparent 70%);
}
.scn-nastasia-considers-gania .room-bg {
  position: absolute; inset: 0; background:
    linear-gradient(180deg, #2a1f18 0%, #1e1612 50%, #1a120e 100%);
  animation: nc-room 20s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .window {
  position: absolute; top: 8%; right: 6%;
  width: 26%; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border-radius: 2% / 4%; box-shadow: inset 0 0 20px #0a1a2a;
  animation: nc-window 12s ease-in-out infinite alternate;
  opacity: 0.35;
}
.scn-nastasia-considers-gania .moonlight {
  position: absolute; top: 8%; right: 8%;
  width: 22%; height: 36%;
  background: linear-gradient(135deg, rgba(160,180,200,0.15) 0%, rgba(160,180,200,0.05) 100%);
  filter: blur(8px); opacity: 0.3;
  animation: nc-moonlight 18s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .desk {
  position: absolute; bottom: 12%; left: 5%;
  width: 40%; height: 6%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 4% 4% 0 0 / 30% 30% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: nc-desk 24s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .figure {
  position: absolute; bottom: 18%; left: 12%;
  width: 10%; height: 22%;
  background:
    linear-gradient(180deg, #2a1a12 0%, #1a0e08 30%, #2a1a12 60%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-figure 16s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .lamp {
  position: absolute; bottom: 22%; left: 22%;
  width: 3%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: nc-lamp 10s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .lamp-glow {
  position: absolute; bottom: 26%; left: 20%;
  width: 8%; height: 8%;
  background: radial-gradient(circle, #d4a060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%; opacity: 0.5;
  filter: blur(8px);
  animation: nc-lamp-glow 6s ease-in-out infinite alternate;
}
.scn-nastasia-considers-gania .mote-1 {
  position: absolute; top: 30%; right: 16%;
  width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, rgba(200,180,160,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: nc-mote-1 24s ease-in-out infinite;
}
.scn-nastasia-considers-gania .mote-2 {
  position: absolute; top: 50%; right: 20%;
  width: 1%; height: 1%;
  background: radial-gradient(circle, rgba(200,180,160,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: nc-mote-2 30s ease-in-out infinite;
  animation-delay: -8s;
}
@keyframes nc-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes nc-window { 0% { opacity:0.3; transform:scale(0.98) } 50% { opacity:0.4; transform:scale(1) } 100% { opacity:0.35; transform:scale(0.99) } }
@keyframes nc-moonlight { 0% { opacity:0.2; transform:translate(0,0) rotate(-1deg) } 50% { opacity:0.35; transform:translate(2px,-2px) rotate(0deg) } 100% { opacity:0.25; transform:translate(0,0) rotate(1deg) } }
@keyframes nc-desk { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes nc-figure { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg) } 50% { transform:translateX(4px) translateY(-2px) rotate(0.5deg) } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg) } }
@keyframes nc-lamp { 0% { opacity:0.7; transform:scale(0.98) } 50% { opacity:0.9; transform:scale(1) } 100% { opacity:0.75; transform:scale(0.99) } }
@keyframes nc-lamp-glow { 0% { opacity:0.4; transform:scale(0.9) } 50% { opacity:0.6; transform:scale(1.1) } 100% { opacity:0.45; transform:scale(0.95) } }
@keyframes nc-mote-1 { 0% { transform:translate(0,0) rotate(0deg); opacity:0 } 25% { opacity:0.7 } 50% { transform:translate(-8px,12px) rotate(180deg); opacity:0.5 } 75% { opacity:0.3 } 100% { transform:translate(-16px,24px) rotate(360deg); opacity:0 } }
@keyframes nc-mote-2 { 0% { transform:translate(0,0) rotate(0deg); opacity:0 } 25% { opacity:0.5 } 50% { transform:translate(10px,-8px) rotate(-180deg); opacity:0.4 } 75% { opacity:0.2 } 100% { transform:translate(20px,-16px) rotate(-360deg); opacity:0 } }

/* totski-lingering-doubt – tense, dim-interior */
.scn-totski-lingering-doubt {
  background:
    linear-gradient(180deg, #12101a 0%, #1a1622 40%, #221e2a 70%, #1a1622 100%),
    radial-gradient(ellipse at 60% 80%, #2a1e2a 0%, transparent 60%);
}
.scn-totski-lingering-doubt .bg {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, #12101a 0%, #1a1622 50%, #0e0c14 100%);
  animation: td-bg 6s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .figure {
  position: absolute; bottom: 12%; left: 30%;
  width: 12%; height: 30%;
  background:
    linear-gradient(180deg, #1a1622 0%, #0e0c14 30%, #1a1622 60%, #0e0c14 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: td-figure 3s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .candle {
  position: absolute; bottom: 34%; left: 48%;
  width: 2%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: td-candle 1.5s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .candle-glow {
  position: absolute; bottom: 36%; left: 44%;
  width: 10%; height: 12%;
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 40%, transparent 100%);
  border-radius: 50%; opacity: 0.5; filter: blur(12px);
  animation: td-candle-glow 1.8s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .shadow-figure {
  position: absolute; bottom: 12%; right: 20%;
  width: 16%; height: 28%;
  background: linear-gradient(180deg, #0a0810 0%, #06050a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  opacity: 0.4; filter: blur(6px);
  animation: td-shadow 4s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .web {
  position: absolute; top: 8%; right: 12%;
  width: 12%; height: 8%;
  background:
    radial-gradient(circle at 30% 50%, rgba(200,200,200,0.15) 0%, transparent 80%),
    linear-gradient(135deg, transparent 40%, rgba(200,200,200,0.1) 50%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: td-web 8s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .clock {
  position: absolute; top: 10%; left: 8%;
  width: 6%; height: 8%;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 8px #1a120e;
  animation: td-clock 30s linear infinite;
}
.scn-totski-lingering-doubt .flicker-overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(120,80,40,0.04) 0%, transparent 100%);
  opacity: 0.5;
  animation: td-flicker 0.8s ease-in-out infinite alternate;
}
.scn-totski-lingering-doubt .dust {
  position: absolute; top: 20%; left: 10%;
  width: 0.5%; height: 0.5%;
  background: rgba(200,180,160,0.4);
  border-radius: 50%;
  animation: td-dust 12s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes td-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes td-figure { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 50% { transform:translateX(6px) translateY(-3px) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(1deg); } }
@keyframes td-candle { 0% { transform:scaleY(0.95) translateY(0); } 50% { transform:scaleY(1.05) translateY(-1px); } 100% { transform:scaleY(0.95) translateY(0); } }
@keyframes td-candle-glow { 0% { opacity:0.4; transform:scale(0.9); } 50% { opacity:0.6; transform:scale(1.15); } 100% { opacity:0.45; transform:scale(0.95); } }
@keyframes td-shadow { 0% { transform:translateX(0) scaleX(0.95); opacity:0.35; } 50% { transform:translateX(-6px) scaleX(1.05); opacity:0.5; } 100% { transform:translateX(0) scaleX(0.95); opacity:0.35; } }
@keyframes td-web { 0% { opacity:0.3; transform:rotate(-2deg) scale(0.98); } 50% { opacity:0.5; transform:rotate(0deg) scale(1); } 100% { opacity:0.35; transform:rotate(2deg) scale(0.99); } }
@keyframes td-clock { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes td-flicker { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.45; } }
@keyframes td-dust { 0% { transform:translate(0,0) scale(0.8); opacity:0; } 25% { opacity:0.6; } 50% { transform:translate(10px,-20px) scale(1.2); opacity:0.4; } 75% { opacity:0.2; } 100% { transform:translate(20px,-40px) scale(0.6); opacity:0; } }

/* gania-mixed-feelings – tense, dim-interior */
.scn-gania-mixed-feelings {
  background:
    linear-gradient(180deg, #14101a 0%, #1c1624 40%, #241e2e 70%, #1c1624 100%),
    radial-gradient(ellipse at 40% 90%, #2a1e2e 0%, transparent 60%);
}
.scn-gania-mixed-feelings .bg {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, #14101a 0%, #1c1624 50%, #0e0c14 100%);
  animation: gm-bg 8s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .figure {
  position: absolute; bottom: 10%; right: 20%;
  width: 14%; height: 32%;
  background:
    linear-gradient(180deg, #1c1624 0%, #0e0c14 30%, #1c1624 60%, #0e0c14 100%);
  border-radius: 50% 48% 40% 40% / 60% 55% 40% 40%;
  transform-origin: bottom center;
  animation: gm-figure 3.5s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .letter {
  position: absolute; bottom: 18%; right: 36%;
  width: 6%; height: 4%;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 4% 4% 2% 2% / 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-12deg);
  animation: gm-letter 5s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .doorframe {
  position: absolute; top: 0; left: 12%;
  width: 18%; height: 100%;
  background:
    linear-gradient(90deg, #1a141e 0%, #2a1e2e 50%, #1a141e 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: gm-doorframe 10s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .shadow-figure {
  position: absolute; bottom: 10%; left: 10%;
  width: 18%; height: 30%;
  background: linear-gradient(180deg, #0a0810 0%, #06050a 100%);
  border-radius: 50% 42% 30% 30% / 60% 50% 30% 30%;
  opacity: 0.3; filter: blur(8px);
  animation: gm-shadow 4s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .lamp {
  position: absolute; top: 10%; left: 40%;
  width: 3%; height: 6%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a12 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: gm-lamp 2s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .lamp-glow {
  position: absolute; top: 8%; left: 36%;
  width: 10%; height: 12%;
  background: radial-gradient(circle, #b08040 0%, #7a4a2a 40%, transparent 100%);
  border-radius: 50%; opacity: 0.4; filter: blur(14px);
  animation: gm-lamp-glow 2.5s ease-in-out infinite alternate;
}
.scn-gania-mixed-feelings .mote {
  position: absolute; top: 40%; right: 20%;
  width: 0.8%; height: 0.8%;
  background: rgba(200,180,160,0.5);
  border-radius: 50%;
  animation: gm-mote 18s ease-in-out infinite;
  animation-delay: -5s;
}
@keyframes gm-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes gm-figure { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform:translateX(-5px) translateY(-3px) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes gm-letter { 0% { transform:rotate(-12deg) translate(0,0); opacity:0.8; } 50% { transform:rotate(-9deg) translate(-2px,1px); opacity:0.95; } 100% { transform:rotate(-12deg) translate(0,0); opacity:0.8; } }
@keyframes gm-doorframe { 0% { opacity:0.8; transform:scaleX(0.98); } 50% { opacity:0.95; transform:scaleX(1); } 100% { opacity:0.85; transform:scaleX(0.99); } }
@keyframes gm-shadow { 0% { transform:translateX(0) scaleX(0.95); opacity:0.25; } 50% { transform:translateX(5px) scaleX(1.05); opacity:0.4; } 100% { transform:translateX(0) scaleX(0.95); opacity:0.25; } }
@keyframes gm-lamp { 0% { transform:scaleY(0.95); } 50% { transform:scaleY(1.05); } 100% { transform:scaleY(0.95); } }
@keyframes gm-lamp-glow { 0% { opacity:0.35; transform:scale(0.9); } 50% { opacity:0.5; transform:scale(1.15); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes gm-mote { 0% { transform:translate(0,0) scale(0.8); opacity:0; } 25% { opacity:0.7; } 50% { transform:translate(-12px,-18px) scale(1.2); opacity:0.5; } 75% { opacity:0.3; } 100% { transform:translate(-24px,-36px) scale(0.6); opacity:0; } }

/* birthday-decision-awaited – tense, dim-interior */
.scn-birthday-decision-awaited {
  background:
    linear-gradient(180deg, #1a141c 0%, #221a24 40%, #2e2230 70%, #221a24 100%),
    radial-gradient(ellipse at 50% 90%, #3a2a3e 0%, transparent 60%);
}
.scn-birthday-decision-awaited .bg {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, #1a141c 0%, #221a24 50%, #120e14 100%);
  animation: bda-bg 10s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .window {
  position: absolute; top: 6%; right: 8%;
  width: 20%; height: 34%;
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 100%);
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 20px #060612;
  animation: bda-window 12s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .night-sky {
  position: absolute; top: 8%; right: 10%;
  width: 16%; height: 28%;
  background:
    radial-gradient(ellipse at 70% 20%, rgba(200,200,255,0.08) 0%, transparent 100%);
  filter: blur(6px);
  animation: bda-night-sky 20s ease-in-out infinite alternate;
  opacity: 0.3;
}
.scn-birthday-decision-awaited .clock {
  position: absolute; top: 12%; left: 10%;
  width: 7%; height: 9%;
  background: radial-gradient(circle, #2a1e2a 0%, #1a121a 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5), inset 0 0 8px #0e0a0e;
  animation: bda-clock 30s linear infinite;
}
.scn-birthday-decision-awaited .table {
  position: absolute; bottom: 10%; left: 5%;
  width: 50%; height: 5%;
  background: linear-gradient(180deg, #3a2a2e 0%, #2a1a1e 100%);
  border-radius: 6% 6% 0 0 / 40% 40% 0 0;
  box-shadow: 0 4px 14px rgba(0,0,0,0.5);
  animation: bda-table 20s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .letter {
  position: absolute; bottom: 15%; left: 18%;
  width: 5%; height: 3.5%;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 4% / 12%;
  transform: rotate(-6deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bda-letter 6s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .figure {
  position: absolute; bottom: 14%; right: 14%;
  width: 12%; height: 28%;
  background:
    linear-gradient(180deg, #1e1620 0%, #100a14 30%, #1e1620 60%, #100a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bda-figure 5s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .candelabra {
  position: absolute; bottom: 14%; left: 36%;
  width: 6%; height: 14%;
  background:
    linear-gradient(180deg, #5a3a2a 0%, #3a1a12 50%, #2a0e08 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: bda-candelabra 4s ease-in-out infinite alternate;
}
.scn-birthday-decision-awaited .candle-glow {
  position: absolute; bottom: 20%; left: 33%;
  width: 12%; height: 14%;
  background: radial-gradient(circle, #c08040 0%, #8a4a2a 30%, transparent 100%);
  border-radius: 50%;
  opacity: 0.4;
  filter: blur(16px);
  animation: bda-candle-glow 2.2s ease-in-out infinite alternate;
}
@keyframes bda-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bda-window { 0% { opacity:0.4; transform:scale(0.98); } 50% { opacity:0.55; transform:scale(1); } 100% { opacity:0.45; transform:scale(0.99); } }
@keyframes bda-night-sky { 0% { opacity:0.25; transform:translate(0,0); } 50% { opacity:0.35; transform:translate(-2px,1px); } 100% { opacity:0.3; transform:translate(0,0); } }
@keyframes bda-clock { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes bda-table { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-1px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes bda-letter { 0% { transform:rotate(-6deg) translate(0,0); opacity:0.75; } 50% { transform:rotate(-4deg) translate(-1px,1px); opacity:0.9; } 100% { transform:rotate(-6deg) translate(0,0); opacity:0.75; } }
@keyframes bda-figure { 0% { transform:translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform:translateX(-3px) translateY(-2px) rotate(0.5deg); } 100% { transform:translateX(0) translateY(0) rotate(-0.5deg); } }
@keyframes bda-candelabra { 0% { transform:scaleY(0.98); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes bda-candle-glow { 0% { opacity:0.35; transform:scale(0.9); } 50% { opacity:0.5; transform:scale(1.12); } 100% { opacity:0.4; transform:scale(0.95); } }

.scn-inside {
  background:
    linear-gradient(0deg, #1a1a14 0%, #2c2b22 30%, #3a3a2e 60%, #4a4a3a 100%),
    radial-gradient(ellipse at 50% 60%, #7a6a5a 0%, transparent 70%);
}
.scn-inside .wall-back { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a3a 0%, #2c2b22 100%); border-radius: 0 0 60% 60% / 0 0 30% 30%; box-shadow: inset 0 0 60px rgba(0,0,0,0.6); animation: in-wall 15s ease-in-out infinite alternate; }
.scn-inside .wall-side { position:absolute; top:0; left:0; width:30%; height:60%; background: linear-gradient(90deg, #3a3a2e 0%, #1a1a14 100%); border-radius: 0 40% 0 0; box-shadow: 20px 0 30px rgba(0,0,0,0.5); }
.scn-inside .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a1a14 0%, #2c2b22 40%, #3a3a2e 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 40px 80px rgba(0,0,0,0.7); }
.scn-inside .window { position:absolute; top:10%; right:10%; width:40%; height:50%; background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 50%, #2a3a4a 100%); border-radius: 4% 4% 20% 20% / 8% 8% 40% 40%; box-shadow: inset 0 0 40px rgba(100,120,140,0.3), 0 0 50px rgba(100,120,140,0.2); animation: in-window 8s ease-in-out infinite alternate; }
.scn-inside .curtain { position:absolute; top:8%; right:8%; width:44%; height:54%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4% 4% 30% 30% / 6% 6% 50% 50%; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: -10px 0 20px rgba(0,0,0,0.5); animation: in-curtain 12s ease-in-out infinite alternate; }
.scn-inside .figure-prince { position:absolute; bottom:25%; right:15%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: in-walk 6s ease-in-out infinite; box-shadow: -2px 0 6px rgba(255,255,200,0.3); }
.scn-inside .figure-rogojin { position:absolute; bottom:28%; left:20%; width:22px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: in-stand 9s ease-in-out infinite; }
.scn-inside .table-lamp { position:absolute; bottom:30%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,0.3); animation: in-lamp 4s ease-in-out infinite alternate; }
.scn-inside .chair { position:absolute; bottom:22%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }

@keyframes in-wall { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes in-window { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes in-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes in-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes in-stand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes in-lamp { 0% { box-shadow: 0 0 15px 3px #b08040, 0 0 30px 6px rgba(176,128,64,0.2); opacity:0.8 } 50% { box-shadow: 0 0 30px 8px #d09050, 0 0 60px 16px rgba(208,144,80,0.4); opacity:1 } 100% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.3); opacity:0.9 } }

.scn-rogojin-explains-peep {
  background:
    linear-gradient(0deg, #1c1814 0%, #2c2822 40%, #3c3830 100%),
    radial-gradient(ellipse at 40% 70%, #6a5a4a 0%, transparent 70%);
}
.scn-rogojin-explains-peep .wall-left { position:absolute; top:0; left:0; width:45%; height:60%; background: linear-gradient(90deg, #3c3830 0%, #1c1814 100%); border-radius: 0 30% 30% 0; box-shadow: 10px 0 30px rgba(0,0,0,0.5); }
.scn-rogojin-explains-peep .wall-right { position:absolute; top:0; right:0; width:45%; height:60%; background: linear-gradient(270deg, #3c3830 0%, #1c1814 100%); border-radius: 30% 0 0 30%; box-shadow: -10px 0 30px rgba(0,0,0,0.5); }
.scn-rogojin-explains-peep .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1c1814 0%, #2c2822 50%, #3c3830 100%); border-radius: 60% 60% 0 0 / 20% 20% 0 0; box-shadow: inset 0 30px 60px rgba(0,0,0,0.6); }
.scn-rogojin-explains-peep .door { position:absolute; top:10%; left:40%; width:20%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6% 6% 4% 4% / 10% 10% 6% 6%; border-left: 2px solid #6a5a4a; border-right: 2px solid #1a0a0a; box-shadow: -5px 0 15px rgba(0,0,0,0.5); animation: rp-door-open 14s ease-in-out infinite alternate; }
.scn-rogojin-explains-peep .figure-rogojin { position:absolute; bottom:25%; left:35%; width:22px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: rp-lean 8s ease-in-out infinite; }
.scn-rogojin-explains-peep .figure-servant { position:absolute; bottom:25%; right:20%; width:20px; height:55px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-listen 10s ease-in-out infinite; }
.scn-rogojin-explains-peep .lamp { position:absolute; top:5%; left:20%; width:20px; height:30px; background: radial-gradient(circle, #c08040 0%, #8a6020 70%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 40px 8px #c08040, 0 0 80px 16px rgba(192,128,64,0.3); animation: rp-glint 4s ease-in-out infinite alternate; }
.scn-rogojin-explains-peep .shadow-hall { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: rp-shadow 12s ease-in-out infinite; }

@keyframes rp-door-open { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(10deg) } 100% { transform: rotateY(0deg) } }
@keyframes rp-lean { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(3deg) } 66% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rp-listen { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes rp-glint { 0% { box-shadow: 0 0 30px 5px #c08040, 0 0 60px 10px rgba(192,128,64,0.2); opacity:0.8 } 50% { box-shadow: 0 0 60px 12px #e0a060, 0 0 100px 20px rgba(224,160,96,0.4); opacity:1 } 100% { box-shadow: 0 0 35px 6px #c08040, 0 0 70px 12px rgba(192,128,64,0.25); opacity:0.85 } }
@keyframes rp-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

.scn-where-is-she {
  background:
    linear-gradient(0deg, #0e0c0a 0%, #1e1c18 40%, #2e2a24 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-where-is-she .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e2a24 0%, #0e0c0a 100%); opacity:0.6; animation: ws-bg 10s ease-in-out infinite alternate; }
.scn-where-is-she .figure-left { position:absolute; bottom:20%; left:15%; width:24px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ws-figure-left 7s ease-in-out infinite; }
.scn-where-is-she .figure-right { position:absolute; bottom:20%; right:15%; width:26px; height:75px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ws-figure-right 7s ease-in-out infinite 0.5s; }
.scn-where-is-she .eye-glow { position:absolute; bottom:45%; right:18%; width:6px; height:4px; background: radial-gradient(circle, #ffd060 0%, #c08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); animation: ws-eyes 5s ease-in-out infinite alternate; }
.scn-where-is-she .darkness { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.8) 100%); animation: ws-dark 8s ease-in-out infinite; }
.scn-where-is-she .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0e0c0a 0%, #1e1c18 100%); border-radius: 40% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); }

@keyframes ws-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes ws-figure-left { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-3deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ws-figure-right { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-6px) rotate(2deg) } 66% { transform: translateY(3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ws-eyes { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.2); opacity:0.7 } 50% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 18px rgba(255,208,96,0.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity:0.8 } }
@keyframes ws-dark { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

.scn-study-curtain {
  background:
    linear-gradient(0deg, #1a1a14 0%, #2c2b22 40%, #3a3a2e 100%),
    radial-gradient(ellipse at 50% 50%, #4a5a3a 0%, transparent 70%);
}
.scn-study-curtain .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a2e 0%, #1a1a14 100%); opacity:0.7; animation: sc-bg 12s ease-in-out infinite alternate; }
.scn-study-curtain .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1a14 0%, #2c2b22 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 30px 60px rgba(0,0,0,0.6); }
.scn-study-curtain .curtain-green { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 30%, #1a3a1a 70%, #0a2a0a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: -10px 0 30px rgba(0,0,0,0.5), 10px 0 30px rgba(0,0,0,0.5); clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: sc-sway 18s ease-in-out infinite alternate; }
.scn-study-curtain .curtain-shadow { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: sc-shadow 15s ease-in-out infinite alternate; }
.scn-study-curtain .bed { position:absolute; bottom:10%; left:50%; width:120px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-study-curtain .figure-rogojin { position:absolute; bottom:20%; left:35%; width:22px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sc-rogojin 10s ease-in-out infinite; }
.scn-study-curtain .figure-prince { position:absolute; bottom:20%; right:35%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-prince 10s ease-in-out infinite 1s; }
.scn-study-curtain .lamp { position:absolute; top:10%; left:15%; width:18px; height:28px; background: radial-gradient(circle, #c08040 0%, #8a6020 70%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 40px 8px #c08040, 0 0 80px 16px rgba(192,128,64,0.3); animation: sc-lamp 5s ease-in-out infinite alternate; }

@keyframes sc-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes sc-sway { 0% { transform: translateX(-2px) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes sc-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes sc-rogojin { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(-2deg) } 66% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc-prince { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc-lamp { 0% { box-shadow: 0 0 25px 5px #c08040, 0 0 50px 10px rgba(192,128,64,0.2); opacity:0.8 } 50% { box-shadow: 0 0 50px 12px #e0a060, 0 0 100px 20px rgba(224,160,96,0.4); opacity:1 } 100% { box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,0.25); opacity:0.85 } }

/* Scene: hippolyte-confesses (tense, dim-interior) */
.scn-hippolyte-confesses { background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #302040 100%), radial-gradient(ellipse at 70% 30%, #705040 0%, transparent 60%); }
.scn-hippolyte-confesses .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2030 0%, #3a2a3a 50%, #2a2030 100%); animation: hc-wall 7s ease-in-out infinite alternate; }
.scn-hippolyte-confesses .floor     { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-hippolyte-confesses .couch     { position:absolute; bottom:15%; left:20%; width:55%; height:35%; background: linear-gradient(180deg, #4a3a2e 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: hc-couch 11s ease-in-out infinite; }
.scn-hippolyte-confesses .figure    { position:absolute; bottom:22%; left:30%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hc-breath 3s ease-in-out infinite; }
.scn-hippolyte-confesses .lamp      { position:absolute; bottom:50%; right:25%; width:10px; height:14px; background: radial-gradient(ellipse at 50% 50%, #f0c068 0%, #a05020 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #c07030; animation: hc-lamp-flicker 0.8s ease-in-out infinite alternate; }
.scn-hippolyte-confesses .glow      { position:absolute; bottom:40%; right:18%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,192,104,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: hc-glow-pulse 2.5s ease-in-out infinite alternate; }
.scn-hippolyte-confesses .shadow    { position:absolute; bottom:5%; left:15%; width:65%; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 30%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: hc-shift-shadow 5s ease-in-out infinite; }
@keyframes hc-wall           { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hc-couch          { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(1px) scale(0.99) } }
@keyframes hc-breath         { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }
@keyframes hc-lamp-flicker   { 0% { opacity: 0.7; box-shadow: 0 0 25px 6px #b06030 } 50% { opacity: 1; box-shadow: 0 0 40px 12px #f0a050 } 100% { opacity: 0.8; box-shadow: 0 0 30px 8px #c07030 } }
@keyframes hc-glow-pulse     { 0% { opacity: 0.3; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.4; transform: scale(0.95) } }
@keyframes hc-shift-shadow   { 0% { transform: translateX(-5%) } 50% { transform: translateX(5%) } 100% { transform: translateX(-3%) } }

/* Scene: prince-pities-hippolyte (tense, dim-interior) */
.scn-prince-pities-hippolyte { background: linear-gradient(180deg, #1e1a2a 0%, #2e2040 60%, #1a1020 100%), radial-gradient(ellipse at 50% 100%, #403030 0%, transparent 80%); }
.scn-prince-pities-hippolyte .wall          { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #2e2040 0%, #3a2a40 100%); border-bottom: 3px solid #4a3a4a; animation: pp-wall 9s ease-in-out infinite; }
.scn-prince-pities-hippolyte .floor         { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #1a1020 0%, #2a1a2a 50%, #1a1020 100%); }
.scn-prince-pities-hippolyte .table         { position:absolute; bottom:15%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-prince-pities-hippolyte .figure-left   { position:absolute; bottom:18%; left:15%; width:18%; height:35%; background: radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pp-sit-left 4s ease-in-out infinite alternate; }
.scn-prince-pities-hippolyte .figure-right  { position:absolute; bottom:18%; right:15%; width:18%; height:35%; background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: pp-sit-right 4.5s ease-in-out infinite alternate; }
.scn-prince-pities-hippolyte .candle        { position:absolute; bottom:28%; left:48%; width:8px; height:16px; background: linear-gradient(180deg, #f0d080 0%, #c06030 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 4px #c07030; animation: pp-candle 2s ease-in-out infinite; }
.scn-prince-pities-hippolyte .candle-glow   { position:absolute; bottom:30%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,208,128,0.3) 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: pp-glow-wobble 3s ease-in-out infinite alternate; }
@keyframes pp-wall           { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pp-sit-left       { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(6deg) translateY(1px) } }
@keyframes pp-sit-right      { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(1px) } }
@keyframes pp-candle         { 0% { transform: scaleY(1); opacity: 0.8 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(0.95); opacity: 0.9 } }
@keyframes pp-glow-wobble    { 0% { transform: scale(0.9) translate(-2px, -1px) } 50% { transform: scale(1.1) translate(2px, 2px) } 100% { transform: scale(0.95) translate(-1px, 0) } }

/* Scene: hippolyte-reports-meeting (tense, sunlit) */
.scn-hippolyte-reports-meeting { background: linear-gradient(180deg, #87ceeb 0%, #c0e0ff 60%, #f0e8c0 100%), radial-gradient(ellipse at 70% 30%, #fff5d0 0%, transparent 60%); }
.scn-hippolyte-reports-meeting .sky            { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7ac4e0 0%, #b0d8f0 70%, transparent 100%); animation: hr-sky 20s ease-in-out infinite alternate; }
.scn-hippolyte-reports-meeting .ground         { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a0c080 0%, #708050 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-hippolyte-reports-meeting .tree           { position:absolute; bottom:35%; left:10%; width:8%; height:50%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 10% 10% 5% 5%; box-shadow: -20px 0 30px rgba(0,0,0,0.2); transform-origin: bottom; animation: hr-sway 5s ease-in-out infinite; }
.scn-hippolyte-reports-meeting .bench          { position:absolute; bottom:22%; left:35%; width:30%; height:8%; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 6px 6px 3px 3px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-hippolyte-reports-meeting .figure-sitting { position:absolute; bottom:26%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 40%, #3a2a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-hippolyte-reports-meeting .figure-sitting.one   { left:38%; animation: hr-figure-one 7s ease-in-out infinite; }
.scn-hippolyte-reports-meeting .figure-sitting.two   { left:50%; animation: hr-figure-two 7.5s ease-in-out infinite; }
.scn-hippolyte-reports-meeting .leaf          { position:absolute; top:20%; left:60%; width:3%; height:2%; background: #80a050; border-radius: 50% 0 50% 0; filter: blur(1px); animation: hr-leaf 4s ease-in-out infinite; }
@keyframes hr-sky           { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hr-sway          { 0% { transform: rotate(0deg) } 30% { transform: rotate(2deg) } 70% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes hr-figure-one    { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(1px) rotate(2deg) } }
@keyframes hr-figure-two    { 0% { transform: translateY(0) rotate(-1deg) } 40% { transform: translateY(-3px) rotate(1deg) } 80% { transform: translateY(2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hr-leaf          { 0% { transform: translate(0, 0) rotate(0deg) } 50% { transform: translate(20px, 40px) rotate(90deg) } 100% { transform: translate(40px, 80px) rotate(180deg); opacity: 0 } }

/* Scene: prince-surprised (tense, dim-interior) */
.scn-prince-surprised { background: linear-gradient(180deg, #1e1a2e 0%, #2e2040 40%, #3a2a4a 100%), radial-gradient(ellipse at 80% 20%, #504060 0%, transparent 70%); }
.scn-prince-surprised .wall          { position:absolute; inset:0 0 10% 0; background: linear-gradient(90deg, #2e2040 0%, #3a2a4a 50%, #2e2040 100%); }
.scn-prince-surprised .floor         { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(90deg, #1a1020 0%, #2a1a30 100%); }
.scn-prince-surprised .window        { position:absolute; top:10%; right:15%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, #ffeed0 0%, #c0b090 100%); border: 4px solid #4a3a3a; border-radius: 5px; box-shadow: 0 0 40px 10px rgba(255,238,208,0.3); }
.scn-prince-surprised .figure-prince { position:absolute; bottom:10%; left:25%; width:15%; height:50%; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: ps-start 2s ease-out infinite alternate; }
.scn-prince-surprised .door          { position:absolute; bottom:10%; left:60%; width:18%; height:80%; background: linear-gradient(90deg, #3a2a2a 0%, #5a4a3a 50%, #3a2a2a 100%); border-radius: 5px 0 0 5px; box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: ps-door 3s ease-in-out infinite; }
.scn-prince-surprised .figure-door   { position:absolute; bottom:10%; left:78%; width:12%; height:50%; background: radial-gradient(ellipse at 50% 40%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.8); animation: ps-enter 3s ease-in-out infinite; }
.scn-prince-surprised .shadow-door   { position:absolute; bottom:0; left:55%; width:30%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 40%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: ps-shadow 3s ease-in-out infinite; }
@keyframes ps-start     { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(0deg) translateX(5px) } 100% { transform: rotate(-3deg) translateX(2px) } }
@keyframes ps-door      { 0% { transform: rotate(0deg) } 30% { transform: rotate(-20deg) } 70% { transform: rotate(-20deg) } 100% { transform: rotate(0deg) } }
@keyframes ps-enter     { 0% { opacity: 0; transform: translateX(60px) scaleX(0.8) } 30% { opacity: 1; transform: translateX(0) scaleX(0.8) } 70% { opacity: 1; transform: translateX(0) scaleX(0.8) } 100% { opacity: 0; transform: translateX(60px) scaleX(0.8) } }
@keyframes ps-shadow    { 0% { opacity: 0 } 30% { opacity: 0.6 } 70% { opacity: 0.6 } 100% { opacity: 0 } }

.scn-location {
  background: linear-gradient(180deg, #87CEEB 0%, #FFDAB9 70%, #F0E68C 100%),
              radial-gradient(ellipse at 20% 80%, #FFEDB0 0%, transparent 60%);
}
.scn-location .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 60%, transparent 100%);
  animation: locn-sky 12s ease-in-out infinite alternate;
}
.scn-location .manor {
  position: absolute; bottom: 30%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #DEB887 0%, #A0522D 50%, #8B4513 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: locn-manor 9s ease-in-out infinite;
}
.scn-location .trees-left {
  position: absolute; bottom: 20%; left: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #2E8B57 0%, #228B22 50%, #006400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: locn-trees 6s ease-in-out infinite;
}
.scn-location .trees-right {
  position: absolute; bottom: 20%; right: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3CB371 0%, #2E8B57 50%, #1E6B3A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: locn-trees 7s ease-in-out infinite reverse;
}
.scn-location .path {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 100%);
  border-radius: 40% 40% 0 0;
  animation: locn-path 20s linear infinite;
}
.scn-location .hedges {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(90deg, #4B6E3A 0%, #3A5A2A 25%, #4B6E3A 50%, #3A5A2A 75%, #4B6E3A 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: locn-hedge 15s ease-in-out infinite;
}
.scn-location .cloud {
  position: absolute;
  height: 12%;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-location .cloud-a {
  top: 10%; left: 5%; width: 25%;
  animation: locn-cloud 30s linear infinite;
}
.scn-location .cloud-b {
  top: 25%; right: 10%; width: 20%;
  animation: locn-cloud 40s linear infinite reverse;
  animation-delay: -10s;
}

@keyframes locn-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes locn-manor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes locn-trees {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes locn-path {
  0% { background-position: 0% 0%; }
  50% { background-position: 50% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes locn-hedge {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes locn-cloud {
  0% { transform: translateX(-50px); }
  50% { transform: translateX(20vw); }
  100% { transform: translateX(100vw); }
}

/* prince-admits-wish */
.scn-prince-admits-wish {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2255 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-prince-admits-wish .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #241f2a 0%, #1a1a2e 100%);
  animation: prc-bg 18s ease-in-out infinite alternate;
}
.scn-prince-admits-wish .bg-mid {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  animation: prc-bg2 20s ease-in-out infinite alternate;
}
.scn-prince-admits-wish .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
}
.scn-prince-admits-wish .window {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(74,106,138,0.3);
  animation: prc-window 6s ease-in-out infinite;
}
.scn-prince-admits-wish .lampglow {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle, #d4a050 0%, #a07030 50%, transparent 100%);
  box-shadow: 0 0 40px 15px rgba(180,120,40,0.5);
  animation: prc-lamp 4s ease-in-out infinite alternate;
}
.scn-prince-admits-wish .figure-prince {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: prc-fig1 8s ease-in-out infinite;
}
.scn-prince-admits-wish .figure-evgenie {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: prc-fig2 7s ease-in-out infinite reverse;
}
.scn-prince-admits-wish .table {
  position: absolute; bottom: 18%; left: 38%; width: 24%; height: 6%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: prc-table 10s ease-in-out infinite;
}

@keyframes prc-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes prc-bg2 {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes prc-window {
  0% { box-shadow: inset 0 0 20px rgba(74,106,138,0.3); }
  50% { box-shadow: inset 0 0 30px rgba(74,106,138,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(74,106,138,0.3); }
}
@keyframes prc-lamp {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes prc-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes prc-fig2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes prc-table {
  0% { transform: rotateX(0deg); }
  50% { transform: rotateX(3deg); }
  100% { transform: rotateX(0deg); }
}

/* evgenie-reproaches */
.scn-evgenie-reproaches {
  background: linear-gradient(180deg, #1c1c2c 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-evgenie-reproaches .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: ev1-wall 15s ease-in-out infinite alternate;
}
.scn-evgenie-reproaches .doorway {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(90,70,40,0.4);
  animation: ev1-door 12s ease-in-out infinite;
}
.scn-evgenie-reproaches .light-spill {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,140,0.3) 0%, transparent 100%);
  animation: ev1-light 5s ease-in-out infinite alternate;
}
.scn-evgenie-reproaches .figure1 {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ev1-fig1 6s ease-in-out infinite;
}
.scn-evgenie-reproaches .figure2 {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ev1-fig2 7s ease-in-out infinite reverse;
}
.scn-evgenie-reproaches .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  animation: ev1-floor 10s ease-in-out infinite;
}
.scn-evgenie-reproaches .doorframe {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  border: 4px solid #3a2a1a;
  border-radius: 10px;
  box-sizing: border-box;
  animation: ev1-frame 8s ease-in-out infinite;
}
.scn-evgenie-reproaches .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ev1-shadow 9s ease-in-out infinite alternate;
}

@keyframes ev1-wall {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ev1-door {
  0% { box-shadow: inset 0 0 30px rgba(90,70,40,0.4); }
  50% { box-shadow: inset 0 0 50px rgba(90,70,40,0.6); }
  100% { box-shadow: inset 0 0 30px rgba(90,70,40,0.4); }
}
@keyframes ev1-light {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1); }
  100% { opacity: 0.4; transform: scaleY(0.98); }
}
@keyframes ev1-fig1 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes ev1-fig2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes ev1-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes ev1-frame {
  0% { border-color: #3a2a1a; }
  50% { border-color: #5a4a3a; }
  100% { border-color: #3a2a1a; }
}
@keyframes ev1-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* evgenie-lectures */
.scn-evgenie-lectures {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 40% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-evgenie-lectures .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  animation: ev2-curtain 14s ease-in-out infinite alternate;
}
.scn-evgenie-lectures .bar {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 2px;
  animation: ev2-bar 20s ease-in-out infinite;
}
.scn-evgenie-lectures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ev2-floor 10s ease-in-out infinite;
}
.scn-evgenie-lectures .figure-sit {
  position: absolute; bottom: 15%; left: 30%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ev2-sit 8s ease-in-out infinite;
}
.scn-evgenie-lectures .figure-stand {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ev2-stand 6s ease-in-out infinite reverse;
}
.scn-evgenie-lectures .lamp {
  position: absolute; top: 15%; left: 42%; width: 8%; height: 12%;
  background: radial-gradient(circle, #d4a050 0%, #a07030 60%, transparent 100%);
  box-shadow: 0 0 40px 10px rgba(180,120,40,0.4);
  animation: ev2-lamp 3s ease-in-out infinite alternate;
}
.scn-evgenie-lectures .book {
  position: absolute; bottom: 18%; left: 36%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #8B4513 0%, #A0522D 50%, #6B3410 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: ev2-book 12s ease-in-out infinite;
}
.scn-evgenie-lectures .cast-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(180,120,40,0.2) 0%, transparent 100%);
  animation: ev2-cast 7s ease-in-out infinite alternate;
}

@keyframes ev2-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.97); }
}
@keyframes ev2-bar {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ev2-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.96); }
  100% { transform: scaleY(1); }
}
@keyframes ev2-sit {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes ev2-stand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(3px) rotate(-2deg); }
}
@keyframes ev2-lamp {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes ev2-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes ev2-cast {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* nastasia-claims-prince */
.scn-nastasia-claims-prince {
  background: linear-gradient(180deg, #1a1020 0%, #2a1a2a 40%, #1a0a10 100%), radial-gradient(ellipse at 50% 80%, #3a202a 0%, transparent 70%);
}
.scn-nastasia-claims-prince .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2020 0%, #1a1018 100%); 
  animation: ncp-room 20s ease-in-out infinite alternate;
}
.scn-nastasia-claims-prince .ncp-window {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 40%; 
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4%; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ncp-glow 8s ease-in-out infinite;
}
.scn-nastasia-claims-prince .ncp-lamp {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 20px; 
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, transparent 70%); 
  border-radius: 50%; box-shadow: 0 0 40px 10px #c09050, 0 0 80px 20px rgba(192,144,80,0.3);
  animation: ncp-flicker 2s ease-in-out infinite alternate;
}
.scn-nastasia-claims-prince .ncp-curtain-left {
  position: absolute; top: 8%; left: 58%; width: 12%; height: 45%; 
  background: linear-gradient(90deg, #3a2020 0%, #2a1515 100%); border-radius: 0 20% 20% 0; 
  transform-origin: left center; animation: ncp-sway 6s ease-in-out infinite alternate;
}
.scn-nastasia-claims-prince .ncp-curtain-right {
  position: absolute; top: 8%; right: 15%; width: 12%; height: 45%; 
  background: linear-gradient(270deg, #3a2020 0%, #2a1515 100%); border-radius: 20% 0 0 20%; 
  transform-origin: right center; animation: ncp-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-nastasia-claims-prince .ncp-nastasia {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 50px; 
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: ncp-arm 3s ease-in-out infinite;
}
.scn-nastasia-claims-prince .ncp-prince {
  position: absolute; bottom: 20%; left: 52%; width: 22px; height: 48px; 
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: ncp-stand 5s ease-in-out infinite alternate;
}
.scn-nastasia-claims-prince .ncp-rogojin {
  position: absolute; bottom: 20%; right: 10%; width: 20px; height: 46px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  animation: ncp-walk 6s ease-in-out infinite;
}
.scn-nastasia-claims-prince .ncp-sofa {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 15%; 
  background: linear-gradient(135deg, #4a3535 0%, #2a1a1a 100%); 
  border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: ncp-breathe 7s ease-in-out infinite;
}
@keyframes ncp-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ncp-glow { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(50,40,40,0.8); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.6); } }
@keyframes ncp-flicker { 0% { opacity: 0.7; transform: scale(1); } 25% { opacity: 0.9; transform: scale(1.05); } 50% { opacity: 0.8; transform: scale(0.95); } 75% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.75; transform: scale(1); } }
@keyframes ncp-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes ncp-arm { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg) translateX(-2px); } 50% { transform: rotate(5deg) translateX(2px); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes ncp-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ncp-walk { 0% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(-10px); } 75% { transform: translateX(-15px); } 100% { transform: translateX(-20px); opacity: 0.3; } }
@keyframes ncp-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* prince-comforts-nastasia */
.scn-prince-comforts-nastasia {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a2a 40%, #1a0a18 100%), radial-gradient(ellipse at 40% 70%, #3a2530 0%, transparent 80%);
}
.scn-prince-comforts-nastasia .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a28 0%, #1a1018 100%);
  animation: pcn-bg 15s ease-in-out infinite alternate;
}
.scn-prince-comforts-nastasia .pcn-window {
  position: absolute; top: 12%; left: 65%; width: 20%; height: 35%;
  background: linear-gradient(135deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 5%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  animation: pcn-window-glow 10s ease-in-out infinite;
}
.scn-prince-comforts-nastasia .pcn-lamp {
  position: absolute; top: 25%; left: 25%; width: 10px; height: 25px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 15px #c09050, 0 0 100px 30px rgba(192,144,80,0.3);
  animation: pcn-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-comforts-nastasia .pcn-couch {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: pcn-couch-breath 8s ease-in-out infinite;
}
.scn-prince-comforts-nastasia .pcn-prince {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcn-prince 4s ease-in-out infinite alternate;
}
.scn-prince-comforts-nastasia .pcn-nastasia {
  position: absolute; bottom: 22%; left: 48%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1515 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcn-nastasia 4s ease-in-out infinite alternate;
}
.scn-prince-comforts-nastasia .pcn-rug {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 50%, #3a2a2a 100%);
  border-radius: 50%; transform: scaleX(1.2);
  animation: pcn-rug 12s ease-in-out infinite alternate;
}
.scn-prince-comforts-nastasia .pcn-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: pcn-shadow 10s ease-in-out infinite alternate;
}
@keyframes pcn-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pcn-window-glow { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 25px rgba(30,20,30,0.7); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.5); } }
@keyframes pcn-lamp { 0% { opacity: 0.6; transform: scale(1) rotate(0deg); } 25% { opacity: 0.9; transform: scale(1.1) rotate(3deg); } 50% { opacity: 0.8; transform: scale(0.95) rotate(-2deg); } 75% { opacity: 1; transform: scale(1.05) rotate(2deg); } 100% { opacity: 0.7; transform: scale(1) rotate(0deg); } }
@keyframes pcn-couch-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(1); } }
@keyframes pcn-prince { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pcn-nastasia { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(-3deg); } 66% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pcn-rug { 0% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.18) translateY(-2px); } 100% { transform: scaleX(1.2) translateY(0); } }
@keyframes pcn-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* fortnight-passed */
.scn-fortnight-passed {
  background: linear-gradient(180deg, #3a4040 0%, #2a3030 40%, #1a2020 100%), radial-gradient(ellipse at 50% 30%, #4a5050 0%, transparent 60%);
}
.scn-fortnight-passed .fpa-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6060 0%, #3a4040 60%, #2a3030 100%);
  animation: fpa-sky 30s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-frame {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 55%;
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: fpa-frame 12s ease-in-out infinite;
}
.scn-fortnight-passed .fpa-desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: fpa-desk-shift 20s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-letter {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #c0b090 0%, #a09070 100%);
  border-radius: 2%; transform: rotate(-5deg);
  animation: fpa-letter 8s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-candle {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 50%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fpa-candle 6s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-flame {
  position: absolute; bottom: 52%; left: 60.5%; width: 6px; height: 12px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffc040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ffc040, 0 0 40px 15px rgba(255,192,64,0.3);
  animation: fpa-flame 1.5s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-figure {
  position: absolute; bottom: 22%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpa-figure 10s ease-in-out infinite alternate;
}
.scn-fortnight-passed .fpa-clock {
  position: absolute; top: 15%; right: 5%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c0a080 0%, #8a7a5a 70%);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: fpa-clock-tick 30s linear infinite;
}
@keyframes fpa-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes fpa-frame { 0% { box-shadow: inset 0 0 15px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } }
@keyframes fpa-desk-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpa-letter { 0% { transform: rotate(-5deg) translateY(0); } 33% { transform: rotate(-3deg) translateY(-1px); } 66% { transform: rotate(-6deg) translateY(1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes fpa-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes fpa-flame { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 25% { transform: scale(1.2) rotate(5deg); opacity: 1; } 50% { transform: scale(0.9) rotate(-5deg); opacity: 0.9; } 75% { transform: scale(1.1) rotate(3deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.8; } }
@keyframes fpa-figure { 0% { transform: translateY(0); } 33% { transform: translateY(-3px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes fpa-clock-tick { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* rumours-spread */
.scn-rumours-spread {
  background: linear-gradient(180deg, #3a4040 0%, #2a3030 40%, #1a2020 100%), radial-gradient(ellipse at 50% 40%, #4a5050 0%, transparent 80%);
}
.scn-rumours-spread .rsp-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6060 0%, #3a4040 60%, #2a3030 100%);
  animation: rsp-sky 40s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-bg {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #2a2a2a 0%, #3a3a3a 40%, #4a4a4a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: rsp-bg 20s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #2a2a2a 0%, #3a3a3a 50%, #2a2a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: rsp-street 15s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-figure-left {
  position: absolute; bottom: 12%; left: 25%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rsp-walk-left 8s ease-in-out infinite;
}
.scn-rumours-spread .rsp-figure-right {
  position: absolute; bottom: 12%; right: 25%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rsp-walk-right 10s ease-in-out infinite;
}
.scn-rumours-spread .rsp-lamppost {
  position: absolute; bottom: 15%; left: 50%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10%;
  animation: rsp-pole 18s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-glow {
  position: absolute; bottom: 48%; left: 49%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #c09050, 0 0 120px 40px rgba(192,144,80,0.2);
  animation: rsp-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-sign {
  position: absolute; bottom: 32%; left: 60%; width: 30px; height: 15px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10%; transform: rotate(-5deg);
  animation: rsp-sign 12s ease-in-out infinite alternate;
}
.scn-rumours-spread .rsp-cobble {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #3a3a3a 8px, #2a2a2a 16px);
  opacity: 0.5;
  animation: rsp-cobble 30s linear infinite;
}
@keyframes rsp-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes rsp-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes rsp-street { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rsp-walk-left { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes rsp-walk-right { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-5px) translateY(-3px); } 50% { transform: translateX(-10px) translateY(0); } 75% { transform: translateX(-15px) translateY(-2px); } 100% { transform: translateX(-20px) translateY(0); } }
@keyframes rsp-pole { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes rsp-lamp-glow { 0% { opacity: 0.6; transform: scale(1); } 25% { opacity: 0.9; transform: scale(1.1); } 50% { opacity: 0.8; transform: scale(0.95); } 75% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes rsp-sign { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-5deg); } }
@keyframes rsp-cobble { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }

.scn-hippolyte-insists {
  background: linear-gradient(180deg, #1e1a1a 0%, #2a1f1f 40%, #361f1f 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 80%);
}
.scn-hippolyte-insists .bg    { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a1a 0%, #2a1f1f 100%); }
.scn-hippolyte-insists .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-hippolyte-insists .door  { position:absolute; bottom:25%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 1px #4a3a2a; animation: hi-ins-door 6s ease-in-out infinite; }
.scn-hippolyte-insists .figure{ position:absolute; bottom:28%; left:55%; width:40px; height:70px; background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-ins-figure 4s ease-in-out infinite; }
.scn-hippolyte-insists .table { position:absolute; bottom:25%; left:35%; width:80px; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-hippolyte-insists .candle{ position:absolute; bottom:31%; left:39%; width:8px; height:16px; background: linear-gradient(180deg, #c8a060 0%, #a07840 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 12px 4px #b08040; animation: hi-ins-candle 2s ease-in-out infinite; }
.scn-hippolyte-insists .glow  { position:absolute; bottom:30%; left:38%; width:16px; height:16px; background: radial-gradient(circle, rgba(200,160,96,.6) 0%, transparent 100%); border-radius: 50%; pointer-events: none; animation: hi-ins-glow 2s ease-in-out infinite; }
.scn-hippolyte-insists .shadow{ position:absolute; bottom:25%; left:50%; width:60px; height:8px; background: rgba(0,0,0,.4); border-radius: 50%; transform: translateX(-30px); animation: hi-ins-shadow 6s ease-in-out infinite; }
@keyframes hi-ins-door   { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(0.98); } }
@keyframes hi-ins-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes hi-ins-candle { 0%,100% { opacity:0.8; transform: scaleY(0.9); } 30% { opacity:1; transform: scaleY(1.1); } 60% { opacity:0.7; transform: scaleY(0.85); } 80% { opacity:0.9; transform: scaleY(1.05); } }
@keyframes hi-ins-glow   { 0%,100% { opacity:0.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }
@keyframes hi-ins-shadow { 0%,100% { transform: translateX(-30px) scaleX(1); } 50% { transform: translateX(-28px) scaleX(1.1); } }

.scn-hippolyte-advises-spy {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 70%);
}
.scn-hippolyte-advises-spy .bg    { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%); }
.scn-hippolyte-advises-spy .window{ position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(50,50,100,.3), 0 0 0 1px #2a2a4a; }
.scn-hippolyte-advises-spy .curtain{ position:absolute; top:8%; right:8%; width:30px; height:110px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 20% 20% 50% / 60% 40% 40% 60%; animation: hi-adv-curtain 8s ease-in-out infinite; }
.scn-hippolyte-advises-spy .spy  { position:absolute; bottom:20%; right:15%; width:30px; 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: hi-adv-spy 5s ease-in-out infinite; }
.scn-hippolyte-advises-spy .desk { position:absolute; bottom:20%; right:5%; width:70px; height:6px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 2px; }
.scn-hippolyte-advises-spy .letter{ position:absolute; bottom:22%; right:15%; width:20px; height:14px; background: linear-gradient(180deg, #c8b880 0%, #a89060 100%); border-radius: 1px; box-shadow: 0 1px 2px rgba(0,0,0,.4); animation: hi-adv-letter 3s ease-in-out infinite; }
.scn-hippolyte-advises-spy .lamp { position:absolute; bottom:30%; right:18%; width:10px; height:12px; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #4a3a2a; animation: hi-adv-lamp 4s ease-in-out infinite; }
.scn-hippolyte-advises-spy .shadow{ position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); }
@keyframes hi-adv-curtain { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes hi-adv-spy    { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes hi-adv-letter { 0%,100% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-2px) rotate(2deg); opacity:1; } }
@keyframes hi-adv-lamp   { 0%,100% { opacity:0.7; transform: scale(0.9); } 30% { opacity:1; transform: scale(1.1); } 60% { opacity:0.8; transform: scale(1); } 80% { opacity:1; transform: scale(1.05); } }

.scn-prince-alone-after-hippolyte {
  background: linear-gradient(180deg, #1a0f1a 0%, #2a1a2a 40%, #1a0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 70%);
}
.scn-prince-alone-after-hippolyte .bg    { position:absolute; inset:0; background: linear-gradient(180deg, #1a0f1a 0%, #2a1a2a 100%); }
.scn-prince-alone-after-hippolyte .sofa  { position:absolute; bottom:20%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-prince-alone-after-hippolyte .prince{ position:absolute; bottom:25%; left:35%; width:60px; height:30px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: center; animation: pr-alo-breathe 5s ease-in-out infinite; }
.scn-prince-alone-after-hippolyte .lamp { position:absolute; top:10%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #5a3a2a; animation: pr-alo-glow 3s ease-in-out infinite; }
.scn-prince-alone-after-hippolyte .spin1{ position:absolute; top:20%; left:10%; width:80px; height:80px; border: 2px solid rgba(100,80,60,.15); border-radius: 50%; animation: pr-alo-spin1 20s linear infinite; }
.scn-prince-alone-after-hippolyte .spin2{ position:absolute; top:20%; right:10%; width:60px; height:60px; border: 2px solid rgba(80,60,50,.1); border-radius: 50%; animation: pr-alo-spin2 15s linear infinite reverse; }
.scn-prince-alone-after-hippolyte .shadow{ position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; }
@keyframes pr-alo-breathe { 0%,100% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(0.98); } }
@keyframes pr-alo-glow    { 0%,100% { opacity:0.7; transform: scale(0.9); box-shadow: 0 0 20px 6px #5a3a2a; } 30% { opacity:1; transform: scale(1.1); box-shadow: 0 0 40px 14px #7a4a3a; } 60% { opacity:0.8; transform: scale(1); box-shadow: 0 0 30px 10px #5a3a2a; } }
@keyframes pr-alo-spin1   { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pr-alo-spin2   { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }

.scn-prince-fears-decision {
  background: linear-gradient(180deg, #0a080a 0%, #1a0f0f 30%, #0a0505 100%),
              radial-gradient(ellipse at 50% 80%, #1a0f0f 0%, transparent 80%);
}
.scn-prince-fears-decision .bg    { position:absolute; inset:0; background: linear-gradient(180deg, #0a080a 0%, #1a0f0f 100%); }
.scn-prince-fears-decision .bed   { position:absolute; bottom:10%; left:10%; right:10%; height:70%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-prince-fears-decision .figure{ position:absolute; bottom:20%; left:30%; width:50px; height:40px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: center; animation: pr-fea-figure 4s ease-in-out infinite; }
.scn-prince-fears-decision .candle{ position:absolute; bottom:30%; left:70%; width:8px; height:16px; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 10px 3px #8a6030; animation: pr-fea-candle 3s ease-in-out infinite; }
.scn-prince-fears-decision .door  { position:absolute; bottom:15%; right:15%; width:50px; height:90px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,1), 0 0 0 1px #2a1a1a; animation: pr-fea-door 8s ease-in-out infinite; }
.scn-prince-fears-decision .clock { position:absolute; top:10%; left:10%; width:40px; height:40px; border: 2px solid rgba(180,140,100,.3); border-radius: 50%; animation: pr-fea-clock 60s linear infinite; }
.scn-prince-fears-decision .clock::after { content:''; position:absolute; top:50%; left:50%; width:2px; height:18px; background: rgba(180,140,100,.5); transform-origin: bottom center; transform: translateX(-50%) rotate(0deg); animation: pr-fea-hand 60s linear infinite; }
.scn-prince-fears-decision .shadow{ position:absolute; bottom:10%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; }
@keyframes pr-fea-figure { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.08) translateY(-2px); } }
@keyframes pr-fea-candle { 0%,100% { opacity:0.7; transform: scaleY(0.9); } 30% { opacity:1; transform: scaleY(1.1); } 60% { opacity:0.8; transform: scaleY(1); } 80% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes pr-fea-door   { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(0.97); } }
@keyframes pr-fea-clock  { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pr-fea-hand   { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }

.scn-aglaya-repeats-princes-words { background: linear-gradient(180deg, #1f1410 0%, #2a1a12 30%, #3d2818 60%, #1a0f0a 100%), radial-gradient(ellipse at 30% 70%, #4a2e1a 0%, transparent 60%); }
.scn-aglaya-repeats-princes-words .wall-deep { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1a12 0%, #3a2416 40%, transparent 100%); }
.scn-aglaya-repeats-princes-words .wall-mid { position:absolute; inset:5% 10% 45% 10%; background: linear-gradient(135deg, #3a2416 0%, #2a1a12 50%, #4a3020 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: apw-shadow 14s ease-in-out infinite; }
.scn-aglaya-repeats-princes-words .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 40%, #0f0804 100%); border-radius: 30% 0 0 0 / 20% 0 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-aglaya-repeats-princes-words .fireplace { position:absolute; bottom:40%; left:12%; width:90px; height:100px; background: linear-gradient(180deg, #3a2416 0%, #1a0e06 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-aglaya-repeats-princes-words .fireplace::after { content:''; position:absolute; bottom:15%; left:50%; width:44px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, #c06020 0%, #e08030 30%, #c06020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c06020, 0 0 60px 20px rgba(192,96,32,.5); animation: apw-fire 2s ease-in-out infinite alternate; }
.scn-aglaya-repeats-princes-words .chair { position:absolute; bottom:35%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, #3a2416 0%, #2a1a12 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: apw-chair 9s ease-in-out infinite; }
.scn-aglaya-repeats-princes-words .figure-aglaya { position:absolute; bottom:30%; left:35%; width:20px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apw-aglaya 4s ease-in-out infinite; }
.scn-aglaya-repeats-princes-words .figure-nastasia { position:absolute; bottom:33%; right:22%; width:18px; height:66px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apw-nastasia 5s ease-in-out infinite; }
.scn-aglaya-repeats-princes-words .glow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 15% 65%, rgba(192,96,32,.15) 0%, transparent 60%); animation: apw-glow 6s ease-in-out infinite alternate; }
.scn-aglaya-repeats-princes-words .dust-mote { position:absolute; top:20%; left:45%; width:3px; height:3px; background: rgba(200,160,100,.3); border-radius:50%; filter: blur(1px); animation: apw-dust 25s linear infinite; }
@keyframes apw-shadow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes apw-fire { 0% { transform:translateX(-50%) scale(1); box-shadow: 0 0 25px 8px #c06020, 0 0 50px 15px rgba(192,96,32,.4); } 50% { transform:translateX(-50%) scale(1.06); box-shadow: 0 0 35px 12px #d07030, 0 0 65px 22px rgba(208,112,48,.5); } 100% { transform:translateX(-50%) scale(.94); box-shadow: 0 0 28px 9px #b05018, 0 0 55px 18px rgba(176,80,24,.35); } }
@keyframes apw-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes apw-aglaya { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes apw-nastasia { 0% { transform: translateX(0) rotate(1deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 70% { transform: translateX(1px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes apw-glow { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes apw-dust { 0% { transform: translate(0,0) scale(1); opacity:.3; } 25% { transform: translate(15px,-8px) scale(1.2); opacity:.5; } 50% { transform: translate(30px,0) scale(.8); opacity:.2; } 75% { transform: translate(45px,-5px) scale(1.1); opacity:.4; } 100% { transform: translate(60px,0) scale(1); opacity:.3; } }

.scn-aglaya-love-declared { background: linear-gradient(180deg, #1a1614 0%, #2a1e18 35%, #3d2a20 65%, #1a100c 100%), radial-gradient(ellipse at 70% 80%, #3d2a20 0%, transparent 70%); }
.scn-aglaya-love-declared .wall-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1e18 0%, #3d2a20 40%, transparent 100%); }
.scn-aglaya-love-declared .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 50%, #0f0804 100%); border-radius: 20% 0 0 0 / 15% 0 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,.5); }
.scn-aglaya-love-declared .window { position:absolute; bottom:40%; right:10%; width:70px; height:90px; background: linear-gradient(180deg, #1a2830 0%, #0d1a20 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(80,160,200,.1); animation: ald-window 20s ease-in-out infinite alternate; }
.scn-aglaya-love-declared .window::before { content:''; position:absolute; inset:0; background: linear-gradient(135deg, rgba(80,160,200,.05) 0%, transparent 60%); }
.scn-aglaya-love-declared .table { position:absolute; bottom:30%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #3a2416 0%, #2a1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-aglaya-love-declared .candle { position:absolute; bottom:48%; left:48%; width:6px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(200,168,100,.3); animation: ald-candle 5s ease-in-out infinite alternate; }
.scn-aglaya-love-declared .figure-aglaya { position:absolute; bottom:28%; left:42%; width:20px; height:72px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ald-aglaya 3s ease-in-out infinite; }
.scn-aglaya-love-declared .figure-aglaya::after { content:''; position:absolute; top:15%; left:-8px; width:12px; height:6px; background: #1a1210; border-radius: 50% 50% 0 0; transform: rotate(-10deg); }
.scn-aglaya-love-declared .figure-prince { position:absolute; bottom:32%; right:25%; width:18px; height:64px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ald-prince 4s ease-in-out infinite; }
.scn-aglaya-love-declared .candle-glow { position:absolute; bottom:44%; left:45%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,168,100,.2) 0%, transparent 80%); filter: blur(8px); animation: ald-glow 4s ease-in-out infinite alternate; }
@keyframes ald-window { 0% { box-shadow: inset 0 0 20px rgba(80,160,200,.1); } 50% { box-shadow: inset 0 0 30px rgba(80,160,200,.2); } 100% { box-shadow: inset 0 0 15px rgba(80,160,200,.05); } }
@keyframes ald-candle { 0% { transform:translateX(-50%) scaleY(1); box-shadow: 0 0 8px 2px rgba(200,168,100,.3); } 50% { transform:translateX(-50%) scaleY(1.1) scaleX(.95); box-shadow: 0 0 12px 4px rgba(200,168,100,.5); } 100% { transform:translateX(-50%) scaleY(.95); box-shadow: 0 0 6px 1px rgba(200,168,100,.2); } }
@keyframes ald-aglaya { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ald-prince { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(-2px) rotate(1deg); } 80% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ald-glow { 0% { opacity:.4; transform:scale(.9); } 50% { opacity:.7; transform:scale(1.1); } 100% { opacity:.5; transform:scale(1); } }

.scn-aglaya-asks-question { background: linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #3d2a20 70%, #1a100c 100%), radial-gradient(ellipse at 50% 30%, #2a1e18 0%, transparent 70%); }
.scn-aglaya-asks-question .wall-bg { position:absolute; inset:0 0 48% 0; background: linear-gradient(180deg, #2a1e18 0%, #3d2a20 50%, transparent 100%); }
.scn-aglaya-asks-question .floor { position:absolute; bottom:0; left:0; right:0; height:48%; background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 20px, #1f140a 20px, #1f140a 40px); box-shadow: inset 0 15px 25px rgba(0,0,0,.5); }
.scn-aglaya-asks-question .table { position:absolute; bottom:28%; left:50%; width:70px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2416 0%, #2a1a12 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-aglaya-asks-question .drapery-l { position:absolute; top:0; left:0; width:50px; height:100%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 70%, #1a0e06 100%); border-radius: 0 20% 20% 0; box-shadow: inset -6px 0 12px rgba(0,0,0,.4); animation: aqq-drapery 12s ease-in-out infinite alternate; }
.scn-aglaya-asks-question .drapery-r { position:absolute; top:0; right:0; width:50px; height:100%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 70%, #1a0e06 100%); border-radius: 20% 0 0 20%; box-shadow: inset 6px 0 12px rgba(0,0,0,.4); animation: aqq-drapery 12s ease-in-out infinite alternate-reverse; }
.scn-aglaya-asks-question .figure-aglaya { position:absolute; bottom:28%; left:38%; width:20px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aqq-aglaya 3s ease-in-out infinite; }
.scn-aglaya-asks-question .figure-aglaya::after { content:''; position:absolute; top:10%; right:-10px; width:14px; height:5px; background: #1a1210; border-radius: 50% 0 0 50%; transform: rotate(5deg); }
.scn-aglaya-asks-question .figure-nastasia { position:absolute; bottom:28%; right:38%; width:18px; height:68px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aqq-nastasia 4s ease-in-out infinite; }
.scn-aglaya-asks-question .chandelier { position:absolute; top:6%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #4a3620 0%, transparent 60%), radial-gradient(ellipse at 50% 100%, #2a1a12 0%, transparent 60%); border-radius: 50% 50% 10% 10%; animation: aqq-chandelier 10s ease-in-out infinite; }
.scn-aglaya-asks-question .chandelier-glow { position:absolute; top:4%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,168,100,.08) 0%, transparent 80%); filter: blur(6px); animation: aqq-chandelier-glow 8s ease-in-out infinite alternate; }
@keyframes aqq-drapery { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(.98); } }
@keyframes aqq-aglaya { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aqq-nastasia { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(1px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes aqq-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes aqq-chandelier-glow { 0% { opacity:.3; transform:translateX(-50%) scale(.95); } 50% { opacity:.6; transform:translateX(-50%) scale(1.05); } 100% { opacity:.4; transform:translateX(-50%) scale(1); } }

.scn-nastasia-denies-love { background: linear-gradient(180deg, #14100e 0%, #241a14 35%, #35221a 60%, #0e0806 100%), radial-gradient(ellipse at 60% 50%, #35221a 0%, transparent 70%); }
.scn-nastasia-denies-love .wall-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #241a14 0%, #351e16 50%, transparent 100%); }
.scn-nastasia-denies-love .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1f140a 0%, #120a04 60%, #080400 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-nastasia-denies-love .door-frame { position:absolute; bottom:30%; right:8%; width:60px; height:110px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e06 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-nastasia-denies-love .door-frame::after { content:''; position:absolute; right:-8px; top:10%; width:6px; height:80%; background: #2a1a12; border-radius: 0 10% 10% 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-nastasia-denies-love .rug { position:absolute; bottom:8%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 50%, #1a0e06 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 0 20px rgba(0,0,0,.4); }
.scn-nastasia-denies-love .figure-nastasia { position:absolute; bottom:26%; right:18%; width:18px; height:68px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndl-nastasia 3s ease-in-out infinite; }
.scn-nastasia-denies-love .figure-nastasia::after { content:''; position:absolute; top:8%; right:-12px; width:14px; height:6px; background: #1a1210; border-radius: 0 50% 50% 0; transform: rotate(-8deg); }
.scn-nastasia-denies-love .figure-aglaya { position:absolute; bottom:26%; left:32%; width:20px; height:72px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndl-aglaya 4s ease-in-out infinite; }
.scn-nastasia-denies-love .figure-aglaya::after { content:''; position:absolute; top:12%; left:-12px; width:16px; height:5px; background: #1a1210; border-radius: 50% 0 0 50%; transform: rotate(10deg); }
.scn-nastasia-denies-love .lamp { position:absolute; bottom:50%; left:15%; width:20px; height:30px; background: linear-gradient(180deg, #4a3620 0%, #3a2416 50%, #2a1a12 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: ndl-lamp 6s ease-in-out infinite alternate; }
.scn-nastasia-denies-love .lamp-glow { position:absolute; bottom:46%; left:12%; width:50px; height:60px; background: radial-gradient(circle, rgba(200,160,100,.12) 0%, transparent 80%); filter: blur(10px); animation: ndl-glow 5s ease-in-out infinite alternate; }
.scn-nastasia-denies-love .shadow-spread { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 50%, rgba(0,0,0,.6) 100%); animation: ndl-shadow 8s ease-in-out infinite alternate; }
@keyframes ndl-nastasia { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-4px) rotate(-1deg); } 60% { transform: translateX(-8px) rotate(0); } 100% { transform: translateX(-4px) rotate(1deg); } }
@keyframes ndl-aglaya { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ndl-lamp { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ndl-glow { 0% { opacity:.4; transform:scale(.9); } 50% { opacity:.7; transform:scale(1.1); } 100% { opacity:.5; transform:scale(1); } }
@keyframes ndl-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }

.scn-confrontation { background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #4a3a5e 100%), radial-gradient(ellipse at 50% 0%, #5a4a6e 0%, transparent 60%); }
.scn-confrontation .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); }
.scn-confrontation .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-confrontation .table { position:absolute; bottom:30%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,.4); transform: perspective(400px) rotateX(5deg); }
.scn-confrontation .lamp { position:absolute; bottom:38%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #b08040 70%, transparent 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: cf-glow 2s ease-in-out infinite alternate; }
.scn-confrontation .light-glow { position:absolute; bottom:35%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(192,128,64,.15) 0%, transparent 70%); pointer-events:none; }
.scn-confrontation .figure-left { position:absolute; bottom:24%; left:10%; width:20px; height:60px; background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-fig-left 6s ease-in-out infinite; }
.scn-confrontation .figure-right { position:absolute; bottom:24%; right:10%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-fig-right 7s ease-in-out infinite; }
.scn-confrontation .window-shape { position:absolute; top:12%; left:65%; width:40px; height:60px; background: #1a1a3e; border:2px solid #2a2a4e; border-radius:4px; opacity:.6; box-shadow: inset 0 0 8px rgba(255,255,255,.05); animation: cf-window 20s linear infinite alternate; }
.scn-confrontation .shadow { position:absolute; bottom:28%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); pointer-events:none; }
@keyframes cf-glow { 0% { box-shadow: 0 0 16px 4px #b07030, 0 0 30px 8px rgba(192,128,64,.3); opacity:.8 } 50% { box-shadow: 0 0 24px 8px #f0c060, 0 0 48px 14px rgba(240,192,96,.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 36px 10px rgba(192,128,64,.35); opacity:.9 } }
@keyframes cf-fig-left { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0deg) } }
@keyframes cf-fig-right { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } }
@keyframes cf-window { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.02) } 100% { opacity:.4; transform: scaleY(.98) } }

.scn-reading-resumes { background: linear-gradient(180deg, #1e1a2e 0%, #2c2238 50%, #3a2a4a 100%), radial-gradient(ellipse at 30% 40%, #4a3a5e 0%, transparent 70%); }
.scn-reading-resumes .bg-deep { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2240 0%, #1a1a2e 100%); }
.scn-reading-resumes .bg-mid { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-reading-resumes .desk { position:absolute; bottom:20%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); transform: perspective(300px) rotateX(10deg); }
.scn-reading-resumes .paper-stack { position:absolute; bottom:30%; left:38%; width:24%; height:8%; background: linear-gradient(180deg, #d4c8a0 0%, #a09070 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-2deg); animation: rr-paper 5s ease-in-out infinite; }
.scn-reading-resumes .hand-left { position:absolute; bottom:28%; left:35%; width:12px; height:16px; background: linear-gradient(180deg, #d0a880 0%, #a07850 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rr-hand-tremble 0.8s infinite alternate; }
.scn-reading-resumes .hand-right { position:absolute; bottom:28%; right:36%; width:12px; height:16px; background: linear-gradient(180deg, #d0a880 0%, #a07850 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rr-hand-tremble 0.9s infinite alternate-reverse; }
.scn-reading-resumes .figure.seated { position:absolute; bottom:12%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-seated 10s ease-in-out infinite; }
.scn-reading-resumes .figure.standing { position:absolute; bottom:34%; right:20%; width:22px; height:80px; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr-standing 12s ease-in-out infinite; }
.scn-reading-resumes .lamp { position:absolute; bottom:38%; left:15%; width:8px; height:12px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 16px 4px #c08040, 0 0 32px 10px rgba(192,128,64,.3); animation: rr-lamp 3s ease-in-out infinite alternate; }
.scn-reading-resumes .light-glow { position:absolute; bottom:35%; left:18%; width:80px; height:50px; background: radial-gradient(ellipse, rgba(192,128,64,.12) 0%, transparent 70%); pointer-events:none; }
@keyframes rr-paper { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes rr-hand-tremble { 0% { transform: rotate(-2deg) scale(1); } 100% { transform: rotate(2deg) scale(1.01); } }
@keyframes rr-seated { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes rr-standing { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rr-lamp { 0% { box-shadow: 0 0 12px 3px #b07030, 0 0 24px 6px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.4); opacity:1 } 100% { opacity:.85; box-shadow: 0 0 14px 4px #c08040, 0 0 28px 8px rgba(192,128,64,.3); } }

.scn-reading-interruption { background: linear-gradient(180deg, #1c1a2c 0%, #2a223a 50%, #3e2e4e 100%), radial-gradient(ellipse at 50% 30%, #4a3a5a 0%, transparent 80%); }
.scn-reading-interruption .bg-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2244 0%, #1a1a2e 100%); }
.scn-reading-interruption .bg-mid { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius: 30% 70% 0 0 / 40% 30% 0 0; }
.scn-reading-interruption .table-round { position:absolute; bottom:20%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%); border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%; box-shadow: 0 -2px 10px rgba(0,0,0,.4); transform: perspective(500px) rotateX(6deg); }
.scn-reading-interruption .manuscript { position:absolute; bottom:34%; left:44%; width:12%; height:6%; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius:2px; transform: rotate(-3deg); box-shadow: 0 1px 4px rgba(0,0,0,.2); animation: ri-manuscript 4s ease-in-out infinite; }
.scn-reading-interruption .figure.hippolyte { position:absolute; bottom:26%; left:42%; width:22px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-hippolyte 5s ease-in-out infinite; }
.scn-reading-interruption .figure.seated-left { position:absolute; bottom:16%; left:8%; width:24px; height:50px; background: linear-gradient(180deg, #1e1e32 0%, #0e0e1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-seated 8s ease-in-out infinite; }
.scn-reading-interruption .figure.seated-right { position:absolute; bottom:14%; right:8%; width:26px; height:52px; background: linear-gradient(180deg, #2a1a30 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-seated 9s ease-in-out infinite reverse; }
.scn-reading-interruption .lamp { position:absolute; bottom:38%; left:28%; width:10px; height:12px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 5px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: ri-lamp 2.5s ease-in-out infinite alternate; }
.scn-reading-interruption .light-glow { position:absolute; bottom:35%; left:30%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(192,128,64,.13) 0%, transparent 70%); pointer-events:none; }
@keyframes ri-manuscript { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } }
@keyframes ri-hippolyte { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes ri-seated { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes ri-lamp { 0% { box-shadow: 0 0 14px 3px #b07030, 0 0 28px 6px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 22px 7px #f0c060, 0 0 44px 14px rgba(240,192,96,.45); opacity:1 } 100% { opacity:.85; box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); } }

.scn-reading-tension { background: linear-gradient(180deg, #1a1a2e 0%, #2c2238 45%, #3e2e4e 100%), radial-gradient(ellipse at 40% 50%, #4a3a5e 0%, transparent 65%); }
.scn-reading-tension .bg-deep { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a2244 0%, #1a1a2e 100%); }
.scn-reading-tension .bg-mid { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-reading-tension .manuscript { position:absolute; bottom:30%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #d4c8a0 0%, #a09070 100%); border-radius:2px; transform: rotate(-4deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: rt-manuscript 3s ease-in-out infinite; }
.scn-reading-tension .hand.clutch { position:absolute; bottom:28%; left:37%; width:14px; height:18px; background: linear-gradient(180deg, #c0a080 0%, #906050 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rt-clutch 1.2s infinite alternate; }
.scn-reading-tension .hand.reach { position:absolute; bottom:28%; right:34%; width:14px; height:18px; background: linear-gradient(180deg, #d0a880 0%, #a07050 100%); border-radius:50% 50% 40% 40%; transform-origin: bottom center; animation: rt-reach 2s infinite alternate; }
.scn-reading-tension .figure.hippolyte { position:absolute; bottom:18%; left:30%; width:24px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rt-hippolyte 4s ease-in-out infinite; }
.scn-reading-tension .figure.prince { position:absolute; bottom:20%; right:28%; width:22px; height:65px; background: linear-gradient(180deg, #2a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rt-prince 6s ease-in-out infinite; }
.scn-reading-tension .lamp.small-glow { position:absolute; bottom:40%; left:50%; width:6px; height:8px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 14px 4px #c08040, 0 0 28px 8px rgba(192,128,64,.3); animation: rt-lamp 2s ease-in-out infinite alternate; }
@keyframes rt-manuscript { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes rt-clutch { 0% { transform: rotate(-3deg) scale(1); } 100% { transform: rotate(4deg) scale(1.02); } }
@keyframes rt-reach { 0% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes rt-hippolyte { 0%,100% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(1px) rotate(1deg); } }
@keyframes rt-prince { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rt-lamp { 0% { box-shadow: 0 0 10px 2px #b07030, 0 0 20px 4px rgba(192,128,64,.2); opacity:.8 } 50% { box-shadow: 0 0 18px 6px #f0c060, 0 0 36px 10px rgba(240,192,96,.45); opacity:1 } 100% { opacity:.85; box-shadow: 0 0 12px 3px #c08040, 0 0 24px 6px rgba(192,128,64,.3); } }

.scn-prince-agrees { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 70%); }
.scn-prince-agrees .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a14 0%, #1a0a0a 100%); animation: pa-wall 20s ease-in-out infinite alternate; }
.scn-prince-agrees .lamp { position:absolute; top:20%; left:35%; width:12px; height:24px; background: #4a3a2a; border-radius: 4px 4px 2px 2px; transform: rotate(5deg); }
.scn-prince-agrees .lamp-light { position:absolute; top:22%; left:33%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(200,150,80,.6) 0%, rgba(200,150,80,.1) 60%, transparent 100%); border-radius:50%; filter: blur(8px); animation: pa-glow 2s ease-in-out infinite alternate; }
.scn-prince-agrees .desk { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -4px 20px rgba(0,0,0,.5); }
.scn-prince-agrees .chair { position:absolute; bottom:20%; left:45%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; transform: perspective(200px) rotateY(-5deg); }
.scn-prince-agrees .figure-prince { position:absolute; bottom:25%; left:48%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-nod 4s ease-in-out infinite; }
.scn-prince-agrees .shadow-prince { position:absolute; bottom:18%; left:58%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(6px); animation: pa-shadow 4s ease-in-out infinite; }
@keyframes pa-wall { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:1; } }
@keyframes pa-glow { 0% { opacity:.6; transform: scaleX(.95); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:.7; transform: scaleX(.9); } }
@keyframes pa-nod { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes pa-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-evgenie-questions-truth { background: linear-gradient(180deg, #1e1e30 0%, #12121a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%); }
.scn-evgenie-questions-truth .bg-columns { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #1a1a24 0px, #1a1a24 60px, #2a2a3a 60px, #2a2a3a 90px); opacity:.4; }
.scn-evgenie-questions-truth .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a14 0%, #0a0a08 100%); transform: perspective(200px) rotateX(10deg); transform-origin: bottom; }
.scn-evgenie-questions-truth .figure-q { position:absolute; bottom:25%; left:35%; width:50px; height:100px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eq-breathe 3s ease-in-out infinite; }
.scn-evgenie-questions-truth .shadow-q { position:absolute; bottom:20%; left:55%; width:80px; height:120px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(4px); animation: eq-point 5s ease-in-out infinite; }
.scn-evgenie-questions-truth .window-grille { position:absolute; top:10%; right:10%; width:30%; height:40%; border: 4px solid #2a2a3a; background: rgba(20,20,30,.5); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-evgenie-questions-truth .light-shaft { position:absolute; top:10%; right:10%; width:30%; height:60%; background: linear-gradient(180deg, rgba(200,200,240,.1) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: eq-shaft 8s ease-in-out infinite alternate; }
.scn-evgenie-questions-truth .mirror-frame { position:absolute; top:30%; left:55%; width:80px; height:100px; background: linear-gradient(135deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px rgba(0,0,0,.8); animation: eq-mirror 7s ease-in-out infinite alternate; }
@keyframes eq-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes eq-point { 0% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); } 100% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } }
@keyframes eq-shaft { 0% { opacity: .3; transform: translateX(-10px); } 100% { opacity: .7; transform: translateX(10px); } }
@keyframes eq-mirror { 0% { box-shadow: 0 0 30px rgba(0,0,0,.8); } 50% { box-shadow: 0 0 50px rgba(0,0,0,.9); } 100% { box-shadow: 0 0 30px rgba(0,0,0,.8); } }

.scn-evgenie-on-egotism { background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%); }
.scn-evgenie-on-egotism .bg-void { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a0a 50%, #0a0a0a 100%); }
.scn-evgenie-on-egotism .pedestal { position:absolute; bottom:25%; left:50%; width:120px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(0,0,0,.8); }
.scn-evgenie-on-egotism .figure-egotist { position:absolute; bottom:33%; left:50%; width:60px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ee-posture 6s ease-in-out infinite; }
.scn-evgenie-on-egotism .shadow-egotist { position:absolute; bottom:20%; left:50%; width:140px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%); filter: blur(8px); animation: ee-shadow 6s ease-in-out infinite; }
.scn-evgenie-on-egotism .frame-l { position:absolute; top:0; bottom:0; left:0; width:15%; background: linear-gradient(90deg, #1a1a0a 0%, transparent 100%); animation: ee-frame 8s ease-in-out infinite alternate; }
.scn-evgenie-on-egotism .frame-r { position:absolute; top:0; bottom:0; right:0; width:15%; background: linear-gradient(90deg, transparent 0%, #1a1a0a 100%); animation: ee-frame 8s ease-in-out infinite alternate-reverse; }
.scn-evgenie-on-egotism .spotlight { position:absolute; top:0; left:30%; right:30%; bottom:30%; background: radial-gradient(ellipse, rgba(200,180,120,.15) 0%, transparent 70%); animation: ee-spotlight 4s ease-in-out infinite alternate; }
@keyframes ee-posture { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(-1deg) scaleY(1); } 75% { transform: translateX(-50%) rotate(3deg) scaleY(1.01); } 100% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } }
@keyframes ee-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity: .6; } 50% { transform: translateX(-50%) scaleX(1.1); opacity: .8; } 100% { transform: translateX(-50%) scaleX(1); opacity: .6; } }
@keyframes ee-frame { 0% { width: 15%; } 50% { width: 18%; } 100% { width: 15%; } }
@keyframes ee-spotlight { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .4; } }

.scn-prince-defends { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 80%); }
.scn-prince-defends .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-prince-defends .floor-planks { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #2a1a10 0px, #2a1a10 20px, #3a2a1a 20px, #3a2a1a 40px); transform: perspective(150px) rotateX(15deg); transform-origin: bottom center; }
.scn-prince-defends .hearth { position:absolute; bottom:15%; left:50%; transform: translateX(-50%); width:100px; height:60px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); }
.scn-prince-defends .hearth-glow { position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:160px; height:120px; background: radial-gradient(ellipse, rgba(200,120,60,.4) 0%, rgba(200,120,60,.05) 60%, transparent 100%); filter: blur(15px); animation: pd-fire 1.5s ease-in-out infinite alternate; }
.scn-prince-defends .figure-protector { position:absolute; bottom:20%; left:40%; width:50px; height:90px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-stand 3s ease-in-out infinite; }
.scn-prince-defends .figure-shielded { position:absolute; bottom:15%; left:55%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pd-cower 4s ease-in-out infinite; }
.scn-prince-defends .shadow-protector { position:absolute; bottom:10%; left:30%; width:100px; height:80px; background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(6px); animation: pd-shadow 3s ease-in-out infinite; }
@keyframes pd-fire { 0% { opacity: .5; transform: translateX(-50%) scaleX(.95); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); } 100% { opacity: .6; transform: translateX(-50%) scaleX(.9); } }
@keyframes pd-stand { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes pd-cower { 0% { transform: scale(.95) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(.95) translateY(0); } }
@keyframes pd-shadow { 0% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } 50% { clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); } 100% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); } }

/* Scene: Rogojin House Conversation */
.scn-rogojin-house-conversation { background: linear-gradient(135deg, #1a1a24 0%, #2a2a36 50%, #15151e 100%), radial-gradient(circle at 50% 60%, #2a2a3a 0%, transparent 70%); }
.scn-rogojin-house-conversation .bg-wall { position: absolute; bottom: 40%; left: 0; right: 0; top: 0; background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-rogojin-house-conversation .bg-floor { position: absolute; top: 60%; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-rogojin-house-conversation .wall-texture { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 3px, rgba(255,255,255,.02) 3px, rgba(255,255,255,.02) 4px); pointer-events: none; }
.scn-rogojin-house-conversation .table { position: absolute; bottom: 35%; left: 50%; width: 140px; height: 18px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-rogojin-house-conversation .candle { position: absolute; bottom: 52%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%); border-radius: 2px 2px 4px 4px; }
.scn-rogojin-house-conversation .candle-glow { position: absolute; bottom: 54%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle, #d4a373 0%, #c08040 40%, transparent 80%); animation: rgc-flicker 2s ease-in-out infinite alternate; }
.scn-rogojin-house-conversation .figure-prince { position: absolute; bottom: 38%; left: 28%; width: 40px; height: 85px; background: linear-gradient(180deg, #0a0a10 0%, #15151e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,.6); }
.scn-rogojin-house-conversation .figure-rogojin { position: absolute; bottom: 36%; left: 60%; width: 52px; height: 95px; background: linear-gradient(180deg, #0a0a10 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rgc-laugh 0.8s ease-in-out infinite alternate; box-shadow: 10px 0 20px rgba(0,0,0,.6); }
.scn-rogojin-house-conversation .shadow-rogojin { position: absolute; bottom: 38%; left: 55%; width: 80px; height: 200px; background: linear-gradient(135deg, rgba(0,0,0,.6), transparent); transform: skewX(-20deg); animation: rgc-shadow 0.8s ease-in-out infinite alternate; pointer-events: none; }
@keyframes rgc-flicker { 0% { opacity: .7; transform: translateX(-50%) scale(0.95) rotate(-1deg); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05) rotate(0deg); } 100% { opacity: .8; transform: translateX(-50%) scale(1) rotate(1deg); } }
@keyframes rgc-laugh { 0% { transform: scaleY(1) translateX(0) rotate(0deg); } 50% { transform: scaleY(1.04) translateX(3px) rotate(2deg); } 100% { transform: scaleY(0.96) translateX(-2px) rotate(-2deg); } }
@keyframes rgc-shadow { 0% { opacity: .5; transform: skewX(-20deg) translateX(0); } 50% { opacity: .8; transform: skewX(-22deg) translateX(5px); } 100% { opacity: .4; transform: skewX(-18deg) translateX(-3px); } }

/* Scene: Rogojin House Room */
.scn-rogojin-house-room { background: linear-gradient(90deg, #12121c 0%, #1e1e2a 50%, #12121c 100%), radial-gradient(ellipse at 50% 100%, #1a1a28 0%, transparent 80%); }
.scn-rogojin-house-room .bg-room { position: absolute; inset: 0; background: linear-gradient(180deg, #1e1e2a 0%, #14141c 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.7); }
.scn-rogojin-house-room .desk.left { position: absolute; bottom: 20%; left: 8%; width: 28%; height: 45%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.scn-rogojin-house-room .desk.right { position: absolute; bottom: 20%; right: 8%; width: 28%; height: 45%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.scn-rogojin-house-room .sofa { position: absolute; bottom: 15%; left: 35%; width: 30%; height: 22%; background: linear-gradient(135deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 24px 24px 8px 8px; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-rogojin-house-room .papers { position: absolute; bottom: 48%; left: 12%; width: 22%; height: 8%; background: linear-gradient(180deg, #d4c3a3 0%, #b8a88a 100%); opacity: .3; border-radius: 2px; animation: rgr-papers 12s ease-in-out infinite alternate; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-rogojin-house-room .lamp-glow { position: absolute; bottom: 70%; left: 72%; width: 100px; height: 100px; background: radial-gradient(circle, #d4a373 0%, #c08040 30%, transparent 80%); animation: rgr-lamp 4s ease-in-out infinite alternate; }
.scn-rogojin-house-room .bookshelf { position: absolute; bottom: 30%; left: 2%; width: 5%; height: 50%; background: repeating-linear-gradient(180deg, #3a2a1a 0px, #3a2a1a 6px, #5a4a3a 6px, #5a4a3a 8px, #2a1a0a 8px, #2a1a0a 14px); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,.5); }
.scn-rogojin-house-room .chandelier { position: absolute; top: 5%; left: 50%; width: 60px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 12px 12px 0 0; box-shadow: 0 0 40px rgba(200,160,100,.3); animation: rgr-chandelier 8s ease-in-out infinite alternate; }
.scn-rogojin-house-room .floor-rug { position: absolute; bottom: 0; left: 20%; width: 60%; height: 15%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; opacity: .6; }
@keyframes rgr-papers { 0% { transform: translateX(0) rotate(0deg); opacity: .3; } 50% { transform: translateX(12px) rotate(3deg); opacity: .5; } 100% { transform: translateX(-6px) rotate(-2deg); opacity: .3; } }
@keyframes rgr-lamp { 0% { opacity: .6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: .7; transform: scale(0.98); } }
@keyframes rgr-chandelier { 0% { opacity: .7; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 1; transform: translateX(-50%) rotate(0deg); } 100% { opacity: .8; transform: translateX(-50%) rotate(3deg); } }

/* Scene: Rogojin House Portrait */
.scn-rogojin-house-portrait { background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0a0a10 100%), linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%); }
.scn-rogojin-house-portrait .bg-portrait { position: absolute; inset: 0; background: #0a0a10; box-shadow: inset 0 0 80px rgba(0,0,0,.8); }
.scn-rogojin-house-portrait .wall-texture { position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(255,255,255,.015) 8px, rgba(255,255,255,.015) 9px), repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(255,255,255,.015) 8px, rgba(255,255,255,.015) 9px); pointer-events: none; }
.scn-rogojin-house-portrait .frame { position: absolute; bottom: 25%; left: 50%; width: 140px; height: 180px; transform: translateX(-50%); background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border: 12px solid #3a2a1a; border-radius: 4px; box-shadow: 0 20px 40px rgba(0,0,0,.7); }
.scn-rogojin-house-portrait .canvas { position: absolute; bottom: 27%; left: 50%; width: 126px; height: 164px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-rogojin-house-portrait .face-portrait { position: absolute; bottom: 58%; left: 50%; width: 70px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle at 50% 40%, #d4c3a3 0%, #8a7a6a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rgp-eyes 8s ease-in-out infinite alternate; }
.scn-rogojin-house-portrait .rogojin-shadow { position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: linear-gradient(180deg, transparent 0%, #0a0a10 60%); animation: rgp-shadow 6s ease-in-out infinite alternate; pointer-events: none; }
.scn-rogojin-house-portrait .candle { position: absolute; bottom: 18%; left: 25%; width: 10px; height: 50px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%); border-radius: 2px; transform-origin: bottom center; animation: rgp-candle 3s ease-in-out infinite alternate; }
.scn-rogojin-house-portrait .candle-light { position: absolute; bottom: 30%; left: 15%; width: 120px; height: 120px; background: radial-gradient(circle, #d4a373 0%, transparent 70%); animation: rgp-candle-light 3s ease-in-out infinite alternate; pointer-events: none; }
@keyframes rgp-eyes { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -5% -2%; } }
@keyframes rgp-shadow { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes rgp-candle { 0% { transform: rotate(-4deg); } 50% { transform: rotate(0deg) scaleY(1.05); } 100% { transform: rotate(4deg); } }
@keyframes rgp-candle-light { 0% { opacity: .6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(0.98); } }

/* Scene: Rogojin House Avowal */
.scn-rogojin-house-avowal { background: linear-gradient(180deg, #0a0a14 0%, #1a1a28 50%, #0a0a14 100%), radial-gradient(circle at 30% 50%, #1a2a3a 0%, transparent 70%); }
.scn-rogojin-house-avowal .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a14 0%, #12121c 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.8); }
.scn-rogojin-house-avowal .window-frame { position: absolute; bottom: 20%; left: 10%; width: 60%; height: 60%; background: #1a1a24; border: 16px solid #2a2a36; border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-rogojin-house-avowal .window-sky { position: absolute; bottom: 22%; left: 12%; width: 56%; height: 56%; background: linear-gradient(180deg, #2a3a5e 0%, #4a6a8a 100%); animation: rga-sky 15s ease-in-out infinite alternate; }
.scn-rogojin-house-avowal .window-bars { position: absolute; bottom: 20%; left: 10%; width: 60%; height: 60%; background: repeating-linear-gradient(90deg, #1a1a24 0px, #1a1a24 10px, transparent 10px, transparent 24px); animation: rga-bars 20s linear infinite; }
.scn-rogojin-house-avowal .figure-prince { position: absolute; bottom: 18%; left: 22%; width: 40px; height: 80px; background: linear-gradient(180deg, #0a0a10 0%, #15151e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -10px 0 20px rgba(0,0,0,.6); }
.scn-rogojin-house-avowal .figure-rogojin { position: absolute; bottom: 18%; right: 22%; width: 50px; height: 90px; background: linear-gradient(180deg, #0a0a10 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rga-rogojin 6s ease-in-out infinite alternate; box-shadow: 10px 0 20px rgba(0,0,0,.6); }
.scn-rogojin-house-avowal .floor-shadow { position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, transparent, #0a0a10); pointer-events: none; }
.scn-rogojin-house-avowal .doorway { position: absolute; bottom: 10%; right: 5%; width: 20%; height: 70%; background: linear-gradient(180deg, #0e0e18 0%, #06060c 100%); border: 8px solid #1a1a24; border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,.7); }
.scn-rogojin-house-avowal .candle-stand { position: absolute; bottom: 15%; left: 45%; width: 6px; height: 60px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); transform: translateX(-50%); border-radius: 2px; }
@keyframes rga-sky { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .3; } }
@keyframes rga-bars { 0% { transform: translateX(0); } 100% { transform: translateX(-24px); } }
@keyframes rga-rogojin { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-12px) rotate(-4deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-nastasia-sees-rogojin-illusion {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%), radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 60%);
}
.scn-nastasia-sees-rogojin-illusion .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: s1-breath 12s ease-in-out infinite alternate;
}
.scn-nastasia-sees-rogojin-illusion .wall {
  position: absolute; bottom:40%; left:0; right:60%; top:0;
  background: linear-gradient(90deg, #2a2a3e, #1a1a2e);
  border-right: 2px solid rgba(255,255,255,0.05);
}
.scn-nastasia-sees-rogojin-illusion .floor {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-nastasia-sees-rogojin-illusion .window {
  position: absolute; top:10%; right:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #1a2a3a, #0a1a2a);
  border: 4px solid #2a2a3e; border-radius: 4px; overflow:hidden;
}
.scn-nastasia-sees-rogojin-illusion .window::after {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent, transparent 10px, rgba(255,255,255,0.02) 10px, rgba(255,255,255,0.02) 12px);
}
.scn-nastasia-sees-rogojin-illusion .figure-rogojin {
  position: absolute; bottom:35%; left:50%; width:50px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a, #0f0f1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: s1-stand 6s ease-in-out infinite;
}
.scn-nastasia-sees-rogojin-illusion .shadow {
  position: absolute; bottom:0; left:30%; width:120px; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8), transparent);
  animation: s1-shadow 8s ease-in-out infinite;
}
.scn-nastasia-sees-rogojin-illusion .lamp {
  position: absolute; bottom:30%; left:70%; width:10px; height:30px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px; transform: rotate(-5deg);
}
.scn-nastasia-sees-rogojin-illusion .lamp-glow {
  position: absolute; bottom:35%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(255,180,80,0.6), transparent 70%);
  border-radius: 50%;
  animation: s1-glow 3s ease-in-out infinite alternate;
}

@keyframes s1-breath {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.6; }
}
@keyframes s1-stand {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes s1-shadow {
  0% { transform: scaleX(1); opacity:0.6; }
  50% { transform: scaleX(1.1); opacity:0.8; }
  100% { transform: scaleX(1); opacity:0.5; }
}
@keyframes s1-glow {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(0.9); }
}

/* ── Scene 2: illusion-resolved ── */
.scn-illusion-resolved {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%), radial-gradient(ellipse at 50% 70%, #3a3a4e 0%, transparent 80%);
}
.scn-illusion-resolved .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,255,255,0.03), transparent);
  animation: s2-drift 20s ease-in-out infinite alternate;
}
.scn-illusion-resolved .wall {
  position: absolute; bottom:50%; left:0; right:40%; top:0;
  background: linear-gradient(90deg, #3a3a4e, #2a2a3e);
}
.scn-illusion-resolved .floor {
  position: absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
}
.scn-illusion-resolved .window {
  position: absolute; top:15%; right:5%; width:60px; height:80px;
  background: linear-gradient(180deg, #3a4a5a, #2a3a4a);
  border: 3px solid #3a3a4e; border-radius: 3px; overflow:hidden;
}
.scn-illusion-resolved .window::after {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(255,255,255,0.02) 8px, rgba(255,255,255,0.02) 10px);
}
.scn-illusion-resolved .chair {
  position: absolute; bottom:30%; left:20%; width:60px; height:80px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-illusion-resolved .figure-sitting {
  position: absolute; bottom:35%; left:15%; width:40px; height:90px;
  background: linear-gradient(180deg, #3a2a3a, #1a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: s2-sit 15s ease-in-out infinite;
}
.scn-illusion-resolved .book {
  position: absolute; bottom:32%; left:25%; width:30px; height:20px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 2px; transform: rotate(-5deg);
  animation: s2-book 12s ease-in-out infinite;
}
.scn-illusion-resolved .lamp {
  position: absolute; bottom:30%; right:20%; width:8px; height:40px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
}
.scn-illusion-resolved .lamp-glow {
  position: absolute; bottom:38%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,180,100,0.4), transparent 70%);
  border-radius: 50%;
  animation: s2-glow 4s ease-in-out infinite alternate;
}

@keyframes s2-drift {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}
@keyframes s2-sit {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes s2-book {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(-7deg); }
}
@keyframes s2-glow {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:0.9; transform: scale(1.05); }
  100% { opacity:0.7; transform: scale(0.95); }
}

/* ── Scene 3: last-night-before-wedding ── */
.scn-last-night-before-wedding {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 90%, #5a3a1a 0%, transparent 60%);
}
.scn-last-night-before-wedding .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,200,100,0.1) 0%, transparent 100%);
  animation: s3-warm 14s ease-in-out infinite alternate;
}
.scn-last-night-before-wedding .wall {
  position: absolute; bottom:45%; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-bottom: 4px solid #4a3a2a;
}
.scn-last-night-before-wedding .floor {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
}
.scn-last-night-before-wedding .mirror {
  position: absolute; top:15%; left:50%; width:80px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border: 4px solid #6a5a4a; border-radius: 4px;
}
.scn-last-night-before-wedding .mirror::after {
  content:''; position:absolute; inset:5px;
  background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05) 50%, transparent);
}
.scn-last-night-before-wedding .dress {
  position: absolute; bottom:20%; left:20%; width:80px; height:140px;
  background: linear-gradient(180deg, #c8a878, #a08050);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px rgba(200,168,120,0.3);
  animation: s3-sway 7s ease-in-out infinite;
}
.scn-last-night-before-wedding .candle {
  position: absolute; bottom:30%; right:30%; width:6px; height:40px;
  background: linear-gradient(180deg, #8a7a5a, #4a3a2a);
  border-radius: 2px;
}
.scn-last-night-before-wedding .candle-glow {
  position: absolute; bottom:40%; right:30%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(255,200,80,0.7), transparent 70%);
  border-radius: 50%;
  animation: s3-flicker 2s ease-in-out infinite alternate;
}
.scn-last-night-before-wedding .bride-figure {
  position: absolute; bottom:25%; left:50%; width:40px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s3-breathe 8s ease-in-out infinite;
}

@keyframes s3-warm {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.4; }
}
@keyframes s3-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes s3-flicker {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.9); }
}
@keyframes s3-breathe {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}

/* ── Scene 4: nastasia-wants-to-outshine ── */
.scn-nastasia-wants-to-outshine {
  background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 50%, #3a2a3a 0%, transparent 80%);
}
.scn-nastasia-wants-to-outshine .room-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 5px, transparent 5px, transparent 10px);
  animation: s4-glitch 5s linear infinite;
}
.scn-nastasia-wants-to-outshine .dressing-table {
  position: absolute; bottom:30%; left:10%; right:60%; height:80px;
  background: linear-gradient(180deg, #3a2a2a, #1a0a0a);
  border-radius: 4px;
}
.scn-nastasia-wants-to-outshine .mirror {
  position: absolute; top:10%; left:5%; right:60%; bottom:40%;
  background: linear-gradient(180deg, #4a3a3a, #2a1a1a);
  border: 6px solid #5a3a2a; border-radius: 4px;
}
.scn-nastasia-wants-to-outshine .mirror::after {
  content:''; position:absolute; inset:8px;
  background: linear-gradient(135deg, rgba(255,200,100,0.1), rgba(255,200,100,0.05) 50%, transparent);
}
.scn-nastasia-wants-to-outshine .figure-profile {
  position: absolute; bottom:25%; left:5%; width:50px; height:130px;
  background: linear-gradient(180deg, #2a1a2a, #1a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: s4-turn 2s ease-in-out infinite;
}
.scn-nastasia-wants-to-outshine .hands {
  position: absolute; bottom:30%; left:20%; width:30px; height:40px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: s4-hands 1.5s ease-in-out infinite;
}
.scn-nastasia-wants-to-outshine .shadow {
  position: absolute; bottom:0; left:0; right:0; height:60%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.9), transparent);
  animation: s4-shadow 3s ease-in-out infinite;
}
.scn-nastasia-wants-to-outshine .lamp-glow {
  position: absolute; top:20%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(255,160,80,0.6), transparent 70%);
  border-radius: 50%;
  animation: s4-flicker 1s ease-in-out infinite alternate;
}

@keyframes s4-glitch {
  0% { opacity:0.3; }
  25% { opacity:0.6; }
  50% { opacity:0.2; }
  75% { opacity:0.5; }
  100% { opacity:0.4; }
}
@keyframes s4-turn {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes s4-hands {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-30deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes s4-shadow {
  0% { transform: scaleX(1); opacity:0.7; }
  50% { transform: scaleX(1.2); opacity:1; }
  100% { transform: scaleX(1); opacity:0.6; }
}
@keyframes s4-flicker {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.9); }
}

.scn-can't-move {
  background: 
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 30%, #2a2a3e 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-can't-move .wall {
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #12121a 0%, #1c1c28 100%);
}
.scn-can't-move .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1c1c24 0%, #0e0e14 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-can't-move .window {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 100px; 
  transform: translateX(-50%); 
  background: linear-gradient(135deg, #2a3a4a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 4px; 
  box-shadow: inset 0 0 20px rgba(100,140,180,0.3);
  animation: sc1-window 8s ease-in-out infinite alternate;
}
.scn-can't-move .bed-frame {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 8px 8px 4px 4px; 
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-can't-move .prince {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-tremble 2s ease-in-out infinite;
}
.scn-can't-move .candle {
  position: absolute; bottom: 20%; left: 52%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6030 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 16px 4px rgba(212,160,80,0.4);
  animation: sc1-flicker 0.8s ease-in-out infinite alternate;
}
.scn-can't-move .shadow {
  position: absolute; bottom: 12%; left: 56%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: sc1-shadow 2s ease-in-out infinite;
}
.scn-can't-move .dust-1 {
  position: absolute; top: 30%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,200,220,0.3); border-radius: 50%;
  filter: blur(1px);
  animation: sc1-drift 25s linear infinite;
}
.scn-can't-move .dust-2 {
  position: absolute; top: 40%; left: 70%; width: 3px; height: 3px;
  background: rgba(200,200,220,0.25); border-radius: 50%;
  filter: blur(1px);
  animation: sc1-drift 30s linear infinite reverse;
  animation-delay: -10s;
}

@keyframes sc1-window {
  0% { opacity: 0.3; box-shadow: inset 0 0 20px rgba(100,140,180,0.1); }
  50% { opacity: 0.7; box-shadow: inset 0 0 40px rgba(100,140,180,0.4); }
  100% { opacity: 0.4; box-shadow: inset 0 0 20px rgba(100,140,180,0.2); }
}
@keyframes sc1-tremble {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-1px) translateY(1px) rotate(-0.5deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); }
  75% { transform: translateX(-0.5px) translateY(0.5px) rotate(-0.3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sc1-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 12px 2px rgba(212,160,80,0.3); }
  50% { opacity: 1; box-shadow: 0 0 22px 6px rgba(212,160,80,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 16px 4px rgba(212,160,80,0.4); }
}
@keyframes sc1-shadow {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(0.9) scaleY(0.8); opacity: 0.3; }
}
@keyframes sc1-drift {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-50px) translateX(30px); opacity: 0; }
}

.scn-lying-down {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #16162a 40%, #1e1e30 80%, #12121e 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-lying-down .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #14142a 0%, #0e0e1a 100%);
}
.scn-lying-down .bed-base {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 45%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%);
  border-radius: 10px 10px 6px 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
}
.scn-lying-down .mattress {
  position: absolute; bottom: 20%; left: 18%; width: 64%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 8px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
}
.scn-lying-down .blanket {
  position: absolute; bottom: 15%; left: 20%; width: 56%; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 4px 4px 20px 20px;
  animation: sc2-blanket 4s ease-in-out infinite;
}
.scn-lying-down .figure {
  position: absolute; bottom: 24%; left: 45%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 60% 60%;
  transform-origin: bottom center;
  animation: sc2-shudder 2s ease-in-out infinite;
}
.scn-lying-down .pillow {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-lying-down .hand {
  position: absolute; bottom: 22%; left: 48%; width: 10px; height: 8px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: sc2-hand 3s ease-in-out infinite;
}
.scn-lying-down .candle {
  position: absolute; bottom: 12%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6030 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(212,160,80,0.3);
  animation: sc2-candle 0.9s ease-in-out infinite alternate;
}

@keyframes sc2-blanket {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes sc2-shudder {
  0% { transform: translateX(0) scaleX(1); }
  20% { transform: translateX(1px) scaleX(1.02); }
  40% { transform: translateX(-1px) scaleX(0.98); }
  60% { transform: translateX(0.5px) scaleX(1.01); }
  80% { transform: translateX(-0.5px) scaleX(0.99); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes sc2-hand {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-25deg) translateX(1px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes sc2-candle {
  0% { opacity: 0.6; box-shadow: 0 0 14px 3px rgba(212,160,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 28px 8px rgba(212,160,80,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 18px 5px rgba(212,160,80,0.3); }
}

.scn-train-muishkin-appearance {
  background:
    linear-gradient(180deg, #1a202a 0%, #2a3340 40%, #4a5568 70%, #b0a080 100%),
    radial-gradient(ellipse at 20% 100%, #c8b898 0%, transparent 70%);
}
.scn-train-muishkin-appearance .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #111822 0%, #1a2230 60%, #2a3340 100%); opacity: 0.7; animation: tma-bg 15s ease-in-out infinite alternate;
}
.scn-train-muishkin-appearance .window {
  position: absolute; left: 5%; top: 10%; width: 30%; height: 60%; background: linear-gradient(180deg, #4a6680 0%, #8a9ab0 40%, #c8b898 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,184,152,0.3); animation: tma-window 8s ease-in-out infinite alternate;
}
.scn-train-muishkin-appearance .seat {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-train-muishkin-appearance .figure {
  position: absolute; bottom: 15%; left: 30%; width: 16%; height: 45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tma-figure 4s ease-in-out infinite;
}
.scn-train-muishkin-appearance .head {
  position: absolute; bottom: 55%; left: 33%; width: 6%; height: 8%; background: linear-gradient(180deg, #c8b898 0%, #a09878 100%); border-radius: 50%; animation: tma-head 4s ease-in-out infinite; box-shadow: 0 0 4px 2px rgba(160,152,120,0.3);
}
.scn-train-muishkin-appearance .head::after {
  content: ''; position: absolute; top: 30%; left: 40%; width: 20%; height: 20%; background: #5a8aaa; border-radius: 50%; box-shadow: 0 0 6px 2px #3a6a8a; animation: tma-eye 3s ease-in-out infinite alternate;
}
.scn-train-muishkin-appearance .breath {
  position: absolute; bottom: 52%; left: 36%; width: 4%; height: 3%; background: radial-gradient(circle, rgba(200,200,210,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: tma-breath 3s ease-in-out infinite;
}
.scn-train-muishkin-appearance .lightbeam {
  position: absolute; top: 15%; left: 8%; width: 60%; height: 40%; background: linear-gradient(135deg, rgba(200,184,152,0.25) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); animation: tma-beam 12s ease-in-out infinite alternate;
}
@keyframes tma-bg { 0% { opacity: 0.7 } 50% { opacity: 0.8 } 100% { opacity: 0.65 } }
@keyframes tma-window { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: 0.85; transform: scaleY(0.98) } }
@keyframes tma-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tma-head { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tma-eye { 0% { opacity: 0.6; transform: scale(0.8) } 100% { opacity: 1; transform: scale(1.2) } }
@keyframes tma-breath { 0% { opacity: 0; transform: translateY(0) scale(1) } 50% { opacity: 0.4; transform: translateY(-8px) scale(1.5) } 100% { opacity: 0; transform: translateY(-16px) scale(2) } }
@keyframes tma-beam { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.1) } 100% { opacity: 0.2; transform: scaleX(0.9) } }

.scn-train-conversation-begins {
  background:
    linear-gradient(180deg, #1a202a 0%, #2a3340 40%, #4a5568 70%, #b0a080 100%),
    radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 70%);
}
.scn-train-conversation-begins .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #111822 0%, #1a2230 60%, #2a3340 100%); opacity: 0.75; animation: tcb-bg 20s ease-in-out infinite alternate;
}
.scn-train-conversation-begins .window {
  position: absolute; left: 25%; top: 8%; width: 50%; height: 55%; background: linear-gradient(180deg, #4a6680 0%, #8a9ab0 40%, #c8b898 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,184,152,0.25); animation: tcb-window 10s ease-in-out infinite alternate;
}
.scn-train-conversation-begins .seat {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-train-conversation-begins .figure-left {
  position: absolute; bottom: 15%; left: 15%; width: 18%; height: 45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 35% 30% 25% 25% / 55% 50% 30% 30%; transform-origin: bottom center; animation: tcb-figure-l 5s ease-in-out infinite;
}
.scn-train-conversation-begins .figure-right {
  position: absolute; bottom: 15%; right: 15%; width: 16%; height: 43%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 35% 25% 25% / 50% 55% 30% 30%; transform-origin: bottom center; animation: tcb-figure-r 5s ease-in-out infinite 0.5s;
}
.scn-train-conversation-begins .breath-left {
  position: absolute; bottom: 50%; left: 20%; width: 4%; height: 3%; background: radial-gradient(circle, rgba(200,200,210,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: tcb-breath-l 3.5s ease-in-out infinite 0.2s;
}
.scn-train-conversation-begins .breath-right {
  position: absolute; bottom: 52%; right: 22%; width: 4%; height: 3%; background: radial-gradient(circle, rgba(200,200,210,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: tcb-breath-r 3.5s ease-in-out infinite 0.8s;
}
.scn-train-conversation-begins .dialog-spark {
  position: absolute; bottom: 50%; left: 45%; width: 2%; height: 2%; background: #d0c0a0; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,184,152,0.6); animation: tcb-spark 2s ease-in-out infinite alternate;
}
@keyframes tcb-bg { 0% { opacity: 0.75 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes tcb-window { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.03) } 100% { opacity: 0.8; transform: scaleY(0.97) } }
@keyframes tcb-figure-l { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes tcb-figure-r { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes tcb-breath-l { 0% { opacity: 0; transform: translateY(0) scale(1) } 50% { opacity: 0.3; transform: translateY(-10px) scale(1.4) } 100% { opacity: 0; transform: translateY(-18px) scale(2) } }
@keyframes tcb-breath-r { 0% { opacity: 0; transform: translateY(0) scale(1) } 50% { opacity: 0.3; transform: translateY(-8px) scale(1.3) } 100% { opacity: 0; transform: translateY(-16px) scale(1.8) } }
@keyframes tcb-spark { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 0.8; transform: scale(1.3) } 100% { opacity: 0.4; transform: scale(1) } }

.scn-flowers-idea {
  background: 
    linear-gradient(180deg, #1c1a2a 0%, #12101e 35%, #0a0812 70%, #1a1424 100%),
    radial-gradient(ellipse at 50% 100%, #2a2244 0%, transparent 70%);
}

.scn-flowers-idea .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1828 0%, #141220 50%, #0e0c18 100%);
  animation: fl-room-pulse 12s ease-in-out infinite alternate;
}

.scn-flowers-idea .window {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 60%;
  height: 50%;
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #12121e 40%, #1a1a2a 100%),
    repeating-linear-gradient(0deg, #2a2a4a 0px, #2a2a4a 4px, transparent 4px, transparent 8px);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.6);
  transform: scale(0.95);
  animation: fl-window-pulse 9s ease-in-out infinite alternate;
}

.scn-flowers-idea .pot-left,
.scn-flowers-idea .pot-right {
  position: absolute;
  bottom: 38%;
  width: 20px;
  height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.7);
  animation: fl-pot-sway 8s ease-in-out infinite alternate;
}

.scn-flowers-idea .pot-left {
  left: 28%;
  transform-origin: bottom center;
  animation-delay: 0s;
}

.scn-flowers-idea .pot-right {
  right: 28%;
  transform-origin: bottom center;
  animation-delay: 2s;
}

.scn-flowers-idea .flower {
  position: absolute;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle at 40% 40%, #7a5a7a 0%, #4a3a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(100, 80, 100, 0.5);
  animation: fl-bloom-breathe 5s ease-in-out infinite alternate;
}

.scn-flowers-idea .blossom-1 {
  bottom: 42%;
  left: 27%;
  animation-delay: 0s;
}

.scn-flowers-idea .blossom-2 {
  bottom: 41%;
  left: 33%;
  width: 6px;
  height: 6px;
  background: #6a5a6a;
  animation-delay: 1.5s;
}

.scn-flowers-idea .blossom-3 {
  bottom: 42%;
  right: 27%;
  animation-delay: 3s;
}

.scn-flowers-idea .figure-silhouette {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 30%;
  height: 18%;
  background: linear-gradient(170deg, #0a0a0a 0%, #1a1a1a 60%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.8);
  animation: fl-figure-lying 10s ease-in-out infinite alternate;
}

.scn-flowers-idea .candle-glow {
  position: absolute;
  bottom: 24%;
  left: 18%;
  width: 10px;
  height: 16px;
  background: linear-gradient(180deg, #d09040 0%, #b07030 40%, #603010 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 18px 6px #d09040, 0 0 40px 12px rgba(200, 120, 50, 0.4);
  animation: fl-candle-flicker 2s ease-in-out infinite alternate;
}

@keyframes fl-room-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes fl-window-pulse {
  0% { filter: brightness(0.7); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.8); }
}

@keyframes fl-pot-sway {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(1); }
}

@keyframes fl-bloom-breathe {
  0% { transform: scale(0.9) rotate(-5deg); opacity: 0.7; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(2deg); opacity: 0.8; }
}

@keyframes fl-figure-lying {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(1px); }
}

@keyframes fl-candle-flicker {
  0% { transform: scaleY(0.9) rotate(-2deg); box-shadow: 0 0 14px 4px #d09040, 0 0 30px 8px rgba(200, 120, 50, 0.3); }
  50% { transform: scaleY(1.1) rotate(2deg); box-shadow: 0 0 24px 8px #e0a050, 0 0 50px 16px rgba(200, 120, 50, 0.5); }
  100% { transform: scaleY(0.95) rotate(0deg); box-shadow: 0 0 16px 5px #c08030, 0 0 35px 10px rgba(200, 120, 50, 0.35); }
}

/* ------------------------------------------------------------ */
.scn-knife-details {
  background: 
    linear-gradient(180deg, #0e0a10 0%, #1a1218 35%, #14101a 70%, #0a0810 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e2a 0%, transparent 60%);
}

.scn-knife-details .bg-deep {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(135deg, #0e0c12 0%, #12101a 40%, #0a0810 80%),
    repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(255,255,255,0.02) 4px, rgba(255,255,255,0.02) 5px);
  animation: kn-ambient-pulse 15s ease-in-out infinite alternate;
}

.scn-knife-details .book {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 50%;
  height: 28%;
  background: linear-gradient(135deg, #3a1a2a 0%, #2a1018 50%, #1a0a12 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.9), inset 0 2px 4px rgba(100,40,60,0.4);
  transform: perspective(600px) rotateX(10deg) rotateY(-5deg);
  animation: kn-book-breathe 8s ease-in-out infinite alternate;
}

.scn-knife-details .pages {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 44%;
  height: 20%;
  background: linear-gradient(180deg, #f0e0c8 0%, #d0c0a8 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(10deg) rotateY(-5deg);
  animation: kn-pages-turn 12s ease-in-out infinite alternate;
}

.scn-knife-details .knife {
  position: absolute;
  bottom: 35%;
  left: 42%;
  width: 8px;
  height: 40%;
  background: linear-gradient(180deg, #b0b0b8 0%, #808090 40%, #50505a 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 0 6px rgba(200,200,220,0.3), inset 0 0 4px rgba(255,255,255,0.2);
  transform-origin: bottom center;
  transform: rotate(-15deg);
  animation: kn-knife-glint 4s ease-in-out infinite alternate;
}

.scn-knife-details .knife::before {
  content: '';
  position: absolute;
  top: -6%;
  left: -30%;
  width: 160%;
  height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(220,220,240,0.6) 50%, transparent 100%);
  border-radius: 2px;
}

.scn-knife-details .knife-shadow {
  position: absolute;
  bottom: 34%;
  left: 40%;
  width: 14px;
  height: 32%;
  background: rgba(0,0,0,0.5);
  filter: blur(6px);
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: kn-shadow-drift 10s ease-in-out infinite alternate;
}

.scn-knife-details .hand-silhouette {
  position: absolute;
  bottom: 16%;
  right: 22%;
  width: 70px;
  height: 80px;
  background: 
    radial-gradient(ellipse at 30% 70%, #0a0a0a 0%, #1a1a1a 40%, #0e0e0e 100%);
  border-radius: 60% 40% 30% 70% / 50% 70% 30% 50%;
  transform: rotate(-10deg) scale(0.85);
  animation: kn-hand-reach 6s ease-in-out infinite alternate;
}

.scn-knife-details .drop {
  position: absolute;
  bottom: 42%;
  left: 55%;
  width: 6px;
  height: 10px;
  background: radial-gradient(circle at 40% 30%, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 60% 40%;
  box-shadow: 0 0 4px rgba(40,10,10,0.6);
  animation: kn-drop-fall 3s ease-in-out infinite;
}

@keyframes kn-ambient-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}

@keyframes kn-book-breathe {
  0% { transform: perspective(600px) rotateX(10deg) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(12deg) rotateY(-8deg) translateY(-3px); }
  100% { transform: perspective(600px) rotateX(9deg) rotateY(-4deg) translateY(0); }
}

@keyframes kn-pages-turn {
  0% { transform: perspective(600px) rotateX(10deg) rotateY(-5deg) scaleY(1); }
  50% { transform: perspective(600px) rotateX(14deg) rotateY(-8deg) scaleY(1.02); }
  100% { transform: perspective(600px) rotateX(9deg) rotateY(-4deg) scaleY(0.98); }
}

@keyframes kn-knife-glint {
  0% { transform: rotate(-15deg) scale(1); box-shadow: 0 0 6px rgba(200,200,220,0.2), inset 0 0 4px rgba(255,255,255,0.2); }
  50% { transform: rotate(-14deg) scale(1.01); box-shadow: 0 0 14px rgba(220,220,255,0.5), inset 0 0 8px rgba(255,255,255,0.4); }
  100% { transform: rotate(-16deg) scale(0.99); box-shadow: 0 0 8px rgba(200,200,220,0.3), inset 0 0 4px rgba(255,255,255,0.2); }
}

@keyframes kn-shadow-drift {
  0% { transform: rotate(-20deg) translateX(0); opacity: 0.6; }
  50% { transform: rotate(-18deg) translateX(4px); opacity: 0.8; }
  100% { transform: rotate(-22deg) translateX(-2px); opacity: 0.5; }
}

@keyframes kn-hand-reach {
  0% { transform: rotate(-10deg) scale(0.85) translate(0, 0); }
  50% { transform: rotate(-5deg) scale(0.9) translate(-8px, -4px); }
  100% { transform: rotate(-12deg) scale(0.82) translate(2px, 2px); }
}

@keyframes kn-drop-fall {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(30px) scale(1.5); opacity: 0.7; }
  100% { transform: translateY(60px) scale(0.5); opacity: 0; }
}

[class*="scn-useless cards"] {
  background: linear-gradient(160deg, #0a0a12 0%, #15151f 40%, #0d0d18 100%),
              radial-gradient(ellipse at 50% 80%, #0d0a15 0%, transparent 70%);
}
[class*="scn-useless cards"] .bg {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, rgba(20,15,25,0.3) 0%, transparent 60%);
  animation: uc-bg 12s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .pool {
  position:absolute; bottom:5%; left:25%; right:25%; height:40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(30,25,20,0.12) 0%, transparent 70%);
  border-radius: 50%;
}
[class*="scn-useless cards"] .arm-from {
  position:absolute; bottom:15%; right:55%; width:35%; height:50%;
  background: linear-gradient(160deg, #0d0d1a 0%, #1a1520 100%);
  border-radius: 40% 20% 30% 50% / 60% 30% 50% 40%;
  transform-origin: right bottom;
  box-shadow: inset 2px 0 8px rgba(20,15,25,0.5);
  animation: uc-arm-from 6s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .arm-to {
  position:absolute; bottom:12%; left:55%; width:35%; height:45%;
  background: linear-gradient(200deg, #0d0d1a 0%, #1a1520 100%);
  border-radius: 20% 40% 50% 30% / 30% 60% 40% 50%;
  transform-origin: left bottom;
  box-shadow: inset -2px 0 8px rgba(20,15,25,0.5);
  animation: uc-arm-to 8s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .hand-from {
  position:absolute; bottom:35%; right:48%; width:18%; height:22%;
  background: linear-gradient(180deg, #12101d 0%, #0d0d18 100%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  transform: rotate(-15deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: uc-hand-from 6s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .hand-to {
  position:absolute; bottom:32%; left:48%; width:20%; height:24%;
  background: linear-gradient(180deg, #12101d 0%, #0d0d18 100%);
  border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%;
  transform: rotate(10deg);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
  animation: uc-hand-to 8s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .bundle {
  position:absolute; bottom:40%; left:46%; width:10%; height:8%;
  background: linear-gradient(135deg, #2a1f0f 0%, #1a150d 50%, #2a1f0f 100%);
  border-radius: 10% 20% 15% 20% / 20% 15% 25% 15%;
  transform: translate(-50%, 50%) rotate(-5deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.6), inset 0 1px 2px rgba(60,40,20,0.3);
  animation: uc-bundle 4s ease-in-out infinite;
}
[class*="scn-useless cards"] .ember {
  position:absolute; bottom:55%; left:35%; width:3px; height:3px;
  background: radial-gradient(circle, #ff8030 0%, #ff6020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,128,48,0.3), 0 0 16px 4px rgba(255,96,32,0.1);
  animation: uc-ember 2s ease-in-out infinite alternate;
}
[class*="scn-useless cards"] .dust {
  position:absolute; top:20%; left:30%; width:2px; height:2px;
  background: rgba(200,200,200,0.15);
  border-radius: 50%;
  box-shadow:
    60px 40px 0 1px rgba(200,200,200,0.1),
    -30px 80px 0 0.5px rgba(200,200,200,0.12),
    20px 100px 0 0.8px rgba(200,200,200,0.08);
  animation: uc-dust 15s linear infinite;
}
@keyframes uc-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.65 } }
@keyframes uc-arm-from { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uc-arm-to { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uc-hand-from { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes uc-hand-to { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes uc-bundle { 0% { transform: translate(-50%, 50%) rotate(-5deg) scale(1) } 50% { transform: translate(-50%, 48%) rotate(-3deg) scale(1.02) } 100% { transform: translate(-50%, 50%) rotate(-5deg) scale(1) } }
@keyframes uc-ember { 0% { opacity:0.5; box-shadow:0 0 4px 1px rgba(255,128,48,0.2),0 0 8px 2px rgba(255,96,32,0.1) } 50% { opacity:1; box-shadow:0 0 10px 3px rgba(255,128,48,0.4),0 0 20px 6px rgba(255,96,32,0.2) } 100% { opacity:0.6; box-shadow:0 0 6px 2px rgba(255,128,48,0.25),0 0 12px 3px rgba(255,96,32,0.12) } }
@keyframes uc-dust { 0% { transform: translateY(0) translateX(0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translateY(-80px) translateX(20px); opacity:0 } }

/* ---------- Scene: train-journey-introduction ---------- */
.scn-train-journey-introduction {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 35%, #7a5a4e 65%, #c8a070 100%),
              radial-gradient(ellipse at 50% 0%, #e8c090 0%, transparent 70%);
}
.scn-train-journey-introduction .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: tj-sky 15s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .mist {
  position: absolute; inset: 0;
  background: rgba(200,180,160,0.12);
  animation: tj-mist 20s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .city {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: tj-city 12s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .tracks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1a1e 0px, #2a1a1e 10px, #3a2a2e 10px, #3a2a2e 20px);
  animation: tj-tracks 2s linear infinite;
}
.scn-train-journey-introduction .train-body {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: tj-train 4s ease-in-out infinite;
}
.scn-train-journey-introduction .train-window {
  position: absolute; bottom: 33%; left: 45%; width: 10%; height: 6%;
  background: radial-gradient(circle, #e8c090 0%, #c8a070 70%);
  border-radius: 10%;
  box-shadow: 0 0 20px 6px #c8a070, 0 0 40px 12px rgba(200,160,112,0.5);
  animation: tj-window 3s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .steam-a,
.scn-train-journey-introduction .steam-b {
  position: absolute; bottom: 40%; width: 40px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tj-steam 10s linear infinite;
}
.scn-train-journey-introduction .steam-a {
  left: 30%; animation-delay: 0s;
}
.scn-train-journey-introduction .steam-b {
  left: 55%; animation-delay: -5s;
}
@keyframes tj-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes tj-mist {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.7; transform: translateX(15px); }
  100% { opacity: 0.2; transform: translateX(-10px); }
}
@keyframes tj-city {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes tj-tracks {
  0% { background-position: 0 0; }
  100% { background-position: -20px 0; }
}
@keyframes tj-train {
  0% { transform: translateX(-3px) rotate(-0.5deg); }
  50% { transform: translateX(3px) rotate(0.5deg); }
  100% { transform: translateX(-2px) rotate(-0.3deg); }
}
@keyframes tj-window {
  0% { box-shadow: 0 0 15px 4px #c8a070, 0 0 30px 8px rgba(200,160,112,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px #e8c090, 0 0 60px 18px rgba(232,192,144,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px #c8a070, 0 0 40px 10px rgba(200,160,112,0.45); opacity: 0.85; }
}
@keyframes tj-steam {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(40px, -30px) scale(1.8); opacity: 0.2; }
  100% { transform: translate(80px, -60px) scale(2.5); opacity: 0; }
}

/* ---------- Scene: train-contrast-appearance ---------- */
.scn-train-contrast-appearance {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 20% 30%, #c8a070 0%, transparent 60%);
}
.scn-train-contrast-appearance .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: tc-wall 6s ease-in-out infinite alternate;
}
.scn-train-contrast-appearance .window {
  position: absolute; left: 8%; top: 15%; width: 35%; height: 65%;
  background: transparent;
  border: 3px solid #3a3a4e;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(200,160,112,0.2);
  overflow: hidden;
  animation: tc-window 8s ease-in-out infinite alternate;
}
.scn-train-contrast-appearance .window .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a4e 0%, #8a6a4e 50%, #c8a070 100%);
  animation: tc-sky 20s ease-in-out infinite alternate;
}
.scn-train-contrast-appearance .figure {
  position: absolute; left: 40%; bottom: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 7s ease-in-out infinite;
}
.scn-train-contrast-appearance .figure .eye {
  position: absolute; top: 18%; left: 55%; width: 8%; height: 6%;
  background: radial-gradient(circle, #e8c090 0%, #c8a070 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #c8a070;
  animation: tc-eye 2s ease-in-out infinite alternate;
}
.scn-train-contrast-appearance .light-beam {
  position: absolute; left: 42%; bottom: 60%; width: 160px; height: 8px;
  background: linear-gradient(90deg, rgba(200,160,112,0.6) 0%, transparent 100%);
  transform: rotate(-12deg);
  transform-origin: left center;
  animation: tc-beam 5s ease-in-out infinite alternate;
}
@keyframes tc-wall {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px) rotate(0.3deg); }
  100% { transform: translateX(-1px) rotate(-0.2deg); }
}
@keyframes tc-window {
  0% { box-shadow: inset 0 0 20px rgba(200,160,112,0.1); }
  50% { box-shadow: inset 0 0 40px rgba(200,160,112,0.4); }
  100% { box-shadow: inset 0 0 25px rgba(200,160,112,0.15); }
}
@keyframes tc-sky {
  0% { background-position: 0 0; }
  50% { background-position: 0 -10px; }
  100% { background-position: 0 5px; }
}
@keyframes tc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tc-eye {
  0% { box-shadow: 0 0 8px 2px #c8a070; transform: scale(1); }
  50% { box-shadow: 0 0 18px 5px #e8c090; transform: scale(1.3); }
  100% { box-shadow: 0 0 10px 3px #c8a070; transform: scale(1); }
}
@keyframes tc-beam {
  0% { opacity: 0.3; transform: rotate(-14deg) scaleX(0.9); }
  50% { opacity: 0.8; transform: rotate(-10deg) scaleX(1.1); }
  100% { opacity: 0.4; transform: rotate(-13deg) scaleX(0.95); }
}

/* train-journey-introduction */
.scn-train-journey-introduction {
  background:
    radial-gradient(ellipse at 50% 20%, rgba(200,180,150,0.25) 0%, transparent 70%),
    linear-gradient(180deg, #3a3a5c 0%, #4a4a6a 20%, #6a6a7a 50%, #7a7a7a 70%, #8a8a7a 100%);
  overflow: hidden;
}
.scn-train-journey-introduction .window-glass {
  position: absolute;
  top: 10%;
  left: 15%;
  right: 15%;
  bottom: 35%;
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 20%, rgba(100,120,140,0.15) 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: tj-glass 12s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .window-frame {
  position: absolute;
  top: 8%;
  left: 13%;
  right: 13%;
  bottom: 33%;
  border: 4px solid #2a2a2a;
  border-radius: 6px;
  background: transparent;
  box-shadow: 0 0 0 2px #1a1a1a, 0 4px 15px rgba(0,0,0,0.5);
}
.scn-train-journey-introduction .horizon {
  position: absolute;
  top: 20%;
  left: 15%;
  right: 15%;
  height: 30%;
  background: linear-gradient(180deg, rgba(180,170,150,0.3) 0%, rgba(100,110,120,0.1) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(2px);
  animation: tj-horizon 20s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .tracks {
  position: absolute;
  bottom: 30%;
  left: 15%;
  right: 15%;
  height: 6%;
  background: repeating-linear-gradient(90deg, #4a4a4a 0px, #4a4a4a 4px, transparent 4px, transparent 12px);
  opacity: 0.3;
  animation: tj-tracks 3s linear infinite;
}
.scn-train-journey-introduction .figure {
  position: absolute;
  bottom: 32%;
  left: 42%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tj-figure 5s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .lantern {
  position: absolute;
  bottom: 36%;
  left: 48%;
  width: 8px;
  height: 10px;
  background: radial-gradient(circle, #c8a060 0%, #a08040 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.6), 0 0 40px 10px rgba(200,160,96,0.3);
  animation: tj-lantern 2s ease-in-out infinite alternate;
}
.scn-train-journey-introduction .mist {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,190,200,0.1) 0%, transparent 80%);
  filter: blur(12px);
  animation: tj-mist 30s linear infinite;
}
@keyframes tj-glass {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes tj-horizon {
  0% { opacity: 0.4; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-4px); }
  100% { opacity: 0.5; transform: translateY(2px); }
}
@keyframes tj-tracks {
  0% { background-position: 0 0; }
  100% { background-position: -20px 0; }
}
@keyframes tj-figure {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(1deg) translateY(-1px); }
  70% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes tj-lantern {
  0% { box-shadow: 0 0 15px 4px rgba(200,160,96,0.5); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px rgba(200,160,96,0.9); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px rgba(200,160,96,0.6); opacity: 0.9; }
}
@keyframes tj-mist {
  0% { transform: translateX(-10%); opacity: 0.3; }
  50% { transform: translateX(10%); opacity: 0.5; }
  100% { transform: translateX(-10%); opacity: 0.3; }
}

.scn-train-contrast-appearance { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 30%, #4a2a1e 60%, #6a3a1a 100%), radial-gradient(ellipse at 30% 60%, #c07a3a 0%, transparent 60%); background-blend-mode: overlay; }
.scn-train-contrast-appearance .sky-dawn { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8c88a 0%, #f0a040 30%, #c07030 60%, #6a3a1a 100%); animation: tca-sky 15s ease-in-out infinite alternate; }
.scn-train-contrast-appearance .window-frame { position:absolute; inset:10% 15% 25% 20%; border:6px solid #1a1a2e; border-radius:4px; box-shadow: 0 0 0 2px #2a2a3e, inset 0 0 0 2px #2a2a3e; background: transparent; animation: tca-frame 6s ease-in-out infinite; }
.scn-train-contrast-appearance .seat { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-train-contrast-appearance .figure { position:absolute; bottom:20%; left:35%; width:30%; height:45%; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 50%, #1a0a0a 100%); border-radius: 50% 60% 30% 40% / 60% 70% 30% 40%; transform: skewX(-5deg); animation: tca-figure 8s ease-in-out infinite alternate; }
.scn-train-contrast-appearance .eye-glow { position:absolute; top:33%; left:42%; width:4px; height:4px; background: radial-gradient(circle, #f0e8c0 0%, #c0a050 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px #c0a050; animation: tca-eye 2s ease-in-out infinite alternate; }
.scn-train-contrast-appearance .light-beam { position:absolute; top:15%; left:25%; width:40%; height:60%; background: linear-gradient(135deg, rgba(240,200,120,.3) 0%, rgba(240,200,120,.1) 40%, transparent 80%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: tca-beam 10s ease-in-out infinite alternate; }
.scn-train-contrast-appearance .dust { position:absolute; top:30%; left:10%; width:100%; height:50%; background: radial-gradient(circle at 20% 50%, rgba(200,180,160,.12) 0%, transparent 1%), radial-gradient(circle at 60% 30%, rgba(200,180,160,.1) 0%, transparent 1.2%), radial-gradient(circle at 80% 70%, rgba(200,180,160,.08) 0%, transparent 0.8%); background-size: 30px 30px, 25px 25px, 20px 20px; background-repeat: repeat; animation: tca-dust 20s linear infinite; }
@keyframes tca-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tca-frame { 0%,100% { border-color: #1a1a2e; box-shadow: 0 0 0 2px #2a2a3e, inset 0 0 0 2px #2a2a3e; } 50% { border-color: #3a2a3e; box-shadow: 0 0 6px 2px #4a2a3e, inset 0 0 6px 2px #4a2a3e; } }
@keyframes tca-figure { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-2px) scale(1.01); } 100% { transform: skewX(-7deg) translateY(1px); } }
@keyframes tca-eye { 0% { box-shadow: 0 0 8px 2px #c0a050; opacity:0.7; } 50% { box-shadow: 0 0 18px 6px #f0e8c0; opacity:1; } 100% { box-shadow: 0 0 10px 3px #c0a050; opacity:0.8; } }
@keyframes tca-beam { 0% { opacity:0.3; transform: rotate(-5deg); } 50% { opacity:0.6; transform: rotate(0deg) translateX(5px); } 100% { opacity:0.4; transform: rotate(3deg); } }
@keyframes tca-dust { 0% { background-position: 0 0, 10px 10px, 20px 20px; } 100% { background-position: 100px 50px, 110px 60px, 120px 70px; } }

.scn-train-muishkin-appearance {
  background: 
    linear-gradient(180deg, #2b3a4a 0%, #1f2a35 50%, #151d24 100%),
    radial-gradient(ellipse at 30% 20%, rgba(200, 180, 140, 0.15) 0%, transparent 60%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}

.scn-train-muishkin-appearance .compartment {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2530 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

.scn-train-muishkin-appearance .window-frame {
  position: absolute;
  top: 10%;
  left: 8%;
  width: 35%;
  height: 50%;
  background: #2a3540;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.3);
}

.scn-train-muishkin-appearance .window-sky {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 31%;
  height: 46%;
  background: linear-gradient(180deg, #7a8a9e 0%, #b0b8c4 30%, #d4c8a8 60%, #e8dcc0 80%, #f0e8d4 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255, 230, 180, 0.3);
  animation: tma-dawn-sky 12s ease-in-out infinite alternate;
}

.scn-train-muishkin-appearance .seat {
  position: absolute;
  bottom: 8%;
  left: 5%;
  width: 55%;
  height: 25%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: tma-vibrate 3s ease-in-out infinite;
}

.scn-train-muishkin-appearance .figure {
  position: absolute;
  bottom: 18%;
  left: 22%;
  width: 18%;
  height: 45%;
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: tma-figure-sway 4s ease-in-out infinite;
}

.scn-train-muishkin-appearance .cloak {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 28%;
  height: 35%;
  background: linear-gradient(135deg, #2a2a2a 0%, #3a3a3a 60%, #2a2a2a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tma-cloak-sway 5s ease-in-out infinite alternate;
}

.scn-train-muishkin-appearance .breath {
  position: absolute;
  top: 35%;
  left: 30%;
  width: 12%;
  height: 8%;
  background: radial-gradient(circle, rgba(220,220,240,0.6) 0%, rgba(220,220,240,0) 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tma-breath 6s ease-in-out infinite;
}

@keyframes tma-dawn-sky {
  0%   { opacity: 0.7; background-position: 0% 0%; }
  50%  { opacity: 1;   background-position: 50% 0%; }
  100% { opacity: 0.8; background-position: 100% 0%; }
}

@keyframes tma-vibrate {
  0%   { transform: translateY(0) scale(1); }
  25%  { transform: translateY(-1px) scale(1.002); }
  50%  { transform: translateY(0) scale(1); }
  75%  { transform: translateY(1px) scale(0.998); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes tma-figure-sway {
  0%   { transform: translateX(0) rotate(0deg); }
  30%  { transform: translateX(2px) rotate(1deg); }
  60%  { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes tma-cloak-sway {
  0%   { transform: translateX(0) skewX(0deg); }
  40%  { transform: translateX(3px) skewX(-2deg); }
  80%  { transform: translateX(-2px) skewX(1deg); }
  100% { transform: translateX(0) skewX(0deg); }
}

@keyframes tma-breath {
  0%   { opacity: 0.2; transform: translateY(0) scale(1); }
  50%  { opacity: 0.6; transform: translateY(-4px) scale(1.2); }
  100% { opacity: 0.2; transform: translateY(0) scale(1); }
}

.scn-train-conversation-begins {
  background:
    linear-gradient(180deg, #1b2838 0%, #2a3b4a 30%, #4a5a6a 60%, #b8a880 100%),
    radial-gradient(ellipse at 30% 70%, #c8b080 0%, transparent 60%);
}
.scn-train-conversation-begins .sky {
  position:absolute;
  inset:0 60% 0 0;
  background: linear-gradient(180deg, #1b2838 0%, #3a4a5a 40%, #b8a880 100%);
  animation: tc-sky 12s ease-in-out infinite alternate;
}
.scn-train-conversation-begins .window {
  position:absolute;
  top:8%; left:5%; width:45%; height:55%;
  background: transparent;
  border: 6px solid #3a3a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,176,128,0.3), 0 0 20px rgba(200,176,128,0.1);
  animation: tc-window-glow 8s ease-in-out infinite alternate;
}
.scn-train-conversation-begins .seat {
  position:absolute;
  width:20%; height:15%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 30% 30% 8% 8% / 60% 60% 8% 8%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-train-conversation-begins .seat-left {
  bottom:20%; left:50%;
  transform: translateX(-110%);
}
.scn-train-conversation-begins .seat-right {
  bottom:20%; right:5%;
}
.scn-train-conversation-begins .neighbour {
  position:absolute;
  bottom:22%; left:48%; width:10%; height:35%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-sway 4s ease-in-out infinite, tc-train-shake 0.5s linear infinite;
}
.scn-train-conversation-begins .protagonist {
  position:absolute;
  bottom:22%; right:22%; width:10%; height:35%;
  background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-sway 4s ease-in-out infinite -2s, tc-train-shake 0.5s linear infinite;
}
.scn-train-conversation-begins .breath {
  position:absolute;
  bottom:30%; left:48%; width:4%; height:6%;
  background: radial-gradient(circle, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: tc-breath 3s ease-in-out infinite;
}
@keyframes tc-sky {
  0% { opacity:0.8; filter:brightness(1); }
  50% { opacity:1; filter:brightness(1.05); }
  100% { opacity:0.7; filter:brightness(0.95); }
}
@keyframes tc-window-glow {
  0% { box-shadow: inset 0 0 20px rgba(200,176,128,0.2), 0 0 10px rgba(200,176,128,0.05); }
  50% { box-shadow: inset 0 0 40px rgba(200,176,128,0.5), 0 0 30px rgba(200,176,128,0.2); }
  100% { box-shadow: inset 0 0 30px rgba(200,176,128,0.3), 0 0 15px rgba(200,176,128,0.1); }
}
@keyframes tc-sway {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes tc-train-shake {
  0% { transform: translate(0,0); }
  25% { transform: translate(-1px,1px); }
  50% { transform: translate(1px,-1px); }
  75% { transform: translate(-1px,0); }
  100% { transform: translate(0,0); }
}
@keyframes tc-breath {
  0% { opacity:0; transform: scale(0.8) translateY(0); }
  50% { opacity:0.6; transform: scale(1.2) translateY(-5px); }
  100% { opacity:0; transform: scale(0.8) translateY(-10px); }
}

.scn-useless-cards { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%); }
.scn-useless-cards .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 60%); animation: uc-bg 12s ease-in-out infinite alternate; }
.scn-useless-cards .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0; }
.scn-useless-cards .table { position:absolute; bottom:10%; left:35%; right:35%; height:8%; background: #1a1a2e; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.8); }
.scn-useless-cards .candle { position:absolute; bottom:18%; left:50%; width:8px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 30%, #4a3a2a 100%); border-radius: 4px 4px 2px 2px; animation: uc-candle 2s ease-in-out infinite; }
.scn-useless-cards .glow { position:absolute; bottom:20%; left:50%; width:60px; height:60px; transform:translate(-50%, -20%); background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,180,80,.2) 40%, transparent 70%); pointer-events:none; animation: uc-glow 3s ease-in-out infinite alternate; }
.scn-useless-cards .figure-left { position:absolute; bottom:10%; left:15%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uc-fig-left 8s ease-in-out infinite; }
.scn-useless-cards .figure-right { position:absolute; bottom:10%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uc-fig-right 8s ease-in-out infinite; }
.scn-useless-cards .cards { position:absolute; bottom:22%; left:50%; width:24px; height:16px; transform:translateX(-50%) rotate(-10deg); background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: uc-cards 6s ease-in-out infinite; }

@keyframes uc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes uc-candle { 0% { transform: translateX(-50%) scaleY(1) } 30% { transform: translateX(-50%) scaleY(1.02) } 60% { transform: translateX(-50%) scaleY(0.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes uc-glow { 0% { opacity:.5; transform: translate(-50%, -20%) scale(1) } 50% { opacity:1; transform: translate(-50%, -20%) scale(1.1) } 100% { opacity:.6; transform: translate(-50%, -20%) scale(0.95) } }
@keyframes uc-fig-left { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uc-fig-right { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(2deg) } 50% { transform: translateX(-10px) rotate(0deg) } 75% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes uc-cards { 0%,100% { transform: translateX(-50%) rotate(-10deg) } 50% { transform: translateX(-50%) rotate(-5deg) translateY(-2px) } }

.scn-flowers-idea {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 50%, #2c1f3a 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-flowers-idea .wall-left {
  position: absolute;
  left: 0;
  top: 0;
  width: 40%;
  height: 100%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a1f3a 100%);
  z-index: 1;
}
.scn-flowers-idea .window {
  position: absolute;
  left: 30%;
  top: 10%;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, #1c3050 0%, #2a4560 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: fi-window-glow 8s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-flowers-idea .curtain {
  position: absolute;
  left: 25%;
  top: 0;
  width: 20%;
  height: 100%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 20% 20% 0 / 0 50% 50% 0;
  transform-origin: top left;
  animation: fi-curtain 12s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-flowers-idea .table {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 50%;
  height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  z-index: 2;
}
.scn-flowers-idea .vase {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 20%;
  height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: fi-vase 6s ease-in-out infinite;
  z-index: 3;
}
.scn-flowers-idea .stems {
  position: absolute;
  bottom: 45%;
  left: 43%;
  width: 14%;
  height: 20%;
  background: linear-gradient(180deg, #1a3a1a, #0a2a0a);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: fi-stems 5s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-flowers-idea .bloom {
  position: absolute;
  bottom: 60%;
  left: 44%;
  width: 12%;
  height: 12%;
  background: radial-gradient(circle at 30% 30%, #c8a0d0, #703080);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  box-shadow: 0 0 10px 2px rgba(112,48,128,.4);
  animation: fi-bloom 7s ease-in-out infinite alternate;
  z-index: 5;
}
.scn-flowers-idea .glow {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 6%;
  height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b08040;
  animation: fi-glow 3s ease-in-out infinite alternate;
  z-index: 6;
}
@keyframes fi-window-glow {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 0 15px rgba(60,90,120,.3); }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
}
@keyframes fi-curtain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fi-vase {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fi-stems {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes fi-bloom {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes fi-glow {
  0% { opacity: 0.7; box-shadow: 0 0 25px 8px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #d09050; }
  100% { opacity: 0.6; box-shadow: 0 0 20px 6px #b08040; }
}

.scn-can\'t-move {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, #0a0c14 0%, #141626 40%, #1e2233 80%, #0e111c 100%);
}
.scn-can\'t-move .bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 0%, #0a0c14 80%, #000 100%);
  animation: cnm-bg 10s ease-in-out infinite;
}
.scn-can\'t-move .wall {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 40%;
  background: linear-gradient(180deg, #141626, #0a0c14);
  border-right: 1px solid #1a1c2a;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
}
.scn-can\'t-move .window {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 60px;
  height: 90px;
  transform: translateX(-50%);
  background: #1e2840;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #0a0c14, 0 0 0 2px #2a3050;
}
.scn-can\'t-move .window-glow {
  position: absolute;
  top: calc(20% - 10px);
  left: calc(50% - 40px);
  width: 80px;
  height: 110px;
  transform: translateX(-50%);
  border-radius: 4px;
  background: transparent;
  animation: cnm-window-glow 8s ease-in-out infinite;
}
.scn-can\'t-move .bed {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 120px;
  height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2e3a, #1a1c2a);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-can\'t-move .blanket {
  position: absolute;
  bottom: calc(15% + 40px);
  left: 50%;
  width: 100px;
  height: 20px;
  transform: translateX(-50%);
  background: #2a3040;
  border-radius: 4px 4px 8px 8px;
  animation: cnm-blanket 6s ease-in-out infinite;
}
.scn-can\'t-move .figure {
  position: absolute;
  bottom: calc(15% + 30px);
  left: 50%;
  width: 30px;
  height: 80px;
  transform: translateX(-50%) translateY(0);
  background: #0e111c;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cnm-figure 4s ease-in-out infinite;
}
.scn-can\'t-move .pillow {
  position: absolute;
  bottom: calc(15% + 70px);
  left: 50%;
  width: 35px;
  height: 20px;
  transform: translateX(-50%);
  background: #1a1c2a;
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-can\'t-move .dust {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 4px;
  height: 4px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  animation: cnm-dust 20s linear infinite;
}
@keyframes cnm-bg {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes cnm-window-glow {
  0% { box-shadow: 0 0 5px 2px rgba(100,130,200,0.1), 0 0 15px 5px rgba(100,130,200,0.05); }
  50% { box-shadow: 0 0 10px 4px rgba(100,130,200,0.2), 0 0 25px 10px rgba(100,130,200,0.1); }
  100% { box-shadow: 0 0 6px 2px rgba(100,130,200,0.15), 0 0 18px 6px rgba(100,130,200,0.08); }
}
@keyframes cnm-blanket {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes cnm-figure {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
}
@keyframes cnm-dust {
  0% { transform: translate(0,0); opacity: 0; }
  10% { opacity: 0.5; }
  50% { transform: translate(40px, -20px); }
  90% { opacity: 0.2; }
  100% { transform: translate(80px, -40px); opacity: 0; }
}

.scn-knife-details {
  background: linear-gradient(180deg, #0b0b14 0%, #14141e 50%, #1a1a28 100%), radial-gradient(ellipse at 70% 60%, rgba(80,80,120,0.15) 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-knife-details .bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 65%, rgba(200,200,255,0.03) 0%, transparent 60%);
  animation: kd-vignette 12s ease-in-out infinite alternate;
}
.scn-knife-details .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,.6);
  animation: kd-table 18s ease-in-out infinite;
}
.scn-knife-details .book-cover {
  position: absolute; bottom: 30%; left: 50%; width: 34vw; height: 22vh;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 12px 12px 6px 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,255,255,.05);
}
.scn-knife-details .book-pages {
  position: absolute; bottom: 32%; left: 50%; width: 30vw; height: 16vh;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5e8c0 0%, #e8d7a0 40%, #dcc88a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(0,0,0,.15);
  animation: kd-breathe 8s ease-in-out infinite;
}
.scn-knife-details .blade {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%) rotate(15deg) translateX(10px);
  background: linear-gradient(160deg, #b0b8c0 0%, #607080 50%, #3a4a5a 100%);
  clip-path: polygon(0% 40%, 90% 40%, 100% 50%, 90% 60%, 0% 60%);
  box-shadow: 0 0 6px rgba(200,220,255,.3);
  animation: kd-glimmer 5s ease-in-out infinite alternate;
}
.scn-knife-details .handle {
  position: absolute; bottom: 45%; left: 50%; width: 28px; height: 14px;
  transform: translateX(-50%) rotate(15deg) translateX(-32px);
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 3px 9px 9px 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,.6), inset 0 1px 2px rgba(255,255,255,.1);
  animation: kd-handle 5s ease-in-out infinite alternate;
}
.scn-knife-details .highlight {
  position: absolute; bottom: 48%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%) translateY(-10px) rotate(15deg) translateX(20px);
  background: radial-gradient(circle, rgba(200,220,255,.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: kd-pulse 3s ease-in-out infinite alternate;
}
.scn-knife-details .shadow {
  position: absolute; bottom: 28%; left: 50%; width: 40vw; height: 8vh;
  transform: translateX(-50%) scaleX(0.95);
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: kd-drift 14s ease-in-out infinite alternate;
}
@keyframes kd-vignette {
  0% { opacity: .7 }
  50% { opacity: 1 }
  100% { opacity: .8 }
}
@keyframes kd-table {
  0%, 100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes kd-breathe {
  0%, 100% { transform: translateX(-50%) translateY(0) }
  50% { transform: translateX(-50%) translateY(-2px) }
}
@keyframes kd-glimmer {
  0% { opacity: .6; box-shadow: 0 0 4px 1px rgba(200,220,255,.3) }
  50% { opacity: 1; box-shadow: 0 0 12px 3px rgba(200,220,255,.6) }
  100% { opacity: .7; box-shadow: 0 0 6px 2px rgba(200,220,255,.4) }
}
@keyframes kd-handle {
  0%, 100% { transform: translateX(-50%) rotate(15deg) translateX(-32px) scale(1) }
  50% { transform: translateX(-50%) rotate(15deg) translateX(-32px) scale(1.02) }
}
@keyframes kd-pulse {
  0% { transform: translateX(-50%) translateY(-10px) rotate(15deg) translateX(20px) scale(1); opacity: .3 }
  50% { transform: translateX(-50%) translateY(-10px) rotate(15deg) translateX(20px) scale(1.3); opacity: .7 }
  100% { transform: translateX(-50%) translateY(-10px) rotate(15deg) translateX(20px) scale(1); opacity: .4 }
}
@keyframes kd-drift {
  0% { transform: translateX(-50%) scaleX(.92); opacity: .7 }
  50% { transform: translateX(-50%) scaleX(1); opacity: .9 }
  100% { transform: translateX(-50%) scaleX(.92); opacity: .7 }
}

.scn-lying-down {
  background: linear-gradient(180deg, #0a0a1a 0%, #111122 40%, #1a1a2e 70%, #0d0d1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%);
}
.scn-lying-down .floor {
  position: absolute; bottom: 0; height: 30%; width: 100%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  animation: ld-floor 8s ease-in-out infinite alternate;
}
.scn-lying-down .bed {
  position: absolute; bottom: 30%; left: 10%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-lying-down .mattress {
  position: absolute; bottom: 50%; left: 12%; width: 46%; height: 8%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.05);
  animation: ld-mattress 10s ease-in-out infinite alternate;
}
.scn-lying-down .pillow {
  position: absolute; bottom: 58%; left: 15%; width: 15%; height: 6%;
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ld-pillow 12s ease-in-out infinite;
}
.scn-lying-down .figure-head {
  position: absolute; bottom: 58%; left: 17%; width: 8%; height: 10%;
  background: radial-gradient(circle, #1a1a2e 0%, #111122 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ld-breathe 4s ease-in-out infinite;
}
.scn-lying-down .figure-body {
  position: absolute; bottom: 58%; left: 25%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #1a1a2e 0%, #111122 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ld-breathe 4s ease-in-out infinite reverse;
}
.scn-lying-down .blanket {
  position: absolute; bottom: 58%; left: 20%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: ld-blanket 6s ease-in-out infinite alternate;
}
.scn-lying-down .candle {
  position: absolute; bottom: 45%; left: 68%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(255,160,64,0.3);
  animation: ld-candle-glow 3s ease-in-out infinite alternate;
}
.scn-lying-down .candle::after {
  content: '';
  position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 8px;
  background: radial-gradient(circle, #ffa040 0%, #ffd080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffa040;
  animation: ld-flame 1.5s ease-in-out infinite;
}
@keyframes ld-floor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ld-mattress {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ld-pillow {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes ld-breathe {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ld-blanket {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes ld-candle-glow {
  0% { box-shadow: 0 0 8px 2px rgba(255,160,64,0.3); }
  50% { box-shadow: 0 0 16px 6px rgba(255,160,64,0.5); }
  100% { box-shadow: 0 0 8px 2px rgba(255,160,64,0.3); }
}
@keyframes ld-flame {
  0% { opacity: 0.8; transform: translateX(-50%) scale(1); }
  25% { transform: translateX(-50%) scale(1.1, 0.9) rotate(5deg); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05, 1); }
  75% { transform: translateX(-50%) scale(0.9, 1.1) rotate(-5deg); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.step { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* Scene: train-rogodin-father-fury */
.scn-train-rogodin-father-fury {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 120%, #2a3a4a 0%, transparent 70%);
}
.scn-train-rogodin-father-fury .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%);
  animation: trf-sky 12s ease-in-out infinite alternate;
}
.scn-train-rogodin-father-fury .train-window {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 55%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6), rgba(0,0,0,0.2));
  border: 4px solid #2a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-train-rogodin-father-fury .train-frame {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 30%;
  background: repeating-linear-gradient(90deg,
    #3a3a3a 0px, #3a3a3a 10px,
    transparent 10px, transparent 20px);
  opacity: 0.3;
}
.scn-train-rogodin-father-fury .father-silhouette {
  position: absolute; bottom: 10%; left: 30%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 20%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: trf-father 3s ease-in-out infinite;
}
.scn-train-rogodin-father-fury .father-hand {
  position: absolute; bottom: 25%; left: 55%; width: 10%; height: 15%;
  background: #1a1a1a;
  border-radius: 40% 60% 20% 20%;
  transform: rotate(15deg);
  animation: trf-hand 2s ease-in-out infinite alternate;
}
.scn-train-rogodin-father-fury .lamp-glow {
  position: absolute; top: 12%; right: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle, #c08040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,128,64,0.4);
  animation: trf-lamp 4s ease-in-out infinite alternate;
}
.scn-train-rogodin-father-fury .shadow-streak {
  position: absolute; bottom: 30%; left: 5%; width: 90%; height: 4%;
  background: linear-gradient(90deg, transparent, #1a1a1a 30%, transparent 70%);
  filter: blur(2px);
  animation: trf-streak 5s linear infinite;
}
@keyframes trf-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes trf-father {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(-2deg); }
  60% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes trf-hand {
  0% { transform: rotate(10deg) scale(1); }
  100% { transform: rotate(20deg) scale(1.1); }
}
@keyframes trf-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(192,128,64,0.3); }
  100% { opacity: 1; box-shadow: 0 0 60px 30px rgba(192,128,64,0.6); }
}
@keyframes trf-streak {
  0% { transform: translateX(-20px); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateX(20px); opacity: 0; }
}

/* Scene: train-arrival-petersburg */
.scn-train-arrival-petersburg {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 80%);
}
.scn-train-arrival-petersburg .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  animation: tap-sky 20s linear infinite alternate;
}
.scn-train-arrival-petersburg .train-headlight {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 30% 50%, #d0d0e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(200,200,220,0.4);
  animation: tap-light 4s ease-in-out infinite alternate;
}
.scn-train-arrival-petersburg .crowd-silhouette {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-train-arrival-petersburg .rogodin-figure {
  position: absolute; bottom: 15%; left: 45%; width: 20%; height: 45%;
  background: radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tap-rogodin 3s ease-in-out infinite;
}
.scn-train-arrival-petersburg .earring-spark {
  position: absolute; bottom: 40%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c0c0e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(192,192,224,0.6);
  animation: tap-spark 2s ease-in-out infinite;
}
.scn-train-arrival-petersburg .platform-edge {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 6%;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 2px;
}
.scn-train-arrival-petersburg .steam-cloud {
  position: absolute; top: 15%; left: 60%; width: 30%; height: 25%;
  background: radial-gradient(ellipse, rgba(200,200,220,0.1), transparent 80%);
  filter: blur(8px);
  animation: tap-steam 15s linear infinite;
}
@keyframes tap-sky { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes tap-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tap-rogodin {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  30% { transform: translateY(-3px) rotate(1deg) scale(1.02); }
  60% { transform: translateY(1px) rotate(-1deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes tap-spark { 0% { opacity: 0.3; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1.5); } }
@keyframes tap-steam { 0% { transform: translateX(0) translateY(0); } 100% { transform: translateX(-80px) translateY(-20px); opacity: 0; } }

/* Scene: train-muishkin-accepts */
.scn-train-muishkin-accepts {
  background: 
    linear-gradient(180deg, #3a2010 0%, #1a0a00 60%, #2a1505 100%),
    radial-gradient(ellipse at 50% 70%, #4a2a10 0%, transparent 70%);
}
.scn-train-muishkin-accepts .dark-warm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-train-muishkin-accepts .candle-glow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #ffd080 0%, #ffb060 30%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 100px 60px rgba(255,176,96,0.5);
  animation: tma-candle 5s ease-in-out infinite alternate;
}
.scn-train-muishkin-accepts .candle-body {
  position: absolute; top: 50%; left: 48%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #e0c080, #a08050);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}
.scn-train-muishkin-accepts .prince-figure {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tma-prince 4s ease-in-out infinite;
}
.scn-train-muishkin-accepts .other-figure {
  position: absolute; bottom: 10%; right: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tma-other 6s ease-in-out infinite;
}
.scn-train-muishkin-accepts .table-edge {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a, #4a2a10);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-train-muishkin-accepts .warm-halo {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 35%;
  background: radial-gradient(ellipse, rgba(255,200,120,0.2), transparent 80%);
  filter: blur(10px);
  animation: tma-halo 8s ease-in-out infinite alternate;
}
@keyframes tma-candle { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes tma-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tma-other { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tma-halo { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

/* Scene: general-epanchin-intro */
.scn-general-epanchin-intro {
  background: 
    linear-gradient(180deg, #d0c8b0 0%, #c0b8a0 50%, #b0a890 100%),
    radial-gradient(ellipse at 70% 20%, #e0d8c0 0%, transparent 60%);
}
.scn-general-epanchin-intro .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8d0c0 0%, #c8c0b0 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-general-epanchin-intro .window-light {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c8 100%);
  border: 8px solid #b0a890;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.3), 0 0 60px rgba(255,255,240,0.2);
  animation: gei-window 8s ease-in-out infinite alternate;
}
.scn-general-epanchin-intro .desk-surface {
  position: absolute; bottom: 5%; left: 10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #a09078 0%, #908068 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-general-epanchin-intro .general-figure {
  position: absolute; bottom: 15%; left: 35%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gei-general 6s ease-in-out infinite;
}
.scn-general-epanchin-intro .bookshelf {
  position: absolute; top: 15%; left: 8%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-right: 4px solid #5a4a3a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
}
.scn-general-epanchin-intro .inkwell {
  position: absolute; bottom: 22%; left: 50%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gei-ink 10s ease-in-out infinite alternate;
}
@keyframes gei-window { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes gei-general { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gei-ink { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.05); } }

.scn-prince-announces-relation {
  background: linear-gradient(180deg, #f8f0e0 0%, #e8d8c0 40%, #d0b898 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255,230,200,0.6) 0%, transparent 60%);
}
.scn-prince-announces-relation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #e6d4b0 0%, #f2e4c8 50%, #e0ccaa 100%);
  animation: par-wall-light 12s ease-in-out infinite alternate;
}
.scn-prince-announces-relation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b89868 0%, #a08050 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-prince-announces-relation .door {
  position: absolute; bottom: 30%; right: 12%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #a0804a 0%, #8a6a3a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3), inset 2px 2px 4px rgba(255,235,200,0.3);
  animation: par-door 20s ease-in-out infinite;
}
.scn-prince-announces-relation .window {
  position: absolute; bottom: 38%; left: 10%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #c8d8e8 0%, #e0ecf8 50%, #b0c8e0 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(200,220,240,0.4);
  animation: par-window 8s ease-in-out infinite alternate;
}
.scn-prince-announces-relation .servant {
  position: absolute; bottom: 30%; left: 32%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: par-servant-bow 4s ease-in-out infinite;
}
.scn-prince-announces-relation .prince {
  position: absolute; bottom: 30%; left: 55%; width: 24px; height: 85px;
  background: linear-gradient(180deg, #a09070 0%, #605030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: par-prince 6s ease-in-out infinite;
}
.scn-prince-announces-relation .lamp {
  position: absolute; bottom: 55%; left: 72%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #d0a050 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.5), 0 0 60px 20px rgba(200,160,80,0.2);
  animation: par-lamp 3s ease-in-out infinite alternate;
}
.scn-prince-announces-relation .table {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #b09060 0%, #907040 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
@keyframes par-wall-light {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes par-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}
@keyframes par-window {
  0% { box-shadow: inset 0 0 15px rgba(200,220,240,0.3); }
  50% { box-shadow: inset 0 0 30px rgba(200,220,240,0.6); }
  100% { box-shadow: inset 0 0 20px rgba(200,220,240,0.4); }
}
@keyframes par-servant-bow {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(2px) rotate(0deg); }
  50% { transform: translateY(4px) rotate(2deg); }
  75% { transform: translateY(2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes par-prince {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(1deg); }
  66% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes par-lamp {
  0% { transform: scale(1) rotate(-3deg); opacity: 0.8; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.98) rotate(-2deg); opacity: 0.9; }
}

.scn-prince-explains-relation {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c8b898 100%),
              radial-gradient(ellipse at 20% 30%, rgba(255,240,210,0.7) 0%, transparent 60%);
}
.scn-prince-explains-relation .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #ded4b0 0%, #ece0c0 50%, #d8c8a8 100%);
  animation: per-wall 15s ease-in-out infinite alternate;
}
.scn-prince-explains-relation .bookshelf {
  position: absolute; bottom: 40%; right: 8%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-prince-explains-relation .desk {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #b89860 0%, #a08050 100%);
  border-radius: 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.scn-prince-explains-relation .prince {
  position: absolute; bottom: 32%; left: 30%; width: 24px; height: 75px;
  background: linear-gradient(180deg, #a09070 0%, #605030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: per-prince 5s ease-in-out infinite;
}
.scn-prince-explains-relation .servant {
  position: absolute; bottom: 32%; right: 28%; width: 22px; height: 72px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: per-servant 6s ease-in-out infinite;
}
.scn-prince-explains-relation .letter {
  position: absolute; bottom: 55%; left: 35%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: per-letter 8s ease-in-out infinite;
}
.scn-prince-explains-relation .candle {
  position: absolute; bottom: 60%; left: 42%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e8d8a0 0%, #c8b868 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,180,100,0.5), 0 0 40px 12px rgba(200,180,100,0.2);
  animation: per-candle 4s ease-in-out infinite alternate;
}
@keyframes per-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes per-prince {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(1deg); }
  66% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes per-servant {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes per-letter {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes per-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.85; }
}

.scn-prince-moves-to-waiting-room {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
              radial-gradient(ellipse at 60% 20%, rgba(255,235,200,0.3) 0%, transparent 50%);
}
.scn-prince-moves-to-waiting-room .corridor {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ded4b8 0%, #e8dcc8 50%, #d0c0a8 100%);
  animation: pmw-corridor 18s ease-in-out infinite alternate;
}
.scn-prince-moves-to-waiting-room .doorframe {
  position: absolute; bottom: 35%; right: 15%; width: 90px; height: 140px;
  background: linear-gradient(180deg, #b89868 0%, #a08050 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3), inset 2px 2px 4px rgba(255,235,200,0.2);
  animation: pmw-doorframe 20s ease-in-out infinite;
}
.scn-prince-moves-to-waiting-room .prince {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #a09070 0%, #605030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pmw-prince 3s ease-in-out infinite;
}
.scn-prince-moves-to-waiting-room .servant {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 78px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pmw-servant 4s ease-in-out infinite;
}
.scn-prince-moves-to-waiting-room .coatrack {
  position: absolute; bottom: 30%; right: 35%; width: 14px; height: 100px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-prince-moves-to-waiting-room .hat {
  position: absolute; bottom: 75%; right: 34%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #a09060 0%, #706040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pmw-hat 5s ease-in-out infinite;
}
.scn-prince-moves-to-waiting-room .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #8a7050 0%, #a08060 50%, #8a7050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: pmw-carpet 25s linear infinite;
}
@keyframes pmw-corridor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pmw-doorframe {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes pmw-prince {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(1deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(18px) rotate(1deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes pmw-servant {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes pmw-hat {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes pmw-carpet {
  0% { background-position: 0% 0; }
  100% { background-position: 100% 0; }
}

.scn-prince-removes-cloak {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 40%, #c8b898 100%),
              radial-gradient(ellipse at 50% 50%, rgba(255,240,210,0.4) 0%, transparent 70%);
}
.scn-prince-removes-cloak .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #ded4b8 0%, #e8dcc8 50%, #d0c0a8 100%);
  animation: prc-wall 15s ease-in-out infinite alternate;
}
.scn-prince-removes-cloak .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89868 0%, #a08050 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-prince-removes-cloak .prince {
  position: absolute; bottom: 32%; left: 40%; width: 26px; height: 82px;
  background: linear-gradient(180deg, #b0a080 0%, #706040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: prc-prince 5s ease-in-out infinite;
}
.scn-prince-removes-cloak .servant {
  position: absolute; bottom: 32%; left: 62%; width: 22px; height: 76px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: prc-servant 6s ease-in-out infinite;
}
.scn-prince-removes-cloak .cloak {
  position: absolute; bottom: 55%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 50% 100%;
  animation: prc-cloak 4s ease-in-out infinite;
}
.scn-prince-removes-cloak .watchchain {
  position: absolute; bottom: 45%; left: 44%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #c8b898 0%, #a08060 100%);
  border-radius: 30%;
  box-shadow: 0 0 6px 2px rgba(200,180,140,0.5);
  animation: prc-watch 3s ease-in-out infinite alternate;
}
.scn-prince-removes-cloak .mirror {
  position: absolute; bottom: 40%; right: 10%; width: 40px; height: 80px;
  background: linear-gradient(135deg, #c0d0e0 0%, #e0e8f0 50%, #b0c0d0 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(200,220,240,0.3), 2px 0 8px rgba(0,0,0,0.2);
  animation: prc-mirror 12s ease-in-out infinite;
}
.scn-prince-removes-cloak .hatstand {
  position: absolute; bottom: 30%; left: 12%; width: 10px; height: 90px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
@keyframes prc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes prc-prince {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(1deg); }
  66% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes prc-servant {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes prc-cloak {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(10px); }
  100% { transform: rotate(0deg) translateX(20px); }
}
@keyframes prc-watch {
  0% { transform: rotate(-5deg); opacity: 0.7; }
  50% { transform: rotate(5deg); opacity: 1; }
  100% { transform: rotate(-3deg); opacity: 0.8; }
}
@keyframes prc-mirror {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}

.scn-train-muishkin-identity {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 70% 40%, #4a4a5a 0%, transparent 80%);
}
.scn-train-muishkin-identity .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a38 0%, #1a1a28 100%); }
.scn-train-muishkin-identity .window { position:absolute; top:12%; left:50%; width:40%; height:50%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 4px #2a2a38; animation: ti1-window 12s ease-in-out infinite alternate; }
.scn-train-muishkin-identity .seat { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-muishkin-identity .figure-muishkin { position:absolute; bottom:15%; left:20%; width:24px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ti1-jitter 3s ease-in-out infinite; }
.scn-train-muishkin-identity .figure-rednose { position:absolute; bottom:15%; right:20%; width:28px; 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: ti1-sway 5s ease-in-out infinite; }
.scn-train-muishkin-identity .lamp { position:absolute; top:5%; left:45%; width:12px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 6px rgba(255,208,128,.5); animation: ti1-flicker 2s ease-in-out infinite alternate; }
.scn-train-muishkin-identity .curtain { position:absolute; top:10%; left:50%; width:22%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 20px 20px; transform-origin: top left; animation: ti1-curtain 8s ease-in-out infinite; }
.scn-train-muishkin-identity .reflection { position:absolute; top:15%; left:55%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,255,255,.08) 0%, transparent 60%); filter: blur(4px); animation: ti1-reflect 9s ease-in-out infinite alternate; }
@keyframes ti1-window { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ti1-jitter { 0% { transform: translateX(0) rotate(-1deg) } 20% { transform: translateX(2px) rotate(1deg) } 40% { transform: translateX(-1px) rotate(-2deg) } 60% { transform: translateX(1px) rotate(1.5deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ti1-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ti1-flicker { 0% { opacity:.8; box-shadow: 0 0 20px 4px rgba(255,208,128,.4) } 50% { opacity:1; box-shadow: 0 0 40px 10px rgba(255,208,128,.7) } 100% { opacity:.85; box-shadow: 0 0 25px 5px rgba(255,208,128,.5) } }
@keyframes ti1-curtain { 0% { transform: rotateY(0) scaleX(1) } 50% { transform: rotateY(5deg) scaleX(.98) } 100% { transform: rotateY(0) scaleX(1) } }
@keyframes ti1-reflect { 0% { transform: translateX(0) scaleX(1); opacity:.2 } 50% { transform: translateX(5px) scaleX(.95); opacity:.35 } 100% { transform: translateX(-3px) scaleX(1); opacity:.25 } }

.scn-train-rogodin-introduction {
  background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3c 50%, #1e1e2c 100%),
              radial-gradient(ellipse at 30% 50%, #4e4e5e 0%, transparent 70%);
}
.scn-train-rogodin-introduction .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2e2e3c 0%, #1a1a28 100%); }
.scn-train-rogodin-introduction .window { position:absolute; top:10%; right:10%; width:35%; height:55%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 4px #2a2a38; animation: ti2-window 15s ease-in-out infinite alternate; }
.scn-train-rogodin-introduction .seat-a { position:absolute; bottom:0; left:5%; width:40%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-rogodin-introduction .seat-b { position:absolute; bottom:0; right:5%; width:40%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-rogodin-introduction .figure-rogodin { position:absolute; bottom:12%; left:12%; width:28px; 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: ti2-gesture 4s ease-in-out infinite; }
.scn-train-rogodin-introduction .figure-muishkin { position:absolute; bottom:12%; right:12%; width:24px; 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: ti2-listen 6s ease-in-out infinite; }
.scn-train-rogodin-introduction .book { position:absolute; bottom:18%; left:25%; width:20px; height:15px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; transform: rotate(-10deg); animation: ti2-book 8s ease-in-out infinite; }
.scn-train-rogodin-introduction .lamp { position:absolute; top:5%; left:45%; width:12px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 6px rgba(255,208,128,.4); animation: ti2-lamp 2.5s ease-in-out infinite alternate; }
@keyframes ti2-window { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes ti2-gesture { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ti2-listen { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ti2-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes ti2-lamp { 0% { opacity:.8; box-shadow: 0 0 20px 4px rgba(255,208,128,.3) } 50% { opacity:1; box-shadow: 0 0 45px 12px rgba(255,208,128,.6) } 100% { opacity:.85; box-shadow: 0 0 25px 5px rgba(255,208,128,.4) } }

.scn-train-millionaire-revelation {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 45%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-train-millionaire-revelation .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a38 0%, #181828 100%); }
.scn-train-millionaire-revelation .window { position:absolute; top:15%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 4px #2a2a38; animation: ti3-window 10s ease-in-out infinite alternate; }
.scn-train-millionaire-revelation .seat { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-millionaire-revelation .figure-rogodin { position:absolute; bottom:12%; left:35%; width:32px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ti3-revel 3s ease-in-out infinite; }
.scn-train-millionaire-revelation .bundle { position:absolute; bottom:18%; left:25%; width:30px; height:20px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:8px; box-shadow: 0 2px 8px rgba(0,0,0,.7); animation: ti3-bundle 5s ease-in-out infinite; }
.scn-train-millionaire-revelation .money-shadow { position:absolute; bottom:16%; left:23%; width:36px; height:24px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); animation: ti3-shadow 5s ease-in-out infinite alternate; }
.scn-train-millionaire-revelation .hand { position:absolute; bottom:22%; left:28%; width:14px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: top center; animation: ti3-hand 4s ease-in-out infinite; }
.scn-train-millionaire-revelation .reflection { position:absolute; top:10%; left:60%; width:25%; height:35%; background: linear-gradient(135deg, rgba(255,255,255,.06) 0%, transparent 60%); filter: blur(5px); animation: ti3-reflect 11s ease-in-out infinite alternate; }
@keyframes ti3-window { 0% { opacity:.65 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ti3-revel { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1.5deg) } 100% { transform: translateY(1px) rotate(0) } }
@keyframes ti3-bundle { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.05) rotate(3deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ti3-shadow { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.1); opacity:.5 } 100% { transform: scale(1); opacity:.3 } }
@keyframes ti3-hand { 0% { transform: rotate(0) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0) } }
@keyframes ti3-reflect { 0% { transform: translateX(0); opacity:.15 } 50% { transform: translateX(4px); opacity:.3 } 100% { transform: translateX(-3px); opacity:.2 } }

.scn-train-rogodin-story-begin {
  background: linear-gradient(180deg, #3c3c4c 0%, #2c2c3a 50%, #1c1c2a 100%),
              radial-gradient(ellipse at 40% 40%, #4c4c5c 0%, transparent 70%);
}
.scn-train-rogodin-story-begin .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2c2c3a 0%, #1a1a28 100%); }
.scn-train-rogodin-story-begin .window { position:absolute; top:8%; left:8%; width:30%; height:50%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 4px #2a2a38; animation: ti4-window 14s ease-in-out infinite alternate; }
.scn-train-rogodin-story-begin .seat-a { position:absolute; bottom:0; left:5%; width:40%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-rogodin-story-begin .seat-b { position:absolute; bottom:0; right:5%; width:40%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-train-rogodin-story-begin .figure-prince { position:absolute; bottom:12%; left:15%; width:26px; 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: ti4-look 5s ease-in-out infinite; }
.scn-train-rogodin-story-begin .figure-rogodin { position:absolute; bottom:12%; right:15%; width:30px; 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: ti4-narrate 4.5s ease-in-out infinite; }
.scn-train-rogodin-story-begin .luggage { position:absolute; bottom:5%; left:40%; width:40px; height:25px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 2px 8px rgba(0,0,0,.7); animation: ti4-luggage 9s ease-in-out infinite; }
.scn-train-rogodin-story-begin .lamp { position:absolute; top:5%; left:45%; width:12px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 6px rgba(255,208,128,.4); animation: ti4-lamp 3s ease-in-out infinite alternate; }
@keyframes ti4-window { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes ti4-look { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes ti4-narrate { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ti4-luggage { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes ti4-lamp { 0% { opacity:.75; box-shadow: 0 0 15px 3px rgba(255,208,128,.3) } 50% { opacity:1; box-shadow: 0 0 50px 14px rgba(255,208,128,.65) } 100% { opacity:.8; box-shadow: 0 0 20px 4px rgba(255,208,128,.4) } }

/* train-approaching-petersburg – tense, overcast, fog */
.scn-train-approaching-petersburg {
  background: linear-gradient(180deg, #3c3c4a 0%, #4a4a5a 40%, #2c2c3a 100%),
              radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%);
}
.scn-train-approaching-petersburg .fog-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 50%, rgba(180,190,200,0.3) 0%, transparent 60%);
  animation: tr1-fog 12s ease-in-out infinite alternate;
}
.scn-train-approaching-petersburg .sky-fog {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #505060 0%, #3a3a4a 100%);
  opacity: 0.6;
  animation: tr1-sky 20s ease-in-out infinite;
}
.scn-train-approaching-petersburg .tracks {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 6%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  box-shadow: 0 -2px 4px rgba(0,0,0,0.5);
  animation: tr1-track 4s ease-in-out infinite;
}
.scn-train-approaching-petersburg .train-body {
  position: absolute; bottom: 34%; left: 20%; width: 55%; height: 20%;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 4% 4% 2% 2% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: tr1-train 6s ease-in-out infinite;
}
.scn-train-approaching-petersburg .train-headlight {
  position: absolute; bottom: 40%; left: 73%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffffc0 0%, #d0d070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,255,192,0.5), 0 0 60px 20px rgba(255,255,192,0.2);
  animation: tr1-light 2s ease-in-out infinite alternate;
}
.scn-train-approaching-petersburg .steam-a {
  position: absolute; bottom: 48%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse 50% 100%, rgba(210,215,220,0.5) 0%, transparent 70%);
  filter: blur(6px);
  animation: tr1-steam 8s ease-in-out infinite alternate;
}
.scn-train-approaching-petersburg .steam-b {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 30px;
  background: radial-gradient(ellipse 60% 100%, rgba(200,205,210,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: tr1-steam 10s ease-in-out infinite alternate-reverse;
}
.scn-train-approaching-petersburg .signal-lamp {
  position: absolute; bottom: 32%; right: 15%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ff7040 0%, #b03020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,112,64,0.6);
  animation: tr1-signal 3s ease-in-out infinite;
}
@keyframes tr1-fog { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes tr1-sky { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tr1-track { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tr1-train { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateY(-4px); } 100% { transform: scaleX(1); } }
@keyframes tr1-light { 0% { box-shadow: 0 0 20px 6px rgba(255,255,192,0.4); opacity: 0.8; } 100% { box-shadow: 0 0 40px 12px rgba(255,255,192,0.8); opacity: 1; } }
@keyframes tr1-steam { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(10px) scaleY(1.2); opacity: 0.6; } 100% { transform: translateX(20px) scaleY(0.8); opacity: 0.2; } }
@keyframes tr1-signal { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }

/* train-conversation-illness – warm interior, overcast outside */
.scn-train-conversation-illness {
  background: linear-gradient(180deg, #3a3a40 0%, #4a4a50 30%, #2a2a30 100%),
              radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 80%);
}
.scn-train-conversation-illness .carriage-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #504030 0%, #3a2a20 50%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-train-conversation-illness .window-outside {
  position: absolute; top: 8%; right: 6%; width: 28%; height: 32%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.4);
  animation: tr2-window 10s ease-in-out infinite alternate;
}
.scn-train-conversation-illness .seat-left {
  position: absolute; bottom: 22%; left: 12%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 2% 2% / 30% 30% 10% 10%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-train-conversation-illness .seat-right {
  position: absolute; bottom: 22%; right: 16%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 2% 2% / 30% 30% 10% 10%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  transform: scaleX(-1);
}
.scn-train-conversation-illness .figure-left {
  position: absolute; bottom: 28%; left: 18%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: tr2-fig-l 4s ease-in-out infinite;
}
.scn-train-conversation-illness .figure-right {
  position: absolute; bottom: 28%; right: 22%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: tr2-fig-r 4.5s ease-in-out infinite;
}
.scn-train-conversation-illness .lantern-glow {
  position: absolute; bottom: 48%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,208,128,0.6), 0 0 80px 20px rgba(255,208,128,0.3);
  animation: tr2-lantern 3s ease-in-out infinite alternate;
}
.scn-train-conversation-illness .rug {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 30%, #6a4a3a 70%, #8a6a5a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tr2-rug 6s ease-in-out infinite;
}
@keyframes tr2-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes tr2-fig-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tr2-fig-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tr2-lantern { 0% { box-shadow: 0 0 30px 8px rgba(255,208,128,0.4); } 100% { box-shadow: 0 0 50px 15px rgba(255,208,128,0.8); } }
@keyframes tr2-rug { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* train-pavlicheff-support – calm, overcast */
.scn-train-pavlicheff-support {
  background: linear-gradient(180deg, #4a4a50 0%, #3a3a40 50%, #2a2a30 100%),
              radial-gradient(ellipse at 50% 20%, #5a5a6a 0%, transparent 70%);
}
.scn-train-pavlicheff-support .carriage-panel {
  position: absolute; inset: 8% 4% 12% 4%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-train-pavlicheff-support .window-view {
  position: absolute; top: 6%; left: 8%; width: 24%; height: 28%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: tr3-window 8s ease-in-out infinite alternate;
}
.scn-train-pavlicheff-support .figure-sitting {
  position: absolute; bottom: 24%; left: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: tr3-sit 5s ease-in-out infinite;
}
.scn-train-pavlicheff-support .figure-standing {
  position: absolute; bottom: 24%; right: 18%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: tr3-stand 5.5s ease-in-out infinite;
}
.scn-train-pavlicheff-support .baggage {
  position: absolute; bottom: 20%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 2% 2% / 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: tr3-bag 7s ease-in-out infinite;
}
.scn-train-pavlicheff-support .curtain {
  position: absolute; top: 6%; left: 6%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 0 0 4px;
  animation: tr3-curtain 12s ease-in-out infinite alternate;
}
.scn-train-pavlicheff-support .shadow-stripe {
  position: absolute; top: 0; left: 30%; width: 2px; height: 100%;
  background: rgba(0,0,0,0.2);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: tr3-shadow 9s ease-in-out infinite;
}
@keyframes tr3-window { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tr3-sit { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes tr3-stand { 0% { transform: rotate(0deg); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tr3-bag { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes tr3-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes tr3-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

/* train-muishkin-revelation – tense, overcast */
.scn-train-muishkin-revelation {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 80%);
}
.scn-train-muishkin-revelation .compartment-bg {
  position: absolute; inset: 6% 2% 8% 2%;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 50%, #0a0a00 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-train-muishkin-revelation .window-dim {
  position: absolute; top: 4%; left: 6%; width: 22%; height: 26%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: tr4-window 10s ease-in-out infinite alternate;
}
.scn-train-muishkin-revelation .figure-muishkin {
  position: absolute; bottom: 22%; left: 16%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: tr4-muish 4s ease-in-out infinite;
}
.scn-train-muishkin-revelation .figure-rog {
  position: absolute; bottom: 22%; right: 20%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: tr4-rog 4.5s ease-in-out infinite;
}
.scn-train-muishkin-revelation .bundle-object {
  position: absolute; bottom: 28%; left: 28%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tr4-bundle 3s ease-in-out infinite alternate;
}
.scn-train-muishkin-revelation .seat-stripe {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 3%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-train-muishkin-revelation .overhead-light {
  position: absolute; top: 14%; left: 44%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #c0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,224,128,0.4);
  animation: tr4-light 3.5s ease-in-out infinite alternate;
}
@keyframes tr4-window { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes tr4-muish { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes tr4-rog { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes tr4-bundle { 0% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-4px) rotate(2deg); } }
@keyframes tr4-light { 0% { box-shadow: 0 0 20px 4px rgba(255,224,128,0.3); opacity: 0.7; } 100% { box-shadow: 0 0 40px 12px rgba(255,224,128,0.6); opacity: 1; } }

/* train-rogodin-father-anger */
.scn-train-rogodin-father-anger {
  background: linear-gradient(180deg, #4a5c6e 0%, #2f3e4f 50%, #1a2630 100%), radial-gradient(ellipse at 50% 100%, #3a4b5e 0%, transparent 70%);
}
.scn-train-rogodin-father-anger .window {
  position: absolute; top: 8%; left: 10%; width: 45%; height: 30%;
  background: linear-gradient(180deg, #6b7f94 0%, #4a5c6e 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: fa1-sky 8s ease-in-out infinite alternate;
}
.scn-train-rogodin-father-anger .rain {
  position: absolute; top: 8%; left: 10%; width: 45%; height: 30%;
  background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(255,255,255,.15) 4px, rgba(255,255,255,.15) 6px);
  animation: fa1-rain 2s linear infinite;
}
.scn-train-rogodin-father-anger .seat {
  position: absolute; bottom: 12%; left: 5%; width: 55%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-train-rogodin-father-anger .figure-rog {
  position: absolute; bottom: 12%; left: 25%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa1-breathe 4s ease-in-out infinite;
}
.scn-train-rogodin-father-anger .fist {
  position: absolute; bottom: 28%; left: 38%; width: 8%; height: 10%;
  background: #2a1a1a; border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,.6);
  animation: fa1-fist 2s ease-in-out infinite;
}
.scn-train-rogodin-father-anger .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: fa1-shadow 4s ease-in-out infinite;
}
@keyframes fa1-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes fa1-rain { 0% { transform: translateY(0) } 100% { transform: translateY(120%) } }
@keyframes fa1-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) } }
@keyframes fa1-fist { 0% { transform: scale(1) } 50% { transform: scale(1.2) rotate(5deg) } 100% { transform: scale(1) } }
@keyframes fa1-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(.9) } 100% { opacity: .5; transform: scaleX(1) } }

/* train-nastasia-mentioned */
.scn-train-nastasia-mentioned {
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5e 0%, transparent 60%);
}
.scn-train-nastasia-mentioned .window {
  position: absolute; top: 5%; right: 10%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #5a6a7e 0%, #3a4a5e 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: nm-sky 10s ease-in-out infinite alternate;
}
.scn-train-nastasia-mentioned .seat {
  position: absolute; bottom: 12%; left: 0; width: 70%; height: 18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-train-nastasia-mentioned .figure-rog {
  position: absolute; bottom: 12%; left: 35%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nm-rog 4s ease-in-out infinite;
}
.scn-train-nastasia-mentioned .figure-clerk {
  position: absolute; bottom: 12%; left: 55%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nm-clerk 5s ease-in-out infinite;
}
.scn-train-nastasia-mentioned .paper {
  position: absolute; bottom: 28%; left: 58%; width: 10%; height: 14%;
  background: #c0b8a8; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: nm-paper 3s ease-in-out infinite alternate;
}
.scn-train-nastasia-mentioned .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 35%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: nm-shadow 4s ease-in-out infinite;
}
@keyframes nm-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes nm-rog { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nm-clerk { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes nm-paper { 0% { transform: translateY(0) scaleX(1) } 100% { transform: translateY(-2px) scaleX(.95) } }
@keyframes nm-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(.8) } 100% { opacity: .4; transform: scaleX(1) } }

/* train-rogodin-first-sight */
.scn-train-rogodin-first-sight {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 60%);
}
.scn-train-rogodin-first-sight .street-bg {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-train-rogodin-first-sight .carriage {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 6% 6%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: fs-carriage 12s ease-in-out infinite alternate;
}
.scn-train-rogodin-first-sight .figure-nast {
  position: absolute; bottom: 34%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs-nast 6s ease-in-out infinite;
}
.scn-train-rogodin-first-sight .figure-rog {
  position: absolute; bottom: 10%; right: 15%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs-rog 4s ease-in-out infinite;
}
.scn-train-rogodin-first-sight .lamp {
  position: absolute; bottom: 65%; left: 5%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 2px; box-shadow: inset 0 0 6px rgba(0,0,0,.5);
}
.scn-train-rogodin-first-sight .shadow {
  position: absolute; bottom: 8%; left: 60%; width: 25%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: fs-shadow 4s ease-in-out infinite;
}
@keyframes fs-carriage { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fs-nast { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fs-rog { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes fs-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(.85) } 100% { opacity: .5; transform: scaleX(1) } }

/* item-diamond-earrings */
.scn-item-diamond-earrings {
  background: linear-gradient(180deg, #c8b898 0%, #a08868 50%, #786058 100%), radial-gradient(ellipse at 50% 60%, #d8c8a8 0%, transparent 70%);
}
.scn-item-diamond-earrings .table {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-item-diamond-earrings .case {
  position: absolute; bottom: 30%; left: 50%; width: 40%; height: 18%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 6px 14px rgba(0,0,0,.5);
  animation: earr-case 8s ease-in-out infinite alternate;
}
.scn-item-diamond-earrings .earring-left {
  position: absolute; bottom: 42%; left: 35%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f0e8d0 0%, #c0b890 60%, #a09070 100%);
  border-radius: 50% 50% 60% 60% / 40% 40% 60% 60%;
  box-shadow: 0 0 10px 2px rgba(200,180,140,.5);
  transform: rotate(-15deg);
  animation: earr-sparkle 3s ease-in-out infinite;
}
.scn-item-diamond-earrings .earring-right {
  position: absolute; bottom: 42%; left: 58%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f0e8d0 0%, #c0b890 60%, #a09070 100%);
  border-radius: 50% 50% 60% 60% / 40% 40% 60% 60%;
  box-shadow: 0 0 10px 2px rgba(200,180,140,.5);
  transform: rotate(15deg);
  animation: earr-sparkle 3s ease-in-out infinite 1.5s;
}
.scn-item-diamond-earrings .hand {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0b8a0 0%, #b09880 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: earr-hand 5s ease-in-out infinite;
}
.scn-item-diamond-earrings .candle {
  position: absolute; bottom: 20%; left: 15%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px; box-shadow: inset 0 0 8px rgba(0,0,0,.3);
}
.scn-item-diamond-earrings .glow {
  position: absolute; bottom: 25%; left: 10%; width: 14%; height: 18%;
  background: radial-gradient(circle, rgba(255,220,160,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: earr-glow 4s ease-in-out infinite alternate;
}
@keyframes earr-case { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes earr-sparkle { 0% { opacity: .7; transform: rotate(-15deg) scale(1) } 50% { opacity: 1; transform: rotate(-15deg) scale(1.15) } 100% { opacity: .7; transform: rotate(-15deg) scale(1) } }
@keyframes earr-hand { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes earr-glow { 0% { opacity: .3; transform: scale(1) } 100% { opacity: .6; transform: scale(1.1) } }

/* prince-moral-argument */
.scn-prince-moral-argument {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e3c9a8 40%, #c9a87a 100%),
    radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 60%);
}
.scn-prince-moral-argument .wall-left {
  position: absolute; inset: 0 50% 0 0; background: linear-gradient(135deg, #d9c09c, #b3956e);
  animation: pa-wall 6s ease-in-out infinite alternate;
}
.scn-prince-moral-argument .wall-right {
  position: absolute; inset: 0 0 0 50%; background: linear-gradient(225deg, #d9c09c, #a6885e);
  animation: pa-wall 6s ease-in-out infinite alternate-reverse;
}
.scn-prince-moral-argument .floor { position: absolute; inset: 60% 0 0 0; background: linear-gradient(180deg, #a37b5a, #7a5c3e); }
.scn-prince-moral-argument .window {
  position: absolute; top: 18%; left: 10%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #fff9e6 0%, #f0dbb0 100%);
  border: 4px solid #8b6f4a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,220,140,0.5);
  animation: pa-window 8s ease-in-out infinite;
}
.scn-prince-moral-argument .beam {
  position: absolute; top: 18%; left: 10%; width: 28%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  filter: blur(4px);
  animation: pa-beam 4s ease-in-out infinite alternate;
}
.scn-prince-moral-argument .table {
  position: absolute; bottom: 28%; left: 40%; width: 22%; height: 18%;
  background: linear-gradient(180deg, #8b6f4a, #6b5133);
  border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-prince-moral-argument .figure-prince {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1813 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-figure-prince 2s ease-in-out infinite alternate;
}
.scn-prince-moral-argument .figure-servant {
  position: absolute; bottom: 30%; left: 62%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2c221b 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa-figure-servant 1.8s ease-in-out infinite alternate;
}
.scn-prince-moral-argument .chair {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #7a5c3e, #4a3724);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pa-chair 3s ease-in-out infinite;
}
@keyframes pa-wall { 0% { filter: brightness(1); } 50% { filter: brightness(0.9); } 100% { filter: brightness(1.1); } }
@keyframes pa-window { 0% { box-shadow: inset 0 0 30px rgba(255,220,140,0.5); } 50% { box-shadow: inset 0 0 60px rgba(255,220,140,0.7); } 100% { box-shadow: inset 0 0 30px rgba(255,220,140,0.5); } }
@keyframes pa-beam { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes pa-figure-prince { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes pa-figure-servant { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes pa-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* gania-introduction */
.scn-gania-introduction {
  background: 
    linear-gradient(180deg, #fcf6ed 0%, #f0e4d0 50%, #dcc4a8 100%),
    radial-gradient(ellipse at 60% 30%, #fffcf0 0%, transparent 50%);
}
.scn-gania-introduction .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f7ede0, #e8d6c0);
  animation: gi-backdrop 10s ease-in-out infinite alternate;
}
.scn-gania-introduction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d3ba9a, #b08a6a);
}
.scn-gania-introduction .window {
  position: absolute; top: 10%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #eef6ff 0%, #cce0f5 100%);
  border: 4px solid #b09a80; border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(200,220,255,0.4);
  animation: gi-window 6s ease-in-out infinite;
}
.scn-gania-introduction .curtain-left {
  position: absolute; top: 8%; left: 10%; width: 15%; height: 44%;
  background: linear-gradient(90deg, #b8957a, #d9b398);
  border-radius: 4px;
  animation: gi-curtain 8s ease-in-out infinite;
}
.scn-gania-introduction .curtain-right {
  position: absolute; top: 8%; left: 75%; width: 15%; height: 44%;
  background: linear-gradient(90deg, #d9b398, #b8957a);
  border-radius: 4px;
  animation: gi-curtain 8s ease-in-out infinite reverse;
}
.scn-gania-introduction .figure-gania {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gi-bow 4s ease-in-out infinite;
}
.scn-gania-introduction .figure-prince {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1813 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gi-stand 5s ease-in-out infinite;
}
.scn-gania-introduction .hand-wave {
  position: absolute; bottom: 38%; left: 57%; width: 8px; height: 6px;
  background: #5a4a3a; border-radius: 50%;
  animation: gi-hand 2s ease-in-out infinite alternate;
}
.scn-gania-introduction .picture-frame {
  position: absolute; top: 14%; right: 8%; width: 12%; height: 20%;
  background: linear-gradient(135deg, #c9a87a, #9c7c5a);
  border: 3px solid #7a5c3e; border-radius: 4px;
  animation: gi-frame 12s ease-in-out infinite alternate;
}
@keyframes gi-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gi-window { 0% { box-shadow: inset 0 0 20px rgba(200,220,255,0.4); } 50% { box-shadow: inset 0 0 40px rgba(200,220,255,0.7); } 100% { box-shadow: inset 0 0 20px rgba(200,220,255,0.4); } }
@keyframes gi-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes gi-bow { 0% { transform: rotate(0deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes gi-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gi-hand { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(6px) rotate(15deg); } }
@keyframes gi-frame { 0% { filter: brightness(1); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); } }

/* prince-meets-general */
.scn-prince-meets-general {
  background: 
    linear-gradient(180deg, #f3ecd3 0%, #e0d4b8 40%, #cbb99c 100%),
    radial-gradient(ellipse at 40% 30%, #fff9e6 0%, transparent 50%);
}
.scn-prince-meets-general .backdrop {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e5dcc8, #d0c2a8);
  animation: pg-backdrop 8s ease-in-out infinite alternate;
}
.scn-prince-meets-general .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c4a88a, #9c7c5a);
}
.scn-prince-meets-general .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 18%; height: 50%;
  background: linear-gradient(90deg, #8b6f4a, #6b5133);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: pg-bookshelf 6s ease-in-out infinite;
}
.scn-prince-meets-general .desk {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #b3956e, #7a5c3e);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-prince-meets-general .figure-prince {
  position: absolute; bottom: 28%; left: 32%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1813 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pg-figure-prince 4s ease-in-out infinite;
}
.scn-prince-meets-general .figure-general {
  position: absolute; bottom: 28%; left: 58%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pg-figure-general 3s ease-in-out infinite alternate;
}
.scn-prince-meets-general .clock {
  position: absolute; top: 12%; right: 15%; width: 16%; height: 20%;
  background: radial-gradient(circle, #f5e6d0 0%, #c9a87a 100%);
  border: 3px solid #7a5c3e; border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: pg-clock 2s ease-in-out infinite;
}
.scn-prince-meets-general .lamp {
  position: absolute; top: 8%; left: 50%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #d9b398, transparent);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 20px rgba(255,200,120,0.5);
  animation: pg-lamp 5s ease-in-out infinite alternate;
}
@keyframes pg-backdrop { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pg-bookshelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pg-figure-prince { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes pg-figure-general { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pg-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(0deg); } }
@keyframes pg-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px rgba(255,200,120,0.5); } 50% { opacity: 1; box-shadow: 0 0 40px rgba(255,200,120,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 20px rgba(255,200,120,0.5); } }

/* general-skeptical */
.scn-general-skeptical {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c2a4 50%, #bda884 100%),
    radial-gradient(ellipse at 30% 40%, #fff3e0 0%, transparent 60%);
}
.scn-general-skeptical .backdrop {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #dccdb5, #cbb99c);
  animation: gs-backdrop 7s ease-in-out infinite alternate;
}
.scn-general-skeptical .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b08a6a, #8b6f4a);
}
.scn-general-skeptical .desk {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #a88a68, #7a5c3e);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-general-skeptical .papers {
  position: absolute; bottom: 38%; left: 45%; width: 12%; height: 4%;
  background: #f5ecd8;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: gs-papers 3s ease-in-out infinite alternate;
}
.scn-general-skeptical .chair {
  position: absolute; bottom: 28%; left: 28%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #7a5c3e, #4a3724);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gs-chair 4s ease-in-out infinite;
}
.scn-general-skeptical .figure-general {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2e24 0%, #1f1813 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gs-figure-general 1.5s ease-in-out infinite alternate;
}
.scn-general-skeptical .figure-prince {
  position: absolute; bottom: 30%; left: 60%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gs-figure-prince 2.5s ease-in-out infinite alternate;
}
.scn-general-skeptical .lamp {
  position: absolute; top: 10%; left: 50%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #d9b398, transparent);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 25px rgba(255,180,80,0.6);
  animation: gs-lamp 3s ease-in-out infinite alternate;
}
.scn-general-skeptical .shadow {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15), rgba(0,0,0,0.05));
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: gs-shadow 5s ease-in-out infinite alternate;
}
@keyframes gs-backdrop { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes gs-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-2deg); } }
@keyframes gs-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gs-figure-general { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes gs-figure-prince { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(-1px) rotate(1deg); } }
@keyframes gs-lamp { 0% { opacity: 0.7; box-shadow: 0 0 25px rgba(255,180,80,0.6); } 50% { opacity: 1; box-shadow: 0 0 50px rgba(255,180,80,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 25px rgba(255,180,80,0.6); } }
@keyframes gs-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.05); opacity: 0.7; } 100% { transform: scaleX(0.95); opacity: 0.5; } }

.scn-prince-talks-about-abroad { background: linear-gradient(135deg, #f5ecd7 0%, #e8d5b3 40%, #c9b899 100%), radial-gradient(ellipse at 20% 30%, #fff8e7 0%, transparent 70%); }
.scn-prince-talks-about-abroad .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a58b6f 0%, #8b7355 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.1); }
.scn-prince-talks-about-abroad .window { position:absolute; top:12%; right:12%; width:28%; height:50%; background: linear-gradient(180deg, #c4d4e6 0%, #a0b8d0 100%); border: 4px solid #6b543e; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.15); animation: prab-window 8s ease-in-out infinite alternate; }
.scn-prince-talks-about-abroad .chair-left { position:absolute; bottom:22%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 80%, #7a634c 0%, #4f3d2c 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: prab-chair-l 6s ease-in-out infinite; }
.scn-prince-talks-about-abroad .chair-right { position:absolute; bottom:22%; right:22%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 80%, #7a634c 0%, #4f3d2c 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: prab-chair-r 6s ease-in-out infinite 1s; }
.scn-prince-talks-about-abroad .figure-left { position:absolute; bottom:22%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #3a322a 0%, #1f1a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translate(10px, -8px) rotate(4deg); animation: prab-figure-l 5s ease-in-out infinite; }
.scn-prince-talks-about-abroad .figure-right { position:absolute; bottom:22%; right:22%; width:40px; height:70px; background: linear-gradient(180deg, #3a322a 0%, #1f1a15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translate(-10px, -8px) rotate(-4deg); animation: prab-figure-r 5s ease-in-out infinite 1s; }
.scn-prince-talks-about-abroad .lamp-glow { position:absolute; bottom:38%; left:8%; width:60px; height:60px; background: radial-gradient(circle, #f9e2a0 0%, #e8b87a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #f9e2a0; animation: prab-lamp 4s ease-in-out infinite alternate; }
.scn-prince-talks-about-abroad .rug { position:absolute; bottom:24%; left:15%; width:70%; height:8%; background: linear-gradient(90deg, #7a5a3a 0%, #a08060 50%, #7a5a3a 100%); border-radius: 40% / 100% 100% 0 0; filter: blur(2px); animation: prab-rug 12s ease-in-out infinite; }
@keyframes prab-window { 0% { opacity:.85; transform: translateY(0) } 50% { opacity:1; transform: translateY(-4px) } 100% { opacity:.9; transform: translateY(2px) } }
@keyframes prab-chair-l { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes prab-chair-r { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(1deg) translateY(-2px) } }
@keyframes prab-figure-l { 0% { transform: translate(10px, -8px) rotate(4deg) } 50% { transform: translate(12px, -10px) rotate(2deg) } 100% { transform: translate(10px, -8px) rotate(4deg) } }
@keyframes prab-figure-r { 0% { transform: translate(-10px, -8px) rotate(-4deg) } 50% { transform: translate(-12px, -10px) rotate(-2deg) } 100% { transform: translate(-10px, -8px) rotate(-4deg) } }
@keyframes prab-lamp { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes prab-rug { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-prince-discusses-execution { background: linear-gradient(180deg, #f2efe8 0%, #d6cfc4 40%, #b0a89c 100%), radial-gradient(ellipse at 80% 20%, #ffffff 0%, transparent 60%); }
.scn-prince-discusses-execution .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7e72 0%, #5c5248 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-prince-discusses-execution .wall-panel { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e0d8cc 0%, #c2b9ac 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); }
.scn-prince-discusses-execution .clock { position:absolute; top:15%; left:70%; width:70px; height:70px; background: radial-gradient(circle, #f5f0e0 30%, #b8a89a 70%, #6a5c4e 100%); border-radius: 50%; border: 4px solid #3d3228; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: pde-clock 3s ease-in-out infinite; }
.scn-prince-discusses-execution .shadow-stripe { position:absolute; top:8%; left:30%; width:4px; height:80%; background: rgba(0,0,0,.15); transform: skewX(-10deg); filter: blur(3px); animation: pde-stripe 4s ease-in-out infinite alternate; }
.scn-prince-discusses-execution .figure-standing { position:absolute; bottom:20%; left:25%; width:30px; height:90px; background: linear-gradient(180deg, #2c2824 0%, #13110f 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(2deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: pde-stand 5s ease-in-out infinite; }
.scn-prince-discusses-execution .figure-seated { position:absolute; bottom:20%; right:28%; width:50px; height:70px; background: linear-gradient(180deg, #2c2824 0%, #13110f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg) scale(.9); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: pde-seat 6s ease-in-out infinite 1s; }
.scn-prince-discusses-execution .table { position:absolute; bottom:18%; left:40%; width:120px; height:20px; background: linear-gradient(180deg, #6a5c4e 0%, #4a3e32 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pde-table 8s ease-in-out infinite; }
@keyframes pde-clock { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) scale(1.02) } }
@keyframes pde-stripe { 0% { opacity:.4; transform: skewX(-10deg) } 50% { opacity:.8; transform: skewX(-5deg) } 100% { opacity:.5; transform: skewX(-12deg) } }
@keyframes pde-stand { 0% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) translateY(-3px) } 100% { transform: rotate(2deg) } }
@keyframes pde-seat { 0% { transform: rotate(-5deg) scale(.9) } 50% { transform: rotate(-2deg) scale(.95) translateY(-2px) } 100% { transform: rotate(-5deg) scale(.9) } }
@keyframes pde-table { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }

.scn-prince-execution-details { background: linear-gradient(180deg, #f5f3f0 0%, #dad4cb 50%, #b0a89c 100%), radial-gradient(ellipse at 70% 30%, #fff 0%, transparent 60%); }
.scn-prince-execution-details .frame-beam { position:absolute; top:5%; left:40%; width:20%; height:70%; background: linear-gradient(90deg, #5c5248 0%, #3d3228 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,.3); animation: ped-beam 3s ease-in-out infinite alternate; }
.scn-prince-execution-details .blade { position:absolute; top:8%; left:46%; width:8%; height:60%; background: linear-gradient(180deg, #d0c8b8 0%, #a09888 100%); clip-path: polygon(30% 100%, 70% 100%, 60% 0%, 40% 0%); transform-origin: top center; animation: ped-blade 8s ease-in-out infinite; }
.scn-prince-execution-details .basket { position:absolute; bottom:5%; left:35%; width:30%; height:12%; background: radial-gradient(ellipse at 50% 30%, #6a5c4e 0%, #3d3228 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: ped-basket 5s ease-in-out infinite; }
.scn-prince-execution-details .rope-coil { position:absolute; top:12%; left:44%; width:12%; height:8%; background: radial-gradient(ellipse at 50% 50%, #8a7e72 0%, #5c5248 100%); border-radius: 50%; filter: blur(2px); animation: ped-rope 4s ease-in-out infinite; }
.scn-prince-execution-details .spotlight { position:absolute; top:0; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,240,.6) 0%, transparent 60%); animation: ped-spot 6s ease-in-out infinite alternate; }
.scn-prince-execution-details .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3d3228 0%, #1a1512 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); }
.scn-prince-execution-details .wall-light { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #ece6df 0%, #cbc4b8 100%); opacity:.9; }
@keyframes ped-beam { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes ped-blade { 0% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(200%) rotate(2deg) } 50% { transform: translateY(200%) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ped-basket { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-2px) } }
@keyframes ped-rope { 0% { opacity:.6; transform: rotate(0deg) } 50% { opacity:1; transform: rotate(5deg) } 100% { opacity:.7; transform: rotate(-3deg) } }
@keyframes ped-spot { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }

.scn-prince-execution-horror { background: linear-gradient(180deg, #1e1b18 0%, #2a2520 50%, #0f0d0b 100%), radial-gradient(ellipse at 50% 30%, #6b5a4a 0%, transparent 70%); }
.scn-prince-execution-horror .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0d0b 0%, #1a1613 100%); }
.scn-prince-execution-horror .spot-circle { position:absolute; top:0; left:20%; width:60%; height:80%; background: radial-gradient(ellipse at 50% 40%, rgba(220,200,170,.2) 0%, transparent 60%); animation: peh-spot 5s ease-in-out infinite alternate; }
.scn-prince-execution-horror .profile-head { position:absolute; bottom:25%; left:38%; width:80px; height:100px; background: linear-gradient(180deg, #3a322c 0%, #1f1a15 100%); border-radius: 60% 40% 40% 60% / 60% 50% 50% 60%; transform: rotate(-8deg); box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: peh-head 4s ease-in-out infinite; }
.scn-prince-execution-horror .profile-shoulder { position:absolute; bottom:15%; left:30%; width:140px; height:80px; background: linear-gradient(180deg, #2a2420 0%, #1a1512 100%); border-radius: 40% 60% 30% 70% / 70% 60% 40% 30%; transform: rotate(5deg); animation: peh-shoulder 5s ease-in-out infinite; }
.scn-prince-execution-horror .eye { position:absolute; bottom:48%; left:44%; width:12px; height:16px; background: radial-gradient(circle at 40% 50%, #e8e0d0 0%, #1a1512 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,180,160,.4); animation: peh-eye 3s ease-in-out infinite; }
.scn-prince-execution-horror .cheek-glow { position:absolute; bottom:40%; left:40%; width:30px; height:20px; background: radial-gradient(circle, rgba(200,100,60,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: peh-cheek 4s ease-in-out infinite alternate; }
.scn-prince-execution-horror .hair-tuft { position:absolute; bottom:60%; left:42%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 0%, #1a1512 0%, transparent 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: peh-hair 6s ease-in-out infinite; }
@keyframes peh-spot { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes peh-head { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes peh-shoulder { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) } }
@keyframes peh-eye { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) scaleY(.9) } 100% { transform: scaleX(1) } }
@keyframes peh-cheek { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.7; transform: scale(1.4) } }
@keyframes peh-hair { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) scale(1.1) } 100% { transform: rotate(-10deg) } }

/* Scene: general-questions-prince (tense bright interior) */
.scn-general-questions-prince {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%);
}
.scn-general-questions-prince .window {
  position: absolute; top: 5%; left: 20%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #dce8f0 0%, #b0c8d8 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.6);
  animation: qp-window 4s ease-in-out infinite alternate;
}
.scn-general-questions-prince .table {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a2a 100%);
  border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: qp-table 3s ease-in-out infinite;
}
.scn-general-questions-prince .lamp-swing {
  position: absolute; top: 20%; left: 50%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #d4a24e 0%, #b08040 100%);
  border-radius: 4px; transform-origin: top center;
  animation: qp-lamp 2.5s ease-in-out infinite;
}
.scn-general-questions-prince .figure-left {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qp-figure 5s ease-in-out infinite;
}
.scn-general-questions-prince .figure-right {
  position: absolute; bottom: 20%; right: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qp-figure 5s ease-in-out infinite reverse;
}
.scn-general-questions-prince .shadow-flicker {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.15) 100%);
  animation: qp-shadow 1.5s steps(2) infinite;
}
@keyframes qp-window {
  0% { opacity: .9; transform: scaleY(1); }
  50% { opacity: .6; transform: scaleY(1.02); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes qp-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes qp-lamp {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-6deg); }
}
@keyframes qp-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes qp-shadow {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}

/* Scene: general-relents (calm bright interior) */
.scn-general-relents {
  background: linear-gradient(180deg, #fdf8f0 0%, #e8dcc8 100%),
              radial-gradient(ellipse at 40% 30%, #ffffff 0%, transparent 70%);
}
.scn-general-relents .window-curtain {
  position: absolute; top: 0; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #efe0c0 0%, #d4c4a0 100%);
  border-radius: 0 0 20px 20px;
  animation: rl-curtain 12s ease-in-out infinite alternate;
}
.scn-general-relents .sofa {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.2);
  animation: rl-sofa 8s ease-in-out infinite;
}
.scn-general-relents .figure-seated {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rl-seated 10s ease-in-out infinite;
}
.scn-general-relents .figure-standing {
  position: absolute; bottom: 22%; right: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rl-standing 12s ease-in-out infinite;
}
.scn-general-relents .lamp-glow {
  position: absolute; top: 15%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(circle, #fff0c0 0%, #ffe080 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rl-glow 4s ease-in-out infinite alternate;
}
.scn-general-relents .breeze-sway {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: rl-breeze 15s linear infinite reverse;
}
@keyframes rl-curtain {
  0% { transform: translateX(-5px); opacity: .9; }
  50% { transform: translateX(5px); opacity: 1; }
  100% { transform: translateX(-3px); opacity: .95; }
}
@keyframes rl-sofa {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes rl-seated {
  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 rl-standing {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(3px) rotate(2deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rl-glow {
  0% { opacity: .6; transform: scale(.8); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes rl-breeze {
  0% { transform: translateX(-30px) rotate(-2deg); }
  50% { transform: translateX(30px) rotate(2deg); }
  100% { transform: translateX(-30px) rotate(-2deg); }
}

/* Scene: general-inquires-fortune (tense bright interior) */
.scn-general-inquires-fortune {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4b896 100%),
              radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 60%);
}
.scn-general-inquires-fortune .desk {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: if-desk 3s ease-in-out infinite;
}
.scn-general-inquires-fortune .paper-stack {
  position: absolute; bottom: 25%; left: 28%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #f0e4d0 0%, #d0c0a8 100%);
  border-radius: 2px;
  animation: if-paper 2s ease-in-out infinite alternate;
}
.scn-general-inquires-fortune .figure-left {
  position: absolute; bottom: 18%; left: 18%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-fig-l 4s ease-in-out infinite;
}
.scn-general-inquires-fortune .figure-right {
  position: absolute; bottom: 18%; right: 18%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-fig-r 5s ease-in-out infinite;
}
.scn-general-inquires-fortune .cup-shake {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #e8ddd0 0%, #c0b0a0 100%);
  border-radius: 4px;
  animation: if-cup 1.8s ease-in-out infinite;
}
.scn-general-inquires-fortune .shadow-stress {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,.2) 100%);
  animation: if-shadow 2s steps(3) infinite;
}
@keyframes if-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes if-paper {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes if-fig-l {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(4px) rotate(3deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes if-fig-r {
  0% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(-3px) rotate(-3deg); }
  80% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes if-cup {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes if-shadow {
  0% { opacity: .3; }
  33% { opacity: .6; }
  66% { opacity: .4; }
  100% { opacity: .3; }
}

/* Scene: general-hears-pavlicheff-story (calm bright interior) */
.scn-general-hears-pavlicheff-story {
  background: linear-gradient(180deg, #f5efe0 0%, #e0d4c0 100%),
              radial-gradient(ellipse at 50% 40%, #ffffff 0%, transparent 60%);
}
.scn-general-hears-pavlicheff-story .fireplace {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-general-hears-pavlicheff-story .mantel {
  position: absolute; bottom: 48%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px;
}
.scn-general-hears-pavlicheff-story .armchair-left {
  position: absolute; bottom: 16%; left: 14%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20px 20px 8px 8px;
  animation: hs-chair 10s ease-in-out infinite alternate;
}
.scn-general-hears-pavlicheff-story .armchair-right {
  position: absolute; bottom: 16%; right: 14%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20px 20px 8px 8px;
  animation: hs-chair 10s ease-in-out infinite alternate-reverse;
}
.scn-general-hears-pavlicheff-story .figure-left-sit {
  position: absolute; bottom: 20%; left: 18%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-sit 12s ease-in-out infinite;
}
.scn-general-hears-pavlicheff-story .figure-right-sit {
  position: absolute; bottom: 20%; right: 18%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-sit 12s ease-in-out infinite reverse;
}
.scn-general-hears-pavlicheff-story .fire-glow {
  position: absolute; bottom: 16%; left: 42%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffc080 0%, #ff8020 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: hs-fire 3s ease-in-out infinite alternate;
}
.scn-general-hears-pavlicheff-story .book {
  position: absolute; bottom: 24%; left: 50%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #b08040 0%, #806030 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,.2);
  animation: hs-book 8s ease-in-out infinite;
}
@keyframes hs-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hs-sit {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hs-fire {
  0% { opacity: .6; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(.9); }
}
@keyframes hs-book {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
}

.scn-prince-displays-caligraphy { background: linear-gradient(180deg, #fdf8ed 0%, #f2e3c6 60%, #d4b896 100%), radial-gradient(circle at 70% 30%, #fff4d4 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-prince-displays-caligraphy .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,244,212,.3) 0%, transparent 50%); }
.scn-prince-displays-caligraphy .desk { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5e3a24 0%, #3a2214 100%); border-radius: 70% 70% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-prince-displays-caligraphy .paper { position:absolute; bottom:35%; left:25%; width:38%; height:28%; background: linear-gradient(135deg, #fff8e7 0%, #f0dbb8 100%); border-radius: 3px; box-shadow: 0 8px 20px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.6); transform: rotate(-6deg); animation: cal-paper 8s ease-in-out infinite; }
.scn-prince-displays-caligraphy .hand { position:absolute; bottom:45%; left:58%; width:34px; height:48px; background: radial-gradient(circle at 40% 30%, #e8b898 0%, #c08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(12deg) translateY(0); transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: cal-hand 3.5s ease-in-out infinite; }
.scn-prince-displays-caligraphy .quill { position:absolute; bottom:55%; left:62%; width:4px; height:70px; background: linear-gradient(180deg, #f0e0d0 0%, #d0b8a0 40%, #2a2018 100%); transform: rotate(-22deg); transform-origin: bottom center; border-radius: 0 0 50% 50%; box-shadow: 0 0 6px rgba(0,0,0,.2); animation: cal-quill 3.5s ease-in-out infinite; }
.scn-prince-displays-caligraphy .inkwell { position:absolute; bottom:28%; left:32%; width:22px; height:22px; background: radial-gradient(circle at 40% 30%, #4a3a3a 0%, #1a1010 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.6), inset 0 -2px 4px rgba(0,0,0,.4); } .scn-prince-displays-caligraphy .shadow-hand { position:absolute; bottom:36%; left:48%; width:80px; height:24px; background: rgba(0,0,0,.12); border-radius: 50%; filter: blur(8px); transform: rotate(8deg); }
.scn-prince-displays-caligraphy .dust-a { position:absolute; top:20%; left:10%; width:4px; height:4px; background: #fff; border-radius: 50%; filter: blur(2px); opacity: 0; animation: cal-float-a 12s linear infinite; }
.scn-prince-displays-caligraphy .dust-b { position:absolute; top:40%; left:80%; width:6px; height:6px; background: #fff; border-radius: 50%; filter: blur(3px); opacity: 0; animation: cal-float-b 18s linear infinite; animation-delay: 2s; }
@keyframes cal-paper { 0%,100% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-4px); } }
@keyframes cal-hand { 0%,100% { transform: rotate(12deg) translateY(0) scaleX(1); } 33% { transform: rotate(14deg) translateY(-4px) scaleX(1.02); } 66% { transform: rotate(10deg) translateY(-2px) scaleX(.98); } }
@keyframes cal-quill { 0%,100% { transform: rotate(-22deg) translateY(0) scaleY(1); } 33% { transform: rotate(-18deg) translateY(-6px) scaleY(1.05); } 66% { transform: rotate(-24deg) translateY(-3px) scaleY(.95); } }
@keyframes cal-float-a { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .8; } 50% { transform: translateY(-80px) translateX(40px) scale(1.5); opacity: .4; } 100% { transform: translateY(-160px) translateX(80px) scale(2); opacity: 0; } }
@keyframes cal-float-b { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .6; } 50% { transform: translateY(-60px) translateX(-30px) scale(1.2); opacity: .3; } 100% { transform: translateY(-120px) translateX(-60px) scale(1.8); opacity: 0; } }

.scn-item-nastasia-portrait { background: linear-gradient(135deg, #fff 0%, #e8e0d0 100%), radial-gradient(circle at 80% 20%, #ffffff 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-item-nastasia-portrait .bg-tense { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(0,0,0,.05) 100%); }
.scn-item-nastasia-portrait .window { position:absolute; top:5%; right:5%; width:45%; height:65%; background: linear-gradient(180deg, #ffffff 0%, #f0ecd8 100%); border: 10px solid #8a7a6a; border-radius: 4px; box-shadow: inset 0 0 80px rgba(255,255,255,.9), 0 0 40px rgba(255,255,255,.2); }
.scn-item-nastasia-portrait .figure { position:absolute; bottom:15%; left:10%; width:90px; height:170px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%; transform: rotate(-6deg); transform-origin: bottom center; box-shadow: -10px 0 30px rgba(0,0,0,.2); animation: nas-figure 7s ease-in-out infinite; }
.scn-item-nastasia-portrait .portrait-frame { position:absolute; bottom:40%; left:40%; width:65px; height:85px; background: linear-gradient(135deg, #c8b088 0%, #8a7050 100%); border-radius: 6px; box-shadow: 0 8px 30px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,.3); transform: rotate(10deg); animation: nas-frame 7s ease-in-out infinite; }
.scn-item-nastasia-portrait .portrait-figure { position:absolute; bottom:42%; left:42%; width:50px; height:65px; background: radial-gradient(circle at 50% 30%, #702243 0%, #3a1018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.4); animation: nas-portrait 7s ease-in-out infinite; }
.scn-item-nastasia-portrait .shadow { position:absolute; bottom:8%; left:5%; width:140px; height:35px; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(12px); transform: rotate(-5deg); animation: nas-shadow 7s ease-in-out infinite; }
.scn-item-nastasia-portrait .glint { position:absolute; bottom:60%; left:58%; width:10px; height:10px; background: #ffffff; border-radius: 50%; box-shadow: 0 0 20px 12px rgba(255,255,255,.9); filter: blur(3px); animation: nas-glint 3s ease-in-out infinite alternate; }
@keyframes nas-figure { 0%,100% { transform: rotate(-6deg) translateX(0) scaleY(1); } 50% { transform: rotate(-2deg) translateX(8px) scaleY(1.02); } }
@keyframes nas-frame { 0%,100% { transform: rotate(10deg) translateY(0) scale(1); } 50% { transform: rotate(6deg) translateY(-8px) scale(1.03); } }
@keyframes nas-portrait { 0%,100% { transform: scale(1) translateX(0); } 50% { transform: scale(1.04) translateX(-3px); } }
@keyframes nas-shadow { 0%,100% { transform: rotate(-5deg) scaleX(1); opacity: .6; } 50% { transform: rotate(-8deg) scaleX(1.2); opacity: .9; } }
@keyframes nas-glint { 0% { opacity: .2; transform: scale(.8); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-general-warns-gania { background: linear-gradient(90deg, #2a2a3a 0%, #d4ccc4 35%, #ffffff 50%, #d4ccc4 65%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%); position:relative; overflow:hidden; }
.scn-general-warns-gania .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(0,0,0,.15) 100%); }
.scn-general-warns-gania .wall { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 100%); }
.scn-general-warns-gania .floor { position:absolute; bottom:0; left:-20%; right:-20%; height:45%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); transform: scaleY(.6) scaleX(1.5); transform-origin: bottom center; border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-general-warns-gania .general { position:absolute; bottom:15%; left:20%; width:90px; height:150px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(6deg); transform-origin: bottom center; box-shadow: -4px 0 20px rgba(0,0,0,.3); animation: gen-general 9s ease-in-out infinite; }
.scn-general-warns-gania .gania { position:absolute; bottom:18%; right:25%; width:65px; height:130px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-4deg); transform-origin: bottom center; box-shadow: 4px 0 20px rgba(0,0,0,.2); animation: gen-gania 9s ease-in-out infinite; }
.scn-general-warns-gania .shadow-long { position:absolute; bottom:2%; left:10%; width:350px; height:40px; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.05) 100%); border-radius: 50%; filter: blur(12px); transform: rotate(-12deg); animation: gen-shadow 9s ease-in-out infinite; }
.scn-general-warns-gania .letter { position:absolute; bottom:30%; left:48%; width:35px; height:45px; background: linear-gradient(135deg, #fff8e7 0%, #e0d0b0 100%); border-radius: 3px; box-shadow: 0 6px 16px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.6); transform: rotate(15deg); animation: gen-letter 5s ease-in-out infinite alternate; }
@keyframes gen-general { 0%,100% { transform: rotate(6deg) translateX(0) scaleY(1); } 50% { transform: rotate(10deg) translateX(-10px) scaleY(1.03); } }
@keyframes gen-gania { 0%,100% { transform: rotate(-4deg) translateX(0) scaleY(1); } 50% { transform: rotate(-1deg) translateX(12px) scaleY(.97); } }
@keyframes gen-shadow { 0%,100% { transform: rotate(-12deg) scaleX(1); opacity: .5; } 50% { transform: rotate(-6deg) scaleX(1.15); opacity: .9; } }
@keyframes gen-letter { 0% { transform: rotate(10deg) translateY(0) scale(1); } 50% { transform: rotate(18deg) translateY(-8px) scale(1.05); } 100% { transform: rotate(14deg) translateY(-4px) scale(1.02); } }

.scn-epanchin-family {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 30%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-epanchin-family .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(90deg, #e8d8b8 0%, #d4c4a8 50%, #e8d8b8 100%); animation: eph-wall 20s ease-in-out infinite;
}
.scn-epanchin-family .floor {
  bottom: 0; left: 0; right: 0; height: 20%; position: absolute; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 0 0;
}
.scn-epanchin-family .window {
  top: 10%; left: 25%; width: 40%; height: 50%; position: absolute; background: linear-gradient(180deg, #b0d0e8 0%, #e0f0ff 100%); border: 6px solid #806040; border-radius: 8px; box-shadow: inset 0 0 20px rgba(255,255,255,0.5); animation: eph-window 12s ease-in-out infinite;
}
.scn-epanchin-family .portrait {
  top: 12%; left: 12%; width: 12%; height: 20%; position: absolute; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border: 4px solid #b09070; border-radius: 4px; animation: eph-portrait 25s ease-in-out infinite;
}
.scn-epanchin-family .mother {
  bottom: 20%; left: 35%; width: 12%; height: 30%; position: absolute; background: linear-gradient(180deg, #f0c8a0 0%, #d0a080 50%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eph-mother 8s ease-in-out infinite;
}
.scn-epanchin-family .father {
  bottom: 20%; left: 55%; width: 14%; height: 34%; position: absolute; background: linear-gradient(180deg, #d8b898 0%, #b89878 50%, #987858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eph-father 9s ease-in-out infinite;
}
.scn-epanchin-family .child {
  bottom: 20%; left: 45%; width: 8%; height: 20%; position: absolute; background: linear-gradient(180deg, #e8c8b0 0%, #c8a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eph-child 7s ease-in-out infinite;
}
@keyframes eph-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes eph-window { 0% { box-shadow: inset 0 0 15px rgba(255,255,255,0.3); } 50% { box-shadow: inset 0 0 30px rgba(255,255,255,0.6); } 100% { box-shadow: inset 0 0 15px rgba(255,255,255,0.3); } }
@keyframes eph-portrait { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes eph-mother { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes eph-father { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes eph-child { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-prince-at-epanchin-door {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 50%, #a08868 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-prince-at-epanchin-door .door {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 90%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3018 100%); border: 4px solid #3a2010; border-radius: 4px; box-shadow: 0 0 30px rgba(0,0,0,0.5); animation: epd-door 3s ease-in-out infinite;
}
.scn-prince-at-epanchin-door .servant {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 40%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 50%, #0f1a20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epd-servant 4s ease-in-out infinite;
}
.scn-prince-at-epanchin-door .prince {
  position: absolute; bottom: 10%; left: 60%; width: 10%; height: 35%; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: epd-prince 2.5s ease-in-out infinite;
}
.scn-prince-at-epanchin-door .bundle {
  position: absolute; bottom: 10%; left: 68%; width: 5%; height: 8%; background: #5a4a3a; border-radius: 40% 40% 20% 20%; animation: epd-bundle 3s ease-in-out infinite;
}
.scn-prince-at-epanchin-door .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 5% 5% 0 0;
}
.scn-prince-at-epanchin-door .wall {
  position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); animation: epd-wall 10s ease-in-out infinite;
}
.scn-prince-at-epanchin-door .clock {
  position: absolute; top: 10%; right: 15%; width: 8%; height: 12%; background: radial-gradient(circle, #f0e68c 0%, #b8860b 100%); border: 2px solid #8b6508; border-radius: 50%; animation: epd-clock 1s ease-in-out infinite;
}
@keyframes epd-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes epd-servant { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes epd-prince { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes epd-bundle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes epd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes epd-clock { 0% { transform: rotate(0); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0); } }

.scn-prince-servant-conversation {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 50%, #b8a888 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 50%);
}
.scn-prince-servant-conversation .prince {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 35%; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esc-prince 10s ease-in-out infinite;
}
.scn-prince-servant-conversation .servant {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 40%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esc-servant 12s ease-in-out infinite;
}
.scn-prince-servant-conversation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%);
}
.scn-prince-servant-conversation .wall {
  position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
}
.scn-prince-servant-conversation .window {
  position: absolute; top: 10%; left: 10%; width: 25%; height: 40%; background: linear-gradient(180deg, #b0d0e8 0%, #e0f0ff 100%); border: 6px solid #806040; border-radius: 8px; box-shadow: inset 0 0 20px rgba(255,255,255,0.5); animation: esc-window 15s ease-in-out infinite;
}
.scn-prince-servant-conversation .chair {
  position: absolute; bottom: 10%; left: 40%; width: 8%; height: 15%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3018 100%); border-radius: 4px; transform-origin: bottom center; animation: esc-chair 20s ease-in-out infinite;
}
.scn-prince-servant-conversation .table {
  position: absolute; bottom: 10%; left: 42%; width: 14%; height: 5%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3018 100%); border-radius: 4px; animation: esc-table 18s ease-in-out infinite;
}
@keyframes esc-prince { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes esc-servant { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes esc-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes esc-chair { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes esc-table { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }

.scn-prince-smoke-request {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0d0b0 50%, #c8b898 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%);
}
.scn-prince-smoke-request .prince {
  position: absolute; bottom: 10%; left: 25%; width: 12%; height: 35%; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esm-prince 2s ease-in-out infinite;
}
.scn-prince-smoke-request .servant {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 40%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esm-servant 1.5s ease-in-out infinite;
}
.scn-prince-smoke-request .door {
  position: absolute; top: 5%; left: 35%; width: 20%; height: 90%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3018 100%); border: 4px solid #3a2010; border-radius: 4px; animation: esm-door 3s ease-in-out infinite;
}
.scn-prince-smoke-request .sign {
  position: absolute; top: 15%; right: 20%; width: 8%; height: 12%; background: radial-gradient(circle, #c8553d 0%, #a03a20 100%); border-radius: 50%; border: 2px solid #a03a20; animation: esm-sign 0.5s ease-in-out infinite;
}
.scn-prince-smoke-request .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%);
}
.scn-prince-smoke-request .wall {
  position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
}
.scn-prince-smoke-request .hat {
  position: absolute; bottom: 80%; left: 22%; width: 8%; height: 6%; background: #3a2a1a; border-radius: 50% 50% 10% 10%; animation: esm-hat 1s ease-in-out infinite;
}
@keyframes esm-prince { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes esm-servant { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes esm-door { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); } }
@keyframes esm-sign { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes esm-hat { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(15deg); } 100% { transform: translateY(0) rotate(0); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bg-building { position: absolute; pointer-events: none; }
.calm-glow { position: absolute; pointer-events: none; }
.child-l { position: absolute; pointer-events: none; }
.child-r { position: absolute; pointer-events: none; }
.cobble { position: absolute; pointer-events: none; }
.curious-glow { position: absolute; pointer-events: none; }
.dawn-sky-curious { position: absolute; pointer-events: none; }
.dawn-sky-dark { position: absolute; pointer-events: none; }
.dawn-sky-warm { position: absolute; pointer-events: none; }
.dim-glow { position: absolute; pointer-events: none; }
.overcast-sky { position: absolute; pointer-events: none; }
.shaft { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-evening-gathering-nastasia {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #c08040 0%, transparent 60%);
}
.scn-evening-gathering-nastasia .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); animation: evg-wall 10s ease-in-out infinite alternate; }
.scn-evening-gathering-nastasia .lamp { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: radial-gradient(circle, #e0c080 0%, #a07030 60%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 50px 20px rgba(200,140,60,0.6); animation: evg-lamp 3s ease-in-out infinite alternate; }
.scn-evening-gathering-nastasia .table { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:140px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: evg-table 8s ease-in-out infinite; }
.scn-evening-gathering-nastasia .chair-a { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: evg-chair 6s ease-in-out infinite; }
.scn-evening-gathering-nastasia .chair-b { position:absolute; bottom:30%; right:30%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: evg-chair 6s ease-in-out infinite 2s; }
.scn-evening-gathering-nastasia .chair-c { position:absolute; bottom:32%; left:50%; transform:translateX(-50%); width:28px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; animation: evg-chair 6s ease-in-out infinite 4s; }
.scn-evening-gathering-nastasia .figure-totski { position:absolute; bottom:28%; left:34%; width:16px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: evg-figure 8s ease-in-out infinite; }
.scn-evening-gathering-nastasia .figure-nastasia { position:absolute; bottom:28%; right:28%; width:16px; height:48px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: evg-figure 8s ease-in-out infinite 4s; }
@keyframes evg-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes evg-lamp { 0% { box-shadow: 0 0 40px 15px rgba(200,140,60,0.5); } 50% { box-shadow: 0 0 60px 25px rgba(200,140,60,0.7); } 100% { box-shadow: 0 0 35px 12px rgba(200,140,60,0.5); } }
@keyframes evg-table { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes evg-chair { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes evg-figure { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } }

.scn-confessions-game {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 50%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #c08040 0%, transparent 60%);
}
.scn-confessions-game .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%); animation: con-fade 12s ease-in-out infinite alternate; }
.scn-confessions-game .table { position:absolute; bottom:25%; left:50%; width:160px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-confessions-game .candle { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:8px; height:28px; background: linear-gradient(180deg, #e0c080 0%, #c08040 100%); border-radius:2px; box-shadow: 0 0 30px 10px rgba(200,130,40,0.7); animation: con-candle 4s ease-in-out infinite alternate; }
.scn-confessions-game .figure-ferdishenko { position:absolute; bottom:28%; left:25%; width:16px; height:46px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: con-figure 7s ease-in-out infinite; }
.scn-confessions-game .figure-totski { position:absolute; bottom:28%; left:42%; width:16px; height:48px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: con-figure 7s ease-in-out infinite 1.5s; }
.scn-confessions-game .figure-nastasia { position:absolute; bottom:28%; right:38%; width:16px; height:50px; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: con-figure 7s ease-in-out infinite 3s; }
.scn-confessions-game .figure-prince { position:absolute; bottom:28%; right:20%; width:15px; height:44px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: con-figure 7s ease-in-out infinite 4.5s; }
@keyframes con-fade { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes con-candle { 0% { transform:translateX(-50%) scaleY(1); box-shadow: 0 0 25px 8px rgba(200,130,40,0.6); } 50% { transform:translateX(-50%) scaleY(1.1); box-shadow: 0 0 35px 12px rgba(200,130,40,0.8); } 100% { transform:translateX(-50%) scaleY(1); box-shadow: 0 0 20px 6px rgba(200,130,40,0.5); } }
@keyframes con-figure { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-4px) rotate(-3deg); } 66% { transform: translateY(-2px) rotate(2deg); } }

.scn-money-in-fire {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #3a1a00 40%, #5a2a00 100%),
    radial-gradient(ellipse at 50% 60%, #ff6020 0%, #a02000 70%, transparent 100%);
}
.scn-money-in-fire .bg-fire { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #2a0a00 80%, #0a0000 100%); animation: mon-bg 8s ease-in-out infinite alternate; }
.scn-money-in-fire .hearth { position:absolute; bottom:20%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:30px 30px 10px 10px; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-money-in-fire .logs { position:absolute; bottom:28%; left:50%; transform:translateX(-50%); width:70px; height:12px; background: linear-gradient(90deg, #3a2010 0%, #5a3020 50%, #3a2010 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-money-in-fire .flame-a { position:absolute; bottom:35%; left:46%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 0%, #ff8030 0%, #ff4000 50%, transparent 100%); border-radius:40%; filter: blur(4px); animation: mon-flame 0.8s ease-in-out infinite alternate; }
.scn-money-in-fire .flame-b { position:absolute; bottom:38%; left:54%; width:16px; height:32px; background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, #ff6020 50%, transparent 100%); border-radius:40%; filter: blur(3px); animation: mon-flame 0.6s ease-in-out infinite alternate-reverse; }
.scn-money-in-fire .money { position:absolute; bottom:33%; left:50%; transform:translateX(-50%); width:30px; height:4px; background: #c08040; border-radius:2px; box-shadow: 0 0 8px 2px rgba(200,100,20,0.8); animation: mon-money 5s ease-in-out infinite; }
.scn-money-in-fire .figure-nastasia { position:absolute; bottom:24%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: mon-figure 7s ease-in-out infinite; }
.scn-money-in-fire .figure-rogogin { position:absolute; bottom:24%; right:28%; width:18px; height:58px; background: linear-gradient(180deg, #2a0a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: mon-figure 7s ease-in-out infinite 3.5s; }
@keyframes mon-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mon-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) translateY(-5px); opacity:1; } 100% { transform: scaleY(0.9) translateY(-2px); opacity:0.8; } }
@keyframes mon-money { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-50%) translateY(-2px) rotate(5deg); } 50% { transform:translateX(-50%) translateY(0) rotate(-3deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(2deg); } }
@keyframes mon-figure { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-6px) rotate(-4deg); } 66% { transform: translateY(-3px) rotate(3deg); } }

.scn-prince-moscow-inheritance {
  background: 
    linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 40%, #808890 100%),
    radial-gradient(ellipse at 30% 50%, #d0d8e0 0%, transparent 60%);
}
.scn-prince-moscow-inheritance .bg-overcast { position:absolute; inset:0; background: linear-gradient(180deg, #b0b8c0 0%, #a0a8b0 100%); animation: pri-bg 15s ease-in-out infinite alternate; }
.scn-prince-moscow-inheritance .window { position:absolute; top:10%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #c8d0d8 0%, #a0a8b0 100%); border:4px solid #6a7060; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: pri-window 20s ease-in-out infinite; }
.scn-prince-moscow-inheritance .tree { position:absolute; bottom:40%; left:5%; width:50px; height:80px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,0.2); animation: pri-tree 12s ease-in-out infinite alternate; }
.scn-prince-moscow-inheritance .carriage { position:absolute; bottom:25%; left:65%; width:60px; height:30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:10px 10px 4px 4px; box-shadow: -4px 0 10px rgba(0,0,0,0.3); animation: pri-carriage 18s ease-in-out infinite; }
.scn-prince-moscow-inheritance .figure-prince { position:absolute; bottom:30%; left:40%; width:14px; height:42px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: pri-figure 8s ease-in-out infinite; }
.scn-prince-moscow-inheritance .figure-colia { position:absolute; bottom:30%; left:48%; width:12px; height:36px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 30%; transform-origin: bottom center; animation: pri-figure 8s ease-in-out infinite 4s; }
@keyframes pri-bg { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.85; } }
@keyframes pri-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes pri-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes pri-carriage { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }
@keyframes pri-figure { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(-1deg); } }

/* Scene 1: wedding-day-flight (sunlit, dark mood) */
.scn-wedding-day-flight {
  background: linear-gradient(180deg, #8fc5e0 0%, #fce4b8 50%, #e8b86a 100%),
              radial-gradient(ellipse at 50% 100%, rgba(232,184,106,0.6) 0%, transparent 70%);
}
.scn-wedding-day-flight .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, transparent 100%);
  animation: wdf-sky 15s ease-in-out infinite alternate;
}
.scn-wedding-day-flight .sun {
  position: absolute; top:12%; left:70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd06a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,106,0.5);
  animation: wdf-sunpulse 8s ease-in-out infinite;
}
.scn-wedding-day-flight .station-roof {
  position: absolute; bottom:30%; left:10%; right:20%;
  height: 35%;
  background: linear-gradient(180deg, #4a3e34 0%, #2d241d 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
  animation: wdf-roofbreathe 12s ease-in-out infinite alternate;
}
.scn-wedding-day-flight .figure-a {
  position: absolute; bottom:28%; left:35%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wdf-run 3s steps(4) infinite;
}
.scn-wedding-day-flight .figure-b {
  position: absolute; bottom:28%; left:45%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #2d201a 0%, #160e0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wdf-run 3s steps(4) infinite 0.15s;
}
.scn-wedding-day-flight .steam {
  position: absolute; bottom:50%; left:60%;
  width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(240,235,220,0.7) 0%, transparent 70%);
  filter: blur(6px);
  animation: wdf-steam 20s linear infinite;
}
.scn-wedding-day-flight .ground {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a6548 0%, #3f3324 100%);
  animation: wdf-ground 14s ease-in-out infinite alternate;
}
@keyframes wdf-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes wdf-sunpulse { 0% { transform:scale(1); box-shadow:0 0 40px 20px rgba(255,208,106,0.5); } 50% { transform:scale(1.08); box-shadow:0 0 60px 30px rgba(255,208,106,0.7); } 100% { transform:scale(1); box-shadow:0 0 40px 20px rgba(255,208,106,0.5); } }
@keyframes wdf-roofbreathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wdf-run { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(6px,-1px) rotate(-2deg); } 50% { transform: translate(12px,0) rotate(0deg); } 75% { transform: translate(18px,-1px) rotate(2deg); } 100% { transform: translate(24px,0) rotate(0deg); } }
@keyframes wdf-steam { 0% { transform: translateX(-20px) translateY(0) scaleX(1); opacity:0.7; } 50% { transform: translateX(30px) translateY(-15px) scaleX(1.5); opacity:0.3; } 100% { transform: translateX(80px) translateY(-30px) scaleX(0.6); opacity:0; } }
@keyframes wdf-ground { 0% { background-position:0 0; } 100% { background-position:0 5px; } }

/* Scene 2: search-for-nastasia (dusk, dark mood) */
.scn-search-for-nastasia {
  background: linear-gradient(180deg, #2b2040 0%, #4a3b62 30%, #6b507a 60%, #8a6f7e 100%),
              radial-gradient(ellipse at 50% 0%, #a0889e 0%, transparent 70%);
}
.scn-search-for-nastasia .dusk-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a1f3a 0%, #5e4b6e 50%, #7c6278 100%);
  animation: sfn-dusk 20s ease-in-out infinite alternate;
}
.scn-search-for-nastasia .street {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3b3240 0%, #1f1a24 100%);
  animation: sfn-street 12s ease-in-out infinite alternate;
}
.scn-search-for-nastasia .building {
  position: absolute; bottom:25%; left:20%; right:20%;
  height: 50%;
  background: linear-gradient(180deg, #5a4a56 0%, #3b2f3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: sfn-build 8s ease-in-out infinite;
}
.scn-search-for-nastasia .window-blind {
  position: absolute; bottom:40%; left:45%;
  width: 24px; height: 30px;
  background: repeating-linear-gradient(0deg, #6b5b66 0px, #6b5b66 4px, #443a42 4px, #443a42 8px);
  border-radius: 2px;
  animation: sfn-blind 6s ease-in-out infinite;
}
.scn-search-for-nastasia .lamppost {
  position: absolute; bottom:30%; left:35%;
  width: 4px; height: 45px;
  background: linear-gradient(180deg, #c6a648 0%, #8a7a3a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(198,166,72,0.5);
  animation: sfn-lamp 5s ease-in-out infinite alternate;
}
.scn-search-for-nastasia .prince {
  position: absolute; bottom:20%; left:38%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #1e1a24 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sfn-walk 7s ease-in-out infinite;
}
.scn-search-for-nastasia .shadow {
  position: absolute; bottom:20%; left:38%;
  width: 30px; height: 6px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(3px);
  animation: sfn-shadow 7s ease-in-out infinite;
}
@keyframes sfn-dusk { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes sfn-street { 0% { background-position:0 0; } 100% { background-position:0 8px; } }
@keyframes sfn-build { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sfn-blind { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes sfn-lamp { 0% { box-shadow:0 0 15px 4px rgba(198,166,72,0.4); } 50% { box-shadow:0 0 30px 10px rgba(198,166,72,0.7); } 100% { box-shadow:0 0 15px 4px rgba(198,166,72,0.4); } }
@keyframes sfn-walk { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(4px,-1px) rotate(-1deg); } 50% { transform: translate(8px,0) rotate(0deg); } 75% { transform: translate(12px,-1px) rotate(1deg); } 100% { transform: translate(16px,0) rotate(0deg); } }
@keyframes sfn-shadow { 0% { transform: translate(0,0) scaleX(1); opacity:0.4; } 25% { transform: translate(4px,0) scaleX(1.1); opacity:0.5; } 50% { transform: translate(8px,0) scaleX(1); opacity:0.4; } 75% { transform: translate(12px,0) scaleX(1.1); opacity:0.5; } 100% { transform: translate(16px,0) scaleX(1); opacity:0.4; } }

/* Scene 3: vigil-over-dead-body (dim interior, dark mood) */
.scn-vigil-over-dead-body {
  background: linear-gradient(180deg, #2a2428 0%, #3d333a 30%, #4a3e46 60%, #534850 100%),
              radial-gradient(ellipse at 50% 100%, #1e1a1e 0%, transparent 70%);
}
.scn-vigil-over-dead-body .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3036 0%, #2a2428 100%);
  animation: vid-wall 30s ease-in-out infinite alternate;
}
.scn-vigil-over-dead-body .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1e1a1e 0%, #141216 100%);
  animation: vid-floor 40s linear infinite;
}
.scn-vigil-over-dead-body .window-sill {
  position: absolute; top:20%; left:35%; right:35%;
  height: 45%;
  background: #2f2930;
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.5);
  animation: vid-window 15s ease-in-out infinite alternate;
}
.scn-vigil-over-dead-body .mountain-outside {
  position: absolute; top:5%; left:30%; right:30%;
  height: 30%;
  background: linear-gradient(180deg, #3d3a42 0%, #2d2830 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: vid-mtn 25s ease-in-out infinite alternate;
}
.scn-vigil-over-dead-body .bed {
  position: absolute; bottom:20%; left:30%; right:30%;
  height: 18%;
  background: linear-gradient(180deg, #4a3e44 0%, #312a2e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: vid-bed 8s ease-in-out infinite;
}
.scn-vigil-over-dead-body .figure-lying {
  position: absolute; bottom:23%; left:35%;
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a3036 0%, #242026 100%);
  border-radius: 50% 40% 25% 25% / 60% 50% 30% 30%;
  animation: vid-lying 6s ease-in-out infinite alternate;
}
.scn-vigil-over-dead-body .figure-seated {
  position: absolute; bottom:23%; left:55%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #2e2830 0%, #1c1820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vid-seated 7s ease-in-out infinite;
}
@keyframes vid-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes vid-floor { 0% { background-position:0 0; } 50% { background-position:2px 0; } 100% { background-position:0 0; } }
@keyframes vid-window { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vid-mtn { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes vid-bed { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes vid-lying { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes vid-seated { 0% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }

/* pavlofsk-arrival – tense dusk exterior */
.scn-pavlofsk-arrival {
  background: linear-gradient(180deg, #2b1d3a 0%, #4a2e4a 30%, #7a5a3a 70%, #b08050 100%),
              radial-gradient(ellipse at 30% 100%, #b08050 0%, transparent 60%);
}
.scn-pavlofsk-arrival .sky-dusk {
  position: absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #2b1d3a 0%, #3a2a40 40%, #6a4a3a 100%);
  animation: pa-sky 14s ease-in-out infinite alternate;
}
.scn-pavlofsk-arrival .villa-sil {
  position: absolute; bottom:22%; left:25%; width:35%; height:35%;
  background: linear-gradient(180deg, #1a101a 0%, #0a080a 100%);
  border-radius: 4% 4% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: pa-villa 8s ease-in-out infinite alternate;
}
.scn-pavlofsk-arrival .tree-line {
  position: absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: pa-trees 20s ease-in-out infinite alternate;
}
.scn-pavlofsk-arrival .figure-prince {
  position: absolute; bottom:18%; left:48%; width:14px; height:32px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-walk 6s ease-in-out infinite;
}
.scn-pavlofsk-arrival .eyes-a,
.scn-pavlofsk-arrival .eyes-b {
  position: absolute; bottom:30%; width:6px; height:6px;
  background: radial-gradient(circle, #ffcc80 0%, #ffb040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffb040, 0 0 40px 12px rgba(255,176,64,0.3);
  animation: pa-eyes 3s ease-in-out infinite alternate;
}
.scn-pavlofsk-arrival .eyes-a { left:42%; }
.scn-pavlofsk-arrival .eyes-b { left:46%; animation-delay: 0.2s; }
.scn-pavlofsk-arrival .lamp-glow {
  position: absolute; bottom:28%; left:30%; width:10px; height:10px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pa-lamp 5s ease-in-out infinite alternate;
}
@keyframes pa-sky { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes pa-villa { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(0.98) } 100%{ transform: scaleY(1) } }
@keyframes pa-trees { 0%{ transform: translateX(0) } 50%{ transform: translateX(-2px) } 100%{ transform: translateX(2px) } }
@keyframes pa-walk { 0%{ transform: translateX(0) translateY(0) rotate(-2deg) } 25%{ transform: translateX(6px) translateY(-1px) rotate(1deg) } 50%{ transform: translateX(12px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(18px) translateY(-2px) rotate(2deg) } 100%{ transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes pa-eyes { 0%{ opacity:0.6; transform: scale(1) } 50%{ opacity:1; transform: scale(1.3) } 100%{ opacity:0.8; transform: scale(0.9) } }
@keyframes pa-lamp { 0%{ opacity:0.7; transform: scale(0.9) } 50%{ opacity:1; transform: scale(1.2) } 100%{ opacity:0.8; transform: scale(1) } }

/* rogojin-house-gorohovaya – dark dim interior */
.scn-rogojin-house-gorohovaya {
  background: linear-gradient(180deg, #1a1018 0%, #2a1a22 40%, #1a0a14 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a32 0%, transparent 70%);
}
.scn-rogojin-house-gorohovaya .wall-dark {
  position: absolute; inset:0 15% 0 10%;
  background: linear-gradient(90deg, #2a1a22 0%, #1a1018 50%, #2a1a22 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.7);
  animation: rh-wall 12s ease-in-out infinite alternate;
}
.scn-rogojin-house-gorohovaya .window-blind {
  position: absolute; top:10%; left:20%; width:30%; height:40%;
  background: linear-gradient(135deg, #3a2a32 0%, #1a1018 100%);
  border: 2px solid #2a1a22;
  border-radius: 2% 2% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: rh-blind 7s ease-in-out infinite alternate;
}
.scn-rogojin-house-gorohovaya .lamp-dim {
  position: absolute; top:15%; left:50%; width:8px; height:12px;
  background: radial-gradient(ellipse, #b08040 0%, #5a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #5a3020, 0 0 60px 20px rgba(90,48,32,0.3);
  animation: rh-lamp 4s ease-in-out infinite alternate;
}
.scn-rogojin-house-gorohovaya .figure-prince-left {
  position: absolute; bottom:20%; left:28%; width:16px; height:40px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: rh-figure1 9s ease-in-out infinite;
}
.scn-rogojin-house-gorohovaya .figure-rogojin-right {
  position: absolute; bottom:18%; right:28%; width:18px; height:42px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: rh-figure2 9s ease-in-out infinite 0.5s;
}
.scn-rogojin-house-gorohovaya .eye-glint {
  position: absolute; top:40%; right:35%; width:4px; height:4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd080;
  animation: rh-glint 2s ease-in-out infinite alternate;
}
@keyframes rh-wall { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes rh-blind { 0%{ transform: scale(1) } 50%{ transform: scale(0.98) } 100%{ transform: scale(1.02) } }
@keyframes rh-lamp { 0%{ box-shadow: 0 0 20px 6px #5a3020, 0 0 40px 12px rgba(90,48,32,0.2); opacity:0.8 } 50%{ box-shadow: 0 0 35px 12px #7a4030, 0 0 70px 20px rgba(122,64,48,0.4); opacity:1 } 100%{ box-shadow: 0 0 25px 8px #5a3020, 0 0 50px 15px rgba(90,48,32,0.3); opacity:0.9 } }
@keyframes rh-figure1 { 0%{ transform: translateY(0) rotate(5deg) } 50%{ transform: translateY(-3px) rotate(5deg) } 100%{ transform: translateY(2px) rotate(5deg) } }
@keyframes rh-figure2 { 0%{ transform: translateY(2px) rotate(-5deg) } 50%{ transform: translateY(-4px) rotate(-5deg) } 100%{ transform: translateY(0) rotate(-5deg) } }
@keyframes rh-glint { 0%{ opacity:0.3; transform: scale(0.5) } 50%{ opacity:1; transform: scale(1.5) } 100%{ opacity:0.6; transform: scale(0.8) } }

/* cross-exchange – tense dim interior with table */
.scn-cross-exchange {
  background: linear-gradient(180deg, #1a1418 0%, #2a2028 40%, #1a1018 100%),
              radial-gradient(ellipse at 50% 60%, #3a2830 0%, transparent 70%);
}
.scn-cross-exchange .room-shadow {
  position: absolute; inset:0 5% 0 5%;
  background: linear-gradient(135deg, #2a2028 0%, #1a1018 100%);
  border-radius: 3%;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  animation: ce-room 15s ease-in-out infinite alternate;
}
.scn-cross-exchange .table-knife {
  position: absolute; bottom:30%; left:40%; width:20%; height:4%;
  background: linear-gradient(90deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-cross-exchange .figure-prince {
  position: absolute; bottom:20%; left:30%; width:16px; height:38px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: ce-fig1 8s ease-in-out infinite;
}
.scn-cross-exchange .figure-rogojin {
  position: absolute; bottom:18%; right:30%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: ce-fig2 8s ease-in-out infinite 0.5s;
}
.scn-cross-exchange .candle-flame {
  position: absolute; bottom:35%; left:48%; width:6px; height:10px;
  background: radial-gradient(ellipse at center top, #ffd080 0%, #b06030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b06030, 0 0 40px 16px rgba(176,96,48,0.3);
  animation: ce-flame 1.5s ease-in-out infinite alternate;
}
.scn-cross-exchange .shadow-inner {
  position: absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,5,5,0.6) 100%);
  animation: ce-shadow 12s ease-in-out infinite alternate;
}
@keyframes ce-room { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes ce-fig1 { 0%{ transform: translateY(0) rotate(8deg) } 50%{ transform: translateY(-3px) rotate(6deg) } 100%{ transform: translateY(1px) rotate(8deg) } }
@keyframes ce-fig2 { 0%{ transform: translateY(0) rotate(-8deg) } 50%{ transform: translateY(-4px) rotate(-6deg) } 100%{ transform: translateY(2px) rotate(-8deg) } }
@keyframes ce-flame { 0%{ transform: scaleY(1) scaleX(0.8); opacity:0.7 } 50%{ transform: scaleY(1.3) scaleX(1); opacity:1 } 100%{ transform: scaleY(0.9) scaleX(0.9); opacity:0.8 } }
@keyframes ce-shadow { 0%{ opacity:0.5 } 50%{ opacity:0.8 } 100%{ opacity:0.4 } }

/* surrender-on-stairs – tense dim stair interior */
.scn-surrender-on-stairs {
  background: linear-gradient(180deg, #1a1218 0%, #2a1a22 50%, #1a0a14 100%),
              radial-gradient(ellipse at 50% 20%, #3a2830 0%, transparent 60%);
}
.scn-surrender-on-stairs .wall-stairs {
  position: absolute; inset:0 10% 0 10%;
  background: linear-gradient(90deg, #2a1a22 0%, #1a1018 50%, #2a1a22 100%);
  border-radius: 3%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: ss-wall 14s ease-in-out infinite alternate;
}
.scn-surrender-on-stairs .stairs-rise {
  position: absolute; bottom:0; left:0; right:0; height:70%;
  background: repeating-linear-gradient(0deg, #1a1018 0px, #1a1018 4px, #2a1a22 4px, #2a1a22 8px);
  clip-path: polygon(0% 100%, 0% 0%, 100% 0%, 100% 100%, 85% 80%, 70% 100%, 55% 80%, 40% 100%, 25% 80%, 10% 100%);
  animation: ss-stairs 20s ease-in-out infinite alternate;
}
.scn-surrender-on-stairs .figure-embrace {
  position: absolute; bottom:30%; left:40%; width:20px; height:42px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: ss-embrace 6s ease-in-out infinite;
}
.scn-surrender-on-stairs .door-slam {
  position: absolute; bottom:15%; right:15%; width:20%; height:40%;
  background: linear-gradient(180deg, #2a1a22 0%, #1a1018 100%);
  border: 2px solid #3a2a32;
  border-radius: 5%;
  animation: ss-door 8s ease-in-out infinite alternate;
}
.scn-surrender-on-stairs .lamp-above {
  position: absolute; top:10%; left:45%; width:10px; height:12px;
  background: radial-gradient(ellipse, #c08050 0%, #5a3020 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #5a3020, 0 0 80px 30px rgba(90,48,32,0.2);
  animation: ss-lamp 5s ease-in-out infinite alternate;
}
.scn-surrender-on-stairs .shadow-fall {
  position: absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(180deg, rgba(10,5,5,0.3) 0%, transparent 40%, rgba(10,5,5,0.6) 100%);
  animation: ss-shadow 10s ease-in-out infinite alternate;
}
@keyframes ss-wall { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes ss-stairs { 0%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } 100%{ transform: translateY(0) } }
@keyframes ss-embrace { 0%{ transform: translateY(0) rotate(0deg) } 30%{ transform: translateY(-2px) rotate(-3deg) } 60%{ transform: translateY(1px) rotate(2deg) } 100%{ transform: translateY(0) rotate(0deg) } }
@keyframes ss-door { 0%{ transform: scaleX(1) } 25%{ transform: scaleX(0.2) } 50%{ transform: scaleX(1) } 75%{ transform: scaleX(0.3) } 100%{ transform: scaleX(1) } }
@keyframes ss-lamp { 0%{ box-shadow: 0 0 30px 10px #5a3020, 0 0 60px 20px rgba(90,48,32,0.15); opacity:0.8 } 50%{ box-shadow: 0 0 50px 20px #7a4030, 0 0 100px 40px rgba(122,64,48,0.3); opacity:1 } 100%{ box-shadow: 0 0 35px 12px #5a3020, 0 0 70px 25px rgba(90,48,32,0.2); opacity:0.85 } }
@keyframes ss-shadow { 0%{ opacity:0.6 } 50%{ opacity:1 } 100%{ opacity:0.5 } }

.scn-ivoigin-family-flat {
  background: linear-gradient(180deg, #1e1c2a 0%, #2a2638 30%, #1a1820 100%),
              radial-gradient(ellipse at 30% 40%, #3a3244 0%, transparent 70%);
}
.scn-ivoigin-family-flat .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2c2638 0%, #1a1820 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: if-wall 12s ease-in-out infinite alternate;
}
.scn-ivoigin-family-flat .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #3a3028 0%, #2a2220 60%, #1a1412 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-ivoigin-family-flat .window-glow {
  position: absolute; top: 18%; left: 10%; width: 30px; height: 40px;
  background: radial-gradient(circle, #4a6080 0%, #2a3a50 70%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(74,96,128,.3), inset 0 0 10px rgba(255,255,255,.1);
  animation: if-glow 8s ease-in-out infinite alternate;
}
.scn-ivoigin-family-flat .figure-mother {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-figure 14s ease-in-out infinite;
}
.scn-ivoigin-family-flat .figure-sister {
  position: absolute; bottom: 34%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3040 0%, #1a1420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: if-figure 16s ease-in-out infinite reverse;
}
.scn-ivoigin-family-flat .figure-ferdi {
  position: absolute; bottom: 30%; left: 60%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  transform: rotate(5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,.6);
  animation: if-ferdi 10s ease-in-out infinite alternate;
}
.scn-ivoigin-family-flat .figure-general {
  position: absolute; bottom: 28%; left: 70%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-8deg) translateY(4px);
  animation: if-general 6s ease-in-out infinite;
}
@keyframes if-wall {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes if-glow {
  0% { box-shadow: 0 0 20px 5px rgba(74,96,128,.3), inset 0 0 8px rgba(255,255,255,.05); opacity: .7; }
  50% { box-shadow: 0 0 40px 12px rgba(74,96,128,.5), inset 0 0 12px rgba(255,255,255,.15); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(74,96,128,.35), inset 0 0 10px rgba(255,255,255,.08); opacity: .8; }
}
@keyframes if-figure {
  0% { transform: translateY(0) rotate(-2deg) scaleY(1); }
  33% { transform: translateY(-2px) rotate(1deg) scaleY(1.02); }
  66% { transform: translateY(-1px) rotate(-1deg) scaleY(0.98); }
  100% { transform: translateY(0) rotate(2deg) scaleY(1); }
}
@keyframes if-ferdi {
  0% { transform: rotate(3deg) translateX(0); }
  100% { transform: rotate(-3deg) translateX(4px); }
}
@keyframes if-general {
  0% { transform: rotate(-8deg) translateY(4px) scaleX(1); }
  25% { transform: rotate(-6deg) translateY(6px) scaleX(1.02); }
  50% { transform: rotate(-10deg) translateY(2px) scaleX(0.98); }
  75% { transform: rotate(-5deg) translateY(5px) scaleX(1.01); }
  100% { transform: rotate(-8deg) translateY(4px) scaleX(1); }
}

.scn-nastasia-bursts-in {
  background: linear-gradient(180deg, #1a1820 0%, #2a2230 40%, #1e1a2a 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-nastasia-bursts-in .doorway {
  position: absolute; inset: 10% 15% 20% 15%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  animation: nb-door 5s ease-in-out infinite alternate;
}
.scn-nastasia-bursts-in .bell-broken {
  position: absolute; top: 8%; left: 40%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
  transform-origin: top center;
  animation: nb-bell 2s ease-in-out infinite;
}
.scn-nastasia-bursts-in .figure-nastasia {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1e2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(10deg) translateX(-8px);
  box-shadow: -6px 0 12px rgba(0,0,0,.6);
  animation: nb-nasta 3s ease-in-out infinite;
}
.scn-nastasia-bursts-in .figure-gania {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1) translateX(-10px);
  animation: nb-gania 4s ease-in-out infinite reverse;
}
.scn-nastasia-bursts-in .figure-mother {
  position: absolute; bottom: 34%; left: 65%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nb-fig 6s ease-in-out infinite alternate;
}
.scn-nastasia-bursts-in .figure-sister {
  position: absolute; bottom: 35%; left: 72%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a3040 0%, #1a1420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nb-fig 7s ease-in-out infinite alternate-reverse;
}
.scn-nastasia-bursts-in .shadow-burst {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 50%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,.8) 0%, transparent 70%);
  animation: nb-shadow 3s ease-in-out infinite alternate;
}
@keyframes nb-door {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); }
}
@keyframes nb-bell {
  0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(0deg); }
}
@keyframes nb-nasta {
  0% { transform: rotate(8deg) translateX(-8px) scaleY(1); }
  33% { transform: rotate(12deg) translateX(-12px) scaleY(1.05); }
  66% { transform: rotate(5deg) translateX(-4px) scaleY(0.95); }
  100% { transform: rotate(10deg) translateX(-8px) scaleY(1); }
}
@keyframes nb-gania {
  0% { transform: scaleX(-1) translateX(-10px) translateY(0); }
  50% { transform: scaleX(-1) translateX(-14px) translateY(-2px); }
  100% { transform: scaleX(-1) translateX(-10px) translateY(0); }
}
@keyframes nb-fig {
  0% { opacity: .6; transform: translateY(0); }
  100% { opacity: 1; transform: translateY(-3px); }
}
@keyframes nb-shadow {
  0% { opacity: .7; } 100% { opacity: 1; }
}

.scn-slap-and-defence {
  background: linear-gradient(180deg, #c8b898 0%, #e0d0b0 30%, #d0c0a0 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 70%);
}
.scn-slap-and-defence .wall-bright {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
}
.scn-slap-and-defence .floor-bright {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #b8a890 0%, #d0b8a0 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: sd-floor 8s ease-in-out infinite alternate;
}
.scn-slap-and-defence .figure-varia {
  position: absolute; bottom: 38%; left: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #b87878 0%, #905858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-varia 4s ease-in-out infinite;
}
.scn-slap-and-defence .figure-gania {
  position: absolute; bottom: 35%; left: 42%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-gania 2s ease-in-out infinite alternate;
}
.scn-slap-and-defence .figure-prince {
  position: absolute; bottom: 36%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-prince 3s ease-in-out infinite;
}
.scn-slap-and-defence .catch-arm {
  position: absolute; bottom: 42%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(30deg);
  box-shadow: -2px 0 4px rgba(0,0,0,.3);
  animation: sd-arm 2s ease-in-out infinite alternate;
}
.scn-slap-and-defence .shadow-slap {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 45% 100%, rgba(0,0,0,.4) 0%, transparent 60%);
  animation: sd-shadow 3s ease-in-out infinite alternate;
}
@keyframes sd-floor {
  0% { opacity: .9; } 100% { opacity: 1; }
}
@keyframes sd-varia {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  75% { transform: translateY(-5px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sd-gania {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-2px) rotate(5deg) scaleX(1.05); }
  100% { transform: translateY(0) rotate(-5deg) scaleX(0.95); }
}
@keyframes sd-prince {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sd-arm {
  0% { transform: rotate(25deg) translateX(0); }
  100% { transform: rotate(35deg) translateX(4px); }
}
@keyframes sd-shadow {
  0% { opacity: .6; } 100% { opacity: .9; }
}

.scn-gania-apologizes {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 30%, #1a1210 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-gania-apologizes .bg-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1e1410 0%, #2a1e1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: ga-bg 12s ease-in-out infinite alternate;
}
.scn-gania-apologizes .floor-dim {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #2a1a12 0%, #1e1210 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-gania-apologizes .figure-gania {
  position: absolute; bottom: 35%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-gania 5s ease-in-out infinite;
}
.scn-gania-apologizes .figure-prince {
  position: absolute; bottom: 35%; left: 48%; width: 20px; 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: ga-prince 6s ease-in-out infinite reverse;
}
.scn-gania-apologizes .glow-warm {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 50px;
  background: radial-gradient(circle, #a06030 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ga-glow 8s ease-in-out infinite alternate;
}
.scn-gania-apologizes .shadow-others {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 60%);
  animation: ga-shadow 10s ease-in-out infinite alternate;
}
@keyframes ga-bg {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes ga-gania {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  33% { transform: translateY(-3px) rotate(1deg) scaleX(1.03); }
  66% { transform: translateY(-1px) rotate(-1deg) scaleX(0.97); }
  100% { transform: translateY(0) rotate(2deg) scaleX(1); }
}
@keyframes ga-prince {
  0% { transform: translateY(0) rotate(2deg) scaleX(1); }
  50% { transform: translateY(-2px) rotate(-1deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(-2deg) scaleX(0.98); }
}
@keyframes ga-glow {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.2); }
  100% { opacity: .6; transform: scale(0.9); }
}
@keyframes ga-shadow {
  0% { opacity: .7; } 100% { opacity: .9; }
}

.scn-pre-fit-ecstasy {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #3a1f12 40%, #2a150a 100%),
    radial-gradient(ellipse at 30% 70%, #5a2f1a 0%, transparent 60%);
}
.scn-pre-fit-ecstasy .darkroom {
  position: absolute; inset: 0; background: rgba(10,5,3,0.7); animation: pre-dim 8s ease-in-out infinite alternate;
}
.scn-pre-fit-ecstasy .window {
  position: absolute; top: 15%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #f0c070 0%, #d09050 100%);
  border-radius: 4px; box-shadow: 0 0 40px 8px #a06020, 0 0 80px 20px rgba(160,96,32,0.3);
  animation: pre-win 6s ease-in-out infinite;
}
.scn-pre-fit-ecstasy .aura {
  position: absolute; top: 40%; left: 50%; width: 120px; height: 160px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(180,120,60,0.25) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px); animation: pre-aura 4s ease-in-out infinite alternate;
}
.scn-pre-fit-ecstasy .figure {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 42px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pre-fig 5s ease-in-out infinite;
}
.scn-pre-fit-ecstasy .lamp {
  position: absolute; bottom: 35%; left: 38%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0d080 0%, #c08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: pre-lamp 3s ease-in-out infinite alternate;
}
.scn-pre-fit-ecstasy .dust {
  position: absolute; width: 4px; height: 4px; border-radius: 50%;
  background: rgba(200,160,100,0.4); filter: blur(1px);
  animation: pre-dust 12s linear infinite;
}
.scn-pre-fit-ecstasy .particle-a { top: 25%; left: 20%; animation-delay: 0s; }
.scn-pre-fit-ecstasy .particle-b { top: 35%; left: 60%; animation-delay: -4s; }
.scn-pre-fit-ecstasy .particle-c { top: 45%; left: 10%; animation-delay: -8s; }

@keyframes pre-dim {
  0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes pre-win {
  0% { box-shadow: 0 0 20px 4px #a06020, 0 0 40px 10px rgba(160,96,32,0.3); }
  50% { box-shadow: 0 0 50px 12px #f0c070, 0 0 80px 20px rgba(240,192,112,0.4); }
  100% { box-shadow: 0 0 30px 8px #a06020, 0 0 60px 15px rgba(160,96,32,0.3); }
}
@keyframes pre-aura {
  0% { transform: translate(-50%, -50%) scale(0.8); opacity:0.5; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity:0.9; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity:0.6; }
}
@keyframes pre-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes pre-lamp {
  0% { opacity:0.7; transform: scale(0.9); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(1); }
}
@keyframes pre-dust {
  0% { transform: translateY(0) translateX(0) rotate(0deg); opacity:0; }
  10% { opacity:0.6; }
  90% { opacity:0.3; }
  100% { transform: translateY(-30vh) translateX(20px) rotate(360deg); opacity:0; }
}

/* ===== knife-attack-stairs ===== */
.scn-knife-attack-stairs {
  background:
    linear-gradient(180deg, #0f0a0a 0%, #1a1212 40%, #0f0a0a 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 70%);
}
.scn-knife-attack-stairs .stair-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 40px, rgba(255,255,255,0.03) 40px, rgba(255,255,255,0.03) 42px);
  animation: kni-stair-gl 10s linear infinite;
}
.scn-knife-attack-stairs .stair-rail {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #1e1515 40%, #2a1e1e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 20%, 85% 20%, 85% 40%, 70% 40%, 70% 60%, 55% 60%, 55% 80%, 40% 80%, 40% 100%, 0% 100%);
  animation: kni-rail 2s ease-in-out infinite alternate;
}
.scn-knife-attack-stairs .figure-prince {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: kni-prince 1s ease-in-out infinite alternate;
}
.scn-knife-attack-stairs .figure-rogojin {
  position: absolute; bottom: 38%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0707 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) scaleX(-1);
  animation: kni-rogo 0.8s ease-in-out infinite alternate;
}
.scn-knife-attack-stairs .knife {
  position: absolute; bottom: 40%; left: 45%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #8a6a4a 0%, #c0a080 50%, #8a6a4a 100%);
  border-radius: 2px; transform: rotate(40deg);
  box-shadow: 0 0 6px 2px #a08060;
  animation: kni-knife 0.6s ease-in-out infinite alternate;
}
.scn-knife-attack-stairs .shadow-splash {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(10,5,5,0.6) 0%, transparent 70%);
  animation: kni-splash 2s ease-in-out infinite alternate;
}
.scn-knife-attack-stairs .fit-light {
  position: absolute; top: 20%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(8px); animation: kni-flash 1.5s ease-in-out infinite;
}

@keyframes kni-stair-gl {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes kni-rail {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px); }
}
@keyframes kni-prince {
  0% { transform: rotate(10deg) translateX(0); }
  100% { transform: rotate(5deg) translateX(4px); }
}
@keyframes kni-rogo {
  0% { transform: rotate(-15deg) translateX(0) scaleX(-1); }
  100% { transform: rotate(-20deg) translateX(-3px) scaleX(-1); }
}
@keyframes kni-knife {
  0% { transform: rotate(40deg) translateX(0); opacity:0.8; }
  50% { transform: rotate(45deg) translateX(2px); opacity:1; }
  100% { transform: rotate(35deg) translateX(-2px); opacity:0.9; }
}
@keyframes kni-splash {
  0% { transform: scale(0.8); opacity:0.3; }
  100% { transform: scale(1.2); opacity:0.7; }
}
@keyframes kni-flash {
  0% { opacity:0; transform: scale(0.5); }
  50% { opacity:0.5; transform: scale(1.5); }
  100% { opacity:0; transform: scale(0.8); }
}

/* ===== burdovsky-claim ===== */
.scn-burdovsky-claim {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #e8dcc8 100%),
    radial-gradient(ellipse at 80% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-burdovsky-claim .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  animation: bur-room 8s ease-in-out infinite alternate;
}
.scn-burdovsky-claim .window-harsh {
  position: absolute; top: 10%; left: 70%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #faf8f0 0%, #e0d0b0 100%);
  border-radius: 2px; box-shadow: 0 0 30px 10px #f0e0c0, 0 0 60px 20px rgba(240,224,192,0.5);
  animation: bur-win 6s ease-in-out infinite;
}
.scn-burdovsky-claim .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a09078 0%, #807060 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-burdovsky-claim .figure-antip {
  position: absolute; bottom: 22%; left: 15%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #0f0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); animation: bur-antip 4s ease-in-out infinite;
}
.scn-burdovsky-claim .figure-doktorenko {
  position: absolute; bottom: 24%; left: 32%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg); animation: bur-dokt 3s ease-in-out infinite alternate;
}
.scn-burdovsky-claim .figure-keller {
  position: absolute; bottom: 20%; left: 52%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg) scaleX(-1); animation: bur-kell 5s ease-in-out infinite;
}
.scn-burdovsky-claim .figure-hippolyte {
  position: absolute; bottom: 22%; left: 68%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a221a 0%, #0f0c08 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; /* thinner figure */
  transform: rotate(2deg); animation: bur-hipp 6s ease-in-out infinite alternate;
}
.scn-burdovsky-claim .table {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #887870 0%, #605048 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

@keyframes bur-room {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes bur-win {
  0% { box-shadow: 0 0 20px 5px #f0e0c0, 0 0 40px 10px rgba(240,224,192,0.3); }
  50% { box-shadow: 0 0 50px 15px #fff8e0, 0 0 80px 25px rgba(255,248,224,0.5); }
  100% { box-shadow: 0 0 30px 8px #f0e0c0, 0 0 60px 15px rgba(240,224,192,0.4); }
}
@keyframes bur-antip {
  0% { transform: rotate(5deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(3px); }
  50% { transform: rotate(6deg) translateX(1px); }
  75% { transform: rotate(4deg) translateX(-2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes bur-dokt {
  0% { transform: rotate(-3deg) translateY(0); }
  100% { transform: rotate(-6deg) translateY(-2px); }
}
@keyframes bur-kell {
  0% { transform: rotate(-8deg) translateX(0) scaleX(-1); }
  50% { transform: rotate(-4deg) translateX(-4px) scaleX(-1); }
  100% { transform: rotate(-8deg) translateX(0) scaleX(-1); }
}
@keyframes bur-hipp {
  0% { transform: rotate(2deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-3px); }
}

/* ===== exposure-of-fraud ===== */
.scn-exposure-of-fraud {
  background:
    linear-gradient(180deg, #e4d4bc 0%, #c4b098 50%, #d4c0a8 100%),
    radial-gradient(ellipse at 60% 20%, #f0e0c8 0%, transparent 70%);
}
.scn-exposure-of-fraud .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d8c4ac 0%, #b8a088 100%);
  animation: exp-room 10s ease-in-out infinite alternate;
}
.scn-exposure-of-fraud .window-harsh {
  position: absolute; top: 8%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff8ec 0%, #e8d4b8 100%);
  border-radius: 2px; box-shadow: 0 0 40px 12px #f0dcc0, 0 0 70px 20px rgba(240,220,192,0.4);
  animation: exp-win 5s ease-in-out infinite;
}
.scn-exposure-of-fraud .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a09078 0%, #807060 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-exposure-of-fraud .figure-gania {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg); animation: exp-gania 2s ease-in-out infinite alternate;
}
.scn-exposure-of-fraud .figure-burdovsky {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a221a 0%, #0f0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) scaleX(-1); animation: exp-burd 3s ease-in-out infinite;
}
.scn-exposure-of-fraud .envelope {
  position: absolute; bottom: 28%; left: 48%; width: 28px; height: 18px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 2px; transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: exp-env 4s ease-in-out infinite;
}
.scn-exposure-of-fraud .scatter-paper {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 16px;
  background: #e8d8c0;
  border-radius: 1px; transform: rotate(40deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: exp-paper 6s ease-in-out infinite alternate;
}
.scn-exposure-of-fraud .light-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent 0%, transparent 30px, rgba(255,255,230,0.05) 30px, rgba(255,255,230,0.05) 32px);
  animation: exp-rays 15s linear infinite;
}
.scn-exposure-of-fraud .shadow-chaos {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 100px;
  background: radial-gradient(ellipse, rgba(20,15,10,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: exp-shadow 3s ease-in-out infinite alternate;
}

@keyframes exp-room {
  0% { opacity:0.9; } 100% { opacity:1; }
}
@keyframes exp-win {
  0% { box-shadow: 0 0 30px 8px #f0dcc0, 0 0 50px 15px rgba(240,220,192,0.3); }
  50% { box-shadow: 0 0 60px 15px #fff0d8, 0 0 100px 30px rgba(255,240,216,0.5); }
  100% { box-shadow: 0 0 40px 10px #f0dcc0, 0 0 70px 20px rgba(240,220,192,0.4); }
}
@keyframes exp-gania {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(-15deg) translateX(5px); }
}
@keyframes exp-burd {
  0% { transform: rotate(15deg) translateX(0) scaleX(-1); }
  50% { transform: rotate(10deg) translateX(-3px) scaleX(-1); }
  100% { transform: rotate(15deg) translateX(0) scaleX(-1); }
}
@keyframes exp-env {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-4px); }
  100% { transform: rotate(-15deg) translateY(2px); }
}
@keyframes exp-paper {
  0% { transform: rotate(40deg) translateY(0); }
  100% { transform: rotate(50deg) translateY(-3px); }
}
@keyframes exp-rays {
  0% { background-position: 0 0; }
  100% { background-position: 100px 100px; }
}
@keyframes exp-shadow {
  0% { transform: scale(1); opacity:0.5; }
  100% { transform: scale(1.3); opacity:0.8; }
}

/* Scene: nastasia-backstory (dim interior) */
.scn-nastasia-backstory {
  background:
    linear-gradient(180deg, #1e1a1a 0%, #2a2220 40%, #3a2e2a 100%),
    radial-gradient(ellipse at 60% 30%, #4a3a30 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-nastasia-backstory .wall-dark {
  position: absolute; inset: 0 0 25% 20%;
  background: linear-gradient(135deg, #2a2420 0%, #1a1612 60%, #0e0c0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px #00000066;
  animation: ns1-shadow 12s ease-in-out infinite alternate;
}
.scn-nastasia-backstory .desk {
  position: absolute; bottom: 17%; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e241e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(8deg);
  animation: ns1-desk 20s ease-in-out infinite;
}
.scn-nastasia-backstory .lamp {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #a67c5e 0%, #7a5a3e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px #a67c4e;
  transform-origin: bottom center;
  animation: ns1-lamp 6s ease-in-out infinite alternate;
}
.scn-nastasia-backstory .lamp-glow {
  position: absolute; bottom: 38%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d4a86a 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #b08040, 0 0 100px 40px #b0804066;
  animation: ns1-glow 4s ease-in-out infinite alternate;
}
.scn-nastasia-backstory .figure-silhouette {
  position: absolute; bottom: 20%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns1-figure 8s ease-in-out infinite;
}
.scn-nastasia-backstory .shadow-cast {
  position: absolute; bottom: 14%; left: 30%; width: 70px; height: 10px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-20deg);
  animation: ns1-shadow-move 8s ease-in-out infinite;
}
.scn-nastasia-backstory .curtain {
  position: absolute; top: 0; right: 0; width: 10%; height: 100%;
  background: linear-gradient(90deg, #2e2220 0%, #1c1412 100%);
  border-radius: 0 0 0 20%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: ns1-curtain 14s ease-in-out infinite alternate;
}
@keyframes ns1-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes ns1-desk { 0%,100% { transform: perspective(600px) rotateX(8deg) translateY(0); } 50% { transform: perspective(600px) rotateX(8deg) translateY(-2px); } }
@keyframes ns1-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes ns1-glow { 0% { opacity: 0.7; box-shadow: 0 0 40px 12px #b08040; } 50% { opacity: 1; box-shadow: 0 0 80px 30px #c09050, 0 0 120px 40px #c0905066; } 100% { opacity: 0.8; box-shadow: 0 0 50px 15px #b08040; } }
@keyframes ns1-figure { 0% { transform: translateX(-2px) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-0.5deg); } 75% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ns1-shadow-move { 0%,100% { transform: skewX(-20deg) translateX(0); opacity: 0.3; } 50% { transform: skewX(-20deg) translateX(5px); opacity: 0.5; } }
@keyframes ns1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }

/* Scene: epanchin-mother-doubt (tense, bright interior) */
.scn-epanchin-mother-doubt {
  background:
    linear-gradient(180deg, #f5eedd 0%, #e8dcca 40%, #d4c4aa 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 60%);
}
.scn-epanchin-mother-doubt .parlor-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcca 0%, #cfbc9e 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.05);
  animation: emd2-wall 20s ease-in-out infinite alternate;
}
.scn-epanchin-mother-doubt .sofa {
  position: absolute; bottom: 18%; left: 15%; width: 55%; height: 25%;
  background: linear-gradient(135deg, #7a6a52 0%, #5a4e3e 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
}
.scn-epanchin-mother-doubt .mother-figure {
  position: absolute; bottom: 28%; left: 22%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3e342a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: emd2-mother 6s ease-in-out infinite;
}
.scn-epanchin-mother-doubt .prince-figure {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3e342a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: emd2-prince 5s ease-in-out infinite alternate;
}
.scn-epanchin-mother-doubt .clock {
  position: absolute; top: 18%; right: 12%; width: 26px; height: 30px;
  background: linear-gradient(180deg, #8a7a62 0%, #5e4e3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.2);
  animation: emd2-clock 3s ease-in-out infinite;
}
.scn-epanchin-mother-doubt .carpet {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(90deg, #8a7a62 0%, #9a8a72 25%, #8a7a62 50%, #9a8a72 75%, #8a7a62 100%);
  border-radius: 40% 40% 0 0;
  animation: emd2-carpet 12s ease-in-out infinite alternate;
}
@keyframes emd2-wall { 0% { box-shadow: inset 0 20px 40px rgba(0,0,0,0.05); } 50% { box-shadow: inset 0 20px 40px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 20px 40px rgba(0,0,0,0.05); } }
@keyframes emd2-mother { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes emd2-prince { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes emd2-clock { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes emd2-carpet { 0% { background-position: 0 0; } 50% { background-position: -20px 0; } 100% { background-position: 0 0; } }

/* Scene: swiss-village-marie (warm, sunlit) */
.scn-swiss-village-marie {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 30%, #f0e68c 60%, #c6e2a0 100%),
    radial-gradient(ellipse at 60% 0%, #fff5e0 0%, transparent 60%);
}
.scn-swiss-village-marie .sky-sun {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #98d0f0 0%, #c8e6f0 100%);
  border-radius: 0 0 40% 40%;
  animation: svm3-sky 15s ease-in-out infinite alternate;
}
.scn-swiss-village-marie .mountains {
  position: absolute; bottom: 42%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #6a8e6a 0%, #4a6e4a 50%, #3a5e3a 100%);
  clip-path: polygon(0% 100%, 15% 50%, 25% 80%, 40% 30%, 55% 70%, 70% 20%, 85% 60%, 100% 40%, 100% 100%);
  animation: svm3-mountains 20s ease-in-out infinite alternate;
}
.scn-swiss-village-marie .meadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9e5a 0%, #5a7e3a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
  animation: svm3-meadow 18s ease-in-out infinite alternate;
}
.scn-swiss-village-marie .tree {
  position: absolute; bottom: 32%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a7a2a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: svm3-tree 9s ease-in-out infinite;
}
.scn-swiss-village-marie .children-group {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #d4b48a 0%, transparent 70%);
  border-radius: 50%;
  animation: svm3-children 7s ease-in-out infinite alternate;
}
.scn-swiss-village-marie .marie-figure {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: svm3-marie 10s ease-in-out infinite;
}
.scn-swiss-village-marie .sunbeams {
  position: absolute; top: 8%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(135deg, rgba(255,245,200,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: svm3-sunbeams 12s ease-in-out infinite alternate;
}
@keyframes svm3-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes svm3-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes svm3-meadow { 0% { background-position: 0 0; } 50% { background-position: -10px -5px; } 100% { background-position: 0 0; } }
@keyframes svm3-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes svm3-children { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes svm3-marie { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes svm3-sunbeams { 0% { opacity: 0.5; transform: rotate(-5deg) scale(0.9); } 50% { opacity: 0.8; transform: rotate(0deg) scale(1); } 100% { opacity: 0.6; transform: rotate(5deg) scale(0.95); } }

/* Scene: reading-faces-portrait (warm, bright interior) */
.scn-reading-faces-portrait {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #ddd0b8 40%, #c8b898 100%),
    radial-gradient(ellipse at 40% 40%, #fff5e0 0%, transparent 70%);
}
.scn-reading-faces-portrait .study-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcca 0%, #cfbc9e 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.08);
  animation: rfp4-wall 25s ease-in-out infinite alternate;
}
.scn-reading-faces-portrait .portrait-frame {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2e 100%);
  border: 4px solid #b09878;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: rfp4-portrait 14s ease-in-out infinite;
}
.scn-reading-faces-portrait .prince-half {
  position: absolute; bottom: 20%; left: 25%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3e342a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfp4-prince 8s ease-in-out infinite alternate;
}
.scn-reading-faces-portrait .mother-seated {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3e342a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfp4-mother 7s ease-in-out infinite;
}
.scn-reading-faces-portrait .agalya-profile {
  position: absolute; bottom: 22%; left: 40%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #8a7a62 0%, #5a4e3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfp4-aglaya 6s ease-in-out infinite alternate;
}
.scn-reading-faces-portrait .table-portrait {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #6a5a42 0%, #4a3a2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
  animation: rfp4-table 20s ease-in-out infinite;
}
@keyframes rfp4-wall { 0% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.08); } 50% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.03); } 100% { box-shadow: inset 0 10px 30px rgba(0,0,0,0.08); } }
@keyframes rfp4-portrait { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes rfp4-prince { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rfp4-mother { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rfp4-aglaya { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.02); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes rfp4-table { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } }

/* Hippolyte Farewell – dark mood, bright interior, window with red wall */
.scn-hippolyte-farewell {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a22 50%, #1a0f0a 100%),
              radial-gradient(ellipse at 80% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-hippolyte-farewell .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px #1a0f0a;
}
.scn-hippolyte-farewell .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
}
.scn-hippolyte-farewell .bed {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
}
.scn-hippolyte-farewell .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hf-breath 4s ease-in-out infinite;
}
.scn-hippolyte-farewell .lamp {
  position: absolute; bottom: 60%; left: 12%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.3);
  animation: hf-lamp 3s ease-in-out infinite alternate;
}
.scn-hippolyte-farewell .window {
  position: absolute; top: 10%; right: 8%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #c07050 0%, #a06040 80%);
  border: 4px solid #2a1a0a;
  box-shadow: inset 0 0 30px #804030, 0 0 10px rgba(192,112,80,0.3);
  animation: hf-window 12s ease-in-out infinite alternate;
}
.scn-hippolyte-farewell .tree-branch {
  position: absolute; top: 14%; right: 18%; width: 60px; height: 4px;
  background: #1a0f0a;
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: hf-branch 8s ease-in-out infinite;
}
@keyframes hf-breath {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hf-lamp {
  0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 15px rgba(255,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.35); opacity: 0.9; }
}
@keyframes hf-window {
  0% { opacity: 0.7; filter: brightness(0.8); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.9); }
}
@keyframes hf-branch {
  0% { transform: rotate(-30deg) translateX(0); }
  50% { transform: rotate(-28deg) translateX(3px); }
  100% { transform: rotate(-30deg) translateX(0); }
}

/* Epanchin Angry Departure – tense, bright interior, figures leaving */
.scn-epanchin-angry-departure {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%);
}
.scn-epanchin-angry-departure .hall-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 100%);
  box-shadow: inset 0 0 30px #1a0f0a;
}
.scn-epanchin-angry-departure .door {
  position: absolute; right: 5%; bottom: 15%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-left: 2px solid #4a3a2a;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
}
.scn-epanchin-angry-departure .stairs {
  position: absolute; left: 5%; bottom: 15%; width: 15%; height: 40%;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a4a3a 100%);
  transform: skewY(-10deg);
  transform-origin: bottom left;
}
.scn-epanchin-angry-departure .figure-1 {
  position: absolute; bottom: 18%; left: 25%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ea-walk 2.5s ease-in-out infinite;
}
.scn-epanchin-angry-departure .figure-2 {
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ea-walk 2.5s ease-in-out infinite 0.3s;
}
.scn-epanchin-angry-departure .window {
  position: absolute; top: 20%; left: 15%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, #a08060 0%, #705030 80%);
  border: 2px solid #1a0f0a;
  box-shadow: inset 0 0 20px #503020;
}
.scn-epanchin-angry-departure .carriage {
  position: absolute; top: 25%; left: 10%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  animation: ea-carriage 6s ease-in-out infinite;
}
@keyframes ea-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes ea-carriage {
  0% { transform: translateX(-20px); opacity: 0.8; }
  50% { transform: translateX(20px); opacity: 1; }
  100% { transform: translateX(-20px); opacity: 0.8; }
}

/* Letter to Aglaya – calm, bright interior, study */
.scn-letter-to-aglaya {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0b090 100%),
              radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 70%);
}
.scn-letter-to-aglaya .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #e0d0b0 0%, #f0e0c0 100%);
  box-shadow: inset 0 0 30px #b0a080;
}
.scn-letter-to-aglaya .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-letter-to-aglaya .chair {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
}
.scn-letter-to-aglaya .figure-prince {
  position: absolute; bottom: 25%; left: 40%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: la-calm 6s ease-in-out infinite;
}
.scn-letter-to-aglaya .figure-mrs {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: la-calm 6s ease-in-out infinite 0.5s;
}
.scn-letter-to-aglaya .letter {
  position: absolute; bottom: 25%; left: 45%; width: 14px; height: 10px;
  background: #fff8e0;
  border: 1px solid #c0b090;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-letter-to-aglaya .lamp-glow {
  position: absolute; top: 15%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff0c0 0%, #d0b080 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #d0b080, 0 0 60px 20px rgba(208,176,128,0.3);
  animation: la-glow 6s ease-in-out infinite alternate;
}
@keyframes la-calm {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes la-glow {
  0% { opacity: 0.85; box-shadow: 0 0 20px 5px #d0b080, 0 0 40px 10px rgba(208,176,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 25px rgba(255,208,128,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 6px #d0b080, 0 0 50px 15px rgba(208,176,128,0.25); }
}

/* Burdovsky Letter – tense, bright interior, argument */
.scn-burdovsky-letter {
  background: linear-gradient(180deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 40% 60%, #6a5a4a 0%, transparent 60%);
}
.scn-burdovsky-letter .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 100%);
  box-shadow: inset 0 0 40px #1a0f0a;
}
.scn-burdovsky-letter .sofa {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-burdovsky-letter .figure-she {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bl-rage 2s ease-in-out infinite;
}
.scn-burdovsky-letter .figure-prince {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bl-recoil 2s ease-in-out infinite 0.3s;
}
.scn-burdovsky-letter .letter {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 10px;
  background: #fff8e0;
  border: 1px solid #c0b090;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bl-letter 2s ease-in-out infinite;
}
.scn-burdovsky-letter .lamp-flicker {
  position: absolute; top: 20%; left: 25%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffc080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #c08040, 0 0 40px 10px rgba(192,128,64,0.4);
  animation: bl-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes bl-rage {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(4deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  75% { transform: translateX(4px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bl-recoil {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-5px) scaleX(0.95); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes bl-letter {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes bl-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 10px 2px #c08040, 0 0 20px 5px rgba(192,128,64,0.2); }
  50% { opacity: 1; box-shadow: 0 0 30px 8px #ffc080, 0 0 60px 15px rgba(255,192,128,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 15px 3px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); }
}

/* ---- general-ivolgin-napoleon-tale ---- */
.scn-general-ivolgin-napoleon-tale {
  background: linear-gradient(180deg, #f0e6d0 0%, #e6d4b0 40%, #c8a880 100%),
              radial-gradient(ellipse at 50% 100%, #f5e8c8 0%, transparent 70%);
}
.scn-general-ivolgin-napoleon-tale .gin-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ecdcc0 0%, #d8c4a0 100%);
  border-bottom: 4px solid #a08060;
}
.scn-general-ivolgin-napoleon-tale .gin-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-general-ivolgin-napoleon-tale .gin-rug {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(135deg, #c8553d 25%, #a0461a 25%, #a0461a 50%, #c8553d 50%, #c8553d 75%, #a0461a 75%);
  background-size: 20px 20px;
  border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: gin-rug 8s ease-in-out infinite alternate;
}
.scn-general-ivolgin-napoleon-tale .gin-napoleon-portrait {
  position: absolute; top: 8%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%);
  border: 4px solid #705840; border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gin-portrait 10s ease-in-out infinite alternate;
}
.scn-general-ivolgin-napoleon-tale .gin-napoleon-portrait::after {
  content: ''; position: absolute; top: 10px; left: 8px; width: 16px; height: 20px;
  background: radial-gradient(circle, #e6d4b0 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40%; /* napoleon head */
}
.scn-general-ivolgin-napoleon-tale .gin-general {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gin-general 6s ease-in-out infinite;
}
.scn-general-ivolgin-napoleon-tale .gin-pegleg {
  position: absolute; bottom: 12%; left: 58%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #b09070 0%, #705840 100%);
  border-radius: 0 0 4px 4px;
  animation: gin-peg 6s ease-in-out infinite;
}
.scn-general-ivolgin-napoleon-tale .gin-cane {
  position: absolute; bottom: 18%; left: 62%; width: 3px; height: 30px;
  background: #5a4a3a; border-radius: 2px;
  transform-origin: bottom center;
  animation: gin-cane 6s ease-in-out infinite alternate;
}
.scn-general-ivolgin-napoleon-tale .gin-shadow {
  position: absolute; bottom: 0; left: 50%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: gin-shadow 6s ease-in-out infinite alternate;
}
@keyframes gin-rug { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(1); } }
@keyframes gin-portrait { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes gin-general { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 25% { transform: translateY(-3px) rotate(0deg) scaleY(1.02); } 50% { transform: translateY(0) rotate(2deg) scaleY(1); } 75% { transform: translateY(-2px) rotate(0deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(-2deg) scaleY(1); } }
@keyframes gin-peg { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gin-cane { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes gin-shadow { 0% { transform: scaleX(0.8); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 1; } 100% { transform: scaleX(0.8); opacity: 0.6; } }

/* ---- napoleon-retreat-advice ---- */
.scn-napoleon-retreat-advice {
  background: linear-gradient(180deg, #f8e8d0 0%, #e8d0a8 40%, #c8a870 100%),
              radial-gradient(ellipse at 30% 100%, #ffe8c0 0%, transparent 60%);
}
.scn-napoleon-retreat-advice .nra-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d0b898 100%);
  border-bottom: 3px solid #a08060;
}
.scn-napoleon-retreat-advice .nra-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a88868 0%, #887050 100%);
}
.scn-napoleon-retreat-advice .nra-napoleon {
  position: absolute; bottom: 20%; left: 25%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: nra-nap 4s ease-in-out infinite alternate;
}
.scn-napoleon-retreat-advice .nra-napoleon::before {
  content: ''; position: absolute; top: 5px; left: 12px; width: 12px; height: 12px;
  background: #1a1a2a; border-radius: 50%; /* hat */
  transform: rotate(5deg);
}
.scn-napoleon-retreat-advice .nra-general {
  position: absolute; bottom: 22%; left: 60%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a5040 0%, #1a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nra-gen 5s ease-in-out infinite;
}
.scn-napoleon-retreat-advice .nra-desk {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #a89070 0%, #8a7050 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-napoleon-retreat-advice .nra-map {
  position: absolute; bottom: 20%; left: 44%; width: 30px; height: 35px;
  background: linear-gradient(135deg, #d8c898 0%, #c8b080 50%, #b09868 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  animation: nra-map 7s ease-in-out infinite alternate;
}
.scn-napoleon-retreat-advice .nra-shadow {
  position: absolute; bottom: 0; left: 20%; width: 70%; height: 12px;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: nra-shadow 6s ease-in-out infinite alternate;
}
@keyframes nra-nap { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes nra-gen { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-2px) scaleY(1.03); } 50% { transform: translateY(0) scaleY(1) rotate(2deg); } 75% { transform: translateY(-2px) scaleY(1.03) rotate(-2deg); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nra-map { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes nra-shadow { 0% { opacity: 0.5; transform: scaleX(0.9); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.9); } }

/* ---- hedgehog-token ---- */
.scn-hedgehog-token {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 40%, #c0a070 100%),
              radial-gradient(ellipse at 50% 30%, #ffedc0 0%, transparent 60%);
}
.scn-hedgehog-token .htk-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #d0b890 100%);
}
.scn-hedgehog-token .htk-wall {
  position: absolute; top: 0; left: 10%; right: 10%; height: 65%;
  background: linear-gradient(180deg, #dcc8a8 0%, #c8b090 50%, #b09878 100%);
  border-radius: 4px; box-shadow: inset 0 10px 30px rgba(0,0,0,0.05);
}
.scn-hedgehog-token .htk-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b09068 0%, #907050 100%);
}
.scn-hedgehog-token .htk-sofa {
  position: absolute; bottom: 8%; left: 20%; width: 100px; height: 35px;
  background: linear-gradient(180deg, #b07050 0%, #906040 100%);
  border-radius: 20% 20% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-hedgehog-token .htk-figure-mother {
  position: absolute; bottom: 14%; left: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #5e3a4a 0%, #3a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: htk-fig 6s ease-in-out infinite alternate;
}
.scn-hedgehog-token .htk-figure-father {
  position: absolute; bottom: 16%; left: 40%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #4a5030 0%, #2a3020 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: htk-fig 7s ease-in-out infinite alternate-reverse;
}
.scn-hedgehog-token .htk-figure-aglaya {
  position: absolute; bottom: 14%; left: 52%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: htk-fig 5s ease-in-out infinite alternate;
}
.scn-hedgehog-token .htk-hearth {
  position: absolute; bottom: 5%; left: 50%; width: 30px; height: 15px;
  background: radial-gradient(ellipse at 50% 100%, #ff7040 0%, #ff5030 40%, transparent 80%);
  filter: blur(6px);
  animation: htk-fire 3s ease-in-out infinite alternate;
}
.scn-hedgehog-token .htk-glow {
  position: absolute; bottom: 5%; left: 45%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,150,80,0.3) 0%, transparent 100%);
  animation: htk-glow 4s ease-in-out infinite alternate;
}
@keyframes htk-fig { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(3deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes htk-fire { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.3); } 100% { opacity: 0.6; transform: scaleY(1); } }
@keyframes htk-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(1); } }

/* ---- party-fear-seizure ---- */
.scn-party-fear-seizure {
  background: linear-gradient(180deg, #2a2040 0%, #1a1a2a 40%, #101018 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-party-fear-seizure .pfs-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3050 0%, #2a2040 100%);
  border-bottom: 2px solid #1a1a2a;
}
.scn-party-fear-seizure .pfs-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-party-fear-seizure .pfs-lamp {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -8px 20px rgba(200,160,100,0.5);
}
.scn-party-fear-seizure .pfs-lamp::before {
  content: ''; position: absolute; top: -8px; left: 2px; width: 16px; height: 16px;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.6);
  animation: pfs-lamp 3s ease-in-out infinite alternate;
}
.scn-party-fear-seizure .pfs-drunk {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pfs-drunk 4s ease-in-out infinite;
}
.scn-party-fear-seizure .pfs-prince {
  position: absolute; bottom: 12%; right: 25%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pfs-prince 3s ease-in-out infinite alternate;
}
.scn-party-fear-seizure .pfs-bed {
  position: absolute; bottom: 5%; right: 15%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-party-fear-seizure .pfs-shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: pfs-shadow 8s ease-in-out infinite alternate;
}
.scn-party-fear-seizure .pfs-letter {
  position: absolute; bottom: 18%; left: 50%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #d0c090 0%, #b0a070 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: pfs-letter 6s ease-in-out infinite;
}
@keyframes pfs-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(200,160,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(200,160,80,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,160,80,0.5); } }
@keyframes pfs-drunk { 0% { transform: translateY(0) rotate(-5deg) scaleY(1); } 50% { transform: translateY(-6px) rotate(6deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(-5deg) scaleY(1); } }
@keyframes pfs-prince { 0% { transform: translateY(0) rotate(-2deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(3deg) scaleY(1.03); } 100% { transform: translateY(0) rotate(-2deg) scaleY(1); } }
@keyframes pfs-shadow { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(1); } }
@keyframes pfs-letter { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }

/* Scene 1: overheard-confrontation (tense, bright-interior) */
.scn-overheard-confrontation {
  background:
    linear-gradient(180deg, #fff8e0 0%, #f5e6c8 40%, #e8d4a8 100%),
    radial-gradient(ellipse at 50% 20%, #ffffff60 0%, transparent 70%);
}
.scn-overheard-confrontation .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e2c8 0%, #dcc8a0 100%);
  animation: ohc-wall 12s ease-in-out infinite alternate;
}
.scn-overheard-confrontation .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #b89870 0%, #9a7a54 100%);
  box-shadow: inset 0 8px 20px #00000030;
}
.scn-overheard-confrontation .window {
  position: absolute; top: 10%; left: 12%; width: 28%; height: 48%;
  background: radial-gradient(ellipse at 50% 50%, #fff8d0 0%, #ffe094 70%, #d4b060 100%);
  border-radius: 4% 4% 6% 6% / 8% 8% 10% 10%;
  box-shadow: inset 0 0 30px #ffe8b060, 0 0 40px #ffe8b030;
  animation: ohc-window 4s ease-in-out infinite alternate;
}
.scn-overheard-confrontation .door {
  position: absolute; bottom: 30%; left: 45%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #6a5a3e 0%, #4a3a24 100%);
  border-radius: 6% 6% 2% 2% / 4% 4% 2% 2%;
  box-shadow: -2px 0 12px #00000040, inset 0 0 10px #1a1008;
  animation: ohc-door 6s ease-in-out infinite;
}
.scn-overheard-confrontation .figure-a {
  position: absolute; bottom: 32%; left: 30%; width: 12%; height: 50%;
  background: linear-gradient(100deg, #6a4a3a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ohc-fig-a 3s ease-in-out infinite;
}
.scn-overheard-confrontation .figure-b {
  position: absolute; bottom: 32%; left: 44%; width: 11%; height: 48%;
  background: linear-gradient(110deg, #4a3a2a 0%, #2a1a0a 60%, #1a1008 100%);
  border-radius: 45% 50% 40% 40% / 55% 60% 45% 45%;
  transform-origin: bottom center;
  animation: ohc-fig-b 2.8s ease-in-out infinite alternate;
}
.scn-overheard-confrontation .figure-c {
  position: absolute; bottom: 32%; right: 26%; width: 10%; height: 44%;
  background: linear-gradient(105deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%);
  border-radius: 50% 45% 40% 40% / 55% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ohc-fig-c 4s ease-in-out infinite;
}
@keyframes ohc-wall {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 2% 1%; }
  100% { opacity: 0.85; background-position: 0 0; }
}
@keyframes ohc-window {
  0% { box-shadow: inset 0 0 30px #ffe8b060, 0 0 40px #ffe8b030; transform: scale(0.98); }
  50% { box-shadow: inset 0 0 50px #ffe8b080, 0 0 60px #ffe8b060; transform: scale(1.02); }
  100% { box-shadow: inset 0 0 30px #ffe8b040, 0 0 40px #ffe8b020; transform: scale(0.99); }
}
@keyframes ohc-door {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(1deg); }
  75% { transform: translateX(-1%) rotate(-0.5deg); }
}
@keyframes ohc-fig-a {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4%) translateY(-1%) rotate(1deg); }
  50% { transform: translateX(8%) translateY(0) rotate(-2deg); }
  75% { transform: translateX(4%) translateY(-1%) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes ohc-fig-b {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ohc-fig-c {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2%) translateY(-1%); }
}

/* Scene 2: lebedev-suspects-ferdishenko (tense, dim-interior) */
.scn-lebedev-suspects-ferdishenko {
  background:
    linear-gradient(180deg, #1c1a3a 0%, #2a2440 40%, #1e1a30 100%),
    radial-gradient(ellipse at 40% 30%, #3a3060 0%, transparent 70%);
}
.scn-lebedev-suspects-ferdishenko .wall {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(180deg, #2c2848 0%, #1c1830 100%);
  animation: lsf-wall 10s ease-in-out infinite alternate;
}
.scn-lebedev-suspects-ferdishenko .floor {
  position: absolute; inset: 75% 0 0 0;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%);
  box-shadow: inset 0 10px 20px #00000050;
}
.scn-lebedev-suspects-ferdishenko .desk {
  position: absolute; bottom: 28%; left: 8%; width: 45%; height: 38%;
  background: linear-gradient(180deg, #5a4a36 0%, #3a2a1a 100%);
  border-radius: 2% 2% 6% 6% / 8% 8% 4% 4%;
  box-shadow: 0 6px 16px #00000060;
  animation: lsf-desk 8s ease-in-out infinite;
}
.scn-lebedev-suspects-ferdishenko .lamp {
  position: absolute; bottom: 42%; left: 20%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #b08040 60%, #6a4010 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 50px #ffd08060, 0 0 100px #ffd08030;
  animation: lsf-lamp 2s ease-in-out infinite alternate;
}
.scn-lebedev-suspects-ferdishenko .figure-lebedev {
  position: absolute; bottom: 30%; left: 15%; width: 14%; height: 44%;
  background: linear-gradient(110deg, #3a2a1a 0%, #1a0e06 60%, #0a0602 100%);
  border-radius: 50% 40% 40% 40% / 55% 45% 40% 40%;
  transform-origin: bottom center;
  animation: lsf-fig-leb 4s ease-in-out infinite;
}
.scn-lebedev-suspects-ferdishenko .figure-ferdishenko {
  position: absolute; bottom: 30%; right: 18%; width: 12%; height: 42%;
  background: linear-gradient(100deg, #2a2020 0%, #1a1010 60%, #0a0808 100%);
  border-radius: 50% 45% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lsf-fig-ferd 5s ease-in-out infinite alternate;
}
.scn-lebedev-suspects-ferdishenko .door {
  position: absolute; bottom: 30%; right: 2%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #3a3024 0%, #1a140e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -2px 0 12px #00000050;
  animation: lsf-door 7s ease-in-out infinite;
}
@keyframes lsf-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lsf-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lsf-lamp {
  0% { box-shadow: 0 0 40px #ffd08040, 0 0 80px #ffd08020; opacity: 0.8; }
  50% { box-shadow: 0 0 60px #ffd08080, 0 0 120px #ffd08050; opacity: 1; }
  100% { box-shadow: 0 0 45px #ffd08050, 0 0 90px #ffd08030; opacity: 0.9; }
}
@keyframes lsf-fig-leb {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-1%) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes lsf-fig-ferd {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-3%) translateY(-2px); }
}
@keyframes lsf-door {
  0%, 100% { transform: rotate(0deg); }
  30% { transform: rotate(2deg); }
  70% { transform: rotate(-1deg); }
}

/* Scene 3: varvara-gives-news (tense, dim-interior) */
.scn-varvara-gives-news {
  background:
    linear-gradient(180deg, #2c2420 0%, #3c2e24 40%, #1e1814 100%),
    radial-gradient(ellipse at 50% 15%, #5a4a36 0%, transparent 70%);
}
.scn-varvara-gives-news .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  animation: vgn-wall 11s ease-in-out infinite alternate;
}
.scn-varvara-gives-news .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  box-shadow: inset 0 8px 20px #00000040;
}
.scn-varvara-gives-news .sofa {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #5a4a36 0%, #3a2a1a 100%);
  border-radius: 8% 8% 6% 6% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px #00000050;
  animation: vgn-sofa 9s ease-in-out infinite;
}
.scn-varvara-gives-news .figure-varvara {
  position: absolute; bottom: 32%; left: 18%; width: 11%; height: 42%;
  background: linear-gradient(100deg, #4a3a2a 0%, #2a1a0e 50%, #1a0e06 100%);
  border-radius: 50% 45% 40% 40% / 55% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vgn-var 3.5s ease-in-out infinite;
}
.scn-varvara-gives-news .figure-gania {
  position: absolute; bottom: 32%; left: 40%; width: 12%; height: 46%;
  background: linear-gradient(110deg, #3a2a1a 0%, #1a0e06 60%, #0a0602 100%);
  border-radius: 50% 40% 40% 40% / 60% 45% 40% 40%;
  transform-origin: bottom center;
  animation: vgn-gania 2.8s ease-in-out infinite alternate;
}
.scn-varvara-gives-news .figure-general {
  position: absolute; bottom: 32%; right: 20%; width: 14%; height: 48%;
  background: linear-gradient(105deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%);
  border-radius: 50% 45% 40% 40% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: vgn-gen 4.2s ease-in-out infinite;
}
.scn-varvara-gives-news .door {
  position: absolute; bottom: 30%; right: 4%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -4px 0 12px #00000060;
  animation: vgn-door 6s ease-in-out infinite;
}
@keyframes vgn-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes vgn-sofa { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes vgn-var {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2%) rotate(-2deg); }
  60% { transform: translateX(0) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vgn-gania {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4%) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes vgn-gen {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-2%) translateY(-2px); }
}
@keyframes vgn-door {
  0%, 100% { transform: rotate(0deg); }
  40% { transform: rotate(3deg); }
  80% { transform: rotate(-2deg); }
}

/* Scene 4: hippolyte-accuses-gania (tense, dim-interior) */
.scn-hippolyte-accuses-gania {
  background:
    linear-gradient(180deg, #1e1a2c 0%, #2c2436 40%, #1a1628 100%),
    radial-gradient(ellipse at 50% 25%, #3a3050 0%, transparent 70%);
}
.scn-hippolyte-accuses-gania .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2440 0%, #181430 100%);
  animation: hag-wall 12s ease-in-out infinite alternate;
}
.scn-hippolyte-accuses-gania .floor {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1410 100%);
  box-shadow: inset 0 10px 20px #00000050;
}
.scn-hippolyte-accuses-gania .table {
  position: absolute; bottom: 30%; left: 25%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 4% 4%;
  box-shadow: 0 8px 16px #00000050;
  animation: hag-table 7s ease-in-out infinite;
}
.scn-hippolyte-accuses-gania .note {
  position: absolute; bottom: 45%; left: 40%; width: 8%; height: 6%;
  background: #d4c8a8;
  border-radius: 2%;
  box-shadow: 0 2px 6px #00000030;
  animation: hag-note 5s ease-in-out infinite;
}
.scn-hippolyte-accuses-gania .figure-hippolyte {
  position: absolute; bottom: 30%; left: 10%; width: 12%; height: 48%;
  background: linear-gradient(110deg, #3a2a22 0%, #1a0e08 60%, #0a0604 100%);
  border-radius: 50% 45% 40% 40% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: hag-fig-h 3.2s ease-in-out infinite;
}
.scn-hippolyte-accuses-gania .figure-gania {
  position: absolute; bottom: 30%; right: 16%; width: 12%; height: 46%;
  background: linear-gradient(100deg, #4a3a2a 0%, #2a1a0e 50%, #1a0e06 100%);
  border-radius: 50% 40% 40% 40% / 60% 45% 40% 40%;
  transform-origin: bottom center;
  animation: hag-fig-g 3.8s ease-in-out infinite alternate;
}
.scn-hippolyte-accuses-gania .door {
  position: absolute; bottom: 30%; right: 2%; width: 12%; height: 44%;
  background: linear-gradient(180deg, #3a2e24 0%, #1a140e 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -2px 0 12px #00000060;
  animation: hag-door 6.5s ease-in-out infinite;
}
@keyframes hag-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hag-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hag-note {
  0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-4px) rotate(3deg); opacity: 1; }
}
@keyframes hag-fig-h {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3%) rotate(-2deg); }
  66% { transform: translateX(0) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hag-fig-g {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-4%) translateY(-2px); }
}
@keyframes hag-door {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
}

.scn-train-approach-st-petersburg { background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 80%, #151525 100%), radial-gradient(ellipse at 30% 50%, #2a2a44 0%, transparent 70%); height:100%; width:100%; overflow:hidden; }
.scn-train-approach-st-petersburg .carriage-wall { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #2a2a3c 0%, #3a3a4c 40%, #2a2a3a 100%); }
.scn-train-approach-st-petersburg .window-fog { position:absolute; top:8%; left:28%; width:44%; height:44%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%); border-radius:4% / 6%; box-shadow:inset 0 0 40px rgba(0,0,0,.6), 0 0 30px rgba(100,120,140,.2); border:3px solid #3a3a4a; animation:tp-foggy 18s ease-in-out infinite alternate; }
.scn-train-approach-st-petersburg .lamp { position:absolute; top:2%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #d4a860 0%, #b08040 50%, #4a3a1a 100%); border-radius:40% 40% 20% 20%; box-shadow:0 0 30px 10px rgba(200,160,80,.3), 0 0 60px 20px rgba(200,160,80,.1); animation:tp-swing 4s ease-in-out infinite; transform-origin:top center; }
.scn-train-approach-st-petersburg .seat { position:absolute; bottom:28%; left:10%; width:80%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6% 6% 2% 2% / 30% 30% 10% 10%; box-shadow:0 6px 12px rgba(0,0,0,.7); }
.scn-train-approach-st-petersburg .figure-rogojin { position:absolute; bottom:24%; left:22%; width:22%; height:40%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(3deg); box-shadow:-4px 0 12px rgba(0,0,0,.5); animation:tp-rogojin 6s ease-in-out infinite alternate; }
.scn-train-approach-st-petersburg .figure-rogojin::after { content:''; position:absolute; top:8%; left:-10%; width:40%; height:30%; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:60% 40% 30% 50% / 50% 40% 60% 50%; box-shadow:0 2px 6px rgba(0,0,0,.4); } /* astrakhan collar */
.scn-train-approach-st-petersburg .figure-muishkin { position:absolute; bottom:24%; right:22%; width:16%; height:38%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(-2deg); box-shadow:4px 0 12px rgba(0,0,0,.4); animation:tp-muishkin 5s ease-in-out infinite alternate; }
.scn-train-approach-st-petersburg .fog-wisp { position:absolute; top:12%; left:-10%; width:120%; height:20%; background: linear-gradient(90deg, rgba(150,170,190,.15) 0%, rgba(180,200,220,.25) 30%, rgba(160,180,200,.1) 70%, transparent 100%); filter:blur(12px); border-radius:50%; animation:tp-fog-drift 40s linear infinite; }
@keyframes tp-foggy { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes tp-swing { 0% { transform:translateX(-50%) rotate(-6deg) } 25% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(6deg) } 75% { transform:translateX(-50%) rotate(3deg) } 100% { transform:translateX(-50%) rotate(-6deg) } }
@keyframes tp-rogojin { 0% { transform:rotate(2deg) } 50% { transform:rotate(4deg) translateX(2px) } 100% { transform:rotate(2deg) } }
@keyframes tp-muishkin { 0% { transform:rotate(-1deg) } 50% { transform:rotate(-3deg) translateX(-2px) } 100% { transform:rotate(-1deg) } }
@keyframes tp-fog-drift { 0% { transform:translateX(0) } 100% { transform:translateX(100%) } }

.scn-rogojin-obsession-revealed { background: linear-gradient(180deg, #0c0c1e 0%, #1a1a2e 40%, #0e0e20 80%, #080818 100%), radial-gradient(ellipse at 60% 50%, #1e1e34 0%, transparent 70%); height:100%; width:100%; overflow:hidden; }
.scn-rogojin-obsession-revealed .room-shadow { position:absolute; inset:0; background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,.4) 50%, transparent 100%); animation:ro-shadow 12s ease-in-out infinite alternate; }
.scn-rogojin-obsession-revealed .figure-rogojin { position:absolute; bottom:18%; left:18%; width:28%; height:48%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:skewX(-4deg); box-shadow:-6px 0 20px rgba(0,0,0,.7); animation:ro-rogojin 7s ease-in-out infinite alternate; }
.scn-rogojin-obsession-revealed .figure-prince { position:absolute; bottom:20%; right:22%; width:16%; height:36%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 60%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(3deg); box-shadow:4px 0 12px rgba(0,0,0,.5); animation:ro-prince 6s ease-in-out infinite alternate; }
.scn-rogojin-obsession-revealed .earrings-glow { position:absolute; bottom:36%; left:34%; width:16px; height:12px; background: radial-gradient(circle, #f0e0c0 0%, #d0b080 40%, rgba(200,160,100,.3) 70%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(220,180,120,.6), 0 0 60px 20px rgba(220,180,120,.3); animation:ro-earrings 3s ease-in-out infinite alternate; }
.scn-rogojin-obsession-revealed .table { position:absolute; bottom:18%; left:28%; width:44%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4% 4% 2% 2% / 30% 30% 10% 10%; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-rogojin-obsession-revealed .candle { position:absolute; bottom:28%; left:46%; width:6px; height:14px; background: linear-gradient(180deg, #e8c888 0%, #b09060 60%, #8a7040 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:0 0 20px 6px rgba(200,160,80,.5); animation:ro-candle 4s ease-in-out infinite alternate; }
.scn-rogojin-obsession-revealed .shadow-stripe { position:absolute; bottom:0; left:30%; width:40%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); filter:blur(8px); animation:ro-stripe 9s ease-in-out infinite alternate; }
@keyframes ro-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes ro-rogojin { 0% { transform:skewX(-4deg) } 50% { transform:skewX(-2deg) translateY(-2px) } 100% { transform:skewX(-4deg) } }
@keyframes ro-prince { 0% { transform:rotate(2deg) } 50% { transform:rotate(4deg) translateX(2px) } 100% { transform:rotate(2deg) } }
@keyframes ro-earrings { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(.95) } }
@keyframes ro-candle { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) translateY(-1px) } 100% { transform:scaleY(1) } }
@keyframes ro-stripe { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-general-epanchin-study { background: linear-gradient(135deg, #b89870 0%, #d0b090 30%, #c0a080 60%, #a88868 100%), radial-gradient(ellipse at 30% 20%, #e8d0b0 0%, transparent 60%); height:100%; width:100%; overflow:hidden; }
.scn-general-epanchin-study .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8c0a0 0%, #c0a888 50%, #a89070 100%); box-shadow:inset 0 20px 40px rgba(0,0,0,.1); }
.scn-general-epanchin-study .window-sun { position:absolute; top:6%; left:60%; width:28%; height:44%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #d0c0a8 100%); border-radius:4% / 6%; box-shadow:inset 0 0 20px rgba(200,180,140,.4), 8px 0 24px rgba(0,0,0,.15); border:4px solid #8a7050; animation:ge-sunlight 14s ease-in-out infinite alternate; }
.scn-general-epanchin-study .desk { position:absolute; bottom:20%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #7a6040 0%, #5a4020 60%, #4a3010 100%); border-radius:6% 6% 2% 2% / 20% 20% 8% 8%; box-shadow:0 8px 20px rgba(0,0,0,.4); }
.scn-general-epanchin-study .bookshelf { position:absolute; top:8%; left:6%; width:16%; height:60%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4%; box-shadow:inset 0 0 20px rgba(0,0,0,.3), 4px 0 12px rgba(0,0,0,.2); }
.scn-general-epanchin-study .bookshelf::before { content:''; position:absolute; top:15%; left:10%; width:80%; height:8%; background:#8a6040; border-radius:2px; box-shadow:0 18px 0 #8a6040, 0 36px 0 #8a6040, 0 54px 0 #8a6040, 0 72px 0 #8a6040; }
.scn-general-epanchin-study .general-silhouette { position:absolute; bottom:18%; left:34%; width:24%; height:44%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-2deg); box-shadow:-4px 0 16px rgba(0,0,0,.4); animation:ge-general 8s ease-in-out infinite alternate; }
.scn-general-epanchin-study .prince-standing { position:absolute; bottom:14%; right:12%; width:14%; height:48%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(1deg); box-shadow:2px 0 10px rgba(0,0,0,.3); animation:ge-prince 7s ease-in-out infinite alternate; }
.scn-general-epanchin-study .sunbeam { position:absolute; top:4%; left:56%; width:6%; height:70%; background: linear-gradient(180deg, rgba(240,230,200,.3) 0%, rgba(220,200,160,.1) 100%); transform:skewX(-12deg); filter:blur(6px); animation:ge-beam 20s ease-in-out infinite alternate; }
.scn-general-epanchin-study .warm-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, rgba(240,220,180,.15) 0%, transparent 60%); pointer-events:none; animation:ge-glow 10s ease-in-out infinite alternate; }
@keyframes ge-sunlight { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ge-general { 0% { transform:rotate(-2deg) } 50% { transform:rotate(0deg) translateY(-2px) } 100% { transform:rotate(-2deg) } }
@keyframes ge-prince { 0% { transform:rotate(1deg) } 50% { transform:rotate(3deg) translateX(2px) } 100% { transform:rotate(1deg) } }
@keyframes ge-beam { 0% { opacity:.2; transform:skewX(-12deg) } 50% { opacity:.4; transform:skewX(-8deg) } 100% { opacity:.25; transform:skewX(-12deg) } }
@keyframes ge-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-nastasia-portrait-revealed { background: linear-gradient(135deg, #d8c8b0 0%, #c8b898 30%, #b8a888 60%, #a89878 100%), radial-gradient(ellipse at 70% 40%, #e8d8c0 0%, transparent 60%); height:100%; width:100%; overflow:hidden; }
.scn-nastasia-portrait-revealed .bg-bright { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b8 0%, #d0c0a8 50%, #c0b098 100%); }
.scn-nastasia-portrait-revealed .table { position:absolute; bottom:16%; left:20%; width:60%; height:16%; background: linear-gradient(180deg, #7a6040 0%, #5a4020 60%, #4a3010 100%); border-radius:6% 6% 2% 2% / 20% 20% 8% 8%; box-shadow:0 6px 20px rgba(0,0,0,.3); }
.scn-nastasia-portrait-revealed .figure-gania { position:absolute; bottom:14%; left:18%; width:18%; height:46%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(2deg); box-shadow:2px 0 10px rgba(0,0,0,.3); animation:np-gania 5s ease-in-out infinite alternate; }
.scn-nastasia-portrait-revealed .hands-frame { position:absolute; bottom:24%; left:44%; width:20%; height:16%; background: linear-gradient(180deg, #b8a088 0%, #9a8a70 100%); border-radius:20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.2); animation:np-hands 6s ease-in-out infinite alternate; }
.scn-nastasia-portrait-revealed .photograph { position:absolute; bottom:28%; left:44%; width:16%; height:20%; background: linear-gradient(135deg, #f0e8d8 0%, #e0d0b8 50%, #d0c0a0 100%); border-radius:4% / 6%; box-shadow:0 2px 8px rgba(0,0,0,.3), inset 0 0 10px rgba(200,180,140,.4); border:2px solid #8a7050; animation:np-photo 8s ease-in-out infinite alternate; }
.scn-nastasia-portrait-revealed .portrait-profile { position:absolute; bottom:30%; left:48%; width:8%; height:14%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; clip-path:polygon(30% 0%, 70% 0%, 80% 20%, 85% 40%, 80% 60%, 70% 80%, 60% 100%, 40% 100%, 30% 80%, 25% 60%, 20% 40%, 25% 20%); animation:np-profile 7s ease-in-out infinite alternate; } /* profile silhouette */
.scn-nastasia-portrait-revealed .figure-prince { position:absolute; bottom:16%; right:20%; width:16%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(-3deg); box-shadow:-2px 0 10px rgba(0,0,0,.2); animation:np-prince 6s ease-in-out infinite alternate; }
.scn-nastasia-portrait-revealed .light-flash { position:absolute; top:10%; left:60%; width:20%; height:30%; background: radial-gradient(ellipse at center, rgba(240,230,200,.4) 0%, rgba(220,200,160,.1) 50%, transparent 100%); filter:blur(10px); animation:np-flash 4s ease-in-out infinite alternate; }
@keyframes np-gania { 0% { transform:rotate(2deg) } 50% { transform:rotate(4deg) translateX(2px) } 100% { transform:rotate(2deg) } }
@keyframes np-hands { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes np-photo { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) scale(1.02) } 100% { transform:rotate(-2deg) } }
@keyframes np-profile { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes np-prince { 0% { transform:rotate(-3deg) } 50% { transform:rotate(-1deg) translateX(-2px) } 100% { transform:rotate(-3deg) } }
@keyframes np-flash { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.7; transform:scale(1.2) } 100% { opacity:.4; transform:scale(.95) } }

.scn-lebedev-tirade { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 40%, #1e1e2e 100%), radial-gradient(ellipse at 50% 70%, #3a2a4e 0%, transparent 70%); }
.scn-lebedev-tirade .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: lt-flicker 8s ease-in-out infinite alternate; }
.scn-lebedev-tirade .wall-left { position:absolute; left:0; top:0; width:20%; height:100%; background: linear-gradient(90deg, #1a1a2e, transparent); animation: lt-shadow 12s infinite alternate; }
.scn-lebedev-tirade .wall-right { position:absolute; right:0; top:0; width:20%; height:100%; background: linear-gradient(270deg, #1a1a2e, transparent); animation: lt-shadow 12s infinite alternate reverse; }
.scn-lebedev-tirade .table { position:absolute; bottom:30%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-lebedev-tirade .candle { position:absolute; bottom:38%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080, #c08040); border-radius:2px; box-shadow:0 0 20px 10px #ffd080; animation: lt-candle 3s infinite alternate; }
.scn-lebedev-tirade .manuscript { position:absolute; bottom:33%; left:40%; width:30px; height:20px; background: linear-gradient(135deg, #c8a060, #a08040); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 4px rgba(0,0,0,.4); animation: lt-manuscript 10s infinite alternate; }
.scn-lebedev-tirade .figure-lebedev { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: lt-figure1 6s infinite alternate; }
.scn-lebedev-tirade .figure-prince { position:absolute; bottom:25%; left:55%; width:18px; height:42px; background: linear-gradient(180deg, #2a3a3a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: lt-figure2 7s infinite alternate; }
@keyframes lt-flicker { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes lt-shadow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes lt-candle { 0% { transform:translate(-50%,0) scaleY(1); } 50% { transform:translate(-50%,-1px) scaleY(1.05); } 100% { transform:translate(-50%,0) scaleY(1); } }
@keyframes lt-manuscript { 0% { transform:rotate(-5deg) translate(0); } 50% { transform:rotate(-3deg) translate(2px,-1px); } 100% { transform:rotate(-5deg) translate(0); } }
@keyframes lt-figure1 { 0% { transform:translate(0,0) rotate(0); } 50% { transform:translate(2px,-1px) rotate(1deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes lt-figure2 { 0% { transform:translate(0,0) rotate(0); } 50% { transform:translate(-2px,-1px) rotate(-1deg); } 100% { transform:translate(0,0) rotate(0); } }

.scn-hippolyte-manuscript-ii { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 50%, #1e1e2e 100%), radial-gradient(ellipse at 50% 70%, #3a2a4e 0%, transparent 60%); }
.scn-hippolyte-manuscript-ii .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e, #2a1a2e 60%, #1e1e2e); animation: hm-flicker 10s ease-in-out infinite alternate; }
.scn-hippolyte-manuscript-ii .window { position:absolute; top:20%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #2a3a4e, #1a2a3e); border:2px solid #4a3a3a; border-radius:4px; box-shadow:inset 0 0 10px rgba(0,0,0,.5), 0 0 8px rgba(0,0,0,.3); animation: hm-window 15s infinite alternate; }
.scn-hippolyte-manuscript-ii .lamp { position:absolute; bottom:35%; left:50%; width:12px; height:18px; background: linear-gradient(180deg, #ffd080, #c08040); border-radius:4px; box-shadow:0 0 30px 15px #ffd080; animation: hm-lamp 4s infinite alternate; }
.scn-hippolyte-manuscript-ii .manuscript { position:absolute; bottom:28%; left:40%; width:25px; height:15px; background: linear-gradient(135deg, #c8a060, #a08040); border-radius:2px; transform:rotate(3deg); box-shadow:0 2px 4px rgba(0,0,0,.5); animation: hm-manuscript 12s infinite alternate; }
.scn-hippolyte-manuscript-ii .pocket-book { position:absolute; bottom:26%; left:35%; width:15px; height:10px; background: linear-gradient(180deg, #6a4a3a, #4a2a1a); border-radius:2px; transform:rotate(-10deg); box-shadow:0 1px 2px rgba(0,0,0,.4); }
.scn-hippolyte-manuscript-ii .figure-hippolyte { position:absolute; bottom:24%; left:38%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: hm-figure 8s infinite alternate; }
.scn-hippolyte-manuscript-ii .shadow { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: hm-shadow 12s infinite alternate; }
@keyframes hm-flicker { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hm-window { 0% { transform:translate(0,0); } 50% { transform:translate(2px,-2px); } 100% { transform:translate(0,0); } }
@keyframes hm-lamp { 0% { transform:translate(-50%,0) scale(1); box-shadow:0 0 25px 10px #ffd080; } 50% { transform:translate(-50%,-1px) scale(1.03); box-shadow:0 0 35px 18px #ffd080; } 100% { transform:translate(-50%,0) scale(1); box-shadow:0 0 25px 10px #ffd080; } }
@keyframes hm-manuscript { 0% { transform:rotate(3deg) translate(0); } 50% { transform:rotate(5deg) translate(2px,-1px); } 100% { transform:rotate(3deg) translate(0); } }
@keyframes hm-figure { 0% { transform:translate(0,0) rotate(0); } 50% { transform:translate(2px,-1px) rotate(2deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes hm-shadow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.7; transform:scale(1.05); } 100% { opacity:.5; transform:scale(1); } }

.scn-pistol-misfire { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 40%, #1e1e2e 100%), radial-gradient(ellipse at 50% 60%, #3a2a2e 0%, transparent 70%); }
.scn-pistol-misfire .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e, #2a1a1e 60%, #1e1e2e); animation: pm-flicker 0.5s infinite alternate; }
.scn-pistol-misfire .wall-panel { position:absolute; top:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3a3a, #2a1a1a); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: pm-panel 2s infinite alternate; }
.scn-pistol-misfire .table { position:absolute; bottom:25%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-pistol-misfire .pistol { position:absolute; bottom:34%; left:45%; width:25px; height:8px; background: linear-gradient(90deg, #4a4a4a, #2a2a2a); border-radius:2px; transform:rotate(15deg); box-shadow:0 2px 4px rgba(0,0,0,.6); animation: pm-pistol 3s infinite alternate; }
.scn-pistol-misfire .hand { position:absolute; bottom:33%; left:43%; width:10px; height:15px; background: radial-gradient(circle at 50% 30%, #7a6a5a, #4a3a2a); border-radius:50%; transform:rotate(20deg); animation: pm-hand 1.5s infinite alternate; }
.scn-pistol-misfire .figure-hippolyte { position:absolute; bottom:22%; left:50%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a2a, #1a1a1a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: pm-figure 2s infinite alternate; }
.scn-pistol-misfire .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 70%); animation: pm-shadow 1s infinite alternate; }
@keyframes pm-flicker { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes pm-panel { 0% { transform:scale(1); } 50% { transform:scale(1.02); } 100% { transform:scale(1); } }
@keyframes pm-pistol { 0% { transform:rotate(15deg) translate(0); } 50% { transform:rotate(12deg) translate(2px,-1px); } 100% { transform:rotate(15deg) translate(0); } }
@keyframes pm-hand { 0% { transform:rotate(20deg) translate(0); } 50% { transform:rotate(25deg) translate(-1px,1px); } 100% { transform:rotate(20deg) translate(0); } }
@keyframes pm-figure { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(4px) rotate(3deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pm-shadow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.8; transform:scale(1.05); } 100% { opacity:.5; transform:scale(1); } }

.scn-aglaya-proposal-runaway { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #98fb98 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 50%); }
.scn-aglaya-proposal-runaway .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb, #b0e0e6); animation: apr-sky 20s ease-in-out infinite alternate; }
.scn-aglaya-proposal-runaway .sun { position:absolute; top:15%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 30px #ffd700; animation: apr-sun 6s infinite alternate; }
.scn-aglaya-proposal-runaway .path { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #d2b48c, #c2a47a); clip-path:polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation: apr-path 15s infinite alternate; }
.scn-aglaya-proposal-runaway .figure-aglaya { position:absolute; bottom:25%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #f0e6d0, #d0c0a0); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: apr-aglaya 4s ease-in-out infinite alternate; }
.scn-aglaya-proposal-runaway .figure-prince { position:absolute; bottom:25%; left:50%; width:18px; height:46px; background: linear-gradient(180deg, #c0b0a0, #a09080); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: apr-prince 5s ease-in-out infinite alternate; }
.scn-aglaya-proposal-runaway .tree-left { position:absolute; bottom:20%; left:5%; width:30px; height:60px; background: linear-gradient(180deg, #8b4513, #5c3a1a); border-radius:20% 80% 30% 70% / 50% 50% 50% 50%; transform-origin:bottom; animation: apr-tree 10s infinite alternate; }
.scn-aglaya-proposal-runaway .tree-right { position:absolute; bottom:20%; right:5%; width:35px; height:65px; background: linear-gradient(180deg, #6b3a0a, #4a2a0a); border-radius:80% 20% 70% 30% / 50% 50% 50% 50%; transform-origin:bottom; animation: apr-tree2 12s infinite alternate; }
.scn-aglaya-proposal-runaway .flowers { position:absolute; bottom:22%; left:10%; width:20px; height:5px; background: radial-gradient(circle at 50% 50%, #ff69b4 0%, transparent 100%); border-radius:50%; box-shadow:10px -2px 0 #ff69b4, -5px -1px 0 #ff1493; animation: apr-flowers 8s infinite alternate; }
@keyframes apr-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes apr-sun { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(1); } }
@keyframes apr-path { 0% { transform:translateX(0); } 50% { transform:translateX(10px); } 100% { transform:translateX(0); } }
@keyframes apr-aglaya { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes apr-prince { 0% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes apr-tree { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes apr-tree2 { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.03); } 100% { transform:scaleY(1); } }
@keyframes apr-flowers { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

/* scene: prince-enters-society (warm, bright interior) */
.scn-prince-enters-society {
  background: linear-gradient(180deg, #c9a87c 0%, #b89260 40%, #a07a48 100%),
              radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 70%);
}
.scn-prince-enters-society .room-bg {
  position: absolute; left: 0; top: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #d9bf92 0%, #c9a87c 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
  animation: pe-ambient 12s ease-in-out infinite alternate;
}
.scn-prince-enters-society .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: pe-floor 20s ease-in-out infinite alternate;
}
.scn-prince-enters-society .window {
  position: absolute; left: 55%; top: 12%; width: 18%; height: 38%;
  background: radial-gradient(ellipse at 50% 30%, #fff0d0 0%, #f0d8b0 60%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(240,216,176,0.3);
  animation: pe-window 5s ease-in-out infinite alternate;
}
.scn-prince-enters-society .chandelier {
  position: absolute; left: 50%; top: 6%; width: 30%; height: 14%;
  background: radial-gradient(ellipse at 50% 80%, #e0c080 0%, #c09050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px #d0a860, 0 0 60px 25px rgba(208,168,96,0.3);
  transform: translateX(-50%);
  animation: pe-chandelier 8s ease-in-out infinite;
}
.scn-prince-enters-society .figure-a {
  position: absolute; left: 20%; bottom: 24%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 4s ease-in-out infinite;
}
.scn-prince-enters-society .figure-b {
  position: absolute; left: 36%; bottom: 24%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 4.5s ease-in-out infinite 0.5s;
}
.scn-prince-enters-society .figure-c {
  position: absolute; right: 22%; bottom: 24%; width: 13%; height: 29%;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 4.2s ease-in-out infinite 0.8s;
}
.scn-prince-enters-society .glow-spot {
  position: absolute; left: 50%; top: 50%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(240,200,150,0.3) 0%, rgba(255,220,170,0.1) 60%, transparent 100%);
  transform: translate(-50%, -50%);
  filter: blur(30px);
  animation: pe-glow 6s ease-in-out infinite alternate;
}
@keyframes pe-ambient { 0%{opacity:0.85}50%{opacity:1}100%{opacity:0.9} }
@keyframes pe-floor { 0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)} }
@keyframes pe-window { 0%{box-shadow:0 0 30px 10px rgba(240,216,176,0.3);opacity:0.9}50%{box-shadow:0 0 60px 20px rgba(255,240,210,0.5);opacity:1}100%{box-shadow:0 0 35px 12px rgba(240,216,176,0.35);opacity:0.95} }
@keyframes pe-chandelier { 0%{transform:translateX(-50%) rotate(-2deg)}50%{transform:translateX(-50%) rotate(2deg)}100%{transform:translateX(-50%) rotate(-1deg)} }
@keyframes pe-figure { 0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}100%{transform:translateY(0) rotate(-0.5deg)} }
@keyframes pe-glow { 0%{opacity:0.6;transform:translate(-50%,-50%) scale(0.95)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0.8;transform:translate(-50%,-50%) scale(1)} }

/* scene: post-fit-visits (dark, dim interior) */
.scn-post-fit-visits {
  background: linear-gradient(180deg, #1c1628 0%, #2a2238 30%, #1e1a2c 100%),
              radial-gradient(ellipse at 50% 100%, #0a0812 0%, transparent 70%);
}
.scn-post-fit-visits .wall-dark {
  position: absolute; left: 0; top: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #2a2238 0%, #1c1628 100%);
  box-shadow: inset 0 0 80px #0a0812;
  animation: pf-walls 20s ease-in-out infinite alternate;
}
.scn-post-fit-visits .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 30%;
  background: linear-gradient(180deg, #1a1422 0%, #0e0a16 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 15px 40px #05030a;
}
.scn-post-fit-visits .window-moon {
  position: absolute; left: 68%; top: 18%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #b0c8e0 0%, #6580a0 60%, transparent 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 50px 15px rgba(100,140,180,0.2);
  animation: pf-moon 12s ease-in-out infinite alternate;
}
.scn-post-fit-visits .bed {
  position: absolute; left: 15%; bottom: 28%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 5% 5% 15% 15% / 10% 10% 30% 30%;
  box-shadow: inset 0 5px 20px #0a0010;
  transform: translateY(0);
  animation: pf-bed 5s ease-in-out infinite;
}
.scn-post-fit-visits .figure-vera {
  position: absolute; left: 50%; bottom: 25%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figures 7s ease-in-out infinite 1s;
}
.scn-post-fit-visits .figure-lebedeff {
  position: absolute; left: 34%; bottom: 23%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figures 7s ease-in-out infinite 2.5s;
}
.scn-post-fit-visits .figure-colia {
  position: absolute; right: 16%; bottom: 22%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figures 7s ease-in-out infinite 4s;
}
.scn-post-fit-visits .candle-glow {
  position: absolute; left: 45%; bottom: 42%; width: 6%; height: 8%;
  background: radial-gradient(circle, #d4a040 0%, #b08030 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,140,60,0.5), 0 0 40px 15px rgba(180,120,50,0.2);
  animation: pf-candle 3s ease-in-out infinite alternate;
}
@keyframes pf-walls { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes pf-moon { 0%{box-shadow: 0 0 30px 10px rgba(100,140,180,0.15);opacity:0.7}50%{box-shadow: 0 0 70px 25px rgba(130,170,210,0.35);opacity:1}100%{box-shadow: 0 0 40px 15px rgba(100,140,180,0.2);opacity:0.8} }
@keyframes pf-bed { 0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)} }
@keyframes pf-figures { 0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(1.5deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes pf-candle { 0%{box-shadow:0 0 15px 5px rgba(200,140,60,0.4);opacity:0.75}50%{box-shadow:0 0 30px 12px rgba(220,160,80,0.7);opacity:1}100%{box-shadow:0 0 20px 8px rgba(200,140,60,0.5);opacity:0.85} }

/* scene: aglaya-message-urgent (tense, dim interior) */
.scn-aglaya-message-urgent {
  background: linear-gradient(180deg, #202430 0%, #2c3240 40%, #181c28 100%),
              radial-gradient(ellipse at 50% 0%, #384050 0%, transparent 70%);
}
.scn-aglaya-message-urgent .room-shadow {
  position: absolute; left: 0; top: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #2c3240 0%, #202430 100%);
  box-shadow: inset 0 0 60px #101420;
  animation: am-shadow 10s ease-in-out infinite alternate;
}
.scn-aglaya-message-urgent .desk {
  position: absolute; left: 25%; bottom: 20%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 2% 2% 5% 5%;
  box-shadow: inset 0 5px 20px #1a0a0a;
 }
.scn-aglaya-message-urgent .letter-glow {
  position: absolute; left: 40%; bottom: 30%; width: 14%; height: 10%;
  background: radial-gradient(ellipse, #d09050 0%, #a06830 100%);
  border-radius: 5%;
  box-shadow: 0 0 25px 8px rgba(200,130,70,0.4), 0 0 50px 18px rgba(180,110,50,0.2);
  animation: am-letter 2s ease-in-out infinite;
}
.scn-aglaya-message-urgent .figure-prince {
  position: absolute; left: 28%; bottom: 22%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a3240 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure-tense 3s ease-in-out infinite 0.3s;
}
.scn-aglaya-message-urgent .figure-hippolyte {
  position: absolute; right: 20%; bottom: 18%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #2a2230 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure-tense 3.5s ease-in-out infinite 1.2s;
}
.scn-aglaya-message-urgent .clock {
  position: absolute; right: 15%; top: 12%; width: 12%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #a0a8b0 0%, #788088 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(200,200,210,0.2);
  animation: am-clock 60s linear infinite;
}
.scn-aglaya-message-urgent .shadow-move {
  position: absolute; left: 50%; bottom: 0; width: 60%; height: 40%;
  background: linear-gradient(180deg, rgba(30,36,48,0.3) 0%, #101420 100%);
  transform: translateX(-50%);
  filter: blur(20px);
  animation: am-shadow-slide 8s ease-in-out infinite alternate;
}
@keyframes am-shadow { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes am-letter { 0%{transform:scale(1);box-shadow:0 0 20px 6px rgba(200,130,70,0.3)}30%{transform:scale(1.08);box-shadow:0 0 40px 15px rgba(220,150,80,0.6)}60%{transform:scale(0.98);box-shadow:0 0 25px 8px rgba(200,130,70,0.4)}100%{transform:scale(1);box-shadow:0 0 20px 6px rgba(200,130,70,0.3)} }
@keyframes am-figure-tense { 0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(2deg)}50%{transform:translateY(1px) rotate(-1deg)}75%{transform:translateY(-1px) rotate(1.5deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes am-clock { 0%{transform:rotate(0)}100%{transform:rotate(360deg)} }
@keyframes am-shadow-slide { 0%{transform:translateX(-50%) scaleX(1)}50%{transform:translateX(-50%) scaleX(1.08)}100%{transform:translateX(-50%) scaleX(0.95)} }

/* scene: wedding-plan-nastasia (tense, overcast) */
.scn-wedding-plan-nastasia {
  background: linear-gradient(180deg, #7a8280 0%, #5a6260 40%, #4a5248 100%),
              radial-gradient(ellipse at 50% 0%, #8a9288 0%, transparent 70%);
}
.scn-wedding-plan-nastasia .sky-overcast {
  position: absolute; left: 0; top: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #8a9288 0%, #6a7268 60%, #5a6258 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
  animation: wp-sky 15s ease-in-out infinite alternate;
}
.scn-wedding-plan-nastasia .clouds {
  position: absolute; left: 10%; top: 18%; width: 70%; height: 12%;
  background: linear-gradient(90deg, rgba(160,168,160,0.3) 0%, rgba(140,148,140,0.5) 50%, rgba(160,168,160,0.3) 100%);
  border-radius: 50%;
  filter: blur(15px);
  animation: wp-clouds 40s linear infinite;
}
.scn-wedding-plan-nastasia .ground {
  position: absolute; left: 0; right: 0; bottom: 0; height: 40%;
  background: linear-gradient(180deg, #4a5248 0%, #2a3228 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 50px #1a2218;
 }
.scn-wedding-plan-nastasia .church-spire {
  position: absolute; left: 35%; bottom: 32%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 5% 5% 20% 20% / 5% 5% 10% 10%;
  box-shadow: inset 0 0 20px #2a2a2a;
  transform-origin: bottom center;
  animation: wp-spire 8s ease-in-out infinite;
}
.scn-wedding-plan-nastasia .figure-prince {
  position: absolute; left: 28%; bottom: 18%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #3a4238 0%, #1a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wp-figures 5s ease-in-out infinite 0.2s;
}
.scn-wedding-plan-nastasia .figure-nastasia {
  position: absolute; left: 50%; bottom: 16%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 15px 5px rgba(184,120,120,0.2);
  animation: wp-figures 5.5s ease-in-out infinite 1.5s;
}
.scn-wedding-plan-nastasia .gate {
  position: absolute; left: 58%; bottom: 20%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #4a4238 0%, #2a2218 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 30% 30%;
  box-shadow: inset 0 5px 15px #1a1208;
  transform-origin: left center;
  animation: wp-gate 6s ease-in-out infinite;
}
@keyframes wp-sky { 0%{opacity:0.85}50%{opacity:1}100%{opacity:0.9} }
@keyframes wp-clouds { 0%{transform:translateX(-10%)}50%{transform:translateX(10%)}100%{transform:translateX(-10%)} }
@keyframes wp-spire { 0%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}100%{transform:rotate(-0.5deg)} }
@keyframes wp-figures { 0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(2deg)}100%{transform:translateY(0) rotate(-2deg)} }
@keyframes wp-gate { 0%{transform:rotate(0)}30%{transform:rotate(2deg)}60%{transform:rotate(-1deg)}100%{transform:rotate(0)} }

/* hippolyte-arrives */
.scn-hippolyte-arrives { background: linear-gradient(180deg, #f5e8c8 0%, #d4c4a0 30%, #b0a080 60%, #8a7a5a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-hippolyte-arrives .ha-room { position: absolute; inset: 0; background: linear-gradient(135deg, #e8dccc 0%, #c4b8a4 100%); z-index: 0; }
.scn-hippolyte-arrives .ha-wall-left { position: absolute; left: 0; top: 0; bottom: 0; width: 30%; background: linear-gradient(90deg, #8a7a5a 0%, #c4b8a4 100%); border-right: 2px solid #6a5a3a; z-index: 1; }
.scn-hippolyte-arrives .ha-doorway { position: absolute; bottom: 25%; left: 15%; width: 20%; height: 50%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); z-index: 1; }
.scn-hippolyte-arrives .ha-window { position: absolute; right: 10%; top: 15%; width: 25%; height: 40%; background: linear-gradient(135deg, #a0d8ef 0%, #c0e8f8 50%, #e0f0ff 100%); border: 4px solid #6a5a3a; border-radius: 4px; background-size: 200% 100%; animation: ha-sky 30s linear infinite; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); z-index: 1; }
.scn-hippolyte-arrives .ha-chandelier { position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 20%; height: 10%; background: radial-gradient(circle, #ffd700 0%, #b8860b 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px #b8860b; z-index: 2; animation: ha-chandelier-sway 6s ease-in-out infinite alternate; }
.scn-hippolyte-arrives .ha-figure-in { position: absolute; bottom: 25%; left: 18%; width: 8%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index: 2; animation: ha-walk 8s ease-in-out infinite; }
.scn-hippolyte-arrives .ha-figure-seat { position: absolute; bottom: 25%; right: 30%; width: 10%; height: 35%; background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; z-index: 1; animation: ha-seat-breathing 5s ease-in-out infinite; }
@keyframes ha-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes ha-chandelier-sway { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(4deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ha-walk { 0% { transform: translateX(-100%) translateY(0) rotate(0deg); } 30% { transform: translateX(0) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20%) translateY(0) rotate(0deg); } 70% { transform: translateX(20%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20%) translateY(0) rotate(0deg); } }
@keyframes ha-seat-breathing { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }

/* vauxhall-incident */
.scn-vauxhall-incident { background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 30%, #0a1a3a 70%, #0a0a2a 100%), radial-gradient(ellipse at 50% 100%, #1a2a4a 0%, transparent 80%); }
.scn-vauxhall-incident .vi-sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%); animation: vi-sky-fade 20s ease-in-out infinite alternate; z-index: 0; }
.scn-vauxhall-incident .vi-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); z-index: 1; }
.scn-vauxhall-incident .vi-bench { position: absolute; bottom: 30%; left: 30%; width: 20%; height: 10%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); z-index: 2; }
.scn-vauxhall-incident .vi-figure-stand { position: absolute; bottom: 30%; left: 25%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; z-index: 2; animation: vi-stand-sway 6s ease-in-out infinite; }
.scn-vauxhall-incident .vi-figure-strike { position: absolute; bottom: 30%; left: 50%; width: 10%; height: 45%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; z-index: 2; }
.scn-vauxhall-incident .vi-figure-struck { position: absolute; bottom: 30%; right: 25%; width: 10%; height: 40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; z-index: 2; animation: vi-struck-fall 8s ease-in-out infinite; }
.scn-vauxhall-incident .vi-cane { position: absolute; bottom: 30%; left: 58%; width: 2%; height: 20%; background: #8a6a3a; transform-origin: bottom; z-index: 3; animation: vi-cane-swing 8s ease-in-out infinite; }
.scn-vauxhall-incident .vi-lantern { position: absolute; top: 20%; right: 40%; width: 8%; height: 12%; background: radial-gradient(circle, #ffd700 0%, #b8860b 50%, transparent 80%); box-shadow: 0 0 30px #b8860b; z-index: 4; animation: vi-lantern-sway 10s ease-in-out infinite alternate; }
@keyframes vi-sky-fade { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes vi-stand-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes vi-cane-swing { 0% { transform: rotate(0deg); } 20% { transform: rotate(-60deg); } 40% { transform: rotate(10deg); } 60% { transform: rotate(-45deg); } 80% { transform: rotate(0deg); } 100% { transform: rotate(0deg); } }
@keyframes vi-struck-fall { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(30deg) translateY(5%); } 60% { transform: rotate(-10deg) translateY(2%); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes vi-lantern-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* mock-lesson-pistol */
.scn-mock-lesson-pistol { background: linear-gradient(180deg, #f5e0c0 0%, #e0c8a0 50%, #c8a880 100%), radial-gradient(ellipse at 80% 30%, #fff8e0 0%, transparent 60%); }
.scn-mock-lesson-pistol .mlp-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #dcc8a0 0%, #c4b080 100%); z-index: 0; }
.scn-mock-lesson-pistol .mlp-desk { position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); z-index: 1; }
.scn-mock-lesson-pistol .mlp-pistol { position: absolute; bottom: 25%; left: 30%; width: 15%; height: 4%; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); border-radius: 10% 10% 20% 20% / 50% 50% 50% 50%; transform: rotate(-20deg); z-index: 2; animation: mlp-pistol-tilt 6s ease-in-out infinite alternate; }
.scn-mock-lesson-pistol .mlp-hand { position: absolute; bottom: 20%; left: 32%; width: 8%; height: 12%; background: linear-gradient(180deg, #c8a880 0%, #b89860 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index: 2; animation: mlp-hand-tap 4s ease-in-out infinite; }
.scn-mock-lesson-pistol .mlp-inkwell { position: absolute; bottom: 20%; right: 20%; width: 6%; height: 8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5); z-index: 2; }
.scn-mock-lesson-pistol .mlp-lamp { position: absolute; top: 10%; left: 10%; width: 10%; height: 15%; background: radial-gradient(circle at 50% 20%, #ffd700 0%, #b8860b 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px #b8860b; z-index: 3; animation: mlp-lamp-flicker 3s ease-in-out infinite alternate; }
.scn-mock-lesson-pistol .mlp-sunbeam { position: absolute; top: 0; left: 20%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.1) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); z-index: 1; animation: mlp-beam-sweep 20s linear infinite alternate; }
@keyframes mlp-pistol-tilt { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-25deg); } }
@keyframes mlp-hand-tap { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes mlp-lamp-flicker { 0% { box-shadow: 0 0 40px #b8860b; opacity: 1; } 50% { box-shadow: 0 0 60px #ffd700; opacity: 0.9; } 100% { box-shadow: 0 0 30px #b8860b; opacity: 1; } }
@keyframes mlp-beam-sweep { 0% { transform: translateX(-50%); } 100% { transform: translateX(50%); } }

/* second-offer-duel */
.scn-second-offer-duel { background: linear-gradient(180deg, #6a4a7a 0%, #4a2a6a 40%, #2a1a4a 100%), radial-gradient(ellipse at 50% 0%, #8a6a9a 0%, transparent 60%); }
.scn-second-offer-duel .sod-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #7a5a8a 0%, #4a2a6a 100%); animation: sod-sky-twinkle 20s ease-in-out infinite alternate; z-index: 0; }
.scn-second-offer-duel .sod-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; z-index: 1; }
.scn-second-offer-duel .sod-moon { position: absolute; top: 15%; left: 50%; transform: translateX(-50%); width: 8%; height: 8%; background: radial-gradient(circle, #f5e8c8 0%, #d4c4a0 80%, transparent 100%); box-shadow: 0 0 40px #f5e8c8; z-index: 2; animation: sod-moon-bounce 8s ease-in-out infinite; }
.scn-second-offer-duel .sod-figure-l { position: absolute; bottom: 38%; left: 25%; width: 8%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index: 2; animation: sod-duel-l 6s ease-in-out infinite; }
.scn-second-offer-duel .sod-figure-r { position: absolute; bottom: 38%; right: 25%; width: 8%; height: 40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; z-index: 2; animation: sod-duel-l 6s ease-in-out infinite; animation-delay: -3s; }
.scn-second-offer-duel .sod-handkerchief { position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%); width: 6%; height: 3%; background: #fff; border-radius: 50% 50% 30% 30%; z-index: 3; animation: sod-hanky-float 12s ease-in-out infinite; }
.scn-second-offer-duel .sod-hat-l { position: absolute; bottom: 70%; left: 23%; width: 6%; height: 6%; background: #1a1a2a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; z-index: 3; animation: sod-hat-l-fly 6s ease-in-out infinite; }
.scn-second-offer-duel .sod-hat-r { position: absolute; bottom: 70%; right: 23%; width: 6%; height: 6%; background: #2a1a1a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; z-index: 3; animation: sod-hat-l-fly 6s ease-in-out infinite; animation-delay: -2s; }
@keyframes sod-sky-twinkle { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sod-moon-bounce { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(10px); } 50% { transform: translateX(-50%) translateY(-5px); } 75% { transform: translateX(-50%) translateY(8px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sod-duel-l { 0% { transform: rotate(0deg); } 20% { transform: rotate(10deg); } 40% { transform: rotate(-5deg); } 60% { transform: rotate(15deg); } 80% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes sod-hanky-float { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-15px) rotate(10deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sod-hat-l-fly { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-30px) rotate(45deg); } 60% { transform: translateY(-10px) rotate(-20deg); } 100% { transform: translateY(0) rotate(0deg); } }
/* end per-scene blocks */
