/* 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) */
/* reason-and-heart */
.scn-reason-and-heart {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9b88c 40%, #b88a5a 100%),
    radial-gradient(ellipse at 30% 50%, #f0d4a0 0%, transparent 70%);
}
.scn-reason-and-heart .sunlight      { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,235,160,0.35) 0%, transparent 60%); animation: rh-sun 12s ease-in-out infinite alternate; }
.scn-reason-and-heart .desk          { position:absolute; bottom:10%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #6b4c2e 0%, #3f2a16 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3); }
.scn-reason-and-heart .papers        { position:absolute; bottom:22%; left:30%; width:40%; height:6%; background: linear-gradient(90deg, #e8d4b0 0%, #f0e0c0 50%, #e0c8a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: rh-papers 6s ease-in-out infinite; }
.scn-reason-and-heart .figure        { position:absolute; bottom:20%; left:20%; width:18%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rh-figure 8s ease-in-out infinite; }
.scn-reason-and-heart .heart         { position:absolute; bottom:50%; left:50%; width:8%; height:8%; background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a03a2a 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: translate(-50%, -50%) rotate(-45deg); box-shadow: 0 0 20px 8px rgba(200,85,61,0.4); animation: rh-heart 4s ease-in-out infinite; }
.scn-reason-and-heart .shadow-reason { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); pointer-events: none; }
@keyframes rh-sun     { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rh-papers  { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes rh-figure  { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg) scale(1.02); } }
@keyframes rh-heart   { 0%,100% { transform: translate(-50%, -50%) rotate(-45deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(-45deg) scale(1.1); opacity:0.9; } }

/* natacha-in-street */
.scn-natacha-in-street {
  background:
    linear-gradient(180deg, #b5c8d4 0%, #e0d0b8 30%, #b8956a 100%),
    radial-gradient(ellipse at 80% 20%, #f5e6c8 0%, transparent 60%);
}
.scn-natacha-in-street .sky            { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9ab5 0%, #b5c8d4 60%, transparent 100%); animation: ns-sky 14s ease-in-out infinite alternate; }
.scn-natacha-in-street .buildings      { position:absolute; bottom:35%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); }
.scn-natacha-in-street .barricade      { position:absolute; bottom:30%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: ns-barricade 3s ease-in-out infinite; }
.scn-natacha-in-street .street         { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); }
.scn-natacha-in-street .figure-natacha { position:absolute; bottom:28%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-natacha 4s ease-in-out infinite; }
.scn-natacha-in-street .figure-boris   { position:absolute; bottom:28%; right:35%; width:14%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-boris 5s ease-in-out infinite; }
.scn-natacha-in-street .shadow-tense   { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); pointer-events: none; }
@keyframes ns-sky       { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ns-barricade { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } }
@keyframes ns-natacha   { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } }
@keyframes ns-boris     { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-9px) rotate(-1deg); } }

/* michael-stone-heart */
.scn-michael-stone-heart {
  background:
    linear-gradient(180deg, #c8b8a8 0%, #a08060 40%, #6a5030 100%),
    radial-gradient(ellipse at 50% 30%, #e0d0b8 0%, transparent 70%);
}
.scn-michael-stone-heart .courtyard      { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 0 0 40% 40%; }
.scn-michael-stone-heart .wall           { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.4); }
.scn-michael-stone-heart .figure-michael { position:absolute; bottom:25%; left:30%; width:16%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msh-figure 6s ease-in-out infinite; }
.scn-michael-stone-heart .stone-heart    { position:absolute; bottom:45%; left:45%; width:10%; height:12%; background: radial-gradient(circle at 40% 30%, #8a7a6a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: translate(-50%, -50%) rotate(-45deg); box-shadow: 0 0 10px 4px rgba(0,0,0,0.3); animation: msh-stone 8s ease-in-out infinite; }
.scn-michael-stone-heart .shadow-michael { position:absolute; bottom:20%; left:25%; width:20%; height:5%; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(6px); animation: msh-shadow 6s ease-in-out infinite; }
.scn-michael-stone-heart .government-seal{ position:absolute; top:10%; right:10%; width:12%; height:12%; background: radial-gradient(circle, #a08060 0%, #504030 100%); border: 2px solid #605040; border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3); }
@keyframes msh-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg) scale(1.02); } }
@keyframes msh-stone  { 0%,100% { transform: translate(-50%, -50%) rotate(-45deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(-45deg) scale(1.05); box-shadow: 0 0 20px 8px rgba(0,0,0,0.4); } }
@keyframes msh-shadow { 0%,100% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.1); opacity:0.8; } }

/* natacha-delays */
.scn-natacha-delays {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #c8b08a 40%, #a08060 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-natacha-delays .garden              { position:absolute; inset:0; background: linear-gradient(180deg, #b0a080 0%, #7a6a4a 100%); }
.scn-natacha-delays .arch                { position:absolute; bottom:20%; left:30%; right:30%; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
.scn-natacha-delays .figure-natacha-delay{ position:absolute; bottom:28%; left:38%; width:12%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-natacha 5s ease-in-out infinite; }
.scn-natacha-delays .figure-michael-delay{ position:absolute; bottom:28%; right:38%; width:14%; height:42%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-michael 6s ease-in-out infinite; }
.scn-natacha-delays .wedding-veil        { position:absolute; bottom:45%; left:36%; width:16%; height:10%; background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); transform: rotate(-10deg); animation: nd-veil 8s ease-in-out infinite; }
.scn-natacha-delays .shadow-delay        { position:absolute; bottom:20%; left:20%; right:20%; height:5%; background: rgba(0,0,0,0.1); border-radius: 50%; filter: blur(8px); }
@keyframes nd-natacha { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg) scale(1.01); } }
@keyframes nd-michael { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-5px) rotate(-1deg) scale(1.01); } }
@keyframes nd-veil    { 0%,100% { transform: rotate(-10deg) scale(1); opacity:0.4; } 50% { transform: rotate(-5deg) scale(1.1); opacity:0.6; } }

/* scene: proof-positive */
.scn-proof-positive {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a120e 40%, #0d0907 100%),
    radial-gradient(ellipse at 60% 80%, #3a2a1e 0%, transparent 70%);
}
.scn-proof-positive .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #3a2a1e 0%, #1a120e 100%); }
.scn-proof-positive .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a120e 0%, #2a1e18 100%); }
.scn-proof-positive .door { position:absolute; bottom:20%; left:35%; width:30%; height:60%; background: linear-gradient(90deg, #4a3220 0%, #3a2a1a 50%, #2a1e12 100%); border:2px solid #1a0e08; border-radius:2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-proof-positive .doorlight { position:absolute; bottom:25%; left:38%; width:24%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,.15) 0%, transparent 70%); animation: pp-glow 3s ease-in-out infinite alternate; }
.scn-proof-positive .figure { position:absolute; bottom:15%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-walk-tilt 4s ease-in-out infinite; }
.scn-proof-positive .hatpin { position:absolute; bottom:30%; left:45%; width:24px; height:2px; background: linear-gradient(90deg, #a08060 0%, #c0a080 100%); transform: rotate(-30deg); transform-origin: left center; box-shadow: 0 0 4px rgba(255,200,100,.3); animation: pp-pin-glimmer 2s ease-in-out infinite alternate; }
.scn-proof-positive .shadow { position:absolute; bottom:18%; left:40%; width:15%; height:12%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); animation: pp-shadow-pulse 4s ease-in-out infinite; }

@keyframes pp-glow { 0% { opacity:.4 } 50% { opacity:.9 } 100% { opacity:.5 } }
@keyframes pp-walk-tilt { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes pp-pin-glimmer { 0% { opacity:.6; box-shadow: 0 0 2px rgba(255,200,100,.2) } 50% { opacity:1; box-shadow: 0 0 8px rgba(255,200,100,.6) } 100% { opacity:.7; box-shadow: 0 0 3px rgba(255,200,100,.3) } }
@keyframes pp-shadow-pulse { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } }

/* scene: item-two-hatpin-holes */
.scn-item-two-hatpin-holes {
  background:
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 50%, #2a1e14 0%, transparent 60%);
}
.scn-item-two-hatpin-holes .panel { position:absolute; top:15%; left:20%; width:60%; height:70%; background: linear-gradient(135deg, #4a3220 0%, #2a1e12 100%); border:2px solid #1a0e08; border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-item-two-hatpin-holes .hole1 { position:absolute; top:40%; left:38%; width:4px; height:4px; background: #0a0604; border-radius:50%; box-shadow: 0 0 6px rgba(0,0,0,.9); }
.scn-item-two-hatpin-holes .hole2 { position:absolute; top:40%; left:42%; width:5px; height:5px; background: #0a0604; border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,.9); animation: th-hole-glow 2s ease-in-out infinite alternate; }
.scn-item-two-hatpin-holes .woodgrain { position:absolute; top:15%; left:20%; width:60%; height:70%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,.05) 20px, rgba(0,0,0,.05) 22px); opacity:.3; }
.scn-item-two-hatpin-holes .shadow { position:absolute; top:15%; left:20%; width:60%; height:70%; background: linear-gradient(135deg, rgba(0,0,0,.5) 0%, transparent 60%); }
.scn-item-two-hatpin-holes .hand { position:absolute; bottom:10%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: th-hand-tremble 1.5s ease-in-out infinite; }
.scn-item-two-hatpin-holes .pin-tip { position:absolute; bottom:28%; left:45%; width:18px; height:2px; background: #806040; transform: rotate(-25deg); transform-origin: right center; box-shadow: 0 0 2px rgba(200,160,100,.4); }

@keyframes th-hole-glow { 0% { box-shadow: 0 0 6px rgba(0,0,0,.8) } 50% { box-shadow: 0 0 12px rgba(50,30,20,.6) } 100% { box-shadow: 0 0 8px rgba(0,0,0,.9) } }
@keyframes th-hand-tremble { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-1px) } 50% { transform: rotate(8deg) translateY(0) } 75% { transform: rotate(11deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }

/* scene: hatpin-method-explained */
.scn-hatpin-method-explained {
  background:
    linear-gradient(180deg, #2a1e18 0%, #1a120e 60%, #0d0907 100%),
    radial-gradient(circle at 30% 40%, #3a2a1e 0%, transparent 50%);
}
.scn-hatpin-method-explained .door-panel { position:absolute; top:10%; left:15%; width:70%; height:75%; background: linear-gradient(90deg, #4a3220 0%, #3a2a1a 50%, #2a1e12 100%); border:2px solid #1a0e08; border-radius:3%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-hatpin-method-explained .hand { position:absolute; bottom:15%; left:25%; width:25px; height:35px; background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform: rotate(-15deg); transform-origin: bottom left; animation: hm-hand-insert 3s ease-in-out infinite; }
.scn-hatpin-method-explained .hatpin { position:absolute; bottom:25%; left:28%; width:40px; height:2px; background: #a08060; transform: rotate(10deg); transform-origin: left center; box-shadow: 0 0 4px rgba(200,160,100,.5); animation: hm-pin-slide 3s ease-in-out infinite; }
.scn-hatpin-method-explained .lightspot { position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse, rgba(200,150,80,.15) 0%, transparent 70%); animation: hm-light-flicker 2s ease-in-out infinite alternate; }
.scn-hatpin-method-explained .shadowhand { position:absolute; bottom:12%; left:22%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); transform: rotate(-10deg); animation: hm-shadow-shift 3s ease-in-out infinite; }
.scn-hatpin-method-explained .doorframe { position:absolute; top:8%; left:12%; width:76%; height:79%; border:4px solid #1a0e08; border-radius:5%; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-hatpin-method-explained .floorline { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(0deg, #1a120e 0%, #2a1e18 100%); }

@keyframes hm-hand-insert { 0% { transform: rotate(-15deg) translateY(0) } 30% { transform: rotate(-10deg) translateY(-2px) } 60% { transform: rotate(-18deg) translateY(0) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes hm-pin-slide { 0% { transform: rotate(10deg) translateX(0) } 30% { transform: rotate(8deg) translateX(6px) } 60% { transform: rotate(12deg) translateX(-2px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes hm-light-flicker { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes hm-shadow-shift { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.05) } 100% { transform: rotate(-10deg) scale(1) } }

/* scene: they-are-coming */
.scn-they-are-coming {
  background:
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e14 0%, transparent 60%);
}
.scn-they-are-coming .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a120e 0%, #2a1e18 100%); }
.scn-they-are-coming .pin { position:absolute; bottom:32%; left:45%; width:20px; height:20px; background: radial-gradient(circle at 50% 30%, #a08060 0%, #806040 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; transform: rotate(15deg); box-shadow: 0 0 8px rgba(200,160,100,.3); animation: tc-pin-gleam 2s ease-in-out infinite alternate; }
.scn-they-are-coming .pinshadow { position:absolute; bottom:30%; left:44%; width:22px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); transform: rotate(15deg); animation: tc-shadow-stretch 2s ease-in-out infinite alternate; }
.scn-they-are-coming .figure { position:absolute; bottom:15%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure-shift 5s ease-in-out infinite; }
.scn-they-are-coming .figurelight { position:absolute; bottom:18%; left:52%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,150,80,.1) 0%, transparent 60%); animation: tc-light-pulse 3s ease-in-out infinite; }
.scn-they-are-coming .door { position:absolute; bottom:10%; left:15%; width:25%; height:70%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1e12 100%); border:2px solid #1a0e08; border-radius:2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-they-are-coming .doorcrack { position:absolute; bottom:30%; left:22%; width:8%; height:35%; background: linear-gradient(180deg, #0a0604 0%, #1a1008 100%); border-radius: 0 2px 2px 0; box-shadow: inset 0 0 6px #0a0604; animation: tc-crack-open 4s ease-in-out infinite; }

@keyframes tc-pin-gleam { 0% { box-shadow: 0 0 4px rgba(200,160,100,.2) } 50% { box-shadow: 0 0 12px rgba(200,160,100,.6) } 100% { box-shadow: 0 0 6px rgba(200,160,100,.3) } }
@keyframes tc-shadow-stretch { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.2) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes tc-figure-shift { 0% { transform: translateX(0) translateY(0) } 20% { transform: translateX(2px) translateY(-1px) } 40% { transform: translateX(-1px) translateY(0) } 60% { transform: translateX(3px) translateY(-1px) } 80% { transform: translateX(-2px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes tc-light-pulse { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes tc-crack-open { 0% { width:6% } 50% { width:10% } 100% { width:6% } }

/* constant-tick-tack */
.scn-constant-tick-tack {
  background: linear-gradient(135deg, #110c18 0%, #1b1426 40%, #0d0a12 100%), radial-gradient(ellipse at 70% 80%, #2a1f3a 0%, transparent 70%);
}
.scn-constant-tick-tack .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0b0812 0%, #181220 50%, #0d0a14 100%);
  animation: tck-breathe 6s ease-in-out infinite alternate;
}
.scn-constant-tick-tack .clock-face {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px; border-radius: 50%;
  background: radial-gradient(circle at 50% 40%, #3a2d4a 0%, #1a1424 60%, #0d0912 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 12px #2a1f35;
  border: 3px solid #2a2040;
  animation: tck-pulse 2s ease-in-out infinite;
}
.scn-constant-tick-tack .pendulum {
  position: absolute; bottom: 38%; width: 4px; height: 90px;
  background: linear-gradient(180deg, #b0a0c0 0%, #605070 50%, #302040 100%);
  transform-origin: top center;
}
.scn-constant-tick-tack .pendulum.left {
  left: 35%; animation: tck-swing-left 1.8s ease-in-out infinite alternate;
}
.scn-constant-tick-tack .pendulum.right {
  right: 35%; animation: tck-swing-right 1.8s ease-in-out infinite alternate;
}
.scn-constant-tick-tack .figure-ear {
  position: absolute; bottom: 20%; left: 45%;
  width: 30px; height: 50px;
  background: radial-gradient(ellipse at 60% 30%, #2a1e35 0%, #0f0a18 70%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%;
  box-shadow: inset 0 0 20px #120c1a;
  animation: tck-ear 4s ease-in-out infinite;
}
.scn-constant-tick-tack .shadow-stripe {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 20%, transparent 80%);
  animation: tck-stripe 3s ease-in-out infinite alternate;
}
.scn-constant-tick-tack .tick-texture {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(60,40,80,0.08) 0px, rgba(60,40,80,0.08) 1px, transparent 1px, transparent 4px);
  pointer-events: none;
  animation: tck-texture 10s linear infinite;
}
@keyframes tck-breathe {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes tck-pulse {
  0%, 100% { box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 12px #2a1f35; }
  50% { box-shadow: 0 0 30px rgba(40,20,60,0.6), inset 0 0 20px #3a2a4a; }
}
@keyframes tck-swing-left {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(8deg); }
}
@keyframes tck-swing-right {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-8deg); }
}
@keyframes tck-ear {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes tck-stripe {
  0% { left: 15%; width: 70%; }
  100% { left: 25%; width: 50%; }
}
@keyframes tck-texture {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}

/* general-dreaming */
.scn-general-dreaming {
  background: linear-gradient(180deg, #0c0a14 0%, #1a1424 40%, #0a0810 100%), radial-gradient(ellipse at 30% 50%, #2a1a3a 0%, transparent 60%);
}
.scn-general-dreaming .bg-door {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #120e1c 0%, #1e1730 50%, #140e20 100%);
  animation: drm-shadow 8s ease-in-out infinite alternate;
}
.scn-general-dreaming .door-frame {
  position: absolute; top: 10%; bottom: 10%; width: 20%;
  background: linear-gradient(180deg, #2a2038 0%, #150e20 100%);
  border-radius: 4px;
}
.scn-general-dreaming .door-frame.left { left: 10%; }
.scn-general-dreaming .door-frame.right { right: 10%; }
.scn-general-dreaming .corner-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: drm-corner 6s ease-in-out infinite;
}
.scn-general-dreaming .figure-hidden {
  position: absolute; bottom: 25%; left: 35%;
  width: 20px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, #0d0812 70%);
  border-radius: 40% 40% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: drm-figure 5s ease-in-out infinite alternate;
}
.scn-general-dreaming .moan-wave {
  position: absolute; top: 40%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(100,60,120,0.1) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: drm-moan 4s ease-in-out infinite;
}
@keyframes drm-shadow {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes drm-corner {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); opacity: 0.8; }
}
@keyframes drm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(-5px) rotate(-3deg); }
}
@keyframes drm-moan {
  0%, 100% { opacity: 0.1; transform: scaleY(1); }
  50% { opacity: 0.3; transform: scaleY(1.2); }
}

/* koupriane-advice */
.scn-koupriane-advice {
  background: linear-gradient(180deg, #0a0712 0%, #16101e 40%, #0c0814 100%), radial-gradient(ellipse at 50% 70%, #2a1a32 0%, transparent 60%);
}
.scn-koupriane-advice .bg-shelf {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0b18 0%, #1e152a 50%, #140e1e 100%);
  animation: kpr-shadow 10s ease-in-out infinite alternate;
}
.scn-koupriane-advice .clock {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle at 50% 40%, #302040 0%, #1a1028 60%, #0a0510 100%);
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
}
.scn-koupriane-advice .clock.large {
  bottom: 30%; left: 40%; width: 90px; height: 90px;
  animation: kpr-clock-large 3s ease-in-out infinite;
}
.scn-koupriane-advice .clock.small {
  bottom: 35%; right: 30%; width: 50px; height: 50px;
  animation: kpr-clock-small 2.5s ease-in-out infinite;
}
.scn-koupriane-advice .hand-stop {
  position: absolute; bottom: 40%; left: 48%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #a080b0 0%, #4a3058 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: kpr-hand 2s ease-in-out infinite alternate;
}
.scn-koupriane-advice .infernal-glow {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,80,40,0.12) 0%, transparent 70%);
  border-radius: 50%;
  animation: kpr-glow 5s ease-in-out infinite;
}
.scn-koupriane-advice .watch-chain {
  position: absolute; bottom: 32%; left: 42%; width: 80px; height: 4px;
  background: repeating-linear-gradient(90deg, #706080 0px, #706080 3px, transparent 3px, transparent 6px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: kpr-chain 7s linear infinite;
}
.scn-koupriane-advice .shadow-pendulum {
  position: absolute; top: 20%; left: 50%; width: 3px; height: 50px;
  background: rgba(40,20,60,0.3);
  transform-origin: top center;
  animation: kpr-pendulum 3s ease-in-out infinite alternate;
}
@keyframes kpr-shadow { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes kpr-clock-large { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes kpr-clock-small { 0%,100% { transform: scale(1); } 50% { transform: scale(0.95); } }
@keyframes kpr-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes kpr-glow {
  0%, 100% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
}
@keyframes kpr-chain {
  0% { background-position: 0 0; }
  100% { background-position: 80px 0; }
}
@keyframes kpr-pendulum {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(12deg); }
}

/* chimney-bomb */
.scn-chimney-bomb {
  background: linear-gradient(180deg, #0b0a10 0%, #1a1628 40%, #0d0c16 100%), radial-gradient(ellipse at 50% 100%, #3a1a22 0%, transparent 60%);
}
.scn-chimney-bomb .bg-fireplace {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0c18 0%, #1e1a2e 50%, #141020 100%);
  animation: chb-shadow 8s ease-in-out infinite alternate;
}
.scn-chimney-bomb .mantel {
  position: absolute; top: 20%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #2a203a 0%, #1a0e28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: chb-mantel 6s ease-in-out infinite;
}
.scn-chimney-bomb .bomb-shape {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, #1a1218 80%);
  border-radius: 20% 20% 40% 40% / 30% 30% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
  animation: chb-bomb 4s ease-in-out infinite;
}
.scn-chimney-bomb .draught-board {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, #3a2a3a 0%, #2a1a2a 50%, #3a2a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: chb-board 5s ease-in-out infinite alternate;
}
.scn-chimney-bomb .spark {
  position: absolute; bottom: 40%; left: 40%;
  width: 6px; height: 6px;
  background: #ff6a30;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,106,48,0.6);
  animation: chb-spark 2s ease-in-out infinite;
}
.scn-chimney-bomb .flame-hint {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(200,80,40,0.08) 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(10px);
  animation: chb-flame 3s ease-in-out infinite;
}
@keyframes chb-shadow { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes chb-mantel { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes chb-bomb { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes chb-board { 0% { opacity: 0.5; } 100% { opacity: 0.9; } }
@keyframes chb-spark { 0%,100% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } }
@keyframes chb-flame { 0%,100% { opacity: 0.1; } 50% { opacity: 0.3; } }

.scn-disappearing-in-reeds {
  background: linear-gradient(180deg, #2b3b55 0%, #4c6a7d 40%, #8b7d6b 70%, #5c4a3a 100%), radial-gradient(ellipse at 50% 100%, #8b7d6b 0%, transparent 60%);
}
.scn-disappearing-in-reeds .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6b7d8c 0%, #4c6a7d 50%, #8b7d6b 100%); animation: dir-sky 12s ease-in-out infinite alternate; }
.scn-disappearing-in-reeds .villa-roof { position:absolute; bottom:45%; left:60%; width:120px; height:20px; background: linear-gradient(90deg, #a0461a 0%, #c8553d 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-disappearing-in-reeds .villa-wall { position:absolute; bottom:35%; left:58%; width:130px; height:50px; background: linear-gradient(180deg, #d4c4a8 0%, #b8a48c 100%); border-radius: 0 0 6px 6px; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); }
.scn-disappearing-in-reeds .window-glow { position:absolute; bottom:42%; left:68%; width:20px; height:24px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 4px; box-shadow: 0 0 20px 6px #c08040; animation: dir-glow 2s ease-in-out infinite alternate; }
.scn-disappearing-in-reeds .reeds-back { position:absolute; bottom:30%; left:10%; right:80%; height:40%; background: linear-gradient(180deg, #5c6a4a 0%, #3a4a2a 100%); border-radius: 0 40% 0 0; animation: dir-reeds 6s ease-in-out infinite; }
.scn-disappearing-in-reeds .reeds-mid { position:absolute; bottom:28%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #6b8a4a 0%, #4a6a2a 100%); border-radius: 30% 30% 0 0; animation: dir-reeds 8s ease-in-out infinite alternate; }
.scn-disappearing-in-reeds .reeds-fore { position:absolute; bottom:22%; left:70%; right:5%; height:55%; background: linear-gradient(180deg, #7b9a4a 0%, #5a7a2a 100%); border-radius: 40% 20% 0 0; animation: dir-reeds 4s ease-in-out infinite; }
.scn-disappearing-in-reeds .figure-crouch { position:absolute; bottom:25%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dir-figure 5s ease-in-out infinite; }
@keyframes dir-sky { 0% { opacity:.7; transform: translateY(0); } 50% { opacity:.9; transform: translateY(-2px); } 100% { opacity:.6; transform: translateY(0); } }
@keyframes dir-glow { 0% { box-shadow:0 0 15px 4px #b08040; opacity:.8; } 50% { box-shadow:0 0 30px 10px #ffd080; opacity:1; } 100% { box-shadow:0 0 20px 6px #c08040; opacity:.9; } }
@keyframes dir-reeds { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(4px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes dir-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(12px) translateY(0) rotate(-2deg); } 75% { transform: translateX(20px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }

.scn-waiting-for-other {
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 40%, #7a6a5a 100%), radial-gradient(ellipse at 50% 0%, #7a6a5a 0%, transparent 70%);
}
.scn-waiting-for-other .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a4a5a 0%, #6a5a4a 100%); }
.scn-waiting-for-other .door-frame { position:absolute; bottom:20%; left:40%; width:80px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: wfo-frame 15s ease-in-out infinite; }
.scn-waiting-for-other .door-panel { position:absolute; bottom:22%; left:44%; width:64px; height:100px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: wfo-door 8s ease-in-out infinite alternate; }
.scn-waiting-for-other .hand-touch { position:absolute; bottom:45%; left:30%; width:16px; height:24px; background: linear-gradient(180deg, #c89a6a 0%, #a07040 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; animation: wfo-hand 3s ease-in-out infinite; }
.scn-waiting-for-other .figure-waiting { position:absolute; bottom:18%; left:20%; width:28px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: wfo-figure 6s ease-in-out infinite; }
.scn-waiting-for-other .shadow-floor { position:absolute; bottom:15%; left:10%; right:10%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: wfo-shadow 8s ease-in-out infinite alternate; }
.scn-waiting-for-other .lamp-glow { position:absolute; top:30%; left:15%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 70%); animation: wfo-lamp 4s ease-in-out infinite alternate; }
@keyframes wfo-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes wfo-door { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes wfo-hand { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(6px,-3px) rotate(10deg); } 50% { transform: translate(10px,0) rotate(5deg); } 75% { transform: translate(14px,-2px) rotate(-5deg); } 100% { transform: translate(18px,0) rotate(0); } }
@keyframes wfo-figure { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes wfo-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.1); } 100% { opacity:.2; transform: scaleX(1); } }
@keyframes wfo-lamp { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }

.scn-impossible-to-work {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 50%, #6a5a4a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%);
}
.scn-impossible-to-work .corridor-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 100%); }
.scn-impossible-to-work .door-step { position:absolute; bottom:25%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 12px rgba(0,0,0,.3); animation: itw-step 10s ease-in-out infinite; }
.scn-impossible-to-work .figure-weeping { position:absolute; bottom:20%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: itw-weep 4s ease-in-out infinite; }
.scn-impossible-to-work .tear-drop { position:absolute; bottom:40%; left:44%; width:4px; height:6px; background: radial-gradient(circle, #8ab4d4 0%, #5a8aaa 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(90,138,170,.3); animation: itw-tear 2s ease-in-out infinite; }
.scn-impossible-to-work .lamp-light { position:absolute; top:30%; left:10%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%); animation: itw-lamp 5s ease-in-out infinite alternate; }
.scn-impossible-to-work .shadow-figure { position:absolute; bottom:18%; left:15%; right:60%; height:40px; background: radial-gradient(ellipse at bottom, rgba(0,0,0,.4) 0%, transparent 70%); animation: itw-shadow 7s ease-in-out infinite alternate; }
@keyframes itw-step { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes itw-weep { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes itw-tear { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(10px) scaleY(1.5); opacity:1; } 100% { transform: translateY(20px) scaleY(1); opacity:0; } }
@keyframes itw-lamp { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(1); } }
@keyframes itw-shadow { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.4; transform: scaleX(1.2); } 100% { opacity:.3; transform: scaleX(1); } }

.scn-like-a-shadow {
  background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 40%, #6a5a4a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%);
}
.scn-like-a-shadow .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a6a7a 0%, #8b7d6b 100%); animation: las-sky 15s ease-in-out infinite alternate; }
.scn-like-a-shadow .far-trees { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: las-trees 20s ease-in-out infinite; }
.scn-like-a-shadow .figure-shadow { position:absolute; bottom:25%; left:35%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: las-figure 8s ease-in-out infinite; }
.scn-like-a-shadow .ground-mist { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(160,140,120,.3) 0%, transparent 100%); filter: blur(8px); animation: las-mist 12s ease-in-out infinite alternate; }
.scn-like-a-shadow .moon-crescent { position:absolute; top:15%; right:20%; width:30px; height:30px; background: radial-gradient(circle at 60% 50%, #e0e0e0 0%, #c0c0c0 40%, transparent 50%); border-radius: 50%; animation: las-moon 25s linear infinite; }
.scn-like-a-shadow .star-pin { position:absolute; top:10%; left:25%; width:4px; height:4px; background: radial-gradient(circle, #fff 0%, #ccc 60%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.4); animation: las-star 3s ease-in-out infinite alternate; }
@keyframes las-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes las-trees { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes las-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(20px) translateY(0) rotate(-2deg); } 100% { transform: translateX(30px) translateY(0) rotate(0); } }
@keyframes las-mist { 0% { opacity:.4; transform: translateX(0); } 50% { opacity:.6; transform: translateX(15px); } 100% { opacity:.3; transform: translateX(0); } }
@keyframes las-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(-20px); } }
@keyframes las-star { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.9; transform: scale(1.2); } 100% { opacity:.6; transform: scale(1); } }

/* scene: natacha-no-heart */
.scn-natacha-no-heart {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88c 40%, #a8835a 100%),
              radial-gradient(ellipse at 50% 30%, #ffeab0 0%, transparent 60%);
}
.scn-natacha-no-heart .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4b88c 0%, #c9a87a 100%); }
.scn-natacha-no-heart .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a8835a 0%, #7a5f3a 100%); }
.scn-natacha-no-heart .lamplight { position:absolute; top:20%; left:50%; width:120px; height:120px; transform:translate(-50%,-20%); background: radial-gradient(circle, rgba(255,225,150,0.9) 0%, rgba(255,200,100,0.3) 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,200,100,0.5); animation: nnh-lamp 4s ease-in-out infinite alternate; }
.scn-natacha-no-heart .figure-left { position:absolute; bottom:30%; left:25%; width:30px; 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: nnh-fig-l 5s ease-in-out infinite; }
.scn-natacha-no-heart .figure-right { position:absolute; bottom:30%; right:25%; width:30px; 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: nnh-fig-r 5s ease-in-out infinite 0.5s; }
.scn-natacha-no-heart .table { position:absolute; bottom:30%; left:50%; width:80px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-natacha-no-heart .shadow-table { position:absolute; bottom:30%; left:50%; width:90px; height:6px; transform:translateX(-50%); background: rgba(0,0,0,0.3); filter: blur(4px); animation: nnh-shadow 4s ease-in-out infinite alternate; }
@keyframes nnh-lamp { 0% { opacity:0.7; transform:translate(-50%,-20%) scale(0.95); } 50% { opacity:1; transform:translate(-50%,-20%) scale(1.05); } 100% { opacity:0.8; transform:translate(-50%,-20%) scale(1); } }
@keyframes nnh-fig-l { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(5px) rotate(-2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-5px) rotate(2deg); } }
@keyframes nnh-fig-r { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-5px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(5px) rotate(-2deg); } }
@keyframes nnh-shadow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* scene: immensely-rich */
.scn-immensely-rich {
  background: linear-gradient(180deg, #f2e0b0 0%, #d4b88c 40%, #b09060 100%),
              radial-gradient(ellipse at 50% 40%, #ffe080 0%, transparent 60%);
}
.scn-immensely-rich .rich-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0c898 0%, #c9a87a 100%); }
.scn-immensely-rich .rich-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); }
.scn-immensely-rich .chest { position:absolute; bottom:35%; left:40%; width:80px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 0 0 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: imr-chest 6s ease-in-out infinite; }
.scn-immensely-rich .coins { position:absolute; bottom:45%; left:38%; width:60px; height:20px; background: radial-gradient(circle at 30% 50%, #f0c040 0%, #c08020 50%, #8a6020 100%); border-radius: 0 0 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: imr-coins 4s ease-in-out infinite alternate; }
.scn-immensely-rich .hand { position:absolute; bottom:55%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #d4a070 0%, #b08050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: imr-hand 5s ease-in-out infinite; }
.scn-immensely-rich .rich-figure { position:absolute; bottom:35%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imr-fig 7s ease-in-out infinite; }
.scn-immensely-rich .shadow-hand { position:absolute; bottom:50%; left:33%; width:30px; height:20px; background: rgba(0,0,0,0.3); filter: blur(3px); animation: imr-shdw 5s ease-in-out infinite; }
@keyframes imr-chest { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes imr-coins { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.9; transform: scaleY(0.95); } }
@keyframes imr-hand { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-5px) rotate(10deg); } 50% { transform: translate(20px,0) rotate(5deg); } 75% { transform: translate(10px,-3px) rotate(-5deg); } }
@keyframes imr-fig { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-8px); } }
@keyframes imr-shdw { 0%,100% { opacity:0.3; } 50% { opacity:0.6; } }

/* scene: item-warning-message */
.scn-item-warning-message {
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b88c 35%, #b09060 100%),
              radial-gradient(ellipse at 50% 30%, #ffecb0 0%, transparent 50%);
}
.scn-item-warning-message .msg-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e0c898 0%, #c9a87a 100%); }
.scn-item-warning-message .msg-wall { position:absolute; bottom:25%; left:0; right:0; height:75%; background: linear-gradient(180deg, #c9a87a 0%, #a8835a 100%); }
.scn-item-warning-message .msg-figure-left { position:absolute; bottom:30%; left:20%; width:30px; 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: iwm-fig-l 5s ease-in-out infinite; }
.scn-item-warning-message .msg-figure-right { position:absolute; bottom:30%; right:20%; width:30px; 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: iwm-fig-r 5s ease-in-out infinite 0.8s; }
.scn-item-warning-message .message-paper { position:absolute; bottom:50%; left:45%; width:40px; height:30px; background: linear-gradient(135deg, #f5e6c8 0%, #e0c898 100%); box-shadow: 0 2px 6px rgba(0,0,0,0.3), 0 0 20px 8px rgba(255,200,100,0.4); transform: rotate(5deg); animation: iwm-paper 4s ease-in-out infinite; }
.scn-item-warning-message .msg-glow { position:absolute; bottom:50%; left:45%; width:50px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius:50%; transform: translate(-10%, -10%); animation: iwm-glow 4s ease-in-out infinite alternate; }
.scn-item-warning-message .msg-shadow { position:absolute; bottom:50%; left:45%; width:50px; height:30px; background: rgba(0,0,0,0.2); filter: blur(5px); transform: translate(10%, 10%); animation: iwm-shadow 4s ease-in-out infinite; }
@keyframes iwm-fig-l { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(3deg); } }
@keyframes iwm-fig-r { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(8px) rotate(-3deg); } }
@keyframes iwm-paper { 0%,100% { transform: rotate(5deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(2px,-3px); } }
@keyframes iwm-glow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes iwm-shadow { 0%,100% { opacity:0.2; } 50% { opacity:0.5; } }

/* scene: krestowsky-villa-occupied */
.scn-krestowsky-villa-occupied {
  background: linear-gradient(180deg, #c0a880 0%, #a08060 30%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 50%, #d4b88c 0%, transparent 70%);
}
.scn-krestowsky-villa-occupied .villa-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #a08060 0%, #8a6a4a 100%); }
.scn-krestowsky-villa-occupied .villa-window { position:absolute; top:25%; left:35%; width:120px; height:80px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border: 6px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: kvo-window 6s ease-in-out infinite alternate; }
.scn-krestowsky-villa-occupied .villa-frame { position:absolute; top:25%; left:35%; width:120px; height:80px; border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: 0 0 0 2px #3a2a1a; }
.scn-krestowsky-villa-occupied .villa-figure { position:absolute; top:30%; left:52%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: kvo-fig 8s ease-in-out infinite; }
.scn-krestowsky-villa-occupied .villa-lamp { position:absolute; top:28%; left:45%; width:10px; height:10px; background: #ffd080; border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,208,128,0.6); animation: kvo-lamp 3s ease-in-out infinite alternate; }
.scn-krestowsky-villa-occupied .villa-curtains { position:absolute; top:25%; left:35%; width:120px; height:80px; background: linear-gradient(90deg, rgba(100,60,30,0.6) 0%, transparent 20%, transparent 80%, rgba(100,60,30,0.6) 100%); animation: kvo-curtains 9s ease-in-out infinite; }
.scn-krestowsky-villa-occupied .villa-table { position:absolute; bottom:30%; left:40%; width:60px; height:8px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.4); animation: kvo-table 5s ease-in-out infinite; }
@keyframes kvo-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 100% { opacity:0.9; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes kvo-fig { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes kvo-lamp { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes kvo-curtains { 0%,100% { opacity:0.6; } 50% { opacity:0.3; } }
@keyframes kvo-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

.scn-final-conversation {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #3a2018 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 70%);
}
.scn-final-conversation .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1210 0%, #2a1a15 30%, #3a2018 60%, #2a1a15 100%); animation: fc-wall 12s ease-in-out infinite alternate; }
.scn-final-conversation .door { position:absolute; top:10%; right:8%; width:30%; height:80%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.6); transform: scaleX(0.95); }
.scn-final-conversation .bed { position:absolute; bottom:0; left:10%; width:45%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:8% 8% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-final-conversation .figure { position:absolute; bottom:12%; left:22%; width:16%; height:35%; background: linear-gradient(180deg, #2a1a15 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-fig 4s ease-in-out infinite; }
.scn-final-conversation .lamp { position:absolute; top:20%; left:50%; width:6%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; }
.scn-final-conversation .glow { position:absolute; top:15%; left:48%; width:12%; height:20%; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,128,64,.4); animation: fc-glow 3s ease-in-out infinite alternate; }
.scn-final-conversation .shadow { position:absolute; bottom:20%; left:18%; width:40%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; animation: fc-shadow 4s ease-in-out infinite; }
@keyframes fc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fc-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes fc-glow { 0% { opacity:.7; box-shadow: 0 0 30px 15px rgba(192,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(192,128,64,.5) } 100% { opacity:.8; box-shadow: 0 0 40px 20px rgba(192,128,64,.4) } }
@keyframes fc-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.1) } 100% { opacity:.6; transform: scaleX(0.95) } }

.scn-immediate-danger {
  background: linear-gradient(180deg, #1c1412 0%, #2e1e1a 40%, #4a2a20 100%), radial-gradient(ellipse at 50% 60%, #6a3a2a 0%, transparent 70%);
}
.scn-immediate-danger .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e1e1a 0%, #1c1412 50%, #3a2218 100%); animation: id-bg 8s ease-in-out infinite alternate; }
.scn-immediate-danger .chair { position:absolute; bottom:8%; left:15%; width:22%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:15% 15% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-immediate-danger .table { position:absolute; bottom:5%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10%; }
.scn-immediate-danger .figure-seated { position:absolute; bottom:15%; left:18%; width:14%; height:30%; background: linear-gradient(180deg, #2a1a15 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: id-seated 2s ease-in-out infinite; }
.scn-immediate-danger .figure-rising { position:absolute; bottom:10%; left:42%; width:14%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: id-rising 1.5s ease-in-out infinite; }
.scn-immediate-danger .lamp { position:absolute; top:12%; left:55%; width:5%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; animation: id-lamp 3s ease-in-out infinite; }
.scn-immediate-danger .glow { position:absolute; top:8%; left:52%; width:14%; height:22%; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(192,128,64,.4); animation: id-glow 2s ease-in-out infinite; }
@keyframes id-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes id-seated { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes id-rising { 0% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-12px) rotate(-2deg) scale(1.05) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes id-lamp { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes id-glow { 0% { opacity:.6; box-shadow: 0 0 30px 15px rgba(192,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 70px 30px rgba(192,128,64,.6) } 100% { opacity:.7; box-shadow: 0 0 40px 20px rgba(192,128,64,.4) } }

.scn-closing-doors {
  background: linear-gradient(180deg, #1a1412 0%, #2a2018 50%, #1a1412 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-closing-doors .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2018 0%, #1a1412 50%, #2a2018 100%); animation: cd-wall 10s ease-in-out infinite alternate; }
.scn-closing-doors .door-left { position:absolute; top:5%; left:15%; width:30%; height:90%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:4% 0 0 4%; box-shadow: 2px 0 12px rgba(0,0,0,.5); transform-origin: left center; animation: cd-left 4s ease-in-out infinite; }
.scn-closing-doors .door-right { position:absolute; top:5%; right:15%; width:30%; height:90%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:0 4% 4% 0; box-shadow: -2px 0 12px rgba(0,0,0,.5); transform-origin: right center; animation: cd-right 4s ease-in-out infinite; }
.scn-closing-doors .floor { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); }
.scn-closing-doors .handle { position:absolute; top:50%; left:28%; width:3%; height:6%; background: radial-gradient(circle, #6a4a2a, #3a2a1a); border-radius:20%; animation: cd-handle 4s ease-in-out infinite; }
.scn-closing-doors .shadow { position:absolute; bottom:5%; left:20%; width:60%; height:12%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: cd-shadow 4s ease-in-out infinite; }
@keyframes cd-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cd-left { 0% { transform: rotateY(0) } 25% { transform: rotateY(5deg) } 50% { transform: rotateY(0) } 75% { transform: rotateY(-5deg) } 100% { transform: rotateY(0) } }
@keyframes cd-right { 0% { transform: rotateY(0) } 25% { transform: rotateY(-5deg) } 50% { transform: rotateY(0) } 75% { transform: rotateY(5deg) } 100% { transform: rotateY(0) } }
@keyframes cd-handle { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cd-shadow { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(0.95) } }

.scn-bolted-doors-explanation {
  background: linear-gradient(180deg, #1e1814 0%, #2e221c 40%, #3e2a20 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-bolted-doors-explanation .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e221c 0%, #1e1814 60%, #3e2a20 100%); animation: bd-bg 15s ease-in-out infinite alternate; }
.scn-bolted-doors-explanation .door-main { position:absolute; top:10%; left:20%; width:25%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4%; box-shadow: 2px 0 15px rgba(0,0,0,.5); }
.scn-bolted-doors-explanation .door-servant { position:absolute; top:10%; right:20%; width:22%; height:75%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:4%; box-shadow: -2px 0 10px rgba(0,0,0,.4); }
.scn-bolted-doors-explanation .bolt { position:absolute; top:50%; left:15%; width:8%; height:4%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bd-bolt 6s ease-in-out infinite; }
.scn-bolted-doors-explanation .figure { position:absolute; bottom:12%; left:38%; width:15%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-fig 8s ease-in-out infinite; }
.scn-bolted-doors-explanation .table { position:absolute; bottom:8%; left:55%; width:18%; height:7%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10%; }
.scn-bolted-doors-explanation .map { position:absolute; bottom:12%; left:57%; width:12%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:5%; transform: rotate(-5deg); animation: bd-map 10s ease-in-out infinite; }
@keyframes bd-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bd-bolt { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes bd-fig { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(0.5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bd-map { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }

/* garden-conversations – sunlit tense garden */
.scn-garden-conversations {
  background:
    linear-gradient(180deg, #87CEEB 0%, #E0F0FF 40%, #F5F0E0 70%, #D4C9A0 100%),
    radial-gradient(ellipse at 60% 80%, #F0E6C0 0%, transparent 60%);
}
.scn-garden-conversations .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #B0D4F0 0%, #D0E8FF 100%); animation: gc-sky 8s ease-in-out infinite alternate; }
.scn-garden-conversations .hedge-bg { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(90deg, #4A6741 0%, #3A5A31 30%, #2F4F2F 70%, #4A6741 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); animation: gc-hedge 12s ease-in-out infinite; }
.scn-garden-conversations .path { position:absolute; bottom:15%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #D4C9A0 0%, #C4B990 100%); border-radius: 40% 40% 0 0 / 100% 100% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-garden-conversations .figure-left { position:absolute; bottom:20%; left:25%; width:30px; height:80px; background: linear-gradient(180deg, #2E2B25 0%, #1A1815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figure 6s ease-in-out infinite alternate; }
.scn-garden-conversations .figure-right { position:absolute; bottom:20%; right:25%; width:28px; height:76px; background: linear-gradient(180deg, #3A3028 0%, #221C18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-figure 6s ease-in-out infinite alternate-reverse; }
.scn-garden-conversations .tree { position:absolute; bottom:35%; right:15%; width:80px; height:150px; background: linear-gradient(180deg, #5E4B3A 0%, #3D2E22 100%); border-radius: 40% 60% 20% 30% / 60% 80% 20% 30%; box-shadow: inset -10px 0 20px rgba(0,0,0,0.3); animation: gc-tree 10s ease-in-out infinite alternate; }
.scn-garden-conversations .dapple { position:absolute; bottom:18%; left:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,200,0.4) 0%, transparent 70%); filter: blur(8px); animation: gc-dapple 5s ease-in-out infinite alternate; }
@keyframes gc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gc-hedge { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes gc-figure { 0% { transform: rotate(-2deg) translateX(-2px); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes gc-tree { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes gc-dapple { 0% { opacity: 0.3; transform: translate(0,0) scale(1); } 100% { opacity: 0.7; transform: translate(10px, -5px) scale(1.2); } }

/* boris-and-natacha – sunlit tense indoor scene */
.scn-boris-and-natacha {
  background:
    linear-gradient(180deg, #F5E6D0 0%, #EAD9BF 50%, #DABF99 100%),
    radial-gradient(ellipse at 80% 20%, #FFF8E7 0%, transparent 50%);
}
.scn-boris-and-natacha .sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #B0D4F0 0%, #D0E8FF 100%); animation: bn-sky 10s ease-in-out infinite alternate; }
.scn-boris-and-natacha .window-frame { position:absolute; top:10%; left:20%; width:60%; height:55%; border: 8px solid #8B7355; border-radius: 4% 4% 0 0; background: transparent; box-shadow: inset 0 0 0 2px #A08866; z-index:2; animation: bn-frame 15s ease-in-out infinite; }
.scn-boris-and-natacha .interior-wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, #DAB99F 0%, #C9A882 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.1); }
.scn-boris-and-natacha .natacha { position:absolute; bottom:20%; left:40%; width:24px; height:70px; background: linear-gradient(180deg, #A05030 0%, #7A3A20 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: bn-natacha 4s ease-in-out infinite alternate; }
.scn-boris-and-natacha .boris { position:absolute; bottom:18%; left:55%; width:28px; height:78px; background: linear-gradient(180deg, #4A6B5A 0%, #2D4A3A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bn-boris 5s ease-in-out infinite alternate; }
.scn-boris-and-natacha .curtain { position:absolute; top:10%; left:15%; width:20%; height:60%; background: linear-gradient(180deg, #C9A882 0%, #B08D6A 100%); border-radius: 0 20% 20% 0 / 0 20% 20% 0; box-shadow: -4px 0 10px rgba(0,0,0,0.2); animation: bn-curtain 8s ease-in-out infinite; }
@keyframes bn-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bn-frame { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes bn-natacha { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes bn-boris { 0% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes bn-curtain { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

/* watching-villa – sunlit tense from window */
.scn-watching-villa {
  background:
    linear-gradient(180deg, #7BA4C7 0%, #A3C9E8 40%, #D6EAF5 70%, #EAF2F8 100%),
    radial-gradient(ellipse at 30% 90%, #F5DEB3 0%, transparent 60%);
}
.scn-watching-villa .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #75A3C5 0%, #A8CCE8 100%); animation: wv-sky 12s ease-in-out infinite alternate; }
.scn-watching-villa .villa-roof { position:absolute; bottom:30%; left:25%; width:50%; height:20%; background: linear-gradient(135deg, #6B4226 0%, #4A2D18 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: wv-roof 20s ease-in-out infinite; }
.scn-watching-villa .villa-walls { position:absolute; bottom:10%; left:28%; width:44%; height:30%; background: linear-gradient(180deg, #EAD1A0 0%, #C9B080 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); }
.scn-watching-villa .villa-window-glow { position:absolute; bottom:20%; left:38%; width:10%; height:15%; background: radial-gradient(ellipse, #FFF3C4 0%, #E6C35A 50%, transparent 100%); border-radius: 10%; box-shadow: 0 0 30px 10px rgba(230,195,90,0.4); animation: wv-glow 3s ease-in-out infinite alternate; }
.scn-watching-villa .watcher-silhouette { position:absolute; bottom:10%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #1A1A2E 0%, #0D0D18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wv-watcher 6s ease-in-out infinite alternate; }
.scn-watching-villa .tree-foreground { position:absolute; bottom:0; right:-5%; width:120px; height:120px; background: radial-gradient(ellipse at 50% 100%, #2E4A2E 0%, #1A2E1A 60%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: wv-tree 15s ease-in-out infinite; }
@keyframes wv-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wv-roof { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes wv-glow { 0% { opacity: 0.5; box-shadow: 0 0 20px 5px rgba(230,195,90,0.3); } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(230,195,90,0.6); } }
@keyframes wv-watcher { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes wv-tree { 0%,100% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.05) rotate(3deg); } }

/* frog-chorus – sunlit calm pond scene */
.scn-frog-chorus {
  background:
    linear-gradient(180deg, #B0D4A0 0%, #C8E6C0 40%, #A8C8A0 70%, #88AA80 100%),
    radial-gradient(ellipse at 50% 10%, #E0F0D8 0%, transparent 60%);
}
.scn-frog-chorus .water { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #8CB87A 0%, #6A9E58 50%, #4A7A3A 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); animation: fc-water 8s ease-in-out infinite alternate; }
.scn-frog-chorus .lilypad1 { position:absolute; bottom:35%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse, #4A7A3A 0%, #3A5A2A 100%); border-radius: 50%; transform: rotate(15deg); animation: fc-lilypad 10s ease-in-out infinite; }
.scn-frog-chorus .lilypad2 { position:absolute; bottom:30%; right:25%; width:35px; height:18px; background: radial-gradient(ellipse, #4A7A3A 0%, #3A5A2A 100%); border-radius: 50%; transform: rotate(-20deg); animation: fc-lilypad 12s ease-in-out infinite reverse; }
.scn-frog-chorus .frog1 { position:absolute; bottom:38%; left:22%; width:14px; height:12px; background: radial-gradient(ellipse, #6A9E58 0%, #3A6A2A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fc-frog 3s ease-in-out infinite alternate; }
.scn-frog-chorus .frog2 { position:absolute; bottom:33%; right:28%; width:12px; height:10px; background: radial-gradient(ellipse, #6A9E58 0%, #3A6A2A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: fc-frog 3.5s ease-in-out infinite alternate-reverse; }
.scn-frog-chorus .ripple1 { position:absolute; bottom:30%; left:18%; width:60px; height:10px; background: transparent; border: 2px solid rgba(255,255,255,0.3); border-radius: 50%; animation: fc-ripple 6s linear infinite; }
.scn-frog-chorus .ripple2 { position:absolute; bottom:28%; right:22%; width:50px; height:8px; background: transparent; border: 2px solid rgba(255,255,255,0.2); border-radius: 50%; animation: fc-ripple 7s linear infinite 2s; }
@keyframes fc-water { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fc-lilypad { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(2px); } }
@keyframes fc-frog { 0% { transform: rotate(10deg) translateY(0) scale(1); } 50% { transform: rotate(5deg) translateY(-3px) scale(1.05); } 100% { transform: rotate(8deg) translateY(0) scale(1); } }
@keyframes fc-ripple { 0% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(2); } }

/* dinner-time */
.scn-dinner-time { background: linear-gradient(180deg, #4a2c1a 0%, #6a3c2a 50%, #8a5c3a 100%), radial-gradient(ellipse at 50% 70%, #c08a50 0%, transparent 60%); }
.scn-dinner-time .bg-wall { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 0 0 20% 20%; }
.scn-dinner-time .table { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 8% 8% 3% 3%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-dinner-time .plate-left { position: absolute; bottom: 25%; left: 25%; width: 14%; height: 6%; background: radial-gradient(circle, #e0c8a8 0%, #b09070 100%); border-radius: 50%; box-shadow: inset 0 0 4px #a08060; animation: dt-plate 6s ease-in-out infinite; }
.scn-dinner-time .plate-right { position: absolute; bottom: 25%; right: 25%; width: 14%; height: 6%; background: radial-gradient(circle, #e0c8a8 0%, #b09070 100%); border-radius: 50%; box-shadow: inset 0 0 4px #a08060; animation: dt-plate 6s ease-in-out infinite reverse; }
.scn-dinner-time .candle { position: absolute; bottom: 28%; left: 48%; width: 2%; height: 10%; background: linear-gradient(180deg, #e0c080 0%, #b09060 100%); border-radius: 10%; box-shadow: 0 0 6px 2px #c08040; }
.scn-dinner-time .candle-flame { position: absolute; bottom: 37%; left: 48.5%; width: 1.5%; height: 4%; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: dt-flame 0.6s ease-in-out infinite alternate; }
.scn-dinner-time .figure-seated { position: absolute; bottom: 18%; left: 35%; width: 20%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt-figure 4s ease-in-out infinite; }
@keyframes dt-plate { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dt-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.3) translateY(-3px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.9; } }
@keyframes dt-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } }

/* matrena-leads-to-dining */
.scn-matrena-leads-to-dining { background: linear-gradient(180deg, #6a4a2a 0%, #8a6a3a 60%, #5a3a1a 100%), radial-gradient(ellipse at 50% 30%, #c09a60 0%, transparent 70%); }
.scn-matrena-leads-to-dining .bg-room { position: absolute; inset: 0; background: linear-gradient(90deg, #7a5a3a 0%, #9a7a4a 50%, #7a5a3a 100%); }
.scn-matrena-leads-to-dining .floor-planks { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: repeating-linear-gradient(90deg, #4a2a1a 0px, #4a2a1a 20px, #5a3a2a 20px, #5a3a2a 40px); box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
.scn-matrena-leads-to-dining .door-arch { position: absolute; bottom: 25%; left: 60%; width: 25%; height: 50%; background: radial-gradient(ellipse at 50% 0%, #5a3a1a 0%, #3a2a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6); }
.scn-matrena-leads-to-dining .lamp-glow { position: absolute; top: 8%; left: 45%; width: 10%; height: 10%; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: ml-lamp 4s ease-in-out infinite alternate; }
.scn-matrena-leads-to-dining .figure-matrena { position: absolute; bottom: 22%; left: 35%; width: 12%; height: 38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-walk-a 6s ease-in-out infinite; }
.scn-matrena-leads-to-dining .figure-rouletabille { position: absolute; bottom: 22%; left: 50%; width: 10%; height: 32%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ml-walk-b 6s ease-in-out infinite; }
.scn-matrena-leads-to-dining .picture-frame { position: absolute; top: 15%; left: 15%; width: 15%; height: 20%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%); border: 4px solid #4a3a1a; border-radius: 5%; box-shadow: 0 0 12px rgba(0,0,0,0.4); animation: ml-frame 12s ease-in-out infinite; }
@keyframes ml-lamp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ml-walk-a { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(12px) rotate(1deg); } }
@keyframes ml-walk-b { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(15px) rotate(1deg); } }
@keyframes ml-frame { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }

/* police-in-gardens */
.scn-police-in-gardens { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 70%); }
.scn-police-in-gardens .bg-dusk { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 100%); border-radius: 0 0 40% 40%; }
.scn-police-in-gardens .lawn { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; }
.scn-police-in-gardens .tree-left { position: absolute; bottom: 30%; left: 10%; width: 12%; height: 60%; background: radial-gradient(ellipse at 50% 0%, #3a5a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: pg-tree 30s ease-in-out infinite; }
.scn-police-in-gardens .tree-right { position: absolute; bottom: 25%; right: 10%; width: 15%; height: 70%; background: radial-gradient(ellipse at 50% 0%, #3a5a2a 0%, #1a2a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: pg-tree 30s ease-in-out infinite reverse; }
.scn-police-in-gardens .figure-policeman-1 { position: absolute; bottom: 28%; left: 30%; width: 8%; height: 24%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pg-patrol 8s ease-in-out infinite; }
.scn-police-in-gardens .figure-policeman-2 { position: absolute; bottom: 28%; left: 50%; width: 8%; height: 24%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pg-patrol 8s ease-in-out infinite 2s; }
.scn-police-in-gardens .figure-policeman-3 { position: absolute; bottom: 28%; left: 65%; width: 8%; height: 24%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pg-patrol 8s ease-in-out infinite 4s; }
.scn-police-in-gardens .lodge-building { position: absolute; bottom: 30%; left: 70%; width: 20%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px rgba(0,0,0,0.7); }
@keyframes pg-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes pg-patrol { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(-4px); } 50% { transform: translateX(40px) translateY(0); } 75% { transform: translateX(20px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }

/* bouquet-affair */
.scn-bouquet-affair { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 70%); }
.scn-bouquet-affair .bg-wall-dark { position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-bouquet-affair .door-closed { position: absolute; bottom: 0; left: 65%; width: 25%; height: 80%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); border-left: 2px solid #2a1a1a; animation: ba-door 10s ease-in-out infinite; }
.scn-bouquet-affair .table-small { position: absolute; bottom: 15%; left: 20%; width: 30%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-bouquet-affair .bouquet { position: absolute; bottom: 23%; left: 28%; width: 12%; height: 20%; background: radial-gradient(ellipse at 50% 0%, #a06040 0%, #804020 50%, #2a0a0a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 12px rgba(0,0,0,0.4); animation: ba-bouquet 6s ease-in-out infinite; }
.scn-bouquet-affair .figure-madame { position: absolute; bottom: 10%; left: 5%; width: 20%; height: 60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-figure 4s ease-in-out infinite; }
.scn-bouquet-affair .shadow-under-door { position: absolute; bottom: 0; left: 68%; width: 19%; height: 6%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(4px); animation: ba-shadow 8s ease-in-out infinite alternate; }
@keyframes ba-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-3px); box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes ba-bouquet { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes ba-figure { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg); } }
@keyframes ba-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.8; transform: scaleX(1.2); } }

.scn-correspondence-sealed {
  background: linear-gradient(180deg, #1a2a3a 0%, #2c3a4e 40%, #4a5a6a 80%, #6a7a8a 100%),
              radial-gradient(ellipse at 70% 20%, #b0a080 0%, transparent 60%);
}
.scn-correspondence-sealed .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a1a2a 0%, #1a2a3a 100%); animation: cor-bg 12s ease-in-out infinite alternate; }
.scn-correspondence-sealed .dawn-light { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0a080 0%, transparent 100%); opacity:0.3; animation: cor-dawn 8s ease-in-out infinite alternate; }
.scn-correspondence-sealed .desk { position:absolute; bottom:10%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-correspondence-sealed .letter { position:absolute; bottom:22%; left:45%; width:12%; height:8%; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: cor-letter 6s ease-in-out infinite; }
.scn-correspondence-sealed .seal-wax { position:absolute; bottom:24%; left:49%; width:4%; height:4%; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%); border-radius: 50%; box-shadow: 0 0 6px #a0461a; animation: cor-wax 4s ease-in-out infinite alternate; }
.scn-correspondence-sealed .hand { position:absolute; bottom:18%; left:38%; width:15%; height:20%; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: cor-hand 3s ease-in-out infinite alternate; }
.scn-correspondence-sealed .lantern-glow { position:absolute; bottom:35%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: cor-lantern 5s ease-in-out infinite alternate; }
.scn-correspondence-sealed .shadow-bar { position:absolute; bottom:12%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, #00000055 100%); }
@keyframes cor-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cor-dawn { 0% { transform: translateY(0); opacity:0.2 } 50% { transform: translateY(-5px); opacity:0.4 } 100% { transform: translateY(0); opacity:0.3 } }
@keyframes cor-letter { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes cor-wax { 0% { box-shadow: 0 0 4px #a0461a; } 50% { box-shadow: 0 0 10px #c8553d; } 100% { box-shadow: 0 0 4px #a0461a; } }
@keyframes cor-hand { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes cor-lantern { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }

.scn-in-her-chamber {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a5e 100%),
              radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-in-her-chamber .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 100%); animation: cham-bg 15s ease-in-out infinite alternate; }
.scn-in-her-chamber .dawn-window { position:absolute; top:15%; left:10%; width:20%; height:30%; background: linear-gradient(135deg, #b0a080 0%, #8a7a6a 100%); border-radius: 4px; box-shadow: inset 0 0 10px #d0c0a0, 0 0 20px rgba(176,160,128,0.3); animation: cham-window 8s ease-in-out infinite alternate; }
.scn-in-her-chamber .bed { position:absolute; bottom:5%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-in-her-chamber .figure-sitting { position:absolute; bottom:18%; left:35%; width:12%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cham-figure 4s ease-in-out infinite; }
.scn-in-her-chamber .blanket { position:absolute; bottom:10%; left:22%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 0 0; opacity:0.6; }
.scn-in-her-chamber .shadow-window { position:absolute; top:18%; left:12%; width:16%; height:24%; background: linear-gradient(135deg, #1a1a2a 0%, transparent 100%); filter: blur(4px); animation: cham-shadow 12s ease-in-out infinite alternate; }
.scn-in-her-chamber .book { position:absolute; bottom:20%; left:50%; width:6%; height:4%; background: #3a2a1a; border-radius: 2px; transform: rotate(10deg); animation: cham-book 6s ease-in-out infinite; }
@keyframes cham-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cham-window { 0% { opacity:0.5; box-shadow: inset 0 0 5px #d0c0a0, 0 0 10px rgba(176,160,128,0.2); } 50% { opacity:0.8; box-shadow: inset 0 0 15px #e0d0b0, 0 0 25px rgba(176,160,128,0.4); } 100% { opacity:0.6; box-shadow: inset 0 0 8px #d0c0a0, 0 0 15px rgba(176,160,128,0.3); } }
@keyframes cham-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cham-shadow { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(5px) scale(1.05); } }
@keyframes cham-book { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(10deg) scale(1); } }

.scn-then-speak {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a3e 70%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a6a 0%, transparent 60%);
}
.scn-then-speak .bg-confront { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 100%); animation: then-bg 10s ease-in-out infinite alternate; }
.scn-then-speak .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-then-speak .wall { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%); border-bottom: 2px solid #3a3a4e; }
.scn-then-speak .figure-left { position:absolute; bottom:18%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom; animation: then-fleft 6s ease-in-out infinite alternate; }
.scn-then-speak .figure-right { position:absolute; bottom:18%; right:20%; width:12%; height:32%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom; animation: then-fright 5s ease-in-out infinite alternate; }
.scn-then-speak .shadow-left { position:absolute; bottom:0; left:15%; width:15%; height:10%; background: linear-gradient(180deg, transparent 0%, #00000044 100%); animation: then-sleft 7s ease-in-out infinite alternate; }
.scn-then-speak .shadow-right { position:absolute; bottom:0; right:15%; width:15%; height:12%; background: linear-gradient(180deg, transparent 0%, #00000044 100%); animation: then-sright 7s ease-in-out infinite alternate; }
.scn-then-speak .door { position:absolute; bottom:30%; left:45%; right:45%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px #1a1a0a; }
@keyframes then-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes then-fleft { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes then-fright { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes then-sleft { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }
@keyframes then-sright { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.15); } 100% { transform: scaleX(1); } }

.scn-i-swear-another {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4e 40%, #4a5a6a 80%, #6a7a8a 100%),
              radial-gradient(ellipse at 50% 10%, #b0a080 0%, transparent 50%);
}
.scn-i-swear-another .bg-pale { position:absolute; inset:0; background: linear-gradient(135deg, #0a1a2a 0%, #1a2a3a 100%); animation: swear-bg 14s ease-in-out infinite alternate; }
.scn-i-swear-another .dawn-beam { position:absolute; top:0; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #d0c0a0 0%, transparent 100%); opacity:0.25; animation: swear-beam 9s ease-in-out infinite alternate; }
.scn-i-swear-another .figure-swearing { position:absolute; bottom:15%; left:35%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom; animation: swear-fig 7s ease-in-out infinite alternate; }
.scn-i-swear-another .raised-hand { position:absolute; bottom:45%; left:43%; width:6%; height:12%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom; transform: rotate(-30deg); animation: swear-hand 3s ease-in-out infinite alternate; }
.scn-i-swear-another .shadow-figure { position:absolute; bottom:0; left:30%; width:25%; height:8%; background: linear-gradient(180deg, #00000044 0%, transparent 100%); animation: swear-shadow 8s ease-in-out infinite alternate; }
.scn-i-swear-another .table { position:absolute; bottom:5%; left:25%; right:25%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 4px; }
.scn-i-swear-another .candle { position:absolute; bottom:18%; left:50%; width:2%; height:10%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 0 6px #ffd080; animation: swear-candle 4s ease-in-out infinite alternate; }
@keyframes swear-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes swear-beam { 0% { transform: translateY(0); opacity:0.2; } 50% { transform: translateY(-10px); opacity:0.4; } 100% { transform: translateY(0); opacity:0.25; } }
@keyframes swear-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes swear-hand { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-20deg) scale(1.05); } 100% { transform: rotate(-30deg) scale(1); } }
@keyframes swear-shadow { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.3); opacity:0.7; } }
@keyframes swear-candle { 0% { box-shadow: 0 0 4px #ffd080; } 50% { box-shadow: 0 0 10px #ffd080; } 100% { box-shadow: 0 0 4px #ffd080; } }

/* scene i-am-sure */
.scn-i-am-sure { background: linear-gradient(180deg, #3a1a2a 0%, #6a3a2a 30%, #b08040 60%, #f0c060 100%), radial-gradient(ellipse at 50% 0%, #f0c060 0%, transparent 70%); }
.scn-i-am-sure .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a3a 0%, #4a2a2a 30%, #8a4a2a 60%, transparent 100%); animation: is-sky 25s ease-in-out infinite alternate; }
.scn-i-am-sure .sunrise { position:absolute; bottom:30%; left:50%; width:100px; height:100px; transform:translate(-50%,50%); background: radial-gradient(circle, #f0c060 0%, #d08040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px #f0c060; animation: is-sun 8s ease-in-out infinite; }
.scn-i-am-sure .clouds { position:absolute; top:10%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(180,100,60,0.4), rgba(200,140,80,0.2), rgba(180,100,60,0.4)); filter: blur(8px); animation: is-clouds 40s linear infinite alternate; }
.scn-i-am-sure .figure-right { position:absolute; bottom:15%; right:20%; width:45px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: is-fig-r 6s ease-in-out infinite; }
.scn-i-am-sure .figure-left { position:absolute; bottom:15%; left:20%; width:40px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: is-fig-l 6s ease-in-out infinite; }
.scn-i-am-sure .gaze-line { position:absolute; top:45%; left:38%; width:24%; height:2px; background: radial-gradient(circle, rgba(240,192,96,0.8) 0%, transparent 100%); transform:rotate(-5deg); filter: blur(1px); animation: is-gaze 7s ease-in-out infinite; }
@keyframes is-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes is-sun { 0% { transform:translate(-50%,50%) scale(1); } 50% { transform:translate(-50%,45%) scale(1.05); box-shadow: 0 0 100px 60px #f0c060; } 100% { transform:translate(-50%,50%) scale(1); } }
@keyframes is-clouds { 0% { transform:translateX(0); } 100% { transform:translateX(30px); } }
@keyframes is-fig-r { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(2deg) translateY(-2px); } 50% { transform:rotate(0deg) translateY(0); } 75% { transform:rotate(-2deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes is-fig-l { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(-2deg) translateY(-2px); } 50% { transform:rotate(0deg) translateY(0); } 75% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes is-gaze { 0% { opacity:0.3; transform:rotate(-5deg); } 50% { opacity:0.8; transform:rotate(-7deg); } 100% { opacity:0.3; transform:rotate(-5deg); } }

/* scene questioning-after-death */
.scn-questioning-after-death { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 30% 60%, #4a3a3a 0%, transparent 70%); }
.scn-questioning-after-death .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a2a2a 0%, #3a2a2a 50%, #2a2a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.8); }
.scn-questioning-after-death .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-questioning-after-death .chair { position:absolute; bottom:20%; left:40%; width:60px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:10% 10% 5% 5%; transform:rotate(-3deg); animation: qd-chair 12s ease-in-out infinite; }
.scn-questioning-after-death .slumped-figure { position:absolute; bottom:22%; left:42%; width:40px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:60% 60% 40% 40% / 70% 70% 30% 30%; transform:rotate(-20deg); transform-origin: bottom left; animation: qd-slump 5s ease-in-out infinite; }
.scn-questioning-after-death .standing-figure { position:absolute; bottom:20%; right:25%; width:35px; height:60px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: qd-stand 9s ease-in-out infinite; }
.scn-questioning-after-death .lamp-glow { position:absolute; bottom:30%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(180,100,50,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: qd-lamp 4s ease-in-out infinite alternate; }
.scn-questioning-after-death .doorway { position:absolute; bottom:20%; right:10%; width:50px; height:80px; background: #0a0a0a; border-radius:10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.9); }
@keyframes qd-chair { 0% { transform:rotate(-3deg) scale(1); } 50% { transform:rotate(-1deg) scale(1.02); } 100% { transform:rotate(-3deg) scale(1); } }
@keyframes qd-slump { 0% { transform:rotate(-20deg) translateY(0); } 30% { transform:rotate(-25deg) translateY(3px); } 60% { transform:rotate(-20deg) translateY(0); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes qd-stand { 0% { transform:scale(1) translateY(0); } 25% { transform:scale(1.01) translateY(-1px); } 50% { transform:scale(1) translateY(0); } 75% { transform:scale(1.01) translateY(1px); } 100% { transform:scale(1) translateY(0); } }
@keyframes qd-lamp { 0% { opacity:0.5; filter: blur(12px); } 100% { opacity:0.8; filter: blur(8px); } }

/* scene koupriane-intervention */
.scn-koupriane-intervention { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 50%, #1a1a2a 100%), radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 60%); }
.scn-koupriane-intervention .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); }
.scn-koupriane-intervention .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:5%; transform:perspective(200px) rotateX(5deg); animation: ki-table 15s ease-in-out infinite; }
.scn-koupriane-intervention .lamp { position:absolute; bottom:40%; left:45%; width:14px; height:20px; background: radial-gradient(circle, #c08040 0%, #8a6020 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,128,64,0.4); animation: ki-lamp 3s ease-in-out infinite alternate; }
.scn-koupriane-intervention .figure-koupriane { position:absolute; bottom:25%; left:25%; width:45px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ki-koup 8s ease-in-out infinite; }
.scn-koupriane-intervention .figure-daughter { position:absolute; bottom:25%; right:30%; width:38px; 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: ki-daughter 6s ease-in-out infinite; }
.scn-koupriane-intervention .figure-mother { position:absolute; bottom:25%; left:55%; width:36px; height:55px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ki-mother 7s ease-in-out infinite; }
.scn-koupriane-intervention .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); filter: blur(4px); }
@keyframes ki-table { 0% { transform:perspective(200px) rotateX(5deg) scale(1); } 50% { transform:perspective(200px) rotateX(6deg) scale(1.02); } 100% { transform:perspective(200px) rotateX(5deg) scale(1); } }
@keyframes ki-lamp { 0% { box-shadow: 0 0 20px 6px rgba(192,128,64,0.3); } 100% { box-shadow: 0 0 40px 15px rgba(192,128,64,0.6); } }
@keyframes ki-koup { 0% { transform:rotate(0deg) scale(1); } 25% { transform:rotate(2deg) scale(1.02); } 50% { transform:rotate(0deg) scale(1); } 75% { transform:rotate(-2deg) scale(1.02); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes ki-daughter { 0% { transform:rotate(0deg) translateY(0); } 33% { transform:rotate(1deg) translateY(-2px); } 66% { transform:rotate(-1deg) translateY(2px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes ki-mother { 0% { transform:scale(1); } 50% { transform:scale(1.01) translateY(-1px); } 100% { transform:scale(1); } }

/* scene natacha-refusal */
.scn-natacha-refusal { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #1a1a1a 100%), radial-gradient(ellipse at 40% 60%, #3a2a2a 0%, transparent 70%); }
.scn-natacha-refusal .room-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 40%, #1a1a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.7); }
.scn-natacha-refusal .window-light { position:absolute; top:10%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%); border-radius:10%; filter: blur(12px); animation: nr-window 6s ease-in-out infinite alternate; }
.scn-natacha-refusal .figure-pointing { position:absolute; bottom:15%; left:20%; width:45px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: nr-point 4s ease-in-out infinite; }
.scn-natacha-refusal .figure-falling { position:absolute; bottom:15%; right:30%; width:38px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); transform-origin: bottom center; animation: nr-fall 5s ease-in-out infinite; }
.scn-natacha-refusal .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:15%; background: radial-gradient(ellipse at 40% 100%, #0a0a0a 0%, transparent 100%); filter: blur(6px); }
.scn-natacha-refusal .door { position:absolute; bottom:10%; right:10%; width:50px; height:90px; background: #1a1a1a; border-radius:10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: nr-door 20s linear infinite alternate; }
@keyframes nr-window { 0% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes nr-point { 0% { transform:rotate(0deg) translateY(0); } 25% { transform:rotate(5deg) translateY(-3px); } 50% { transform:rotate(0deg) translateY(0); } 75% { transform:rotate(-5deg) translateY(-3px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes nr-fall { 0% { transform:rotate(10deg) translateY(0); } 30% { transform:rotate(15deg) translateY(5px); } 60% { transform:rotate(10deg) translateY(10px); } 100% { transform:rotate(10deg) translateY(0); } }
@keyframes nr-door { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.95); } 100% { transform:scaleX(1); } }

.scn-charles-dufour-toast { background: linear-gradient(180deg, #f7f0d0 0%, #e8d5a0 40%, #d4b87a 100%), radial-gradient(ellipse at 50% 100%, #f5e6b0 0%, transparent 70%); }
.scn-charles-dufour-toast .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,240,.6) 0%, rgba(200,180,130,.2) 100%); animation: cdt-bg 8s ease-in-out infinite alternate; }
.scn-charles-dufour-toast .table { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #8a6b3e 0%, #5a3c1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,.3); }
.scn-charles-dufour-toast .bottle { position:absolute; bottom:35%; left:25%; width:18px; height:50px; background: linear-gradient(180deg, #306030 0%, #104010 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-10deg); animation: cdt-bottle 4s ease-in-out infinite; }
.scn-charles-dufour-toast .glass-1 { position:absolute; bottom:38%; left:40%; width:20px; height:28px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(200,180,150,.4) 100%); border-radius: 0 0 15% 15%; border:2px solid rgba(200,180,150,.6); animation: cdt-glass-left 3s ease-in-out infinite; }
.scn-charles-dufour-toast .glass-2 { position:absolute; bottom:38%; right:35%; width:20px; height:28px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(200,180,150,.4) 100%); border-radius: 0 0 15% 15%; border:2px solid rgba(200,180,150,.6); animation: cdt-glass-right 3.5s ease-in-out infinite; }
.scn-charles-dufour-toast .arm-left { position:absolute; bottom:48%; left:30%; width:40px; height:8px; background: #c88b5a; border-radius: 50% 10% 10% 50%; transform-origin: right center; animation: cdt-arm-left 2s ease-in-out infinite; }
.scn-charles-dufour-toast .arm-right { position:absolute; bottom:48%; right:30%; width:40px; height:8px; background: #c88b5a; border-radius: 10% 50% 50% 10%; transform-origin: left center; animation: cdt-arm-right 2.5s ease-in-out infinite; }
.scn-charles-dufour-toast .foam { position:absolute; bottom:55%; left:42%; width:16px; height:12px; background: radial-gradient(circle, #f0e0c0 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: cdt-foam 1.5s ease-in-out infinite alternate; }
@keyframes cdt-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes cdt-bottle { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } }
@keyframes cdt-glass-left { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } }
@keyframes cdt-glass-right { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } }
@keyframes cdt-arm-left { 0% { transform: rotate(5deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(5deg) } }
@keyframes cdt-arm-right { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-5deg) } }
@keyframes cdt-foam { 0% { transform: scale(1); opacity:.7 } 100% { transform: scale(1.3); opacity:1 } }

.scn-dufour-death { background: linear-gradient(180deg, #e8d5a0 0%, #cdb080 40%, #b09060 100%), radial-gradient(ellipse at 50% 70%, #f5e6b0 0%, transparent 70%); }
.scn-dufour-death .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,200,.5) 0%, rgba(180,140,80,.15) 100%); animation: ddf-bg 6s ease-in-out infinite alternate; }
.scn-dufour-death .table { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #7a5c3e 0%, #4a2c0e 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: 0 -5px 12px rgba(0,0,0,.4); }
.scn-dufour-death .bottle-tipped { position:absolute; bottom:35%; left:20%; width:16px; height:45px; background: linear-gradient(180deg, #508050 0%, #205020 100%); border-radius: 20% 20% 10% 10%; transform: rotate(45deg); animation: ddf-bottle 3s ease-in-out infinite; }
.scn-dufour-death .spill { position:absolute; bottom:30%; left:15%; width:60px; height:8px; background: linear-gradient(180deg, #c8b078 0%, #a08050 100%); border-radius: 50%; filter: blur(3px); animation: ddf-spill 4s ease-in-out infinite; }
.scn-dufour-death .glass-broken { position:absolute; bottom:38%; left:35%; width:20px; height:10px; background: rgba(200,180,150,.5); border:2px solid rgba(200,180,150,.7); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); transform: rotate(-20deg); animation: ddf-glass 2.5s ease-in-out infinite; }
.scn-dufour-death .figure-fall { position:absolute; bottom:20%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #b07040 0%, #7a4a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ddf-fall 5s ease-in-out infinite; }
.scn-dufour-death .hat { position:absolute; bottom:60%; left:60%; width:30px; height:10px; background: #3a2a1a; border-radius: 50% 50% 10% 10%; transform: rotate(-15deg); animation: ddf-hat 4s ease-in-out infinite; }
.scn-dufour-death .confetti { position:absolute; top:10%; left:10%; width:12px; height:12px; background: #c8a060; border-radius: 50%; filter: blur(2px); animation: ddf-confetti 8s linear infinite; }
@keyframes ddf-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ddf-bottle { 0%,100% { transform: rotate(45deg) translateY(0) } 50% { transform: rotate(50deg) translateY(-2px) } }
@keyframes ddf-spill { 0%,100% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } }
@keyframes ddf-glass { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(5px) } }
@keyframes ddf-fall { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(5deg) translateY(-3px) } 50% { transform: rotate(-3deg) translateY(-1px) } 75% { transform: rotate(8deg) translateY(-5px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ddf-hat { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) } }
@keyframes ddf-confetti { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(100vh) rotate(360deg) } }

.scn-natacha-sings { background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 40%, #d4b890 100%), radial-gradient(ellipse at 50% 100%, #ffe8c8 0%, transparent 70%); }
.scn-natacha-sings .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,250,230,.7) 0%, rgba(200,170,130,.2) 100%); animation: nasi-bg 10s ease-in-out infinite alternate; }
.scn-natacha-sings .stage { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09060 0%, #8a6b3e 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-natacha-sings .mic-stand { position:absolute; bottom:20%; left:50%; width:4px; height:60px; background: #6a4a2a; transform: translateX(-50%); border-radius: 2px; }
.scn-natacha-sings .figure-sing { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: nasi-figure 6s ease-in-out infinite; }
.scn-natacha-sings .hair { position:absolute; bottom:70%; left:40%; width:50px; height:40px; background: radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); animation: nasi-hair 8s ease-in-out infinite alternate; }
.scn-natacha-sings .note-1 { position:absolute; top:20%; left:30%; width:14px; height:20px; background: #b08050; border-radius: 50% 0 0 50% / 50% 0 0 50%; transform: rotate(15deg); animation: nasi-note1 4s ease-in-out infinite; }
.scn-natacha-sings .note-2 { position:absolute; top:30%; right:25%; width:14px; height:20px; background: #b08050; border-radius: 50% 0 0 50% / 50% 0 0 50%; transform: rotate(-10deg); animation: nasi-note2 5s ease-in-out infinite; }
.scn-natacha-sings .spotlight { position:absolute; top:0; left:30%; width:100px; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.15) 0%, transparent 70%); animation: nasi-spotlight 12s ease-in-out infinite; }
@keyframes nasi-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes nasi-figure { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } }
@keyframes nasi-hair { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.08) } 100% { transform: scaleX(1) } }
@keyframes nasi-note1 { 0% { transform: rotate(15deg) translateY(0) opacity:.6 } 50% { transform: rotate(25deg) translateY(-10px) opacity:1 } 100% { transform: rotate(15deg) translateY(0) opacity:.6 } }
@keyframes nasi-note2 { 0% { transform: rotate(-10deg) translateY(0) opacity:.5 } 50% { transform: rotate(-20deg) translateY(-8px) opacity:.9 } 100% { transform: rotate(-10deg) translateY(0) opacity:.5 } }
@keyframes nasi-spotlight { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-natacha-eyes { background: linear-gradient(180deg, #f5f0e0 0%, #e0d0b0 40%, #c8b890 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%); }
.scn-natacha-eyes .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,250,240,.8) 0%, rgba(200,180,150,.2) 100%); animation: naey-bg 12s ease-in-out infinite alternate; }
.scn-natacha-eyes .face-profile { position:absolute; bottom:20%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #d4b890 0%, #a08060 100%); border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%; transform: rotate(10deg); box-shadow: 6px 0 10px rgba(0,0,0,.1); }
.scn-natacha-eyes .eye-left { position:absolute; bottom:40%; left:38%; width:18px; height:10px; background: radial-gradient(circle, #1a2a4a 0%, #0a1a3a 100%); border-radius: 50%; border:1px solid #2a1a0a; transform: rotate(-5deg); animation: naey-eye-left 5s ease-in-out infinite; }
.scn-natacha-eyes .eye-right { position:absolute; bottom:38%; left:50%; width:18px; height:10px; background: radial-gradient(circle, #1a2a4a 0%, #0a1a3a 100%); border-radius: 50%; border:1px solid #2a1a0a; transform: rotate(5deg); animation: naey-eye-right 5s ease-in-out infinite; }
.scn-natacha-eyes .left-brow { position:absolute; bottom:45%; left:36%; width:22px; height:4px; background: #3a2a1a; border-radius: 20% 20% 80% 80%; transform: rotate(-8deg); animation: naey-brow-left 6s ease-in-out infinite; }
.scn-natacha-eyes .right-brow { position:absolute; bottom:43%; left:49%; width:22px; height:4px; background: #3a2a1a; border-radius: 80% 80% 20% 20%; transform: rotate(8deg); animation: naey-brow-right 6s ease-in-out infinite; }
.scn-natacha-eyes .lashes { position:absolute; bottom:35%; left:37%; width:25px; height:12px; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); border-radius: 50%; animation: naey-lashes 4s ease-in-out infinite alternate; }
.scn-natacha-eyes .shadow-glint { position:absolute; bottom:40%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #ffffff 0%, rgba(255,255,255,0) 70%); border-radius: 50%; animation: naey-glint 3s ease-in-out infinite; }
@keyframes naey-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes naey-eye-left { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.2) } }
@keyframes naey-eye-right { 0%,100% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.2) } }
@keyframes naey-brow-left { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes naey-brow-right { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } }
@keyframes naey-lashes { 0% { opacity:.3 } 100% { opacity:.6 } }
@keyframes naey-glint { 0% { transform: scale(0.8) opacity:.4 } 50% { transform: scale(1.2) opacity:.9 } 100% { transform: scale(0.8) opacity:.4 } }

.scn-hoarse-sigh {
  background:
    linear-gradient(135deg, #0b0b12 0%, #14141e 40%, #1a1a28 70%, #0b0b12 100%),
    radial-gradient(ellipse at 38% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-hoarse-sigh .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a10 0%, #11111a 60%, #0d0d14 100%); }
.scn-hoarse-sigh .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0f0f15 0%, #1a1a22 100%); }
.scn-hoarse-sigh .bed-frame { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #1f1f2a 0%, #252535 100%); border-radius: 10px 10px 30px 30px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); }
.scn-hoarse-sigh .sleeper-body { position:absolute; bottom:22%; left:28%; width:44%; height:35%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a25 100%); border-radius: 30% 30% 50% 50%; }
.scn-hoarse-sigh .chest-rise { position:absolute; bottom:35%; left:35%; width:30%; height:15%; background: radial-gradient(ellipse, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50%; transform-origin: center bottom; animation: hs-chest 4s ease-in-out infinite; }
.scn-hoarse-sigh .doorway-shadow { position:absolute; top:10%; right:10%; width:28%; height:70%; background: linear-gradient(180deg, #0a0a10 0%, #0f0f18 60%, transparent 100%); border-radius: 10% 10% 0 0; filter: blur(3px); animation: hs-shadow 6s ease-in-out infinite alternate; }
.scn-hoarse-sigh .night-lamp { position:absolute; top:50%; left:8%; width:8px; height:14px; background: radial-gradient(ellipse, #f0d6b8 0%, #c89a6a 50%, #704a30 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px 2px #c89a6a; }
.scn-hoarse-sigh .lamp-glow { position:absolute; top:42%; left:2%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,154,106,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: hs-lamp-pulse 3s ease-in-out infinite alternate; }
@keyframes hs-chest {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.06) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes hs-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(4px); }
  100% { opacity: 0.4; transform: translateX(-2px); }
}
@keyframes hs-lamp-pulse {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-floor-examined {
  background:
    linear-gradient(180deg, #0f0f18 0%, #1a1a28 40%, #0d0d14 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a3a 0%, transparent 80%);
}
.scn-floor-examined .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0b0b12 0%, #12121c 50%, #0e0e16 100%); }
.scn-floor-examined .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #111118 0%, #1c1c26 100%); }
.scn-floor-examined .bed-frame { position:absolute; bottom:20%; left:10%; width:50%; height:45%; background: linear-gradient(180deg, #22222c 0%, #2a2a38 100%); border-radius: 12px 12px 35px 35px; box-shadow: inset 0 -6px 10px rgba(0,0,0,.7); }
.scn-floor-examined .sleeper-body { position:absolute; bottom:22%; left:16%; width:38%; height:38%; background: linear-gradient(180deg, #2e2e3c 0%, #1c1c28 100%); border-radius: 30% 30% 50% 50%; }
.scn-floor-examined .passing-figure { position:absolute; bottom:20%; left:-10%; width:20%; height:60%; background: radial-gradient(ellipse at 50% 20%, #1a1a24 0%, #0f0f18 100%); border-radius: 40% 30% 10% 10%; transform-origin: bottom center; animation: fe-pass 8s ease-in-out infinite; }
.scn-floor-examined .grasping-hand { position:absolute; bottom:35%; left:45%; width:8%; height:12%; background: radial-gradient(ellipse, #2a2a36 0%, #1a1a24 100%); border-radius: 50% 50% 30% 30%; transform-origin: left center; animation: fe-hand 8s ease-in-out infinite; }
.scn-floor-examined .night-lamp { position:absolute; top:45%; right:12%; width:10px; height:16px; background: radial-gradient(ellipse, #f0d6b8 0%, #c89a6a 50%, #704a30 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 8px 3px #c89a6a; }
.scn-floor-examined .lamp-glow { position:absolute; top:35%; right:5%; width:20%; height:40%; background: radial-gradient(ellipse, rgba(200,154,106,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: fe-lamp 4s ease-in-out infinite alternate; }
@keyframes fe-pass {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  25% { transform: translateX(20vw) scaleX(1.02); opacity: 0.7; }
  50% { transform: translateX(40vw) scaleX(1); opacity: 0.6; }
  75% { transform: translateX(60vw) scaleX(0.98); opacity: 0.8; }
  100% { transform: translateX(80vw) scaleX(1); opacity: 0.5; }
}
@keyframes fe-hand {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(15deg) translateX(-10px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(20deg) translateX(-8px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes fe-lamp {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

.scn-listeners-absorbed {
  background:
    linear-gradient(180deg, #0d0d16 0%, #151520 50%, #0a0a12 100%),
    radial-gradient(ellipse at 70% 50%, #20202c 0%, transparent 70%);
}
.scn-listeners-absorbed .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a10 0%, #12121c 60%, #0e0e16 100%); }
.scn-listeners-absorbed .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0e0e16 0%, #181822 100%); }
.scn-listeners-absorbed .doorway-frame { position:absolute; top:5%; left:30%; width:40%; height:70%; background: linear-gradient(180deg, #1a1a2a 0%, #252538 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); }
.scn-listeners-absorbed .shadow-fig1 { position:absolute; bottom:10%; left:32%; width:15%; height:55%; background: radial-gradient(ellipse at 50% 20%, #1e1e2a 0%, #0a0a12 100%); border-radius: 40% 30% 20% 20%; transform-origin: bottom center; animation: la-shift1 7s ease-in-out infinite alternate; }
.scn-listeners-absorbed .shadow-fig2 { position:absolute; bottom:10%; left:52%; width:13%; height:50%; background: radial-gradient(ellipse at 50% 20%, #1e1e2a 0%, #0a0a12 100%); border-radius: 30% 40% 20% 20%; transform-origin: bottom center; animation: la-shift2 7s ease-in-out infinite alternate; }
.scn-listeners-absorbed .shadow-blend { position:absolute; bottom:28%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse, #151520 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: la-blend 7s ease-in-out infinite alternate; }
.scn-listeners-absorbed .night-lamp { position:absolute; top:40%; left:55%; width:8px; height:12px; background: radial-gradient(ellipse, #f0d6b8 0%, #c89a6a 50%, #704a30 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px 2px #c89a6a; }
.scn-listeners-absorbed .lamp-glow { position:absolute; top:30%; left:45%; width:20%; height:40%; background: radial-gradient(ellipse, rgba(200,154,106,.12) 0%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: la-lamp 5s ease-in-out infinite alternate; }
@keyframes la-shift1 {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(-8px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes la-shift2 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(6px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(4px) rotate(1deg); }
}
@keyframes la-blend {
  0% { opacity: 0.5; transform: scale(1); filter: blur(6px); }
  50% { opacity: 0.8; transform: scale(1.2); filter: blur(10px); }
  100% { opacity: 0.6; transform: scale(0.9); filter: blur(8px); }
}
@keyframes la-lamp {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.15); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

.scn-sigh-and-silence {
  background:
    linear-gradient(180deg, #0c0c14 0%, #14141e 40%, #080810 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a28 0%, transparent 80%);
}
.scn-sigh-and-silence .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #090910 0%, #10101a 50%, #0b0b12 100%); }
.scn-sigh-and-silence .floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(0deg, #0e0e16 0%, #1a1a24 100%); }
.scn-sigh-and-silence .bed-frame { position:absolute; bottom:18%; left:15%; width:70%; height:45%; background: linear-gradient(180deg, #1e1e2a 0%, #262636 100%); border-radius: 14px 14px 40px 40px; box-shadow: inset 0 -6px 10px rgba(0,0,0,.6); }
.scn-sigh-and-silence .sleeper-body { position:absolute; bottom:20%; left:22%; width:56%; height:38%; background: linear-gradient(180deg, #2a2a38 0%, #181824 100%); border-radius: 30% 30% 50% 50%; }
.scn-sigh-and-silence .fist-falling { position:absolute; bottom:38%; left:45%; width:10%; height:12%; background: radial-gradient(ellipse, #3a3a4a 0%, #1c1c28 100%); border-radius: 50%; transform-origin: 80% 20%; animation: ss-fist 6s ease-in-out infinite; }
.scn-sigh-and-silence .head-turn { position:absolute; bottom:42%; left:25%; width:20%; height:18%; background: radial-gradient(ellipse at 30% 40%, #3a3a4a 0%, #252535 100%); border-radius: 60% 60% 40% 40%; transform-origin: center 60%; animation: ss-head 9s ease-in-out infinite; }
.scn-sigh-and-silence .night-lamp { position:absolute; top:45%; left:8%; width:10px; height:15px; background: radial-gradient(ellipse, #e8c8a0 0%, #c09060 50%, #6f4a28 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px 2px #c09060; }
.scn-sigh-and-silence .lamp-glow { position:absolute; top:36%; left:2%; width:22%; height:35%; background: radial-gradient(ellipse, rgba(192,144,96,.12) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: ss-lamp 4s ease-in-out infinite alternate; }
@keyframes ss-fist {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(10deg) translateY(6px); }
  60% { transform: rotate(-5deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ss-head {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(15deg) scaleX(0.95); }
  50% { transform: rotate(0deg) scaleX(1); }
  75% { transform: rotate(-20deg) scaleX(0.9); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes ss-lamp {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* dined-at-his-house */
.scn-dined-at-his-house {
  background:
    radial-gradient(ellipse at 60% 30%, #c07a40 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-dined-at-his-house .dah-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: dah-wall 12s ease-in-out infinite alternate;
}
.scn-dined-at-his-house .dah-table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-dined-at-his-house .dah-chair-left {
  position: absolute; bottom: 28%; left: 10%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: bottom;
  animation: dah-chair-sway 6s ease-in-out infinite;
}
.scn-dined-at-his-house .dah-chair-right {
  position: absolute; bottom: 28%; right: 8%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%; transform-origin: bottom;
  animation: dah-chair-sway 7s ease-in-out infinite reverse;
}
.scn-dined-at-his-house .dah-plate {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 4%;
  background: radial-gradient(circle, #e0c080 0%, #a08040 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: dah-plate 10s ease-in-out infinite;
}
.scn-dined-at-his-house .dah-glass {
  position: absolute; bottom: 24%; left: 46%; width: 3%; height: 6%;
  background: linear-gradient(180deg, rgba(200,180,100,0.6) 0%, transparent 100%);
  border-radius: 0 0 20% 20%; box-shadow: 0 0 10px #c8b464;
  animation: dah-glass 8s ease-in-out infinite;
}
.scn-dined-at-his-house .dah-lamp {
  position: absolute; top: 15%; left: 50%; width: 8%; height: 15%;
  background: radial-gradient(circle at 50% 70%, #ffd070 0%, #c08040 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.3), 0 0 80px 40px rgba(255,200,100,0.1);
  animation: dah-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-dined-at-his-house .dah-figure {
  position: absolute; bottom: 22%; left: 32%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8); animation: dah-figure 5s ease-in-out infinite;
}
@keyframes dah-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dah-chair-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes dah-plate { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes dah-glass { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.08); } }
@keyframes dah-lamp-glow { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(255,200,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,200,100,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(255,200,100,0.25); } }
@keyframes dah-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* umbrella-shop */
.scn-umbrella-shop {
  background:
    radial-gradient(ellipse at 50% 20%, #c08040 0%, transparent 60%),
    linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
}
.scn-umbrella-shop .ush-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-umbrella-shop .ush-shelf { position: absolute; top: 20%; left: 5%; width: 90%; height: 4%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-umbrella-shop .ush-umbrella-a { position: absolute; top: 10%; left: 10%; width: 12%; height: 16%; background: radial-gradient(ellipse at 50% 30%, #b04040 0%, #5a2020 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom; animation: ush-open 4s ease-in-out infinite; }
.scn-umbrella-shop .ush-umbrella-b { position: absolute; top: 12%; left: 30%; width: 10%; height: 14%; background: radial-gradient(ellipse at 50% 30%, #4080a0 0%, #204060 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom; animation: ush-open 5s ease-in-out infinite 1s; }
.scn-umbrella-shop .ush-umbrella-c { position: absolute; top: 14%; left: 55%; width: 14%; height: 18%; background: radial-gradient(ellipse at 50% 30%, #60a040 0%, #306020 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom; animation: ush-open 3.5s ease-in-out infinite 0.5s; }
.scn-umbrella-shop .ush-counter { position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-umbrella-shop .ush-shopkeeper { position: absolute; bottom: 12%; left: 40%; width: 10%; height: 28%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ush-bob 3s ease-in-out infinite; }
.scn-umbrella-shop .ush-lamp { position: absolute; top: 5%; left: 50%; width: 6%; height: 10%; background: radial-gradient(circle at 50% 60%, #ffd070 0%, #c08040 60%, transparent 100%); border-radius: 50%; filter: blur(1px); box-shadow: 0 0 30px 15px rgba(255,200,100,0.3); animation: ush-glow 4s ease-in-out infinite alternate; }
@keyframes ush-open { 0%,100% { transform: scaleY(0.3) rotate(0deg); } 50% { transform: scaleY(1) rotate(-5deg); } }
@keyframes ush-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ush-glow { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(255,200,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 25px 12px rgba(255,200,100,0.3); } }

/* asnieres-property */
.scn-asnieres-property {
  background:
    radial-gradient(ellipse at 50% 80%, #3a4a3a 0%, transparent 60%),
    linear-gradient(180deg, #1a2a3a 0%, #2a3a2a 50%, #2a1a0a 100%);
}
.scn-asnieres-property .ash-sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 100%); animation: ash-sky 20s ease-in-out infinite alternate; }
.scn-asnieres-property .ash-building { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-asnieres-property .ash-roof { position: absolute; bottom: 70%; left: 18%; width: 64%; height: 12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 100% 100% 0 0; clip-path: polygon(10% 100%, 90% 100%, 100% 0, 0 0); }
.scn-asnieres-property .ash-door { position: absolute; bottom: 20%; left: 45%; width: 12%; height: 25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-asnieres-property .ash-window-glow { position: absolute; bottom: 40%; left: 32%; width: 10%; height: 12%; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 10%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.4); animation: ash-glow 4s ease-in-out infinite alternate; }
.scn-asnieres-property .ash-tree { position: absolute; bottom: 20%; left: 8%; width: 15%; height: 60%; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(2px); animation: ash-tree 15s ease-in-out infinite; }
.scn-asnieres-property .ash-path { position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; }
.scn-asnieres-property .ash-lantern { position: absolute; bottom: 25%; left: 25%; width: 4%; height: 10%; background: radial-gradient(circle at 50% 30%, #ffd070 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,200,100,0.3); animation: ash-lantern 6s ease-in-out infinite alternate; }
@keyframes ash-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ash-glow { 0% { opacity: 0.8; box-shadow: 0 0 18px 6px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,200,100,0.5); } 100% { opacity: 0.9; box-shadow: 0 0 22px 8px rgba(255,200,100,0.35); } }
@keyframes ash-tree { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } }
@keyframes ash-lantern { 0% { transform: translateY(0) rotate(-3deg); opacity: 0.8; } 50% { transform: translateY(-4px) rotate(3deg); opacity: 1; } 100% { transform: translateY(0) rotate(-1deg); opacity: 0.9; } }

/* secret-of-the-thing */
.scn-secret-of-the-thing {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, #1a0a00 100%);
}
.scn-secret-of-the-thing .sot-bg { position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, #2a1a0a 0%, #0a0000 100%); animation: sot-bg 10s ease-in-out infinite alternate; }
.scn-secret-of-the-thing .sot-box { position: absolute; bottom: 30%; left: 35%; width: 30%; height: 30%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius: 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: sot-box 6s ease-in-out infinite; }
.scn-secret-of-the-thing .sot-lid { position: absolute; bottom: 60%; left: 33%; width: 34%; height: 6%; background: linear-gradient(180deg, #9a8a7a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; animation: sot-lid 4s ease-in-out infinite; }
.scn-secret-of-the-thing .sot-glow { position: absolute; bottom: 35%; left: 40%; width: 20%; height: 20%; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 100%); filter: blur(8px); box-shadow: 0 0 40px 20px rgba(255,200,100,0.3); animation: sot-glow 3s ease-in-out infinite alternate; }
.scn-secret-of-the-thing .sot-shadow { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: sot-shadow 6s ease-in-out infinite; }
.scn-secret-of-the-thing .sot-sparkle { position: absolute; bottom: 50%; left: 50%; width: 2%; height: 2%; background: #ffd080; border-radius: 50%; box-shadow: 0 0 10px 2px #ffd080; animation: sot-sparkle 2s ease-in-out infinite; }
@keyframes sot-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sot-box { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } }
@keyframes sot-lid { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(4deg); } }
@keyframes sot-glow { 0% { opacity: 0.6; box-shadow: 0 0 30px 15px rgba(255,200,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,200,100,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,200,100,0.3); } }
@keyframes sot-shadow { 0%,100% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.2); opacity: 0.9; } }
@keyframes sot-sparkle { 0%,100% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } }

.scn-it-is-natacha {
  background: linear-gradient(180deg, #2b1a0f 0%, #4a2e18 40%, #372011 100%),
              radial-gradient(ellipse at 50% 30%, #6b401a 0%, transparent 70%);
}
.scn-it-is-natacha .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2312 0%, #2a1508 100%);
  animation: is-walls 14s ease-in-out infinite alternate;
}
.scn-it-is-natacha .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0f05 0%, #2c1a0c 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-it-is-natacha .lamp {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #8a6e3a 0%, #3a2a12 100%);
  border-radius: 2px;
}
.scn-it-is-natacha .shadow-figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 64px;
  background: linear-gradient(180deg, #0e0a06 0%, #1f1308 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: is-figure-shift 8s ease-in-out infinite;
}
.scn-it-is-natacha .natacha-figure {
  position: absolute; bottom: 22%; right: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2212 0%, #1f1107 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: is-natacha-turn 12s ease-in-out infinite;
}
.scn-it-is-natacha .glow {
  position: absolute; bottom: 35%; left: 15%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,160,80,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: is-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes is-walls {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes is-figure-shift {
  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 is-natacha-turn {
  0% { transform: scaleX(1); }
  25% { transform: scaleX(.85) translateY(-2px); }
  50% { transform: scaleX(1.1) translateY(0); }
  75% { transform: scaleX(.9) translateY(1px); }
  100% { transform: scaleX(1); }
}
@keyframes is-glow-pulse {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .7; transform: scale(.9); }
}

.scn-natacha-student {
  background: linear-gradient(180deg, #1e1510 0%, #35241a 50%, #1f120c 100%),
              radial-gradient(ellipse at 70% 50%, #6b4022 0%, transparent 60%);
}
.scn-natacha-student .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1c14 0%, #3d281c 50%, #2a1c14 100%);
}
.scn-natacha-student .desk {
  position: absolute; bottom: 15%; left: 25%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #4a3224 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ns-desk 20s ease-in-out infinite;
}
.scn-natacha-student .book {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  animation: ns-book 10s ease-in-out infinite;
}
.scn-natacha-student .candle {
  position: absolute; bottom: 22%; left: 32%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 10px 2px #d8b060;
}
.scn-natacha-student .ivane-figure {
  position: absolute; bottom: 15%; left: 20%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #150b05 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ns-ivane 8s ease-in-out infinite;
}
.scn-natacha-student .natacha-silhouette {
  position: absolute; bottom: 18%; right: 28%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #3a2214 0%, #1a0c05 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  animation: ns-natacha 9s ease-in-out infinite alternate;
}
.scn-natacha-student .flicker {
  position: absolute; top: 25%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(220,180,100,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: ns-flicker 3s ease-in-out infinite;
}
@keyframes ns-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes ns-book {
  0% { transform: skewX(-10deg) rotate(0); }
  25% { transform: skewX(-8deg) rotate(2deg); }
  50% { transform: skewX(-12deg) rotate(-1deg); }
  75% { transform: skewX(-10deg) rotate(0); }
  100% { transform: skewX(-10deg) rotate(0); }
}
@keyframes ns-ivane {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(4px) rotate(3deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ns-natacha {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(.85) translateY(-3px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes ns-flicker {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.3); }
  100% { opacity: .5; transform: scale(.8); }
}

.scn-michael-knew-annouchka {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 50%, #2a1a10 100%),
              radial-gradient(ellipse at 20% 60%, #5a3a1a 0%, transparent 65%);
}
.scn-michael-knew-annouchka .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1a0c 0%, #140a05 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-michael-knew-annouchka .wall-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #3a2212 0%, #2a1508 100%);
  border-right: 2px solid #4a2a16;
  animation: mk-wall-l 20s ease-in-out infinite;
}
.scn-michael-knew-annouchka .wall-right {
  position: absolute; bottom: 30%; right: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #3a2212 0%, #2a1508 100%);
  border-left: 2px solid #4a2a16;
  animation: mk-wall-r 22s ease-in-out infinite reverse;
}
.scn-michael-knew-annouchka .crowd-shape {
  position: absolute; bottom: 15%; left: 25%; width: 40%; height: 50px;
  background: linear-gradient(180deg, rgba(10,6,3,.6) 0%, rgba(20,12,6,.3) 100%);
  border-radius: 40% 60% 20% 40% / 60% 70% 20% 20%;
  filter: blur(5px);
  animation: mk-crowd 18s ease-in-out infinite;
}
.scn-michael-knew-annouchka .michael-figure {
  position: absolute; bottom: 20%; left: 35%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mk-michael 10s ease-in-out infinite;
}
.scn-michael-knew-annouchka .annouchka-figure {
  position: absolute; bottom: 22%; left: 45%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a1810 0%, #150a05 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: mk-annouchka 12s ease-in-out infinite alternate;
}
.scn-michael-knew-annouchka .lamp-post {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 50px;
  background: #4a2a16;
  border-radius: 1px;
}
.scn-michael-knew-annouchka .lamp-glow {
  position: absolute; bottom: 40%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 80%);
  border-radius: 50%;
  animation: mk-lampglow 4s ease-in-out infinite alternate;
}
@keyframes mk-wall-l {
  0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; }
}
@keyframes mk-wall-r {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes mk-crowd {
  0% { transform: scaleY(1); } 25% { transform: scaleY(1.05); } 50% { transform: scaleY(.95); } 75% { transform: scaleY(1.02); } 100% { transform: scaleY(1); }
}
@keyframes mk-michael {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(3px) rotate(2deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mk-annouchka {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(.8) translateY(-4px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes mk-lampglow {
  0% { opacity: .5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .6; transform: scale(.9); }
}

.scn-michael-wont-compromise {
  background: linear-gradient(180deg, #1f1510 0%, #35241a 50%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 60%, #6b4022 0%, transparent 70%);
}
.scn-michael-wont-compromise .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2418 0%, #2a1a10 50%, #1a0e08 100%);
}
.scn-michael-wont-compromise .door {
  position: absolute; bottom: 15%; left: 10%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a3222 0%, #3a2214 100%);
  border: 2px solid #5a3a28;
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: mw-door 25s ease-in-out infinite;
}
.scn-michael-wont-compromise .michael-standing {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mw-michael 10s ease-in-out infinite;
}
.scn-michael-wont-compromise .annouchka-seated {
  position: absolute; bottom: 10%; left: 55%; width: 34px; height: 48px;
  background: linear-gradient(180deg, #2a1810 0%, #150a05 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: mw-annouchka 14s ease-in-out infinite alternate;
}
.scn-michael-wont-compromise .gaslight {
  position: absolute; top: 20%; left: 50%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d8b060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,.3);
  animation: mw-gaslight 3s ease-in-out infinite;
}
.scn-michael-wont-compromise .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 6%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 60%);
  filter: blur(8px);
  animation: mw-stripe 20s ease-in-out infinite reverse;
}
@keyframes mw-door {
  0% { transform: scaleX(1); } 50% { transform: scaleX(.98); } 100% { transform: scaleX(1); }
}
@keyframes mw-michael {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(2px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mw-annouchka {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(.9) translateY(2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes mw-gaslight {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .8; transform: scale(.95); }
}
@keyframes mw-stripe {
  0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; }
}

.scn-natacha-parenting { background: linear-gradient(180deg, #fff5e6 0%, #fce4cc 35%, #e8c9a8 100%), radial-gradient(ellipse at 70% 20%, #ffe6b3 0%, transparent 60%); }
.scn-natacha-parenting .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f0dcc0 0%, #dcc0a0 100%); }
.scn-natacha-parenting .window-frame { position:absolute; top:12%; left:55%; width:120px; height:150px; border:6px solid #b89878; border-radius:4px; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 100%); box-shadow: inset 0 0 20px rgba(255,240,200,.5); }
.scn-natacha-parenting .window-glow { position:absolute; top:12%; left:55%; width:120px; height:150px; background: radial-gradient(ellipse at 50% 30%, rgba(255,240,200,.3) 0%, transparent 70%); animation: np-glow 8s ease-in-out infinite alternate; }
.scn-natacha-parenting .bed { position:absolute; bottom:22%; left:15%; width:45%; height:40%; background: linear-gradient(180deg, #d4b898 0%, #b09070 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-natacha-parenting .child-figure { position:absolute; bottom:28%; left:28%; width:32px; height:44px; background: linear-gradient(180deg, #ffe0c0 0%, #f0c8a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-rest 4s ease-in-out infinite; }
.scn-natacha-parenting .adult-figure { position:absolute; bottom:22%; left:42%; width:50px; height:70px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: np-bend 6s ease-in-out infinite; }
.scn-natacha-parenting .sunbeam { position:absolute; top:5%; left:55%; width:100px; height:80%; background: linear-gradient(180deg, rgba(255,240,200,.25) 0%, transparent 100%); transform: skewX(-5deg); filter: blur(8px); animation: np-beam 10s ease-in-out infinite alternate; }
.scn-natacha-parenting .curtain { position:absolute; top:10%; left:50%; width:40px; height:160px; background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%); border-radius: 0 10% 10% 0; box-shadow: -2px 0 8px rgba(0,0,0,.15); animation: np-sway 7s ease-in-out infinite; }
@keyframes np-glow  { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes np-rest  { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg) } }
@keyframes np-bend  { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-4px) translateY(-2px) rotate(-5deg) } }
@keyframes np-beam  { 0% { opacity:.3; transform: skewX(-5deg) translateX(0) } 50% { opacity:.7; transform: skewX(-3deg) translateX(6px) } 100% { opacity:.4; transform: skewX(-7deg) translateX(-4px) } }
@keyframes np-sway  { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(3deg) } }

.scn-matrimony-arranged { background: linear-gradient(180deg, #ffe8cc 0%, #f5d5b0 40%, #dcc09a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }
.scn-matrimony-arranged .garden-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #a8d8e8 0%, #d0e8f0 60%, transparent 100%); }
.scn-matrimony-arranged .garden-arch { position:absolute; bottom:25%; left:30%; width:180px; height:120px; border:8px solid #b8a080; border-bottom:none; border-radius: 50% 50% 0 0 / 80% 80% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(255,220,180,.3); }
.scn-matrimony-arranged .figure-woman { position:absolute; bottom:28%; left:38%; width:46px; height:72px; background: linear-gradient(180deg, #c8a090 0%, #a08070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-hug 5s ease-in-out infinite; }
.scn-matrimony-arranged .figure-child { position:absolute; bottom:28%; left:46%; width:30px; height:46px; background: linear-gradient(180deg, #f0d4c0 0%, #e0c0a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-hug-child 5s ease-in-out infinite; }
.scn-matrimony-arranged .embrace-glow { position:absolute; bottom:30%; left:38%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 40%, rgba(255,220,160,.4) 0%, transparent 70%); animation: ma-warmth 4s ease-in-out infinite alternate; }
.scn-matrimony-arranged .petals { position:absolute; top:20%; left:10%; width:8px; height:8px; background: #ffd0b0; border-radius: 50% 0 50% 0; filter: blur(1px); animation: ma-fall 12s linear infinite; }
.scn-matrimony-arranged .petal-b { position:absolute; top:15%; left:60%; width:6px; height:6px; background: #ffc8a8; border-radius: 50% 0 50% 0; filter: blur(1px); animation: ma-fall-b 15s linear infinite; animation-delay: 4s; }
@keyframes ma-hug  { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes ma-hug-child { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } }
@keyframes ma-warmth  { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes ma-fall  { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity:1 } 50% { transform: translateY(40vh) rotate(180deg) translateX(20px); opacity:.8 } 100% { transform: translateY(80vh) rotate(360deg) translateX(0); opacity:0 } }
@keyframes ma-fall-b { 0% { transform: translateY(0) rotate(0deg) translateX(0); opacity:1 } 50% { transform: translateY(50vh) rotate(-180deg) translateX(-15px); opacity:.8 } 100% { transform: translateY(85vh) rotate(-360deg) translateX(0); opacity:0 } }

.scn-generous-general { background: linear-gradient(180deg, #e0f0ff 0%, #c0d8e8 30%, #a0b8c8 100%), radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 60%); }
.scn-generous-general .estate-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e8 0%, #d0e4f0 50%, transparent 100%); animation: gg-day 15s ease-in-out infinite alternate; }
.scn-generous-general .horizon-line { position:absolute; bottom:38%; left:0; right:0; height:4%; background: linear-gradient(180deg, #6a8a5a 0%, #5a7a4a 100%); border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.scn-generous-general .general-figure { position:absolute; bottom:22%; left:40%; width:72px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: gg-stand 6s ease-in-out infinite; }
.scn-generous-general .general-arm { position:absolute; bottom:42%; left:54%; width:40px; height:18px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 10% 10% 40%; transform-origin: 0% 50%; animation: gg-gesture 4s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-generous-general .purse-glow { position:absolute; bottom:30%; left:60%; width:24px; height:16px; background: radial-gradient(circle, #ffd080 0%, #e8b860 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,208,128,.5); animation: gg-coin 3s ease-in-out infinite alternate; }
.scn-generous-general .coin-sparkle { position:absolute; bottom:32%; left:62%; width:6px; height:6px; background: #ffe8a0; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,232,160,.7); animation: gg-sparkle 2s ease-in-out infinite; }
.scn-generous-general .land-foreground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8aaa6a 0%, #6a8a4a 60%, #4a6a2a 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
@keyframes gg-day  { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gg-stand  { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } }
@keyframes gg-gesture  { 0%,100% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(10deg) translateX(4px) } }
@keyframes gg-coin  { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes gg-sparkle  { 0%,100% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.4) } }

.scn-inheritance-issue { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 30%, #a88868 100%), radial-gradient(ellipse at 50% 40%, #e8d0a8 0%, transparent 60%); }
.scn-inheritance-issue .room-amber { position:absolute; inset:0; background: linear-gradient(135deg, #d4bc9a 0%, #b8a080 50%, #9c8464 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.3); animation: ii-shift 12s ease-in-out infinite alternate; }
.scn-inheritance-issue .general-silhouette { position:absolute; bottom:15%; left:50%; width:76px; height:110px; background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform: translateX(-50%); box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-inheritance-issue .matrena-figure { position:absolute; bottom:20%; left:28%; width:42px; height:68px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ii-watch 4s ease-in-out infinite; }
.scn-inheritance-issue .matrena-gaze { position:absolute; bottom:50%; left:38%; width:8px; height:4px; background: #ffe8c0; border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,232,192,.6); animation: ii-gaze 3s ease-in-out infinite; }
.scn-inheritance-issue .treasure-casket { position:absolute; bottom:18%; left:62%; width:46px; height:34px; background: linear-gradient(180deg, #b89840 0%, #8a7030 100%); border-radius: 8% 8% 6% 6%; box-shadow: 0 2px 10px rgba(0,0,0,.5), inset 0 2px 6px rgba(255,220,120,.4); animation: ii-casket 5s ease-in-out infinite; }
.scn-inheritance-issue .treasure-glow { position:absolute; bottom:18%; left:62%; width:46px; height:34px; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,80,.3) 0%, transparent 70%); animation: ii-glow 2s ease-in-out infinite alternate; }
.scn-inheritance-issue .shadow-bar { position:absolute; top:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: ii-shadow 8s ease-in-out infinite alternate; }
@keyframes ii-shift  { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ii-watch  { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } }
@keyframes ii-gaze  { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes ii-casket  { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-1px) } }
@keyframes ii-glow  { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ii-shadow  { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* Scene: moaning-upstairs */
.scn-moaning-upstairs {
  background: linear-gradient(180deg, #0c0c1e 0%, #16162e 30%, #1a1a3a 60%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-moaning-upstairs .bg-dark { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 80%, rgba(10,10,25,.9) 0%, transparent 70%); }
.scn-moaning-upstairs .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2a2020 0%, #1a1010 100%); border-radius:0; box-shadow:inset 0 6px 12px rgba(0,0,0,.5); }
.scn-moaning-upstairs .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background:linear-gradient(180deg, #1c1c30 0%, #12121f 60%); }
.scn-moaning-upstairs .stairs { position:absolute; bottom:28%; left:20%; width:50%; height:15%; background:linear-gradient(135deg, #2a2020 0%, #1a1010 50%, #120c0c 100%); transform:skewX(-15deg); box-shadow:0 -4px 8px rgba(0,0,0,.6); }
.scn-moaning-upstairs .figure-listening { position:absolute; bottom:25%; left:45%; width:20px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mu-figure-list 3s ease-in-out infinite; box-shadow:0 0 8px rgba(0,0,0,.3); }
.scn-moaning-upstairs .glow-upstairs { position:absolute; top:10%; right:25%; width:30px; height:40px; background:radial-gradient(circle, rgba(200,170,100,.15) 0%, transparent 70%); border-radius:50%; animation:mu-glow-pulse 4s ease-in-out infinite; }
.scn-moaning-upstairs .shadow-sway { position:absolute; bottom:30%; left:35%; width:80px; height:120px; background:radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); animation:mu-shadow-sway 6s ease-in-out infinite; }

@keyframes mu-figure-list { 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 mu-glow-pulse { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(0.8); } }
@keyframes mu-shadow-sway { 0% { transform:translateX(-10px) scale(1); } 50% { transform:translateX(10px) scale(1.05); } 100% { transform:translateX(-10px) scale(1); } }

/* Scene: tick-tack-in-chamber */
.scn-tick-tack-in-chamber {
  background: linear-gradient(135deg, #0d0d1a 0%, #1a1a2e 40%, #0f0f1f 80%) ,
              radial-gradient(circle at 30% 60%, #1c1c38 0%, transparent 50%);
}
.scn-tick-tack-in-chamber .room-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 60% 50%, rgba(0,0,0,.3) 0%, transparent 80%); }
.scn-tick-tack-in-chamber .bed { position:absolute; bottom:15%; left:10%; width:60%; height:40%; background:linear-gradient(180deg, #2a2028 0%, #1a121a 100%); border-radius:8px; box-shadow:inset 0 4px 12px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.4); }
.scn-tick-tack-in-chamber .table { position:absolute; bottom:30%; right:15%; width:25%; height:15%; background:linear-gradient(135deg, #3a2a20 0%, #1a120e 100%); border-radius:4px; box-shadow:inset 0 2px 6px rgba(0,0,0,.6); }
.scn-tick-tack-in-chamber .figure-search { position:absolute; bottom:30%; left:35%; width:22px; height:45px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tc-figure-search 2s ease-in-out infinite; }
.scn-tick-tack-in-chamber .tick-pulse { position:absolute; bottom:35%; left:50%; width:12px; height:12px; background:radial-gradient(circle, #c87830 0%, transparent 70%); border-radius:50%; animation:tc-tick-pulse 1s ease-in-out infinite; box-shadow:0 0 20px rgba(200,120,48,.5); }
.scn-tick-tack-in-chamber .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background:linear-gradient(180deg, #1c1820 0%, #12101a 100%); border-left:2px solid #2a2030; animation:tc-curtain-sway 8s ease-in-out infinite; }

@keyframes tc-figure-search { 0% { transform:translateX(0) rotate(0deg); } 20% { transform:translateX(8px) rotate(3deg); } 40% { transform:translateX(16px) rotate(0deg); } 60% { transform:translateX(24px) rotate(-3deg); } 80% { transform:translateX(16px) rotate(0deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tc-tick-pulse { 0% { opacity:0.2; transform:scale(0.6); } 50% { opacity:1; transform:scale(1.4); } 100% { opacity:0.2; transform:scale(0.6); } }
@keyframes tc-curtain-sway { 0% { transform:translateX(0); } 50% { transform:translateX(-8px); } 100% { transform:translateX(0); } }

/* Scene: tick-tack-from-bed */
.scn-tick-tack-from-bed {
  background: linear-gradient(0deg, #0e0e1a 0%, #1a1a30 50%, #12122a 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a30 0%, transparent 70%);
}
.scn-tick-tack-from-bed .bedroom-bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.3) 0%, transparent 80%); }
.scn-tick-tack-from-bed .bed-frame { position:absolute; bottom:15%; left:5%; width:90%; height:45%; background:linear-gradient(180deg, #2a2030 0%, #1a1220 100%); border-radius:10px; box-shadow:inset 0 6px 12px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.4); }
.scn-tick-tack-from-bed .figure-general { position:absolute; bottom:25%; left:30%; width:35px; height:50px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(15deg); animation:tb-general-raise 4s ease-in-out infinite; }
.scn-tick-tack-from-bed .figure-matrena { position:absolute; bottom:25%; left:55%; width:22px; height:48px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:tb-matrena-turn 6s ease-in-out infinite; }
.scn-tick-tack-from-bed .tick-source { position:absolute; bottom:30%; left:42%; width:14px; height:14px; background:radial-gradient(circle, #c87830 0%, transparent 70%); border-radius:50%; animation:tb-tick-source 0.8s ease-in-out infinite; box-shadow:0 0 30px rgba(200,120,48,.6); }
.scn-tick-tack-from-bed .blanket { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background:linear-gradient(180deg, #3a3030 0%, #1a1212 100%); border-radius:20% 20% 8px 8px; box-shadow:inset 0 4px 8px rgba(0,0,0,.5); }
.scn-tick-tack-from-bed .pillow { position:absolute; bottom:40%; left:25%; width:25px; height:15px; background:linear-gradient(180deg, #4a4040 0%, #2a2020 100%); border-radius:50%; }

@keyframes tb-general-raise { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-6px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes tb-matrena-turn { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-8px) rotate(-5deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(8px) rotate(5deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes tb-tick-source { 0% { opacity:0.2; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:0.2; transform:scale(0.5); } }

/* Scene: bouquet-tick-tack */
.scn-bouquet-tick-tack {
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a30 40%, #0e0e20 100%),
              radial-gradient(circle at 40% 70%, #1c1c3c 0%, transparent 60%);
}
.scn-bouquet-tick-tack .dark-room { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2) 0%, transparent 70%); }
.scn-bouquet-tick-tack .table-top { position:absolute; bottom:20%; left:10%; width:80%; height:25%; background:linear-gradient(180deg, #3a2a20 0%, #1a120e 100%); border-radius:4px; box-shadow:inset 0 4px 12px rgba(0,0,0,.6); }
.scn-bouquet-tick-tack .bouquet { position:absolute; bottom:35%; right:30%; width:40px; height:50px; background:radial-gradient(circle at 50% 40%, #5a4a3a 0%, #2a1a1a 100%); border-radius:60% 40% 40% 60% / 50% 50% 50% 50%; transform:rotate(-15deg); animation:bt-bouquet-shake 2s ease-in-out infinite; }
.scn-bouquet-tick-tack .arm-reach { position:absolute; bottom:25%; left:45%; width:30px; height:60px; background:linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:20% 20% 60% 40% / 30% 30% 70% 50%; transform-origin:right bottom; animation:bt-arm-reach 1.5s ease-in-out infinite; }
.scn-bouquet-tick-tack .window-open { position:absolute; top:10%; left:60%; width:40%; height:70%; background:linear-gradient(180deg, #2a2a4e 0%, #1a1a30 100%); border:4px solid #1a1a2a; border-radius:4px; transform:scaleX(0.8); animation:bt-window-open 7s ease-in-out infinite; }
.scn-bouquet-tick-tack .tick-bouquet { position:absolute; bottom:40%; right:35%; width:10px; height:10px; background:radial-gradient(circle, #c87830 0%, transparent 70%); border-radius:50%; animation:bt-tick-bouquet 0.6s ease-in-out infinite; box-shadow:0 0 24px rgba(200,120,48,.7); }
.scn-bouquet-tick-tack .petals-fall { position:absolute; top:20%; left:70%; width:4px; height:4px; background:#b87050; border-radius:50%; animation:bt-petals-fall 3s linear infinite; box-shadow: 10px 5px 0 #b87050, -5px 15px 0 #b87050, 15px 25px 0 #b87050; }

@keyframes bt-bouquet-shake { 0% { transform:rotate(-15deg) translateX(0); } 20% { transform:rotate(-10deg) translateX(3px); } 40% { transform:rotate(-20deg) translateX(-2px); } 60% { transform:rotate(-10deg) translateX(3px); } 80% { transform:rotate(-20deg) translateX(-2px); } 100% { transform:rotate(-15deg) translateX(0); } }
@keyframes bt-arm-reach { 0% { transform:rotate(0deg) scaleY(1) translate(0,0); } 25% { transform:rotate(-25deg) scaleY(1.1) translate(-5px,6px); } 50% { transform:rotate(-45deg) scaleY(1.2) translate(-10px,12px); } 75% { transform:rotate(-25deg) scaleY(1.1) translate(-5px,6px); } 100% { transform:rotate(0deg) scaleY(1) translate(0,0); } }
@keyframes bt-window-open { 0% { transform:scaleX(0.8) rotate(0); opacity:0.2; } 50% { transform:scaleX(1.2) rotate(5deg); opacity:0.6; } 100% { transform:scaleX(0.8) rotate(0); opacity:0.2; } }
@keyframes bt-tick-bouquet { 0% { opacity:0; transform:scale(0.4); } 50% { opacity:1; transform:scale(1.6); } 100% { opacity:0; transform:scale(0.4); } }
@keyframes bt-petals-fall { 0% { transform:translateY(0) rotate(0deg); opacity:0.8; } 100% { transform:translateY(80px) rotate(360deg); opacity:0; } }

.scn-climbing-the-stairway {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2440 40%, #3a3050 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-climbing-the-stairway .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1e30 0%, #2a2640 100%);
}
.scn-climbing-the-stairway .staircase {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 120px; height: 100%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: si2-stairs 15s ease-in-out infinite alternate;
}
.scn-climbing-the-stairway .railing {
  position: absolute; bottom: 70%; left: 45%; width: 8px; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: si2-railing 8s ease-in-out infinite alternate;
}
.scn-climbing-the-stairway .figure-climb {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%); width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si2-climb 4s ease-in-out infinite;
}
.scn-climbing-the-stairway .lamp {
  position: absolute; top: 30%; left: 60%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0c868 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(240,200,104,.4), 0 0 60px 20px rgba(240,200,104,.2);
  animation: si2-lamp 3s ease-in-out infinite alternate;
}
.scn-climbing-the-stairway .dust {
  position: absolute; width: 6px; height: 6px; background: rgba(200,180,160,.3); border-radius: 50%;
  filter: blur(2px); animation: si2-dust 20s linear infinite;
}
.scn-climbing-the-stairway .dust-1 {
  top: 20%; left: 30%; animation-delay: 0s;
}
.scn-climbing-the-stairway .dust-2 {
  top: 40%; left: 70%; animation-delay: -7s; width: 4px; height: 4px;
}
@keyframes si2-stairs { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes si2-railing { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes si2-climb { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-48%) translateY(-6px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-12px) rotate(-1deg) } 75% { transform: translateX(-52%) translateY(-6px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes si2-lamp { 0% { box-shadow: 0 0 20px 6px rgba(240,200,104,.3); opacity: .8 } 50% { box-shadow: 0 0 40px 14px rgba(240,200,104,.5); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(240,200,104,.35); opacity: .85 } }
@keyframes si2-dust { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-20px) translateX(10px) } 100% { transform: translateY(0) translateX(0) } }

/* 2 */
.scn-examining-the-bolt {
  background: linear-gradient(180deg, #1a1a28 0%, #24243a 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 50%, #1a1a28 0%, transparent 80%);
}
.scn-examining-the-bolt .door-frame {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 80%;
  background: linear-gradient(135deg, #2e2e44 0%, #1c1c2e 100%);
  border-radius: 2px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-examining-the-bolt .door-panel {
  position: absolute; bottom: 12%; left: 12%; width: 76%; height: 76%;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a42 100%);
  border-radius: 2px; box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
}
.scn-examining-the-bolt .bolt-slide {
  position: absolute; bottom: 50%; left: 18%; width: 40px; height: 10px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: exb-bolt 4s ease-in-out infinite alternate;
}
.scn-examining-the-bolt .keyhole {
  position: absolute; bottom: 50%; left: 65%; width: 8px; height: 14px;
  background: radial-gradient(circle, #0a0a14 60%, #1a1a2e 100%);
  border-radius: 50% / 30%; box-shadow: 0 0 4px 2px rgba(255,200,100,.2);
  animation: exb-keyhole 3s ease-in-out infinite alternate;
}
.scn-examining-the-bolt .hand-reach {
  position: absolute; bottom: 40%; left: 5%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: right center;
  animation: exb-hand 5s ease-in-out infinite;
}
.scn-examining-the-bolt .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
}
@keyframes exb-bolt { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes exb-keyhole { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes exb-hand { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(12px) rotate(-5deg) } 50% { transform: translateX(24px) rotate(0) } 75% { transform: translateX(12px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }

/* 3 */
.scn-forthcoming-return {
  background: linear-gradient(180deg, #1c1c2e 0%, #2a2640 30%, #1e1e30 100%), radial-gradient(ellipse at 50% 60%, #1a1a28 0%, transparent 70%);
}
.scn-forthcoming-return .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a30 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-forthcoming-return .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a30 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-forthcoming-return .doorway-arch {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #1c1c2e 0%, #0e0e1e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-forthcoming-return .door-ajar {
  position: absolute; bottom: 22%; left: 32%; width: 36%; height: 66%;
  background: linear-gradient(180deg, #3e3e56 0%, #2a2a44 100%);
  transform-origin: left center;
  animation: fr-door 6s ease-in-out infinite alternate;
  border-radius: 2px;
}
.scn-forthcoming-return .light-crack {
  position: absolute; bottom: 25%; left: 65%; width: 4px; height: 55%;
  background: linear-gradient(180deg, rgba(240,200,100,.8) 0%, rgba(240,200,100,.2) 100%);
  box-shadow: 0 0 20px 6px rgba(240,200,100,.3);
  animation: fr-light 3s ease-in-out infinite alternate;
}
.scn-forthcoming-return .figure-wait {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  animation: fr-figure 4s ease-in-out infinite;
}
.scn-forthcoming-return .clock-shape {
  position: absolute; top: 15%; right: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a4a5e 0%, #2a2a40 100%);
  border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: fr-clock 12s linear infinite;
}
@keyframes fr-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(10deg) } 100% { transform: rotateY(0deg) } }
@keyframes fr-light { 0% { opacity: .6; box-shadow: 0 0 12px 3px rgba(240,200,100,.2) } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(240,200,100,.5) } 100% { opacity: .7; box-shadow: 0 0 16px 4px rgba(240,200,100,.3) } }
@keyframes fr-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fr-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* 4 */
.scn-matrena-on-mattress {
  background: linear-gradient(180deg, #1a1a28 0%, #24243a 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 30%, #1a1a28 0%, transparent 70%);
}
.scn-matrena-on-mattress .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0a14 100%);
}
.scn-matrena-on-mattress .mattress {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-matrena-on-mattress .figure-lying {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: mam-fig 5s ease-in-out infinite;
}
.scn-matrena-on-mattress .door-heavy {
  position: absolute; top: 0; right: 8%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a42 100%);
  border-left: 4px solid #1e1e30;
  box-shadow: -6px 0 20px rgba(0,0,0,.5);
  animation: mam-door 8s ease-in-out infinite alternate;
}
.scn-matrena-on-mattress .creature-shadow {
  position: absolute; bottom: 30%; left: 8%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #0a0a14 0%, transparent 70%);
  filter: blur(4px);
  animation: mam-creature 4s ease-in-out infinite;
}
.scn-matrena-on-mattress .lamp-flicker {
  position: absolute; top: 10%; left: 10%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #e8c060 0%, #a08030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 14px rgba(232,192,96,.4), 0 0 80px 24px rgba(232,192,96,.2);
  animation: mam-lamp 2.5s ease-in-out infinite alternate;
}
@keyframes mam-fig { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mam-door { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes mam-creature { 0% { transform: translateY(0) scale(1); opacity: .4 } 50% { transform: translateY(-6px) scale(1.1); opacity: .7 } 100% { transform: translateY(0) scale(1); opacity: .4 } }
@keyframes mam-lamp { 0% { box-shadow: 0 0 30px 8px rgba(232,192,96,.3); opacity: .8 } 50% { box-shadow: 0 0 50px 18px rgba(232,192,96,.5); opacity: 1 } 100% { box-shadow: 0 0 35px 10px rgba(232,192,96,.35); opacity: .85 } }

.scn-youth-of-moscow-verse {
  background: linear-gradient(180deg, #0d0a1a 0%, #1a142a 40%, #2a1e3a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 60%);
}
.scn-youth-of-moscow-verse .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0712 0%, #140f20 50%, #0d0a18 100%);
  animation: yom-shimmer 12s ease-in-out infinite alternate;
}
.scn-youth-of-moscow-verse .bg-mid {
  position: absolute; inset: 15% 10% 20% 10%; background: linear-gradient(180deg, #1e1628 0%, #2a1e38 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: yom-pulse 15s ease-in-out infinite alternate;
}
.scn-youth-of-moscow-verse .wall {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 55%; background: linear-gradient(180deg, #2a1e38 0%, #1a1224 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
.scn-youth-of-moscow-verse .window {
  position: absolute; top: 18%; left: 40%; width: 60px; height: 80px; background: radial-gradient(ellipse at 50% 50%, #4a3a5a 0%, #1a142a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(74,58,90,.4);
  animation: yom-window-glow 6s ease-in-out infinite alternate;
}
.scn-youth-of-moscow-verse .chair {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 60px; background: linear-gradient(180deg, #3a2a1e 0%, #1e1210 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.7);
}
.scn-youth-of-moscow-verse .figure-feodor {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 60px; background: linear-gradient(180deg, #2a1e30 0%, #0d0812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center;
  animation: yom-weep 4s ease-in-out infinite;
}
.scn-youth-of-moscow-verse .shadow-child {
  position: absolute; bottom: 18%; left: 38%; width: 16px; height: 30px; background: rgba(10,5,15,.6);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(2px);
  animation: yom-crouch 5s ease-in-out infinite alternate;
}
@keyframes yom-shimmer { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes yom-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes yom-window-glow { 0% { opacity: .6; box-shadow: 0 0 12px 3px rgba(74,58,90,.3) } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(74,58,90,.6) } 100% { opacity: .7; box-shadow: 0 0 16px 5px rgba(74,58,90,.4) } }
@keyframes yom-weep { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(0) translateY(1px) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes yom-crouch { 0% { transform: translateY(2px) scale(1) } 100% { transform: translateY(-4px) scale(0.95) } }

.scn-matrena-comforts {
  background: linear-gradient(180deg, #120d1a 0%, #1e1428 40%, #2a1a38 100%),
              radial-gradient(ellipse at 50% 85%, #3a2a4a 0%, transparent 60%);
}
.scn-matrena-comforts .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0c0820 0%, #181030 50%, #100c20 100%);
  animation: mc-shimmer 14s ease-in-out infinite alternate;
}
.scn-matrena-comforts .bg-mid {
  position: absolute; inset: 10% 8% 15% 8%; background: linear-gradient(180deg, #221a30 0%, #2e2240 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 50px rgba(0,0,0,.7);
  animation: mc-pulse 16s ease-in-out infinite alternate;
}
.scn-matrena-comforts .table {
  position: absolute; bottom: 15%; left: 28%; width: 80px; height: 20px; background: linear-gradient(180deg, #3a2a1e 0%, #1e1210 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 6px 14px rgba(0,0,0,.8);
}
.scn-matrena-comforts .glass {
  position: absolute; bottom: 25%; left: 34%; width: 12px; height: 18px; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1a14 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 10% 10%; box-shadow: 0 0 10px 2px rgba(90,74,58,.3);
  animation: mc-glass 5s ease-in-out infinite alternate;
}
.scn-matrena-comforts .figure-feodor {
  position: absolute; bottom: 12%; left: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #2a1e30 0%, #0d0812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center;
  animation: mc-feodor 4s ease-in-out infinite;
}
.scn-matrena-comforts .figure-matrena {
  position: absolute; bottom: 10%; left: 44%; width: 30px; height: 65px; background: linear-gradient(180deg, #3a2a40 0%, #1a1220 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center;
  animation: mc-matrena 4s ease-in-out infinite;
}
.scn-matrena-comforts .shadow-embrace {
  position: absolute; bottom: 8%; left: 32%; width: 50px; height: 50px; background: radial-gradient(ellipse at 50% 50%, rgba(10,5,15,.5) 0%, transparent 80%);
  border-radius: 50%; filter: blur(6px);
  animation: mc-embrace 6s ease-in-out infinite alternate;
}
@keyframes mc-shimmer { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .5 } }
@keyframes mc-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes mc-glass { 0% { opacity: .7; transform: rotate(-2deg) } 50% { opacity: 1; transform: rotate(3deg) } 100% { opacity: .8; transform: rotate(0deg) } }
@keyframes mc-feodor { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes mc-matrena { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes mc-embrace { 0% { opacity: .3; transform: scale(0.95) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }

.scn-delirium-fades {
  background: linear-gradient(180deg, #0e0b14 0%, #181228 40%, #261a34 100%),
              radial-gradient(ellipse at 50% 80%, #34243e 0%, transparent 60%);
}
.scn-delirium-fades .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0712 0%, #161022 50%, #0c0816 100%);
  animation: df-shimmer 13s ease-in-out infinite alternate;
}
.scn-delirium-fades .bg-mid {
  position: absolute; inset: 12% 9% 18% 9%; background: linear-gradient(180deg, #1c1428 0%, #2a1e36 100%);
  border-radius: 7% 7% 4% 4%; box-shadow: inset 0 0 45px rgba(0,0,0,.65);
  animation: df-pulse 14s ease-in-out infinite alternate;
}
.scn-delirium-fades .table {
  position: absolute; bottom: 15%; left: 35%; width: 70px; height: 18px; background: linear-gradient(180deg, #34241e 0%, #1a100e 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.7);
}
.scn-delirium-fades .glass {
  position: absolute; bottom: 25%; left: 40%; width: 14px; height: 20px; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 10% 10%; box-shadow: 0 0 12px 3px rgba(74,58,42,.4);
  animation: df-glass 7s ease-in-out infinite alternate;
}
.scn-delirium-fades .figure-feodor {
  position: absolute; bottom: 12%; left: 32%; width: 28px; height: 60px; background: linear-gradient(180deg, #2a1e30 0%, #0d0812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center;
  animation: df-feodor-sit 5s ease-in-out infinite;
}
.scn-delirium-fades .arm-pointing {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 8px; background: linear-gradient(180deg, #2a1e30 0%, #140e1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%; transform-origin: left center;
  animation: df-point 6s ease-in-out infinite;
}
.scn-delirium-fades .shadow {
  position: absolute; bottom: 8%; left: 28%; width: 80px; height: 40px; background: radial-gradient(ellipse at 50% 50%, rgba(8,4,12,.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: df-shadow 8s ease-in-out infinite alternate;
}
@keyframes df-shimmer { 0% { opacity: .65 } 50% { opacity: .9 } 100% { opacity: .55 } }
@keyframes df-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes df-glass { 0% { opacity: .6; transform: rotate(-3deg) } 50% { opacity: 1; transform: rotate(4deg) } 100% { opacity: .7; transform: rotate(0deg) } }
@keyframes df-feodor-sit { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0) translateY(1px) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes df-point { 0% { transform: rotate(-10deg) scale(1) } 30% { transform: rotate(15deg) scale(1.1) } 60% { transform: rotate(-5deg) scale(0.95) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes df-shadow { 0% { opacity: .2; transform: scale(0.9) } 50% { opacity: .5; transform: scale(1.2) } 100% { opacity: .3; transform: scale(1) } }

.scn-rouletabille-still {
  background: linear-gradient(180deg, #0f0d1a 0%, #1a1628 40%, #2a1e38 100%),
              radial-gradient(ellipse at 50% 85%, #382a48 0%, transparent 60%);
}
.scn-rouletabille-still .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0b0814 0%, #18122a 50%, #0e0a1c 100%);
  animation: rs-shimmer 11s ease-in-out infinite alternate;
}
.scn-rouletabille-still .bg-mid {
  position: absolute; inset: 10% 8% 14% 8%; background: linear-gradient(180deg, #1e1828 0%, #2a2238 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 50px rgba(0,0,0,.7);
  animation: rs-pulse 13s ease-in-out infinite alternate;
}
.scn-rouletabille-still .wall.right {
  position: absolute; top: 15%; left: 60%; width: 35%; height: 50%; background: linear-gradient(180deg, #2a1e38 0%, #1a1224 100%);
  border-radius: 10% 0 0 10%; box-shadow: -10px 0 20px rgba(0,0,0,.5);
}
.scn-rouletabille-still .chair {
  position: absolute; bottom: 12%; left: 20%; width: 50px; height: 60px; background: linear-gradient(180deg, #3a2a1e 0%, #1a100e 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 14px rgba(0,0,0,.8);
}
.scn-rouletabille-still .figure-rouletabille {
  position: absolute; bottom: 8%; left: 18%; width: 26px; height: 55px; background: linear-gradient(180deg, #1e1428 0%, #0a0512 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center;
  animation: rs-still 8s ease-in-out infinite alternate;
}
.scn-rouletabille-still .shadow-tense {
  position: absolute; bottom: 4%; left: 10%; width: 60px; height: 40px; background: radial-gradient(ellipse at 50% 50%, rgba(8,4,12,.7) 0%, transparent 80%);
  filter: blur(6px);
  animation: rs-tense-shadow 5s ease-in-out infinite alternate;
}
@keyframes rs-shimmer { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .5 } }
@keyframes rs-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes rs-still { 0% { transform: rotate(-1deg) translateY(0) } 30% { transform: rotate(1deg) translateY(-1px) } 60% { transform: rotate(0) translateY(0) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes rs-tense-shadow { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .7; transform: scale(1.15) } 100% { opacity: .4; transform: scale(1.05) } }

.scn-no-man-sure { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #d4c098 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%); }
.scn-no-man-sure .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #e0cc9e 100%); }
.scn-no-man-sure .desk { position:absolute; bottom:20%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #8b6f47 0%, #5e4a2e 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-no-man-sure .chair-left { position:absolute; bottom:20%; left:18%; width:30px; height:40px; background: linear-gradient(180deg, #5e4a2e 0%, #3a2c1c 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-5deg); }
.scn-no-man-sure .chair-right { position:absolute; bottom:20%; right:18%; width:30px; height:40px; background: linear-gradient(180deg, #5e4a2e 0%, #3a2c1c 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(5deg); }
.scn-no-man-sure .figure-left { position:absolute; bottom:30%; left:22%; width:20px; height:50px; background: linear-gradient(180deg, #2a2010 0%, #110c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ns1-figure 4s ease-in-out infinite alternate; }
.scn-no-man-sure .figure-right { position:absolute; bottom:30%; right:22%; width:20px; height:50px; background: linear-gradient(180deg, #2a2010 0%, #110c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ns1-figure 4s ease-in-out infinite alternate-reverse; }
.scn-no-man-sure .lamp { position:absolute; top:22%; left:45%; width:20px; height:30px; background: radial-gradient(circle at 50% 0%, #ffd68a 0%, #c8904a 80%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(200,144,74,0.6); animation: ns1-lamp 6s ease-in-out infinite alternate; }
@keyframes ns1-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ns1-lamp { 0% { opacity:0.8; box-shadow: 0 0 30px 10px rgba(200,144,74,0.4); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(200,144,74,0.7); } 100% { opacity:0.85; box-shadow: 0 0 35px 12px rgba(200,144,74,0.5); } }

.scn-agent-touman { background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 40%, #1a0e04 100%), radial-gradient(ellipse at 50% 70%, #6b5a4a 0%, transparent 70%); }
.scn-agent-touman .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); }
.scn-agent-touman .window-frame { position:absolute; top:10%; left:25%; width:50%; height:60%; border:8px solid #3a2a1a; background: radial-gradient(ellipse at 50% 50%, #1a2a3a 0%, #0a0a1a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-agent-touman .curtain-left { position:absolute; top:10%; left:20%; width:15%; height:60%; background: linear-gradient(90deg, #5e4a3e 0%, #4a3a2e 100%); border-radius: 4px 0 0 4px; animation: at2-curtain 8s ease-in-out infinite alternate; }
.scn-agent-touman .curtain-right { position:absolute; top:10%; right:20%; width:15%; height:60%; background: linear-gradient(-90deg, #5e4a3e 0%, #4a3a2e 100%); border-radius: 0 4px 4px 0; animation: at2-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-agent-touman .climber { position:absolute; bottom:30%; left:60%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: at2-climb 3s ease-in-out infinite; }
.scn-agent-touman .hand-left { position:absolute; bottom:45%; left:58%; width:8px; height:10px; background: #1a1a2a; border-radius: 50%; animation: at2-hand 1.5s ease-in-out infinite; }
.scn-agent-touman .hand-right { position:absolute; bottom:45%; left:62%; width:8px; height:10px; background: #1a1a2a; border-radius: 50%; animation: at2-hand 1.5s ease-in-out infinite 0.75s; }
.scn-agent-touman .ledge { position:absolute; top:70%; left:20%; right:20%; height:4%; background: linear-gradient(180deg, #5e4a3e 0%, #3a2a1a 100%); border-radius: 2px; }
@keyframes at2-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes at2-climb { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes at2-hand { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }

.scn-touman-from-kiew { background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 30%, #1a0e04 100%), radial-gradient(ellipse at 50% 120%, #0a0a1a 0%, transparent 60%); }
.scn-touman-from-kiew .guardhouse-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5e4a3e 0%, #3a2a1a 100%); }
.scn-touman-from-kiew .window-open { position:absolute; top:15%; left:20%; width:60%; height:50%; border:6px solid #2a1a0a; background: linear-gradient(180deg, #0a1230 0%, #1a1a2a 100%); border-radius: 2px; box-shadow: inset 0 0 40px rgba(0,0,20,0.8); }
.scn-touman-from-kiew .field-night { position:absolute; top:15%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #0a1230 0%, #0a0a1a 100%); clip-path: inset(0); }
.scn-touman-from-kiew .moon { position:absolute; top:8%; left:55%; width:20px; height:20px; background: radial-gradient(circle at 30% 30%, #e8e0c0 0%, #b0a880 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,190,160,0.4); animation: tk3-moon 20s ease-in-out infinite alternate; }
.scn-touman-from-kiew .guard-figure { position:absolute; bottom:20%; left:42%; width:18px; height:45px; background: linear-gradient(180deg, #2a2010 0%, #110c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tk3-guard 6s ease-in-out infinite; }
.scn-touman-from-kiew .lamp-glow { position:absolute; top:30%; left:30%; width:30px; height:40px; background: radial-gradient(circle at 50% 50%, #e8c87a 0%, transparent 70%); opacity:0.4; animation: tk3-glow 4s ease-in-out infinite alternate; }
.scn-touman-from-kiew .stars { position:absolute; top:5%; left:20%; width:60%; height:30%; background: transparent; box-shadow: 12px 8px 1px #fff, 30px 20px 2px #fff, 50px 10px 1px #fff, 70px 25px 1px #fff, 20px 30px 1px #fff, 60px 5px 2px #fff; animation: tk3-twinkle 10s ease-in-out infinite alternate; }
@keyframes tk3-moon { 0% { transform: translateX(0); opacity:0.8; } 50% { transform: translateX(10px); opacity:1; } 100% { transform: translateX(-5px); opacity:0.9; } }
@keyframes tk3-guard { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tk3-glow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes tk3-twinkle { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-gounsovski-laugh { background: linear-gradient(180deg, #f0e0c0 0%, #e0c898 40%, #c8a878 100%), radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 50%); }
.scn-gounsovski-laugh .office-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 100%); }
.scn-gounsovski-laugh .desk-large { position:absolute; bottom:15%; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-gounsovski-laugh .chief-chair { position:absolute; bottom:25%; left:10%; width:40px; height:50px; background: linear-gradient(180deg, #705040 0%, #4a3020 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(2deg); }
.scn-gounsovski-laugh .rouletabille-chair { position:absolute; bottom:25%; right:10%; width:34px; height:44px; background: linear-gradient(180deg, #705040 0%, #4a3020 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(-5deg); }
.scn-gounsovski-laugh .chief-figure { position:absolute; bottom:35%; left:14%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl4-sit 3s ease-in-out infinite; }
.scn-gounsovski-laugh .rouletabille-figure { position:absolute; bottom:35%; right:14%; width:20px; height:48px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl4-laugh 2s ease-in-out infinite; }
.scn-gounsovski-laugh .laugh-effect { position:absolute; top:15%; right:25%; width:30px; height:30px; background: radial-gradient(circle, #f0c040 0%, transparent 70%); opacity:0; animation: gl4-burst 2s ease-in-out infinite; }
@keyframes gl4-sit { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gl4-laugh { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-6px) rotate(10deg) scale(1.05); } 50% { transform: translateY(-2px) rotate(-5deg) scale(0.95); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes gl4-burst { 0% { opacity:0; transform: scale(0.5); } 30% { opacity:0.8; transform: scale(1.2); } 70% { opacity:0.4; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.8); } }

.scn-board-lifted {
  background: 
    linear-gradient(45deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 80%, #2c2c3c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-board-lifted .floor {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-board-lifted .board {
  position: absolute; bottom: 45%; left: 20%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px 4px 8px 8px;
  transform-origin: left center;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: bl-board 4s ease-in-out infinite alternate;
}
.scn-board-lifted .knife {
  position: absolute; bottom: 48%; left: 28%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 50%, #505050 100%);
  border-radius: 2px 2px 8px 8px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: bl-knife 2s ease-in-out infinite alternate;
}
.scn-board-lifted .hand {
  position: absolute; bottom: 50%; left: 25%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: bl-hand 4s ease-in-out infinite alternate;
}
.scn-board-lifted .shadow-board {
  position: absolute; bottom: 44%; left: 20%; width: 40%; height: 4%;
  background: rgba(0,0,0,.3);
  filter: blur(6px);
  transform: scaleX(1.1);
  animation: bl-shadow 4s ease-in-out infinite alternate;
}
.scn-board-lifted .nail-shadow {
  position: absolute; bottom: 42%; left: 22%; width: 2%; height: 4%;
  background: #1a1a1a;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  animation: bl-nail 6s ease-in-out infinite;
}
.scn-board-lifted .dust {
  position: absolute; top: 30%; left: 10%; width: 6px; height: 6px;
  background: rgba(200,190,170,.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: bl-dust 20s linear infinite;
}
@keyframes bl-board   { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes bl-knife   { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes bl-hand    { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes bl-shadow  { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes bl-nail    { 0% { opacity: 0 } 20% { opacity: .8 } 40% { opacity: .3 } 100% { opacity: 0 } }
@keyframes bl-dust    { 0% { transform: translate(0, 0) scale(1); opacity:0 } 10% { opacity:.6 } 90% { opacity:.2 } 100% { transform: translate(60vw, -20vh) scale(0); opacity:0 } }

.scn-matrena-hesitates {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(circle at 60% 40%, #3a3a5a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-matrena-hesitates .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.6);
}
.scn-matrena-hesitates .door-frame {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 80%;
  border: 6px solid #4a3a2a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-matrena-hesitates .figure-matrena {
  position: absolute; bottom: 10%; left: 35%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,.4);
  animation: mh-figure 6s ease-in-out infinite alternate;
}
.scn-matrena-hesitates .hand-hesitate {
  position: absolute; bottom: 35%; left: 42%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-hand 3s ease-in-out infinite alternate;
}
.scn-matrena-hesitates .lamp-glow {
  position: absolute; top: 15%; right: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,.3);
  animation: mh-lamp 4s ease-in-out infinite alternate;
}
.scn-matrena-hesitates .shadow-wall {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
}
@keyframes mh-figure { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes mh-hand   { 0% { transform: rotate(0deg) translateY(0) scaleY(1) } 50% { transform: rotate(-8deg) translateY(-5px) scaleY(1.05) } 100% { transform: rotate(0deg) translateY(0) scaleY(1) } }
@keyframes mh-lamp   { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(1) } }

.scn-koupriane-theory {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 60%, #3a3a4e 100%),
    radial-gradient(ellipse at 40% 30%, #2c2c4c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-koupriane-theory .room-corner {
  position: absolute; bottom: 0; left: 0; width: 60%; height: 60%;
  background: linear-gradient(135deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset -10px -10px 20px rgba(0,0,0,.5);
}
.scn-koupriane-theory .table {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-koupriane-theory .figure-koupriane {
  position: absolute; bottom: 22%; left: 10%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,.6);
  animation: kt-figure1 5s ease-in-out infinite alternate;
}
.scn-koupriane-theory .figure-madame {
  position: absolute; bottom: 20%; left: 40%; width: 9%; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,.6);
  animation: kt-figure2 6s ease-in-out infinite alternate;
}
.scn-koupriane-theory .lamp {
  position: absolute; top: 15%; left: 45%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #804020 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,.4);
  animation: kt-lamp 3s ease-in-out infinite alternate;
}
.scn-koupriane-theory .shadow-figures {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
.scn-koupriane-theory .flicker {
  position: absolute; top: 12%; left: 44%; width: 8%; height: 14%;
  background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: kt-flicker 0.5s ease-in-out infinite alternate;
}
@keyframes kt-figure1 { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateX(4px) } 100% { transform: rotate(0deg) } }
@keyframes kt-figure2 { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(0deg) } }
@keyframes kt-lamp    { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(1) } }
@keyframes kt-flicker { 0% { opacity: .2; transform: scale(1) } 100% { opacity: .6; transform: scale(1.3) } }

.scn-new-nails-drawn {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 60%, #2c2c4c 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-new-nails-drawn .table-top {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-new-nails-drawn .hand-drawing {
  position: absolute; bottom: 38%; left: 35%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: nd-hand 3s ease-in-out infinite alternate;
}
.scn-new-nails-drawn .nail {
  position: absolute; bottom: 33%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #b0b0b0 0%, #707070 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: nd-nail 4s ease-in-out infinite;
}
.scn-new-nails-drawn .nail-1 { left: 40%; animation-delay: 0s; }
.scn-new-nails-drawn .nail-2 { left: 55%; animation-delay: 1.5s; }
.scn-new-nails-drawn .hammer {
  position: absolute; bottom: 36%; left: 28%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #808080 0%, #505050 100%);
  border-radius: 4px 4px 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: nd-hammer 2s ease-in-out infinite alternate;
}
.scn-new-nails-drawn .shadow-hand {
  position: absolute; bottom: 32%; left: 30%; width: 20%; height: 6%;
  background: rgba(0,0,0,.3);
  filter: blur(8px);
  animation: nd-shadow 3s ease-in-out infinite alternate;
}
.scn-new-nails-drawn .glint {
  position: absolute; bottom: 33%; left: 40%; width: 1%; height: 2%;
  background: rgba(255,255,200,.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: nd-glint 2s ease-in-out infinite alternate;
}
@keyframes nd-hand   { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nd-nail   { 0% { transform: translateY(0) scaleY(1) opacity:.8 } 50% { transform: translateY(-4px) scaleY(1.1) opacity:1 } 100% { transform: translateY(0) scaleY(1) opacity:.8 } }
@keyframes nd-hammer { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes nd-shadow { 0% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.2) } 100% { opacity: .3; transform: scaleX(1) } }
@keyframes nd-glint  { 0% { opacity: .2; transform: scale(1) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: .2; transform: scale(1) } }

.scn-tracks-in-ferns { background: linear-gradient(180deg, #2b1d3a 0%, #4a2e4a 30%, #6a4a3e 70%, #3a2a1a 100%), radial-gradient(ellipse at 30% 80%, #6a4a3e 20%, transparent 60%); }
.scn-tracks-in-ferns .sky-tf { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a4a 0%, #7a5a4a 100%); opacity:.7; animation: tf-sky 8s ease-in-out infinite alternate; }
.scn-tracks-in-ferns .ground-tf { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 90% 60% 0 0; animation: tf-ground 12s ease-in-out infinite alternate; }
.scn-tracks-in-ferns .ferns-back-tf { position:absolute; bottom:40%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 20% 0%, #4a6a3a 0%, transparent 70%); filter: blur(3px); animation: tf-ferns 20s ease-in-out infinite; }
.scn-tracks-in-ferns .ferns-mid-tf { position:absolute; bottom:20%; left:10%; width:80%; height:35%; background: repeating-linear-gradient(45deg, #3a5a2a 0px, #3a5a2a 2px, #2a4a1a 2px, #2a4a1a 4px); border-radius: 50% 20% 40% 30% / 60% 40% 30% 50%; transform: scale(.95); filter: blur(1px); animation: tf-ferns 15s ease-in-out infinite reverse; }
.scn-tracks-in-ferns .figure-tf { position:absolute; bottom:22%; left:35%; width:16px; 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: tf-walk 4s ease-in-out infinite; }
.scn-tracks-in-ferns .trace-tf { position:absolute; bottom:25%; left:20%; width:6px; height:2px; background: #6a5a4a; border-radius: 50%; box-shadow: 0 0 4px #6a5a4a; animation: tf-trace 6s ease-in-out infinite alternate; }
@keyframes tf-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes tf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes tf-ferns { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.4 } }
@keyframes tf-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes tf-trace { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.7; transform: translateX(8px) } 100% { opacity:.4; transform: translateX(0) } }

.scn-natacha-and-boris { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #3a2a2a 100%), radial-gradient(ellipse at 50% 60%, #3a2a2a 20%, transparent 70%); }
.scn-natacha-and-boris .wall-nb { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a1a 0%, #1a1a2a 100%); opacity:.8; animation: nb-wall 10s ease-in-out infinite alternate; }
.scn-natacha-and-boris .window-nb { position:absolute; top:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #6a4a4a 0%, #2a1a1a 100%); border: 4px solid #1a0a0a; border-radius: 4px; box-shadow: 0 0 20px 6px rgba(106,74,74,.3); animation: nb-window 6s ease-in-out infinite alternate; }
.scn-natacha-and-boris .figure-left-nb { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-figure-left 5s ease-in-out infinite; }
.scn-natacha-and-boris .figure-right-nb { position:absolute; bottom:20%; right:30%; width:18px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-figure-right 5s ease-in-out infinite alternate; }
.scn-natacha-and-boris .hand-nb { position:absolute; bottom:30%; left:42%; width:4px; height:10px; background: #2a1a1a; border-radius: 20% 20% 50% 50%; transform-origin: top left; animation: nb-hand 4s ease-in-out infinite; }
.scn-natacha-and-boris .shadow-nb { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); pointer-events:none; animation: nb-shadow 8s ease-in-out infinite alternate; }
@keyframes nb-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes nb-window { 0% { box-shadow: 0 0 10px 3px rgba(106,74,74,.2) } 50% { box-shadow: 0 0 25px 8px rgba(106,74,74,.5) } 100% { box-shadow: 0 0 15px 5px rgba(106,74,74,.3) } }
@keyframes nb-figure-left { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(-2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nb-figure-right { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nb-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes nb-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }

.scn-boris-capitulates { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #4a2a2a 10%, transparent 80%); }
.scn-boris-capitulates .bg-bc { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a0a 100%); opacity:.85; animation: bc-bg 12s ease-in-out infinite alternate; }
.scn-boris-capitulates .silhouette-left-bc { position:absolute; bottom:20%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-left 6s ease-in-out infinite; }
.scn-boris-capitulates .silhouette-right-bc { position:absolute; bottom:18%; right:30%; width:18px; height:48px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-right 6s ease-in-out infinite alternate; }
.scn-boris-capitulates .hand-bc { position:absolute; bottom:30%; left:38%; width:5px; height:12px; background: #2a1a1a; border-radius: 20% 20% 50% 50%; transform-origin: top left; z-index:2; animation: bc-hand 5s ease-in-out infinite; }
.scn-boris-capitulates .glow-bc { position:absolute; bottom:30%; left:38%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,160,100,.5) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,160,100,.3); animation: bc-glow 4s ease-in-out infinite alternate; }
.scn-boris-capitulates .step-bc { position:absolute; bottom:15%; left:33%; width:30px; height:8px; background: #1a1a1a; border-radius: 30% 30% 10% 10%; transform: rotate(5deg); animation: bc-step 7s ease-in-out infinite alternate; }
@keyframes bc-bg { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes bc-left { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bc-right { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bc-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(6px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes bc-glow { 0% { opacity:.4; transform: scale(.8) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes bc-step { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }

.scn-matrena-waits { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 30%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 20%, transparent 80%); }
.scn-matrena-waits .floor-mw { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-linear-gradient(45deg, #2a1a1a 0px, #2a1a1a 2px, #1a0a0a 2px, #1a0a0a 4px); transform: skewX(-10deg); animation: mw-floor 14s ease-in-out infinite alternate; }
.scn-matrena-waits .wall-mw { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a0a 100%); opacity:.8; animation: mw-wall 10s ease-in-out infinite alternate; }
.scn-matrena-waits .door-mw { position:absolute; bottom:30%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a0a0a 0%, #000 100%); border: 2px solid #2a1a1a; border-radius: 2px 2px 4px 4px; box-shadow: 0 0 10px 2px #1a0a0a; animation: mw-door 8s ease-in-out infinite; }
.scn-matrena-waits .window-mw { position:absolute; top:20%; right:20%; width:60px; height:50px; background: radial-gradient(ellipse at center, #4a3a3a 0%, #1a1a1a 100%); border: 3px solid #1a0a0a; border-radius: 4px; box-shadow: 0 0 15px 4px rgba(74,58,58,.3); animation: mw-window 6s ease-in-out infinite alternate; }
.scn-matrena-waits .figure-mw { position:absolute; bottom:30%; left:35%; 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: mw-figure 5s ease-in-out infinite; }
.scn-matrena-waits .chair-mw { position:absolute; bottom:25%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 40% 40%; transform: rotate(5deg); animation: mw-chair 12s ease-in-out infinite alternate; }
.scn-matrena-waits .shadow-mw { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events:none; animation: mw-shadow 9s ease-in-out infinite alternate; }
.scn-matrena-waits .threshold-mw { position:absolute; bottom:35%; left:15%; width:50%; height:4px; background: #3a2a2a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: mw-threshold 7s ease-in-out infinite alternate; }
@keyframes mw-floor { 0% { opacity:.7; transform: skewX(-10deg) translateY(0) } 50% { opacity:.8; transform: skewX(-8deg) translateY(-1px) } 100% { opacity:.75; transform: skewX(-12deg) translateY(0) } }
@keyframes mw-wall { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes mw-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(5deg) } 100% { transform: rotateY(0deg) } }
@keyframes mw-window { 0% { box-shadow: 0 0 10px 2px rgba(74,58,58,.2) } 50% { box-shadow: 0 0 20px 6px rgba(74,58,58,.5) } 100% { box-shadow: 0 0 15px 4px rgba(74,58,58,.3) } }
@keyframes mw-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes mw-chair { 0% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(5deg) } }
@keyframes mw-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes mw-threshold { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.05) } 100% { opacity:.55; transform: scaleX(0.98) } }

/* Scene: rouletabille-missing (tense, dark) */
.scn-rouletabille-missing {
  background: linear-gradient(180deg, #1c1c3a 0%, #2a2a50 40%, #0f0f20 100%);
}
.scn-rouletabille-missing .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a30 100%);
  border-radius: 20% 20% 0 0;
  animation: rm-floor 8s ease-in-out infinite alternate;
}
.scn-rouletabille-missing .wall {
  position: absolute; inset: 15% 5% 25% 5%; border-radius: 8px 8px 0 0;
  background: linear-gradient(135deg, #3a3a5a 0%, #2a2a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: rm-wall 12s ease-in-out infinite;
}
.scn-rouletabille-missing .window {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #3a5a7a 0%, #1a2a4a 90%);
  border-radius: 10px; border: 4px solid #2a2a3a;
  box-shadow: 0 0 30px rgba(0,0,0,.8), inset 0 0 20px rgba(0,0,0,.5);
  animation: rm-window 6s ease-in-out infinite alternate;
}
.scn-rouletabille-missing .bed {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 10px; box-shadow: 0 8px 15px rgba(0,0,0,.7);
  animation: rm-bed 10s ease-in-out infinite;
}
.scn-rouletabille-missing .door-ajar {
  position: absolute; bottom: 5%; right: 10%; width: 70px; height: 150px;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 100%);
  transform-origin: right; transform: skewY(-10deg);
  border-radius: 4px; box-shadow: -5px 0 15px rgba(0,0,0,.5);
  animation: rm-door 15s ease-in-out infinite alternate;
}
.scn-rouletabille-missing .shadow {
  position: absolute; bottom: 0; left: 10%; width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: rm-shadow 4s ease-in-out infinite alternate;
}
.scn-rouletabille-missing .figure-absent {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.3;
  animation: rm-absent 5s ease-in-out infinite;
}
@keyframes rm-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rm-wall { 0%,100% { opacity:0.9; } 50% { opacity:0.6; } }
@keyframes rm-window { 0% { filter: brightness(0.7); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.8); } }
@keyframes rm-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes rm-door { 0% { transform: skewY(-10deg); } 100% { transform: skewY(-15deg); } }
@keyframes rm-shadow { 0% { transform: scaleX(1); opacity:0.8; } 100% { transform: scaleX(1.2); opacity:1; } }
@keyframes rm-absent { 0%,100% { transform: translateY(0) rotate(0); opacity:0.3; } 50% { transform: translateY(-5px) rotate(3deg); opacity:0.5; } }

/* Scene: matrena-roams-garden (tense, dark) */
.scn-matrena-roams-garden {
  background: linear-gradient(180deg, #14142e 0%, #2a2440 40%, #1a1a30 100%);
}
.scn-matrena-roams-garden .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, #0a0a20 100%);
  animation: mg-sky 20s ease-in-out infinite alternate;
}
.scn-matrena-roams-garden .garden-path {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10%;
  animation: mg-path 6s ease-in-out infinite;
}
.scn-matrena-roams-garden .bush-left {
  position: absolute; bottom: 30%; left: 5%; width: 80px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50%;
  animation: mg-bush 8s ease-in-out infinite alternate;
}
.scn-matrena-roams-garden .bush-right {
  position: absolute; bottom: 28%; right: 8%; width: 90px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50%;
  animation: mg-bush 10s ease-in-out infinite alternate-reverse;
}
.scn-matrena-roams-garden .window-glow {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a08040 0%, #4a3a1a 70%);
  border-radius: 10px;
  box-shadow: 0 0 40px 10px #a08040, 0 0 80px 20px rgba(160,128,64,.3);
  animation: mg-glow 4s ease-in-out infinite alternate;
}
.scn-matrena-roams-garden .matrena-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 50px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg-walk 7s ease-in-out infinite;
}
.scn-matrena-roams-garden .clouds {
  position: absolute; top: 10%; left: 0; width: 100%; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(200,200,255,.1) 20%, rgba(200,200,255,.2) 50%, transparent 80%);
  filter: blur(4px);
  animation: mg-clouds 45s linear infinite;
}
@keyframes mg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mg-path { 0%,100% { transform: translateY(0); } 50% { transform: translateY(3px); } }
@keyframes mg-bush { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-4px) scale(1.02); } }
@keyframes mg-glow { 0% { filter: brightness(0.6); } 50% { filter: brightness(1.2); } 100% { filter: brightness(0.8); } }
@keyframes mg-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-2px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes mg-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

/* Scene: matrena-examines-all (tense, dark) */
.scn-matrena-examines-all {
  background: linear-gradient(180deg, #1c1c30 0%, #2a2a40 50%, #1a1a2a 100%);
}
.scn-matrena-examines-all .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: me-floor 10s ease-in-out infinite alternate;
}
.scn-matrena-examines-all .corridor-wall {
  position: absolute; inset: 10% 10% 20% 10%;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn-matrena-examines-all .door-left {
  position: absolute; bottom: 15%; left: 15%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 100%);
  border-radius: 6px;
  animation: me-door 5s ease-in-out infinite alternate;
}
.scn-matrena-examines-all .door-right {
  position: absolute; bottom: 15%; right: 15%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 100%);
  border-radius: 6px;
  animation: me-door 7s ease-in-out infinite alternate-reverse;
}
.scn-matrena-examines-all .lamp {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #907030 0%, #2a1a0a 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 5px #907030, 0 0 60px 10px rgba(144,112,48,.3);
  animation: me-lamp 3s ease-in-out infinite alternate;
}
.scn-matrena-examines-all .matrena-figure {
  position: absolute; bottom: 15%; left: 40%; width: 18px; height: 45px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: me-turn 6s ease-in-out infinite;
}
.scn-matrena-examines-all .keyhole {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 4px;
  background: #705030;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #705030;
  animation: me-keyhole 4s ease-in-out infinite alternate;
}
@keyframes me-floor { 0% { opacity:0.9; } 100% { opacity:1; } }
@keyframes me-door { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.9); } }
@keyframes me-lamp { 0% { filter: brightness(0.7); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.8); } }
@keyframes me-turn { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(15px) rotate(-5deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes me-keyhole { 0% { filter: brightness(0.5); } 100% { filter: brightness(1.5); } }

/* Scene: rouletabille-porcelain-man (warm, dark) */
.scn-rouletabille-porcelain-man {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%);
}
.scn-rouletabille-porcelain-man .porch-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  animation: rp-floor 8s ease-in-out infinite alternate;
}
.scn-rouletabille-porcelain-man .porch-wall {
  position: absolute; inset: 5% 5% 15% 5%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 15px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
}
.scn-rouletabille-porcelain-man .lantern {
  position: absolute; top: 20%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #f0a050 0%, #803010 80%);
  border-radius: 10px;
  box-shadow: 0 0 40px 10px #f0a050, 0 0 80px 20px rgba(240,160,80,.4);
  animation: rp-lantern 4s ease-in-out infinite alternate;
}
.scn-rouletabille-porcelain-man .figure-rouletabille {
  position: absolute; bottom: 10%; left: 50%; width: 22px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rp-figure 6s ease-in-out infinite;
}
.scn-rouletabille-porcelain-man .shadow-elongated {
  position: absolute; bottom: 0; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: rp-shadow 5s ease-in-out infinite alternate;
}
.scn-rouletabille-porcelain-man .doorway {
  position: absolute; bottom: 5%; right: 10%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 6px;
  box-shadow: -4px 0 10px rgba(0,0,0,.5);
  animation: rp-door 12s ease-in-out infinite;
}
.scn-rouletabille-porcelain-man .warm-glow {
  position: absolute; top: 15%; left: 25%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(240,160,80,.15) 0%, transparent 70%);
  animation: rp-glow 3s ease-in-out infinite alternate;
}
@keyframes rp-floor { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes rp-lantern { 0% { filter: brightness(0.8); } 50% { filter: brightness(1.2); } 100% { filter: brightness(0.9); } }
@keyframes rp-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes rp-shadow { 0% { transform: scaleX(1); opacity:0.5; } 100% { transform: scaleX(1.3); opacity:0.8; } }
@keyframes rp-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes rp-glow { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-family-affair-plot {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #cbb59a 40%, #a08a6f 100%),
    radial-gradient(ellipse at 30% 20%, #ffffff 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-family-affair-plot .room-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(180,160,140,0.3) 0%, transparent 60%);
  animation: fap-wall 8s ease-in-out infinite alternate;
}
.scn-family-affair-plot .window-frame {
  position: absolute; top: 15%; left: 20%; width: 40%; height: 50%;
  border: 12px solid #5a4a3a; border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
  background: #3a2a1a;
}
.scn-family-affair-plot .window-pane {
  position: absolute; top: 18%; left: 23%; width: 34%; height: 44%;
  background: linear-gradient(135deg, #a0c8e8 0%, #d0e8f8 50%, #e0f0ff 100%);
  border-radius: 2px;
  animation: fap-pane 6s ease-in-out infinite alternate;
}
.scn-family-affair-plot .table {
  position: absolute; bottom: 20%; left: 10%; width: 45%; height: 8%;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3222 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(5deg);
}
.scn-family-affair-plot .figure-dark {
  position: absolute; bottom: 28%; left: 30%; width: 10%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fap-figure 4s ease-in-out infinite alternate;
}
.scn-family-affair-plot .shadow {
  position: absolute; bottom: 20%; left: 28%; width: 14%; height: 6%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: fap-shadow 4s ease-in-out infinite alternate;
}
.scn-family-affair-plot .lamp {
  position: absolute; top: 12%; right: 15%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c08030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.4);
  animation: fap-lamp 3s ease-in-out infinite alternate;
}
.scn-family-affair-plot .dust {
  position: absolute; top: 30%; left: 50%; width: 100%; height: 2%;
  background: transparent;
  filter: blur(8px);
  animation: fap-dust 12s linear infinite;
}
@keyframes fap-wall { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes fap-pane { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fap-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes fap-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.3; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes fap-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,224,128,0.3); } 50% { box-shadow: 0 0 40px 15px rgba(255,224,128,0.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,224,128,0.4); } }
@keyframes fap-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-100vh); } }

.scn-water-trough-rings {
  background: 
    linear-gradient(180deg, #d9c8a8 0%, #b8a488 40%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 80%, #e8dcc8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-water-trough-rings .trough {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-water-trough-rings .trough-water {
  position: absolute; bottom: 10%; left: 22%; width: 56%; height: 20%;
  background: linear-gradient(180deg, #4a7a8a 0%, #3a5a6a 100%);
  border-radius: 0 0 10% 10%;
  animation: wtr-wave 8s ease-in-out infinite alternate;
}
.scn-water-trough-rings .iron-ring {
  position: absolute; bottom: 55%; width: 5%; height: 10%;
  border: 4px solid #5a4a3a;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}
.scn-water-trough-rings .ring-left {
  left: 25%; 
  animation: wtr-ring 3s ease-in-out infinite alternate;
}
.scn-water-trough-rings .ring-right {
  right: 25%; 
  animation: wtr-ring 3s ease-in-out infinite alternate-reverse;
}
.scn-water-trough-rings .wall-marks {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, #5a4a3a 0%, transparent 60%);
  filter: blur(2px);
  opacity: 0.6;
  animation: wtr-marks 5s ease-in-out infinite alternate;
}
.scn-water-trough-rings .window-sill {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-water-trough-rings .grappling-hook {
  position: absolute; top: 20%; left: 50%; width: 10%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  clip-path: polygon(30% 0, 70% 0, 60% 30%, 80% 50%, 60% 70%, 40% 70%, 20% 50%, 40% 30%);
  animation: wtr-hook 7s ease-in-out infinite alternate;
}
@keyframes wtr-wave { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes wtr-ring { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(0.9); } }
@keyframes wtr-marks { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes wtr-hook { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(8deg) translateY(-5px); } 100% { transform: translateX(-50%) rotate(-5deg); } }

.scn-viper-natacha {
  background: 
    linear-gradient(180deg, #b8a898 0%, #9a8a7a 40%, #7a6a5a 100%),
    radial-gradient(ellipse at 20% 40%, #e0d0c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-viper-natacha .villa-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 40px);
}
.scn-viper-natacha .window-shutter {
  position: absolute; top: 15%; left: 15%; width: 50%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: vip-shutter 10s ease-in-out infinite alternate;
}
.scn-viper-natacha .silhouette-viper {
  position: absolute; top: 30%; left: 40%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: vip-snake 4s ease-in-out infinite alternate;
}
.scn-viper-natacha .eye-glow {
  position: absolute; top: 35%; left: 46%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c8553d 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #c8553d;
  animation: vip-eye 3s ease-in-out infinite alternate;
}
.scn-viper-natacha .shadow-nest {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: vip-nest 8s ease-in-out infinite alternate;
}
.scn-viper-natacha .dust-motes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.05) 0%, transparent 50%);
  animation: vip-dust 15s linear infinite;
}
@keyframes vip-shutter { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes vip-snake { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(2px) rotate(-3deg); } }
@keyframes vip-eye { 0% { opacity: 0.3; box-shadow: 0 0 8px 2px #c8553d; } 50% { opacity: 1; box-shadow: 0 0 20px 8px #c8553d; } 100% { opacity: 0.5; box-shadow: 0 0 12px 4px #c8553d; } }
@keyframes vip-nest { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes vip-dust { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-100vh) rotate(360deg); } }

.scn-only-one-man {
  background: 
    linear-gradient(180deg, #d0c0a8 0%, #b09882 40%, #8a7a62 100%),
    radial-gradient(ellipse at 70% 40%, #f0e0d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-only-one-man .wall-brick {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.04) 30px, rgba(0,0,0,0.04) 32px),
              repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0,0,0,0.04) 40px, rgba(0,0,0,0.04) 42px);
}
.scn-only-one-man .pipe-mark {
  position: absolute; top: 20%; left: 40%; width: 20%; height: 40%;
  background: repeating-linear-gradient(180deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 12px);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: omn-pipe 5s ease-in-out infinite alternate;
}
.scn-only-one-man .grapple-shadow {
  position: absolute; top: 15%; left: 35%; width: 15%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: omn-shadow 4s ease-in-out infinite alternate;
}
.scn-only-one-man .man-silhouette {
  position: absolute; bottom: 20%; left: 20%; width: 12%; 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: omn-man 6s ease-in-out infinite alternate;
}
.scn-only-one-man .man-eyes {
  position: absolute; bottom: 42%; left: 24%; width: 4%; height: 3%;
  background: radial-gradient(circle, #b87878 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #b87878;
  animation: omn-eyes 3s ease-in-out infinite alternate;
}
.scn-only-one-man .floor-shadow {
  position: absolute; bottom: 18%; left: 15%; width: 22%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: omn-floor 6s ease-in-out infinite alternate;
}
.scn-only-one-man .lens-flare {
  position: absolute; top: 10%; right: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: omn-flare 8s linear infinite;
}
@keyframes omn-pipe { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes omn-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(1.1); } 100% { transform: translateX(-4px) scale(0.9); } }
@keyframes omn-man { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes omn-eyes { 0% { opacity: 0.4; box-shadow: 0 0 6px 1px #b87878; } 50% { opacity: 1; box-shadow: 0 0 14px 5px #b87878; } 100% { opacity: 0.6; box-shadow: 0 0 8px 2px #b87878; } }
@keyframes omn-floor { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.3); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.4; } }
@keyframes omn-flare { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.5) rotate(180deg); } 100% { transform: scale(0.8) rotate(360deg); } }

/* scene id: honest-koupriane */
.scn-honest-koupriane {
  background:
    linear-gradient(180deg, #4a6e8a 0%, #7a9eb5 30%, #c0d6e4 70%, #e8e0d0 100%),
    radial-gradient(ellipse at 40% 20%, #fff 0%, transparent 70%);
}
.scn-honest-koupriane .bg-sun { position:absolute; inset:0; background: linear-gradient(135deg, #f5dba0 0%, #f0c875 100%); opacity:0.3; animation: hk-sun 10s ease-in-out infinite alternate; }
.scn-honest-koupriane .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #4a3c2c 0%, #6a5a4a 100%); border-radius:60% 60% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-honest-koupriane .desk { position:absolute; bottom:18%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); transform: perspective(400px) rotateX(5deg); }
.scn-honest-koupriane .papers { position:absolute; bottom:24%; left:30%; width:8%; height:6%; background: linear-gradient(135deg, #f0e8d8, #d8c8a8); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform: rotate(5deg); animation: hk-papers 6s ease-in-out infinite; }
.scn-honest-koupriane .koupriane { position:absolute; bottom:20%; left:50%; width:60px; height:110px; transform: translateX(-50%); background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%); border-radius:45% 45% 40% 40% / 60% 60% 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,0.2); animation: hk-figure 4s ease-in-out infinite; }
.scn-honest-koupriane .shadow { position:absolute; bottom:10%; left:40%; width:30%; height:8px; background: rgba(0,0,0,0.25); border-radius:50%; filter: blur(4px); animation: hk-shadow 4s ease-in-out infinite; }
.scn-honest-koupriane .dust { position:absolute; width:4px; height:4px; background: rgba(255,220,160,0.8); border-radius:50%; filter: blur(2px); }
.scn-honest-koupriane .mot-1 { top:30%; left:20%; animation: hk-dust 12s linear infinite; }
.scn-honest-koupriane .mot-2 { top:40%; right:15%; width:3px; height:3px; animation: hk-dust 18s linear infinite reverse; }
@keyframes hk-sun { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }
@keyframes hk-papers { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes hk-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); } }
@keyframes hk-shadow { 0%,100% { width:30%; opacity:0.25; } 50% { width:28%; opacity:0.2; } }
@keyframes hk-dust { 0% { transform: translate(0,0); opacity:1; } 25% { transform: translate(10px, -15px); opacity:0.6; } 50% { transform: translate(20px, -30px); opacity:0.2; } 75% { transform: translate(30px, -15px); opacity:0.6; } 100% { transform: translate(40px,0); opacity:1; } }

/* scene id: koupriane-confronts */
.scn-koupriane-confronts {
  background:
    linear-gradient(180deg, #9ab0c0 0%, #d4dce4 40%, #e8e0d0 100%),
    radial-gradient(ellipse at 30% 50%, #fff 0%, transparent 70%);
}
.scn-koupriane-confronts .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #a8c0d0 0%, #d0d8e0 100%); animation: kc-back 8s ease-in-out infinite alternate; }
.scn-koupriane-confronts .column-l { position:absolute; bottom:0; left:10%; width:8%; height:90%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:10% 10% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,0.2); }
.scn-koupriane-confronts .column-r { position:absolute; bottom:0; right:10%; width:8%; height:90%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:10% 10% 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.2); }
.scn-koupriane-confronts .koupriane { position:absolute; bottom:15%; left:35%; width:55px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%); border-radius:45% 45% 40% 40% / 60% 60% 30% 30%; box-shadow: 8px 0 20px rgba(0,0,0,0.3); animation: kc-figure 3s ease-in-out infinite; }
.scn-koupriane-confronts .rouletabille { position:absolute; bottom:15%; right:35%; width:50px; height:90px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:45% 45% 40% 40% / 60% 60% 30% 30%; box-shadow: -8px 0 20px rgba(0,0,0,0.3); animation: kc-figure2 3.2s ease-in-out infinite; }
.scn-koupriane-confronts .shadow-l { position:absolute; bottom:8%; left:28%; width:15%; height:6px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: kc-shadow 3s ease-in-out infinite; }
.scn-koupriane-confronts .shadow-r { position:absolute; bottom:8%; right:28%; width:15%; height:6px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: kc-shadow 3.2s ease-in-out infinite; }
.scn-koupriane-confronts .speckles { position:absolute; width:3px; height:3px; background: rgba(255,220,160,0.6); border-radius:50%; filter: blur(1px); }
.scn-koupriane-confronts .s1 { top:20%; left:15%; animation: kc-speck 15s linear infinite; }
.scn-koupriane-confronts .s2 { top:30%; right:20%; width:4px; height:4px; animation: kc-speck 20s linear infinite reverse; }
@keyframes kc-back { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes kc-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-0.5deg); } }
@keyframes kc-figure2 { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(0.5deg); } }
@keyframes kc-shadow { 0%,100% { width:15%; opacity:0.2; } 50% { width:13%; opacity:0.15; } }
@keyframes kc-speck { 0% { transform: translate(0,0); opacity:0.6; } 25% { transform: translate(8px, -10px); opacity:0.3; } 50% { transform: translate(16px, -20px); opacity:0; } 75% { transform: translate(24px, -10px); opacity:0.3; } 100% { transform: translate(32px,0); opacity:0.6; } }

/* scene id: rouletabille-stands-ground */
.scn-rouletabille-stands-ground {
  background:
    linear-gradient(180deg, #6a8aa0 0%, #9ab0c0 40%, #c8d0d8 100%),
    radial-gradient(ellipse at 60% 30%, #fff 0%, transparent 70%);
}
.scn-rouletabille-stands-ground .sky { position:absolute; inset:0; background: linear-gradient(180deg, #8aa8c0 0%, #b8c8d0 60%, #d8d8d0 100%); animation: rsg-sky 12s ease-in-out infinite alternate; }
.scn-rouletabille-stands-ground .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #5a5a4a 0%, #8a7a6a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-rouletabille-stands-ground .figure { position:absolute; bottom:18%; left:50%; width:55px; height:120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:45% 45% 40% 40% / 60% 60% 30% 30%; box-shadow: -5px 0 15px rgba(0,0,0,0.2), 5px 0 15px rgba(0,0,0,0.1); animation: rsg-figure 4.5s ease-in-out infinite; }
.scn-rouletabille-stands-ground .coattail { position:absolute; bottom:18%; left:calc(50% + 20px); width:20px; height:40px; transform-origin: top; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:0 0 50% 50%; animation: rsg-tail 2.5s ease-in-out infinite alternate; }
.scn-rouletabille-stands-ground .document { position:absolute; bottom:38%; left:calc(50% - 10px); width:12px; height:16px; background: linear-gradient(135deg, #f0e8d8, #d8c8a8); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(15deg); animation: rsg-doc 4s ease-in-out infinite; }
.scn-rouletabille-stands-ground .flare { position:absolute; bottom:60%; left:40%; width:20px; height:40px; background: radial-gradient(circle, rgba(255,220,160,0.6) 0%, transparent 70%); filter: blur(10px); animation: rsg-flare 3s ease-in-out infinite alternate; }
.scn-rouletabille-stands-ground .insect { position:absolute; top:25%; left:20%; width:5px; height:3px; background: rgba(80,60,40,0.8); border-radius:50%; animation: rsg-bug 8s linear infinite; }
@keyframes rsg-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes rsg-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg); } }
@keyframes rsg-tail { 0% { transform: rotate(0); } 100% { transform: rotate(20deg); } }
@keyframes rsg-doc { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(25deg) translateY(-1px); } }
@keyframes rsg-flare { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes rsg-bug { 0% { transform: translate(0,0); } 25% { transform: translate(20px, -10px); } 50% { transform: translate(40px, -20px); } 75% { transform: translate(60px, -10px); } 100% { transform: translate(80px,0); } }

/* scene id: rouletabille-threatens-leave */
.scn-rouletabille-threatens-leave {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #8a7a6a 30%, #a8a090 70%, #d0c8b8 100%),
    radial-gradient(ellipse at 50% 80%, #e8d8c0 0%, transparent 70%);
}
.scn-rouletabille-threatens-leave .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: rtl-wall 6s ease-in-out infinite alternate; }
.scn-rouletabille-threatens-leave .door-frame { position:absolute; bottom:10%; left:50%; width:40%; height:90%; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 0 6px #3a2a1a; }
.scn-rouletabille-threatens-leave .door { position:absolute; bottom:12%; left:calc(50% - 15%); width:30%; height:85%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius:4% 4% 0 0; transform-origin: left center; animation: rtl-door 7s ease-in-out infinite alternate; }
.scn-rouletabille-threatens-leave .figure { position:absolute; bottom:15%; left:20%; width:50px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a1a2a 100%); border-radius:45% 45% 40% 40% / 60% 60% 30% 30%; box-shadow: -5px 0 15px rgba(0,0,0,0.3); animation: rtl-figure 3s ease-in-out infinite; }
.scn-rouletabille-threatens-leave .grip { position:absolute; bottom:40%; left:calc(20% + 20px); width:8px; height:12px; background: linear-gradient(180deg, #c0a070, #a08050); border-radius:20%; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: rtl-grip 3s ease-in-out infinite; }
.scn-rouletabille-threatens-leave .heels { position:absolute; bottom:5%; left:18%; width:10px; height:6px; background: #4a3a2a; border-radius:50%; filter: blur(1px); animation: rtl-heels 3s ease-in-out infinite; }
.scn-rouletabille-threatens-leave .light-ramp { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(200,180,140,0.6) 0%, transparent 100%); animation: rtl-ramp 5s ease-in-out infinite alternate; }
@keyframes rtl-wall { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes rtl-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(-10deg); } 100% { transform: rotateY(0); } }
@keyframes rtl-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0.5deg); } }
@keyframes rtl-grip { 0%,100% { opacity:1; } 50% { opacity:0.7; } }
@keyframes rtl-heels { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rtl-ramp { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-locksmith-revolver {
  background: linear-gradient(180deg, #2a1a12 0%, #3a2a1a 30%, #1a100a 100%), radial-gradient(ellipse at 70% 60%, #c08040 0%, transparent 60%);
}
.scn-locksmith-revolver .lr-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a100a 0%, #2a1a12 50%, #3a2a1a 100%);
}
.scn-locksmith-revolver .lr-lamp-glow {
  position:absolute; top:10%; right:15%; width:60px; height:80px; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%); border-radius:50%; filter:blur(8px); animation: lr-glow 3s ease-in-out infinite alternate;
}
.scn-locksmith-revolver .lr-table {
  position:absolute; bottom:20%; left:10%; right:20%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-locksmith-revolver .lr-hand {
  position:absolute; bottom:22%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0a0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lr-hand 2s ease-in-out infinite;
}
.scn-locksmith-revolver .lr-revolver {
  position:absolute; bottom:26%; left:35%; width:60px; height:20px; background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #3a3a3a 100%); border-radius: 30% 10% 10% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform-origin: 20% 50%; animation: lr-revolver 0.8s ease-in-out infinite;
}
.scn-locksmith-revolver .lr-lock {
  position:absolute; bottom:24%; left:55%; width:24px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px #c08040; animation: lr-lock 3s ease-in-out infinite alternate;
}
.scn-locksmith-revolver .lr-spark {
  position:absolute; bottom:28%; left:48%; width:4px; height:4px; background: #ffe080; border-radius:50%; box-shadow: 0 0 10px 2px #ffe080; animation: lr-spark 0.6s ease-in-out infinite;
}
@keyframes lr-glow { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.0) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes lr-hand { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(-2deg) } }
@keyframes lr-revolver { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes lr-lock { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes lr-spark { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0) } }

.scn-bohemians-enter {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #3a2a1a 100%), radial-gradient(ellipse at 30% 50%, #d09050 0%, transparent 70%);
}
.scn-bohemians-enter .be-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a1008 0%, #2a1a10 60%, #3a2a1a 100%);
}
.scn-bohemians-enter .be-door-frame {
  position:absolute; bottom:10%; left:20%; right:20%; height:70%; border: 4px solid #4a3a2a; border-bottom: none; border-radius: 4px 4px 0 0; background: transparent; box-shadow: inset 0 0 20px #0a0808;
}
.scn-bohemians-enter .be-lamp-glow {
  position:absolute; top:15%; left:50%; width:70px; height:90px; background: radial-gradient(circle, #ffc080 0%, #b07040 40%, transparent 70%); border-radius:50%; filter:blur(10px); transform: translateX(-50%); animation: be-glow 4s ease-in-out infinite alternate;
}
.scn-bohemians-enter .be-figure-1 {
  position:absolute; bottom:14%; left:38%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: be-walk 5s ease-in-out infinite;
}
.scn-bohemians-enter .be-figure-2 {
  position:absolute; bottom:14%; left:46%; width:28px; height:68px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: be-walk 5s ease-in-out infinite reverse; animation-delay: -2.5s;
}
.scn-bohemians-enter .be-table {
  position:absolute; bottom:12%; left:30%; right:30%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-bohemians-enter .be-chair {
  position:absolute; bottom:12%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: be-chair 6s ease-in-out infinite;
}
@keyframes be-glow { 0% { opacity:.7; transform: translateX(-50%) scale(.95) } 50% { opacity:1; transform: translateX(-50%) scale(1.0) } 100% { opacity:.8; transform: translateX(-50%) scale(.98) } }
@keyframes be-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes be-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-rouletabille-asleep {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 50%, #1a100a 100%), radial-gradient(ellipse at 50% 70%, #c08040 0%, transparent 50%);
}
.scn-rouletabille-asleep .ra-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a0e08 0%, #2a1a10 50%, #1a1010 100%);
}
.scn-rouletabille-asleep .ra-lamp-glow {
  position:absolute; top:20%; left:20%; width:50px; height:60px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; filter:blur(6px); animation: ra-glow 3s ease-in-out infinite alternate;
}
.scn-rouletabille-asleep .ra-chair {
  position:absolute; bottom:15%; left:35%; right:35%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ra-chair 10s ease-in-out infinite;
}
.scn-rouletabille-asleep .ra-figure {
  position:absolute; bottom:18%; left:40%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: ra-breath 4s ease-in-out infinite;
}
.scn-rouletabille-asleep .ra-table {
  position:absolute; bottom:14%; left:28%; right:28%; height:5%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-rouletabille-asleep .ra-bottle {
  position:absolute; bottom:18%; left:32%; width:12px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ra-bottle 6s ease-in-out infinite alternate;
}
@keyframes ra-glow { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.0) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes ra-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ra-breath { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes ra-bottle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-bohemians-sing {
  background: linear-gradient(180deg, #2a1a12 0%, #3a2a1a 50%, #1a100a 100%), radial-gradient(ellipse at 40% 30%, #c08040 0%, transparent 60%);
}
.scn-bohemians-sing .bs-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a1008 0%, #2a1a10 50%, #1a0e08 100%);
}
.scn-bohemians-sing .bs-lamp-glow {
  position:absolute; top:15%; left:30%; width:70px; height:80px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: bs-glow 4s ease-in-out infinite alternate;
}
.scn-bohemians-sing .bs-musician-1 {
  position:absolute; bottom:15%; left:20%; width:35px; height:65px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bs-sway 3s ease-in-out infinite;
}
.scn-bohemians-sing .bs-musician-2 {
  position:absolute; bottom:15%; left:40%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bs-sway 3s ease-in-out infinite reverse; animation-delay: -1.5s;
}
.scn-bohemians-sing .bs-guitar-1 {
  position:absolute; bottom:22%; left:22%; width:12px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-20deg); transform-origin: top center; animation: bs-guitar 2s ease-in-out infinite;
}
.scn-bohemians-sing .bs-guitar-2 {
  position:absolute; bottom:22%; left:42%; width:12px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(15deg); transform-origin: top center; animation: bs-guitar 2s ease-in-out infinite reverse; animation-delay: -1s;
}
.scn-bohemians-sing .bs-note {
  position:absolute; top:25%; left:25%; width:8px; height:8px; background: radial-gradient(circle, #ffe080 0%, transparent 100%); border-radius:50%; animation: bs-note 7s ease-in-out infinite;
}
.scn-bohemians-sing .bs-note-2 {
  position:absolute; top:30%; left:35%; width:6px; height:6px; background: radial-gradient(circle, #ffe080 0%, transparent 100%); border-radius:50%; animation: bs-note 7s ease-in-out infinite reverse; animation-delay: -3.5s;
}
@keyframes bs-glow { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.0) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes bs-sway { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) translateY(-3px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) } }
@keyframes bs-guitar { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.03) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes bs-note { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-40px) scale(1.3); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.6 } }

.scn-quarrel-quelled { background: linear-gradient(180deg, #fce6b0 0%, #f9d69a 40%, #e8b86d 70%, #c28a4a 100%), radial-gradient(ellipse at 50% 0%, #fff7d4 0%, transparent 60%); }
.scn-quarrel-quelled .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8b0 0%, #ffd68a 100%); animation: qq-sky 10s ease-in-out infinite alternate; }
.scn-quarrel-quelled .sun { position:absolute; top:8%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #fff7c0 0%, #ffe066 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,224,102,0.5); animation: qq-sun 8s ease-in-out infinite; }
.scn-quarrel-quelled .road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c28a4a 0%, #a06d35 100%); border-radius: 0 0 40% 30% / 0 0 20% 20%; }
.scn-quarrel-quelled .figure { position:absolute; bottom:25%; width:20px; height:50px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-quarrel-quelled .fig-left { left:25%; animation: qq-walk 4s ease-in-out infinite; }
.scn-quarrel-quelled .fig-center { left:45%; width:22px; height:52px; animation: qq-walk 4s ease-in-out 0.5s infinite; }
.scn-quarrel-quelled .fig-right { left:65%; animation: qq-walk 4s ease-in-out 1s infinite; }
.scn-quarrel-quelled .smoke { position:absolute; bottom:35%; left:30%; width:14px; height:14px; background: radial-gradient(circle, rgba(220,200,180,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: qq-smoke 6s ease-out infinite; }
@keyframes qq-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes qq-sun { 0%,100% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px rgba(255,224,102,0.5); } 50% { transform: scale(1.05) translateY(-3px); box-shadow: 0 0 80px 30px rgba(255,224,102,0.7); } }
@keyframes qq-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes qq-smoke { 0% { transform: translateY(0) scale(1); opacity:1; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

.scn-natacha-returns { background: linear-gradient(180deg, #ffeab3 0%, #f5d68c 35%, #dbb36a 70%, #b8894a 100%), radial-gradient(ellipse at 30% 0%, #fffacd 0%, transparent 70%); }
.scn-natacha-returns .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fff5cc 0%, #ffdf9e 100%); animation: nr-sky 12s ease-in-out infinite alternate; }
.scn-natacha-returns .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8894a 0%, #8c6b38 100%); border-radius: 0 0 30% 40% / 0 0 10% 15%; }
.scn-natacha-returns .path { position:absolute; bottom:30%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #dbb36a 0%, #c49a55 100%); border-radius: 50% 20% 30% 10%; }
.scn-natacha-returns .wheelchair { position:absolute; bottom:28%; left:35%; width:40px; height:35px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: nr-wheel 6s ease-in-out infinite; }
.scn-natacha-returns .figure { position:absolute; bottom:28%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-natacha-returns .pusher { left:30%; animation: nr-walk 5s ease-in-out infinite; }
.scn-natacha-returns .officer1 { left:55%; width:17px; height:42px; animation: nr-walk 5s ease-in-out 0.5s infinite; }
.scn-natacha-returns .officer2 { left:68%; width:17px; height:40px; animation: nr-walk 5s ease-in-out 1.2s infinite; }
.scn-natacha-returns .tree { position:absolute; bottom:40%; left:80%; width:30px; height:60px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: nr-tree 15s ease-in-out infinite alternate; }
@keyframes nr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nr-wheel { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(1deg); } }
@keyframes nr-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(0deg); } }
@keyframes nr-tree { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(-2deg); } }

.scn-walk-continues { background: linear-gradient(180deg, #e8f0d8 0%, #d0e0b8 40%, #b8c89a 70%, #9ab07a 100%), radial-gradient(ellipse at 50% 0%, #fafff0 0%, transparent 70%); }
.scn-walk-continues .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8e8c0 0%, #c0d8a0 100%); animation: wc-sky 15s ease-in-out infinite alternate; }
.scn-walk-continues .meadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b8d890 0%, #8ab06a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-walk-continues .stream { position:absolute; bottom:25%; left:10%; right:40%; height:6%; background: linear-gradient(90deg, #80b8c8 0%, #a0d0e0 50%, #80b8c8 100%); border-radius: 50%; filter: blur(4px); animation: wc-stream 8s linear infinite; }
.scn-walk-continues .bridge { position:absolute; bottom:23%; left:35%; width:60px; height:10px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: wc-bridge 12s ease-in-out infinite alternate; }
.scn-walk-continues .garden { position:absolute; bottom:15%; left:60%; width:80px; height:60px; background: radial-gradient(circle at 30% 40%, #d4a070 0%, #b88850 60%, transparent 80%); border-radius: 40% 60% 30% 50%; filter: blur(2px); animation: wc-garden 20s ease-in-out infinite; }
.scn-walk-continues .figure { position:absolute; bottom:28%; width:16px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-walk-continues .walker1 { left:25%; animation: wc-walk 6s ease-in-out infinite; }
.scn-walk-continues .walker2 { left:40%; width:14px; height:36px; animation: wc-walk 6s ease-in-out 0.8s infinite; }
.scn-walk-continues .cloud { position:absolute; top:18%; right:20%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: wc-cloud 30s linear infinite; }
@keyframes wc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes wc-stream { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes wc-bridge { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes wc-garden { 0% { transform: scale(1) rotate(-3deg); } 50% { transform: scale(1.03) rotate(3deg); } 100% { transform: scale(1) rotate(-2deg); } }
@keyframes wc-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(-1px) rotate(2deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes wc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-gulf-view { background: linear-gradient(180deg, #c0d8e8 0%, #a0c0d8 50%, #7aa8c0 100%), radial-gradient(ellipse at 50% 0%, #d8e8f8 0%, transparent 70%); }
.scn-gulf-view .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%); animation: gv-sky 18s ease-in-out infinite alternate; }
.scn-gulf-view .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a9ab8 0%, #487a9a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-gulf-view .sun-reflect { position:absolute; bottom:35%; left:45%; width:80px; height:20px; background: linear-gradient(90deg, transparent 0%, #ffe68a 30%, #ffe68a 70%, transparent 100%); border-radius:50%; filter: blur(6px); animation: gv-reflect 6s ease-in-out infinite alternate; }
.scn-gulf-view .ship { position:absolute; bottom:30%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: gv-ship 8s ease-in-out infinite; }
.scn-gulf-view .sail { position:absolute; bottom:35%; background: linear-gradient(180deg, #f8f4e8 0%, #e8dcc0 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; }
.scn-gulf-view .sail-fore { left:22%; width:22px; height:50px; animation: gv-sail-fore 6s ease-in-out infinite; }
.scn-gulf-view .sail-aft { left:35%; width:24px; height:55px; animation: gv-sail-aft 6s ease-in-out 0.3s infinite; }
.scn-gulf-view .wave { position:absolute; bottom:10%; left:0; right:0; height:15px; background: linear-gradient(90deg, transparent 0%, #6a9ab8 20%, #5a8aaa 50%, #6a9ab8 80%, transparent 100%); border-radius:50%; animation: gv-wave 5s linear infinite; }
.scn-gulf-view .wave1 { bottom:8%; opacity:0.5; animation-duration: 7s; }
.scn-gulf-view .wave2 { bottom:5%; opacity:0.3; animation-duration: 9s; animation-delay: 1s; }
.scn-gulf-view .wave3 { bottom:2%; opacity:0.2; animation-duration: 11s; animation-delay: 2s; }
@keyframes gv-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gv-reflect { 0% { transform: scaleX(1) opacity:0.6; } 50% { transform: scaleX(1.2) opacity:1; } 100% { transform: scaleX(1) opacity:0.6; } }
@keyframes gv-ship { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(2deg); } }
@keyframes gv-sail-fore { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.03); } }
@keyframes gv-sail-aft { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.02); } }
@keyframes gv-wave { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

.scn-pere-alexis-intro {
  background: linear-gradient(180deg, #2b1e15 0%, #1e1410 40%, #120c0a 100%), radial-gradient(ellipse at 70% 60%, #3a2a1e 0%, transparent 60%);
}
.scn-pere-alexis-intro .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2b1e15 0%, #1e1410 100%);
  animation: pai-wall 12s ease-in-out infinite alternate;
}
.scn-pere-alexis-intro .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1410 0%, #0c0a08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-pere-alexis-intro .kneeling-figure {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pai-kneel 6s ease-in-out infinite;
}
.scn-pere-alexis-intro .standing-shadow {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  opacity: 0.7;
  animation: pai-stand 8s ease-in-out infinite alternate;
}
.scn-pere-alexis-intro .doorway {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1e1410 0%, #14100c 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: pai-door 20s linear infinite;
}
.scn-pere-alexis-intro .candle {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px #f0c080, 0 0 40px rgba(240,192,128,0.3);
  animation: pai-candle 3s ease-in-out infinite alternate;
}
.scn-pere-alexis-intro .light-pool {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,192,128,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: pai-light 5s ease-in-out infinite alternate;
}
@keyframes pai-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pai-kneel {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); }
}
@keyframes pai-stand {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-3px) scaleY(0.97); }
}
@keyframes pai-door {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes pai-candle {
  0% { box-shadow: 0 0 12px #f0c080, 0 0 24px rgba(240,192,128,0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 28px #f0c080, 0 0 60px rgba(240,192,128,0.4); transform: scaleY(1.05); }
  100% { box-shadow: 0 0 16px #f0c080, 0 0 32px rgba(240,192,128,0.25); transform: scaleY(0.98); }
}
@keyframes pai-light {
  0% { opacity: 0.5; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(1.1); }
}

.scn-pere-alexis-analysis {
  background: linear-gradient(180deg, #1e1e2a 0%, #14141e 40%, #0c0c14 100%), radial-gradient(ellipse at 40% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-pere-alexis-analysis .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e2a 0%, #14141e 100%);
  animation: pa-room 10s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e16 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-pere-alexis-analysis .phial {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c0d4e0 0%, #a0b8c8 100%);
  border-radius: 3px 3px 5px 5px;
  transform: translateX(-50%);
  box-shadow: 0 0 6px rgba(160,184,200,0.4);
  animation: pa-phial 4s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis .hand-left {
  position: absolute; bottom: 36%; left: 42%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: pa-hand-l 3s ease-in-out infinite;
}
.scn-pere-alexis-analysis .hand-right {
  position: absolute; bottom: 36%; right: 42%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: pa-hand-r 3s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis .shadow-tense {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: pa-shadow 8s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis .edge-light {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,180,160,0.1) 0%, transparent 100%);
}
@keyframes pa-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pa-phial {
  0% { transform: translateX(-50%) scale(1) rotate(-5deg); }
  50% { transform: translateX(-50%) scale(1.02) rotate(0deg); }
  100% { transform: translateX(-50%) scale(0.98) rotate(5deg); }
}
@keyframes pa-hand-l {
  0%, 100% { transform: translateY(0) rotate(-20deg); }
  50% { transform: translateY(-2px) rotate(-18deg); }
}
@keyframes pa-hand-r {
  0% { transform: translateY(0) rotate(20deg); }
  100% { transform: translateY(-2px) rotate(22deg); }
}
@keyframes pa-shadow {
  0% { opacity: 0.5; }
  100% { opacity: 0.7; }
}

.scn-rouletabille-anguish {
  background: linear-gradient(180deg, #0e0a14 0%, #0a080e 40%, #060408 100%), radial-gradient(ellipse at 30% 50%, #1a1424 0%, transparent 70%);
}
.scn-rouletabille-anguish .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a14 0%, #0a080e 100%);
  animation: ra-bg 15s ease-in-out infinite alternate;
}
.scn-rouletabille-anguish .chair {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #1e1620 0%, #100c14 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
}
.scn-rouletabille-anguish .slumped-figure {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(-10deg);
  animation: ra-slump 6s ease-in-out infinite;
}
.scn-rouletabille-anguish .table-small {
  position: absolute; bottom: 22%; left: 40%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #2a1e20 0%, #1a1416 100%);
  border-radius: 2px;
}
.scn-rouletabille-anguish .candle-flicker {
  position: absolute; bottom: 26%; left: 48%; width: 5px; height: 12px;
  background: linear-gradient(180deg, #e0a060 0%, #c08040 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 12px #e0a060, 0 0 24px rgba(224,160,96,0.3);
  animation: ra-candle 2s ease-in-out infinite alternate;
}
.scn-rouletabille-anguish .shadow-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.6) 0%, transparent 60%);
  pointer-events: none;
  animation: ra-shadow 10s ease-in-out infinite alternate;
}
.scn-rouletabille-anguish .vignette {
  position: absolute; inset: 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  pointer-events: none;
}
@keyframes ra-bg {
  0% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ra-slump {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-12deg) translateY(-1px); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  75% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ra-candle {
  0% { box-shadow: 0 0 8px #e0a060, 0 0 16px rgba(224,160,96,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 20px #e0a060, 0 0 40px rgba(224,160,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 12px #e0a060, 0 0 24px rgba(224,160,96,0.3); opacity: 0.9; }
}
@keyframes ra-shadow {
  0% { opacity: 0.6; }
  100% { opacity: 0.8; }
}

.scn-boris-encounter {
  background: linear-gradient(180deg, #2a221a 0%, #1e1814 40%, #140e0c 100%), radial-gradient(ellipse at 60% 70%, #3a2e22 0%, transparent 60%);
}
.scn-boris-encounter .shop-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1e1814 100%);
  animation: be-wall 14s ease-in-out infinite alternate;
}
.scn-boris-encounter .counter {
  position: absolute; bottom: 30%; left: 10%; right: 40%; height: 20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-boris-encounter .ikons {
  position: absolute; bottom: 40%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.4);
  animation: be-ikon 8s ease-in-out infinite alternate;
}
.scn-boris-encounter .leaning-figure {
  position: absolute; bottom: 30%; right: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1e1814 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(5deg);
  animation: be-lean 5s ease-in-out infinite;
}
.scn-boris-encounter .yellow-light {
  position: absolute; top: 20%; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,220,160,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: be-light 9s ease-in-out infinite alternate;
}
.scn-boris-encounter .shelf {
  position: absolute; bottom: 60%; left: 10%; right: 60%; height: 8%;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e16 100%);
  border-radius: 2px;
}
.scn-boris-encounter .melancholy-shadow {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  transform: rotate(-10deg);
  animation: be-shadow 7s ease-in-out infinite alternate;
}
@keyframes be-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes be-ikon {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes be-lean {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-1px); }
  50% { transform: rotate(6deg) translateY(-2px); }
  75% { transform: rotate(4deg) translateY(-1px); }
}
@keyframes be-light {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}
@keyframes be-shadow {
  0% { opacity: 0.4; transform: rotate(-10deg) scaleX(1); }
  100% { opacity: 0.6; transform: rotate(-8deg) scaleX(1.1); }
}

.scn-visitors-listed {
  background:
    linear-gradient(180deg, #f5e6c0 0%, #e0c8a0 40%, #c8a878 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-visitors-listed .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #d0b890 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.08);
}
.scn-visitors-listed .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09070 0%, #8a6f55 100%);
}
.scn-visitors-listed .door {
  position:absolute; bottom:15%; left:25%; width:120px; height:200px;
  background: linear-gradient(180deg, #6a4f3a 0%, #4a3528 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-visitors-listed .sunbeam {
  position:absolute; top:8%; left:20%; width:160px; height:100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(255,230,180,0.2) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: vl-beam 6s ease-in-out infinite alternate;
}
.scn-visitors-listed .figure1 {
  position:absolute; bottom:22%; left:38%; width:40px; height:80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vl-fig1 4s ease-in-out infinite;
}
.scn-visitors-listed .figure2 {
  position:absolute; bottom:22%; left:50%; width:38px; height:78px;
  background: linear-gradient(180deg, #1a1a1a 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: vl-fig2 4s ease-in-out infinite alternate;
}
.scn-visitors-listed .hat {
  position:absolute; bottom:56%; left:44%; width:24px; height:8px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0;
  transform: rotate(5deg);
  animation: vl-hat 4s ease-in-out infinite;
}
.scn-visitors-listed .shadow {
  position:absolute; bottom:20%; left:35%; width:80px; height:10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: vl-shadow 4s ease-in-out infinite;
}
@keyframes vl-beam {
  0% { opacity:0.4; transform: skewX(2deg); }
  50% { opacity:0.7; transform: skewX(-1deg); }
  100% { opacity:0.5; transform: skewX(0deg); }
}
@keyframes vl-fig1 {
  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 vl-fig2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-6px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes vl-hat {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes vl-shadow {
  0% { width:80px; opacity:0.2; }
  50% { width:90px; opacity:0.35; }
  100% { width:80px; opacity:0.2; }
}

.scn-light-luncheon {
  background:
    linear-gradient(180deg, #fdf5e0 0%, #f0dbb0 50%, #d4b880 100%),
    radial-gradient(ellipse at 30% 70%, #ffefc0 0%, transparent 60%);
}
.scn-light-luncheon .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #e0f0ff 50%, transparent 100%);
  animation: ll-sky 20s ease-in-out infinite alternate;
}
.scn-light-luncheon .garden {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #8aaa6a 0%, #5c7a40 100%);
}
.scn-light-luncheon .path {
  position:absolute; bottom:12%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #c8a878 0%, #b09060 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.1);
}
.scn-light-luncheon .table {
  position:absolute; bottom:22%; left:38%; width:80px; height:16px;
  background: linear-gradient(180deg, #d4b888 0%, #b09060 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-light-luncheon .plate {
  position:absolute; bottom:24%; left:45%; width:20px; height:20px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b898 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: ll-plate 6s ease-in-out infinite;
}
.scn-light-luncheon .officer1 {
  position:absolute; bottom:18%; left:32%; width:24px; height:60px;
  background: linear-gradient(180deg, #2c3e4a 0%, #1a252e 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ll-off1 5s ease-in-out infinite alternate;
}
.scn-light-luncheon .officer2 {
  position:absolute; bottom:18%; left:58%; width:22px; height:58px;
  background: linear-gradient(180deg, #2c3e4a 0%, #1a252e 100%);
  border-radius: 30% 30% 15% 15% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: ll-off2 5s ease-in-out infinite alternate;
}
.scn-light-luncheon .tree {
  position:absolute; bottom:30%; right:10%; width:60px; height:120px;
  background: radial-gradient(ellipse at 50% 0%, #3a6a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(5deg);
  opacity:0.7;
  animation: ll-tree 12s ease-in-out infinite;
}
@keyframes ll-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes ll-plate {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes ll-off1 {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ll-off2 {
  0% { transform: scaleX(-1) rotate(1deg); }
  50% { transform: scaleX(-1) rotate(-2deg); }
  100% { transform: scaleX(-1) rotate(1deg); }
}
@keyframes ll-tree {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(5deg) scaleY(1); }
}

.scn-matrena-signaled {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c4a884 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 60% 30%, #f5e8d0 0%, transparent 50%);
}
.scn-matrena-signaled .bg-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #d8c4a8 0%, #b89878 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.1);
}
.scn-matrena-signaled .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4e32 100%);
}
.scn-matrena-signaled .window {
  position:absolute; bottom:30%; left:20%; width:100px; height:130px;
  background: linear-gradient(180deg, #b0d4e8 0%, #e0f0ff 100%);
  border: 6px solid #6a4e32;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.3);
}
.scn-matrena-signaled .tea-table {
  position:absolute; bottom:20%; left:55%; width:50px; height:30px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.scn-matrena-signaled .cup {
  position:absolute; bottom:22%; left:60%; width:12px; height:14px;
  background: radial-gradient(circle at 50% 40%, #e8d8b0 0%, #c0a878 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: ms-cup 4s ease-in-out infinite;
}
.scn-matrena-signaled .roule-fig {
  position:absolute; bottom:18%; left:48%; width:28px; height:70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ms-roule 5s ease-in-out infinite;
}
.scn-matrena-signaled .matrena-fig {
  position:absolute; bottom:18%; left:68%; width:26px; height:64px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ms-mat 4s ease-in-out infinite alternate;
}
.scn-matrena-signaled .gesture-hand {
  position:absolute; bottom:24%; left:53%; width:10px; height:14px;
  background: #2a2a2a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  animation: ms-hand 3s ease-in-out infinite;
}
@keyframes ms-cup {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ms-roule {
  0% { transform: rotate(0deg); }
  40% { transform: rotate(3deg); }
  80% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ms-mat {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ms-hand {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}

.scn-rouletabille-upstairs {
  background:
    linear-gradient(180deg, #d8c4a8 0%, #b89878 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 80%, #e8cc9a 0%, transparent 60%);
}
.scn-rouletabille-upstairs .stair-wall {
  position:absolute; inset:0 0 20% 30%;
  background: linear-gradient(180deg, #c8b098 0%, #a88870 100%);
  border-right: 4px solid #6a4e32;
}
.scn-rouletabille-upstairs .stairs {
  position:absolute; bottom:0; left:30%; right:0; height:100%;
  background: repeating-linear-gradient(
    0deg,
    #8a6a4a 0px, #8a6a4a 20px,
    #705030 20px, #705030 40px
  );
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 30% 100%);
}
.scn-rouletabille-upstairs .railing {
  position:absolute; bottom:0; left:30%; width:4px; height:100%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a3020 100%);
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-rouletabille-upstairs .dining-door {
  position:absolute; bottom:30%; left:10%; width:60px; height:90px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 4px 4px 0 0;
  border: 3px solid #4a3020;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-rouletabille-upstairs .she-fig {
  position:absolute; bottom:28%; left:14%; width:22px; height:60px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: ru-she 3s ease-in-out infinite alternate;
}
.scn-rouletabille-upstairs .he-fig {
  position:absolute; bottom:50%; left:45%; width:24px; height:65px;
  background: linear-gradient(180deg, #1a1a1a 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom;
  animation: ru-he 4s ease-in-out infinite;
}
.scn-rouletabille-upstairs .handrail {
  position:absolute; bottom:30%; left:30%; width:60%; height:2px;
  background: #4a3020;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ru-rail 5s ease-in-out infinite;
}
@keyframes ru-she {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ru-he {
  0% { transform: rotate(-10deg) translateY(0); }
  40% { transform: rotate(-5deg) translateY(-8px); }
  80% { transform: rotate(-8deg) translateY(2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ru-rail {
  0% { height:2px; }
  50% { height:3px; }
  100% { height:2px; }
}

.scn-new-arrangement {
  background: linear-gradient(180deg, #0d0d24 0%, #1a1a3e 70%), radial-gradient(ellipse at 30% 100%, #2a2a4e 0%, transparent 80%);
}
.scn-new-arrangement .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #12123a 0%, transparent 100%);
  animation: si1-sky 20s ease-in-out infinite alternate;
}
.scn-new-arrangement .veranda {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(0deg, #2a1a0e 0%, #4a3a2a 40%, transparent 100%);
  border-radius: 20% 20% 0 0;
}
.scn-new-arrangement .railing {
  position: absolute; bottom: 38%; left: 10%; right: 10%; height: 6%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, transparent 8px, transparent 20px);
  opacity: 0.9;
}
.scn-new-arrangement .agent-a {
  position: absolute; bottom: 15%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0e0e1a 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si1-agents 4s ease-in-out infinite, si1-patrol 6s ease-in-out infinite alternate;
}
.scn-new-arrangement .agent-b {
  position: absolute; bottom: 12%; right: 20%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0e0e1a 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si1-agents 4s ease-in-out infinite 0.5s, si1-patrol 6s ease-in-out infinite alternate 0.3s;
}
.scn-new-arrangement .lantern {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3);
  animation: si1-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-new-arrangement .window-glow {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 40px;
  background: radial-gradient(circle, #f0e0a0 0%, transparent 80%);
  border-radius: 10%;
  opacity: 0.7;
  animation: si1-window 8s ease-in-out infinite alternate;
}
@keyframes si1-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes si1-agents {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes si1-patrol {
  0% { transform: translateX(0); }
  100% { transform: translateX(10px); }
}
@keyframes si1-lantern-glow {
  0% { box-shadow: 0 0 20px 4px #ffd080, 0 0 40px 10px rgba(255,208,128,0.2); }
  50% { box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 24px rgba(255,208,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 24px 6px #ffd080, 0 0 48px 14px rgba(255,208,128,0.25); }
}
@keyframes si1-window {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.98); }
}

.scn-to-generals-chamber {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 60%), radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 70%);
}
.scn-to-generals-chamber .corridor-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a28 0%, #2a2a3a 100%);
  border-bottom: 2px solid #0a0a12;
}
.scn-to-generals-chamber .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0e16 0%, #1c1c24 60%);
}
.scn-to-generals-chamber .chamber-door {
  position: absolute; bottom: 20%; left: 35%; right: 35%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-to-generals-chamber .door-light {
  position: absolute; bottom: 25%; left: 40%; right: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 80%, #f0d090 0%, transparent 70%);
  opacity: 0.8;
  animation: si2-doorlight 4s ease-in-out infinite alternate;
}
.scn-to-generals-chamber .figure-matrena {
  position: absolute; bottom: 10%; left: 20%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #0e0e1a 0%, #0a0a14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: si2-walk 6s ease-in-out infinite, si2-bob 3s ease-in-out infinite alternate;
}
.scn-to-generals-chamber .general-silhouette {
  position: absolute; bottom: 30%; left: 42%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #0c0c18 0%, #080810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(1.2);
  animation: si2-breathe 7s ease-in-out infinite;
}
@keyframes si2-doorlight {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes si2-walk {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(10px); }
}
@keyframes si2-bob {
  0% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes si2-breathe {
  0%, 100% { transform: scaleY(1) scaleX(1.2); }
  50% { transform: scaleY(1.03) scaleX(1.22); }
}

.scn-ascent-to-first-floor {
  background: linear-gradient(180deg, #0a0a12 0%, #151520 70%), radial-gradient(ellipse at 50% 100%, #1a1a30 0%, transparent 80%);
}
.scn-ascent-to-first-floor .stair-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #12121a 0%, #1a1a24 100%);
}
.scn-ascent-to-first-floor .step {
  position: absolute; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #2a2a34 0%, #1a1a24 100%);
  border-radius: 2px;
}
.scn-ascent-to-first-floor .step-1 {
  bottom: 50%; left: 20%; right: 20%;
  animation: si3-step-glow 8s ease-in-out infinite alternate;
}
.scn-ascent-to-first-floor .step-2 {
  bottom: 32%; left: 15%; right: 15%;
  animation: si3-step-glow 8s ease-in-out infinite alternate 0.5s;
}
.scn-ascent-to-first-floor .step-3 {
  bottom: 14%; left: 10%; right: 10%;
  animation: si3-step-glow 8s ease-in-out infinite alternate 1s;
}
.scn-ascent-to-first-floor .figure-climb {
  position: absolute; bottom: 35%; left: 25%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #0e0e16 0%, #0a0a12 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: si3-climb 6s ease-in-out infinite, si3-stumble 2s ease-in-out infinite alternate;
}
.scn-ascent-to-first-floor .handrail {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 3%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 2px;
  animation: si3-rail 12s linear infinite;
}
@keyframes si3-step-glow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes si3-climb {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-4px) translateX(6px); }
}
@keyframes si3-stumble {
  0% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(2deg); }
}
@keyframes si3-rail {
  0% { background-position: 0 0; }
  100% { background-position: 200px 0; }
}

.scn-sleeping-tyrant {
  background: linear-gradient(180deg, #1a1208 0%, #2a1a0c 80%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-sleeping-tyrant .bg-chamber {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #221a12 0%, #1a1008 100%);
  opacity: 0.8;
}
.scn-sleeping-tyrant .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-sleeping-tyrant .tyrant-silhouette {
  position: absolute; bottom: 18%; left: 28%; right: 28%; height: 25%;
  background: linear-gradient(180deg, #0a0a10 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: scaleX(1.1);
  animation: si4-breathe 7s ease-in-out infinite, si4-twitch 3s ease-in-out infinite alternate;
}
.scn-sleeping-tyrant .candle {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e0a0 0%, #c0a070 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px #f0d080;
  animation: si4-candle 5s ease-in-out infinite alternate;
}
.scn-sleeping-tyrant .candle-glow {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #f0d080 0%, #e0b060 30%, transparent 70%);
  opacity: 0.5;
  animation: si4-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-sleeping-tyrant .shadow-drape {
  position: absolute; inset: 0 0 0 0;
  background: radial-gradient(ellipse at 60% 30%, transparent 40%, #0a0a12 80%);
  pointer-events: none;
  animation: si4-shadow 8s ease-in-out infinite alternate;
}
@keyframes si4-breathe {
  0%, 100% { transform: scaleY(1) scaleX(1.1); }
  50% { transform: scaleY(1.04) scaleX(1.13); }
}
@keyframes si4-twitch {
  0% { transform: translateX(0); }
  100% { transform: translateX(2px); }
}
@keyframes si4-candle {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-1px); }
  100% { transform: scaleY(0.95) translateY(0); }
}
@keyframes si4-glow-pulse {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes si4-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-item-ordinary-pin {
  background: linear-gradient(180deg, #1a1a20 0%, #0d0d12 60%, #2a1f1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-item-ordinary-pin .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2420 0%, transparent 40%, rgba(10,10,12,.6) 100%); animation: iop-bg 10s ease-in-out infinite alternate; }
.scn-item-ordinary-pin .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1e1818 0%, #2a2220 30%, #3a2e28 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-item-ordinary-pin .door { position:absolute; left:12%; bottom:8%; width:30%; height:90%; background: linear-gradient(180deg, #2c2420 0%, #1a1412 100%); border-radius: 4% 4% 0 0; box-shadow: inset 2px 0 10px rgba(0,0,0,.8), 0 0 20px rgba(0,0,0,.3); animation: iop-door 20s ease infinite alternate; }
.scn-item-ordinary-pin .figure { position:absolute; bottom:14%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #1a1612 0%, #0d0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iop-crawl 8s ease-in-out infinite; }
.scn-item-ordinary-pin .pin { position:absolute; bottom:18%; left:55%; width:2px; height:8px; background: linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 4px 2px #b08050; animation: iop-pin 2s ease-in-out infinite; }
.scn-item-ordinary-pin .pin-glow { position:absolute; bottom:16%; left:54.5%; width:12px; height:12px; background: radial-gradient(circle, rgba(240,200,120,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: iop-glow 2.5s ease-in-out infinite alternate; }
@keyframes iop-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes iop-door { 0%,100% { transform: skewY(0deg) } 50% { transform: skewY(1deg) scaleX(1.01) } }
@keyframes iop-crawl { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) scaleY(.95) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) scaleY(1) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) scaleY(.97) } 100% { transform: translateX(32px) translateY(0) rotate(0) scaleY(1) } }
@keyframes iop-pin { 0%,100% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(.9) } }
@keyframes iop-glow { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: .8; transform: scale(1.2) } 100% { opacity: .5; transform: scale(1) } }

.scn-mattress-strategy {
  background: linear-gradient(90deg, #121016 0%, #1e1a22 30%, #121016 100%),
              radial-gradient(ellipse at 70% 60%, #2a242e 0%, transparent 80%);
}
.scn-mattress-strategy .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1620 0%, #0e0c14 100%); animation: ms-wall 18s ease-in-out infinite alternate; }
.scn-mattress-strategy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #141018 0%, #1e1a24 50%, #2a2430 100%); box-shadow: inset 0 6px 16px rgba(0,0,0,.5); }
.scn-mattress-strategy .mattress { position:absolute; bottom:10%; right:20%; width:45%; height:55%; background: linear-gradient(180deg, #2e2838 0%, #1a1624 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: ms-mattress 12s ease-in-out infinite alternate; }
.scn-mattress-strategy .door-light { position:absolute; left:10%; bottom:20%; width:18%; height:70%; background: linear-gradient(180deg, rgba(255,230,180,.15) 0%, rgba(255,200,150,.05) 100%); border-radius: 0 10% 10% 0; filter: blur(3px); animation: ms-doorlight 8s ease-in-out infinite; }
.scn-mattress-strategy .figure-watch { position:absolute; bottom:12%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #1c1826 0%, #0a0812 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ms-watch 6s ease-in-out infinite; }
.scn-mattress-strategy .figure-rest { position:absolute; bottom:8%; right:25%; width:40px; height:30px; background: linear-gradient(180deg, #2a2434 0%, #1a1624 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: ms-rest 10s ease-in-out infinite; }
.scn-mattress-strategy .keyslit { position:absolute; left:16%; bottom:45%; width:4px; height:12px; background: rgba(255,220,170,.2); border-radius: 10% 10% 0 0; filter: blur(1px); animation: ms-key 4s ease-in-out infinite alternate; }
@keyframes ms-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ms-mattress { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ms-doorlight { 0% { opacity: .2; transform: scaleY(1) } 50% { opacity: .4; transform: scaleY(1.05) } 100% { opacity: .25; transform: scaleY(.95) } }
@keyframes ms-watch { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ms-rest { 0%,100% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.02) } }
@keyframes ms-key { 0% { opacity: .1; height:12px } 50% { opacity: .4; height:14px } 100% { opacity: .2; height:10px } }

.scn-crouched-together {
  background: linear-gradient(180deg, #0e0c12 0%, #1c1822 40%, #2a2430 100%),
              radial-gradient(ellipse at 50% 50%, #2a2430 0%, transparent 80%);
}
.scn-crouched-together .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1620 0%, transparent 50%, #0a0810 100%); animation: ct-bg 14s ease-in-out infinite alternate; }
.scn-crouched-together .bed { position:absolute; bottom:5%; left:15%; right:15%; height:50%; background: linear-gradient(180deg, #2e2836 0%, #1a1622 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); animation: ct-bed 20s ease-in-out infinite; }
.scn-crouched-together .pillow { position:absolute; bottom:30%; left:30%; width:18%; height:12%; background: linear-gradient(180deg, #3a3440 0%, #2a2430 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: ct-pillow 8s ease-in-out infinite alternate; }
.scn-crouched-together .profile-sick { position:absolute; bottom:25%; left:28%; width:12%; height:16%; background: linear-gradient(180deg, #4a4452 0%, #2e2836 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: ct-sick 12s ease-in-out infinite; }
.scn-crouched-together .profile-crouch { position:absolute; bottom:15%; right:20%; width:15%; height:40%; background: linear-gradient(180deg, #1a1622 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-crouch 7s ease-in-out infinite; }
.scn-crouched-together .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: ct-shadow 6s ease-in-out infinite; }
@keyframes ct-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ct-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ct-pillow { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(.98) } }
@keyframes ct-sick { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes ct-crouch { 0% { transform: translateX(0) translateY(0) rotate(2deg) scaleY(1) } 25% { transform: translateX(-4px) translateY(-3px) rotate(-1deg) scaleY(.95) } 50% { transform: translateX(0) translateY(0) rotate(1deg) scaleY(1) } 75% { transform: translateX(4px) translateY(-3px) rotate(-2deg) scaleY(.97) } 100% { transform: translateX(0) translateY(0) rotate(0) scaleY(1) } }
@keyframes ct-shadow { 0%,100% { opacity: .6 } 50% { opacity: .8 } }

.scn-night-lamp-reflections {
  background: linear-gradient(180deg, #0a0810 0%, #1c1824 40%, #2a2434 100%),
              radial-gradient(ellipse at 70% 30%, #3a3448 0%, transparent 80%);
}
.scn-night-lamp-reflections .wall { position:absolute; inset:0; background: linear-gradient(180deg, #16121e 0%, #0e0c18 100%); animation: nl-wall 16s ease-in-out infinite alternate; }
.scn-night-lamp-reflections .mantel { position:absolute; top:15%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a445a 0%, #3a3448 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.scn-night-lamp-reflections .lamp { position:absolute; top:5%; left:50%; width:5%; height:12%; background: linear-gradient(180deg, #6a5a4e 0%, #4a3a2e 100%); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); animation: nl-lamp 5s ease-in-out infinite; }
.scn-night-lamp-reflections .lamp-glow { position:absolute; top:3%; left:44%; width:12%; height:16%; background: radial-gradient(circle, rgba(255,220,150,.6) 0%, rgba(200,160,100,.2) 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: nl-glow 3s ease-in-out infinite alternate; }
.scn-night-lamp-reflections .table { position:absolute; bottom:25%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #2a2432 0%, #1a1622 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: nl-table 14s ease-in-out infinite; }
.scn-night-lamp-reflections .glass { position:absolute; bottom:40%; left:35%; width:6%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(200,180,150,.15) 100%); border-radius: 10% 10% 20% 20%; border: 1px solid rgba(255,230,190,.1); box-shadow: 0 0 12px 2px rgba(200,160,100,.2); animation: nl-glass 7s ease-in-out infinite; }
.scn-night-lamp-reflections .reflection { position:absolute; bottom:20%; left:25%; right:25%; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(255,220,150,.1) 20%, rgba(200,160,100,.2) 50%, rgba(255,220,150,.1) 80%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: nl-reflect 9s ease-in-out infinite alternate; }
@keyframes nl-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes nl-lamp { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.02) } }
@keyframes nl-glow { 0% { opacity: .5; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(1) } }
@keyframes nl-table { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(.5deg) } }
@keyframes nl-glass { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.03) translateY(-1px) } 100% { opacity: .7; transform: scaleY(.98) } }
@keyframes nl-reflect { 0% { opacity: .2; transform: scaleX(.9) } 50% { opacity: .5; transform: scaleX(1.1) } 100% { opacity: .3; transform: scaleX(1) } }

.scn-michael-nikolaievitch {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2040 30%, #4a3050 60%, #6a4a5a 85%, #8a6a5a 100%),
    radial-gradient(ellipse at 70% 10%, #c07a5a 0%, transparent 50%);
}
.scn-michael-nikolaievitch .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 100%); animation: mn-sky 12s ease-in-out infinite alternate; }
.scn-michael-nikolaievitch .sun-haze { position:absolute; top:5%; right:10%; width:120px; height:80px; background: radial-gradient(ellipse, #d08a5a 0%, rgba(208,138,90,0) 70%); filter: blur(15px); animation: mn-haze 20s ease-in-out infinite alternate; }
.scn-michael-nikolaievitch .figure-left { position:absolute; bottom:20%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: mn-fig-l 6s ease-in-out infinite; }
.scn-michael-nikolaievitch .hand-on-shoulder { position:absolute; bottom:30%; left:45%; width:18px; height:14px; background: #1a1a1a; border-radius: 40% 50% 30% 40%; transform-origin: left center; animation: mn-hand 5s ease-in-out infinite alternate; }
.scn-michael-nikolaievitch .figure-right { position:absolute; bottom:20%; right:25%; width:42px; height:95px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; transform-origin: bottom center; animation: mn-fig-r 7s ease-in-out infinite; }
.scn-michael-nikolaievitch .ground-shadow { position:absolute; bottom:18%; left:20%; right:20%; height:6px; background: radial-gradient(ellipse at 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: mn-shadow 8s ease-in-out infinite; }
.scn-michael-nikolaievitch .mist { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(255,255,255,.1) 0%, transparent 100%); filter: blur(8px); animation: mn-mist 15s ease-in-out infinite alternate; }
@keyframes mn-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mn-haze { 0% { transform: scale(1) translate(0,0); opacity:.5 } 50% { transform: scale(1.1) translate(-10px,5px); opacity:.8 } 100% { transform: scale(.95) translate(5px,-3px); opacity:.6 } }
@keyframes mn-fig-l { 0% { transform: translateY(0) rotate(-1deg) scaleX(1) } 50% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(-1deg) scaleX(1) } }
@keyframes mn-hand { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(5px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes mn-fig-r { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mn-shadow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.4; transform: scaleY(1) } }
@keyframes mn-mist { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.5; transform: translateY(-5px) } 100% { opacity:.3; transform: translateY(0) } }

.scn-matrena-speaks {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2040 30%, #4a3050 60%, #6a4a5a 85%, #8a6a5a 100%),
    radial-gradient(ellipse at 50% 20%, #d07a5a 0%, transparent 60%);
}
.scn-matrena-speaks .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 100%); animation: ms-sky 10s ease-in-out infinite alternate; }
.scn-matrena-speaks .dawn-glow { position:absolute; top:10%; left:50%; width:150px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse, #e08a5a 0%, rgba(224,138,90,0) 70%); filter: blur(20px); animation: ms-glow 15s ease-in-out infinite alternate; }
.scn-matrena-speaks .bed { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: ms-bed 8s ease-in-out infinite; }
.scn-matrena-speaks .pillow { position:absolute; bottom:35%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: ms-pillow 6s ease-in-out infinite alternate; }
.scn-matrena-speaks .arm { position:absolute; bottom:40%; left:45%; width:14px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; transform: rotate(30deg); animation: ms-arm 4s ease-in-out infinite; }
.scn-matrena-speaks .hand-poison { position:absolute; bottom:55%; left:48%; width:16px; height:14px; background: #3a2a2a; border-radius: 50% 40% 50% 40%; transform: rotate(20deg); animation: ms-hand 2s ease-in-out infinite alternate; }
.scn-matrena-speaks .fury-particles { position:absolute; top:20%; left:20%; right:20%; height:20%; background: radial-gradient(circle at 30% 50%, rgba(200,100,50,.2) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(200,100,50,.15) 0%, transparent 50%); filter: blur(4px); animation: ms-fury 5s ease-in-out infinite; }
@keyframes ms-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ms-glow { 0% { transform: translateX(-50%) scale(1); opacity:.5 } 50% { transform: translateX(-50%) scale(1.1); opacity:.8 } 100% { transform: translateX(-50%) scale(.95); opacity:.6 } }
@keyframes ms-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ms-pillow { 0% { transform: rotate(-10deg) translate(0,0) } 50% { transform: rotate(-8deg) translate(5px,-2px) } 100% { transform: rotate(-10deg) translate(0,0) } }
@keyframes ms-arm { 0% { transform: rotate(30deg) translate(0,0) } 25% { transform: rotate(35deg) translate(5px,-3px) } 50% { transform: rotate(25deg) translate(10px,-5px) } 75% { transform: rotate(40deg) translate(5px,-2px) } 100% { transform: rotate(30deg) translate(0,0) } }
@keyframes ms-hand { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes ms-fury { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.2; transform: scale(1) } }

.scn-natachas-hate {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2040 30%, #4a3050 60%, #6a4a5a 85%, #8a6a5a 100%),
    radial-gradient(ellipse at 60% 15%, #c07a5a 0%, transparent 50%);
}
.scn-natachas-hate .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 100%); animation: nh-sky 14s ease-in-out infinite alternate; }
.scn-natachas-hate .dawn-light { position:absolute; top:8%; left:20%; width:100px; height:80px; background: radial-gradient(ellipse, #d08a5a 0%, rgba(208,138,90,0) 70%); filter: blur(12px); animation: nh-light 18s ease-in-out infinite alternate; }
.scn-natachas-hate .figure-seated { position:absolute; bottom:15%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nh-seated 7s ease-in-out infinite; }
.scn-natachas-hate .hands-clenched { position:absolute; bottom:25%; left:28%; width:20px; height:18px; background: #2a1a1a; border-radius: 30% 30% 20% 20%; transform: rotate(10deg); animation: nh-hands 3s ease-in-out infinite alternate; }
.scn-natachas-hate .shadow-aura { position:absolute; bottom:12%; left:25%; right:25%; height:20%; background: radial-gradient(ellipse at 50%, rgba(0,0,0,.4) 0%, transparent 70%); animation: nh-aura 9s ease-in-out infinite; }
.scn-natachas-hate .tension-lines { position:absolute; top:20%; left:10%; right:10%; height:12%; background: repeating-linear-gradient(45deg, rgba(255,200,150,.1) 0px, rgba(255,200,150,.1) 2px, transparent 2px, transparent 8px); animation: nh-lines 4s ease-in-out infinite; }
@keyframes nh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nh-light { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(-10px,5px) scale(1.15); opacity:.7 } 100% { transform: translate(5px,-3px) scale(.95); opacity:.5 } }
@keyframes nh-seated { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nh-hands { 0% { transform: rotate(10deg) scale(1) translate(0,0) } 50% { transform: rotate(15deg) scale(1.05) translate(3px,-2px) } 100% { transform: rotate(10deg) scale(1) translate(0,0) } }
@keyframes nh-aura { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.1) } 100% { opacity:.3; transform: scaleY(1) } }
@keyframes nh-lines { 0% { opacity:.2; transform: translateX(0) } 50% { opacity:.5; transform: translateX(10px) } 100% { opacity:.2; transform: translateX(0) } }

.scn-rouletabille-turns-pale {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2040 30%, #4a3050 60%, #6a4a5a 85%, #8a6a5a 100%),
    radial-gradient(ellipse at 50% 10%, #c07a5a 0%, transparent 60%);
}
.scn-rouletabille-turns-pale .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4a 0%, transparent 100%); animation: rtp-sky 11s ease-in-out infinite alternate; }
.scn-rouletabille-turns-pale .dawn-horizon { position:absolute; bottom:35%; left:0; right:0; height:8%; background: linear-gradient(180deg, #8a6a5a 0%, #4a3050 100%); border-radius: 20% 20% 0 0; animation: rtp-horizon 13s ease-in-out infinite; }
.scn-rouletabille-turns-pale .figure-standing { position:absolute; bottom:20%; left:40%; width:36px; height:90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rtp-fig 6s ease-in-out infinite; }
.scn-rouletabille-turns-pale .hand-on-chest { position:absolute; bottom:30%; left:42%; width:12px; height:16px; background: #2a1a1a; border-radius: 40% 40% 30% 30%; transform-origin: top center; animation: rtp-hand 4s ease-in-out infinite alternate; }
.scn-rouletabille-turns-pale .pale-light { position:absolute; bottom:30%; left:35%; right:35%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(200,200,220,.15) 0%, transparent 70%); filter: blur(10px); animation: rtp-pale 5s ease-in-out infinite alternate; }
.scn-rouletabille-turns-pale .shadow { position:absolute; bottom:18%; left:38%; right:38%; height:4px; background: radial-gradient(ellipse at 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: rtp-shadow 7s ease-in-out infinite; }
@keyframes rtp-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rtp-horizon { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.1) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes rtp-fig { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rtp-hand { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(5px, -5px) rotate(10deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes rtp-pale { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.2; transform: scale(1) } }
@keyframes rtp-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }

.scn-ivan-responds-to-athanase {
  background: linear-gradient(180deg, #f8e8c0 0%, #dcc8a0 40%, #c0a880 100%), radial-gradient(ellipse at 20% 30%, #fff4e0 0%, transparent 70%);
}
.scn-ivan-responds-to-athanase .room-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0dbb0 0%, #d6c090 100%);
  animation: iva-wall 8s ease-in-out infinite alternate;
}
.scn-ivan-responds-to-athanase .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #a08050 0%, #7a5a2a 100%);
  border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: iva-table 3s ease-in-out infinite;
}
.scn-ivan-responds-to-athanase .chair-left {
  position: absolute; bottom: 10%; left: 15%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #b09060 0%, #705030 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom; animation: iva-chair 4s ease-in-out infinite;
}
.scn-ivan-responds-to-athanase .chair-right {
  position: absolute; bottom: 10%; right: 15%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #b09060 0%, #705030 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom; animation: iva-chair 4s ease-in-out infinite reverse;
}
.scn-ivan-responds-to-athanase .figure-left {
  position: absolute; bottom: 25%; left: 18%; width: 8%; height: 20%;
  background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iva-figleft 5s ease-in-out infinite;
}
.scn-ivan-responds-to-athanase .figure-right {
  position: absolute; bottom: 25%; right: 18%; width: 8%; height: 20%;
  background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iva-figright 5s ease-in-out infinite 1s;
}
.scn-ivan-responds-to-athanase .champagne-bucket {
  position: absolute; bottom: 28%; left: 46%; width: 6%; height: 8%;
  background: radial-gradient(circle, #d4a060 0%, #b08040 60%, #806020 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: iva-bucket 3s ease-in-out infinite alternate;
}
.scn-ivan-responds-to-athanase .splash {
  position: absolute; bottom: 35%; left: 46%; width: 10%; height: 6%;
  background: radial-gradient(ellipse, #e8c880 0%, #c0a060 50%, transparent 100%);
  filter: blur(2px); animation: iva-splash 1.5s ease-in-out infinite;
}
@keyframes iva-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes iva-table {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes iva-chair {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes iva-figleft {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(3px); }
}
@keyframes iva-figright {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes iva-bucket {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes iva-splash {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  50% { transform: scaleX(1.3) scaleY(1.5); opacity: 0.3; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
}

.scn-ermolai-attends-mistress {
  background: linear-gradient(180deg, #e0d6c0 0%, #c8bca0 60%, #a89a80 100%), radial-gradient(ellipse at 80% 20%, #f5efe0 0%, transparent 70%);
}
.scn-ermolai-attends-mistress .room-furniture {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d0c4a8 0%, #b8aa8e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: erm-room 12s ease-in-out infinite alternate;
}
.scn-ermolai-attends-mistress .window {
  position: absolute; top: 10%; left: 60%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #e8f0e0 0%, #c8d8b0 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.4);
  animation: erm-window 8s ease-in-out infinite alternate;
}
.scn-ermolai-attends-mistress .curtain-left {
  position: absolute; top: 8%; left: 58%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #b8a888 0%, #9a8a6a 100%);
  border-radius: 0 40% 40% 0;
  transform-origin: left; animation: erm-curtain 15s ease-in-out infinite alternate;
}
.scn-ermolai-attends-mistress .curtain-right {
  position: absolute; top: 8%; right: 20%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #b8a888 0%, #9a8a6a 100%);
  border-radius: 40% 0 0 40%;
  transform-origin: right; animation: erm-curtain 15s ease-in-out infinite alternate 2s;
}
.scn-ermolai-attends-mistress .mistress-chair {
  position: absolute; bottom: 25%; left: 25%; width: 18%; height: 22%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: erm-chair 6s ease-in-out infinite;
}
.scn-ermolai-attends-mistress .ermolai-figure {
  position: absolute; bottom: 20%; right: 25%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: erm-figure 7s ease-in-out infinite;
}
.scn-ermolai-attends-mistress .ermolai-hat {
  position: absolute; bottom: 46%; right: 26%; width: 10%; height: 6%;
  background: #3a2a2a;
  border-radius: 50% 50% 0 0;
  animation: erm-hat 7s ease-in-out infinite 0.5s;
}
@keyframes erm-room {
  0% { background-position: 0 0; }
  50% { background-position: 5px 0; }
  100% { background-position: 0 0; }
}
@keyframes erm-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes erm-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1); }
}
@keyframes erm-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes erm-figure {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(2px); }
}
@keyframes erm-hat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}

.scn-police-agent-spotted {
  background: linear-gradient(180deg, #16161e 0%, #0e0e1a 60%, #060610 100%), radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 70%);
}
.scn-police-agent-spotted .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12121a 0%, #080810 100%);
  animation: pol-dark 8s ease-in-out infinite alternate;
}
.scn-police-agent-spotted .door-frame {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 60%;
  border: 6px solid #3a3a4a; border-radius: 4px;
  background: linear-gradient(180deg, #1e1e2a 0%, #14141e 100%);
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: pol-door 10s ease-in-out infinite;
}
.scn-police-agent-spotted .light-beam {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(200,200,160,0.3) 0%, rgba(200,200,160,0) 100%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: pol-beam 3s ease-in-out infinite alternate;
}
.scn-police-agent-spotted .policeman-silhouette {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #0a0a12 0%, #020206 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: pol-figure 4s ease-in-out infinite;
}
.scn-police-agent-spotted .police-cap {
  position: absolute; bottom: 62%; left: 44%; width: 12%; height: 6%;
  background: #1a1a24; border-radius: 50% 50% 0 0;
  animation: pol-cap 4s ease-in-out infinite 0.5s;
}
.scn-police-agent-spotted .dust-particles {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,240,0.1) 0%, transparent 50%);
  filter: blur(4px); animation: pol-dust 6s linear infinite;
}
@keyframes pol-dark {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pol-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
}
@keyframes pol-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.2; transform: scaleY(0.95); }
}
@keyframes pol-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes pol-cap {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes pol-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(5px, -5px) scale(1.2); opacity: 0.1; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.4; }
}

.scn-matrena-heroic-hand {
  background: linear-gradient(180deg, #12121e 0%, #0a0a14 60%, #04040a 100%), radial-gradient(ellipse at 60% 30%, #1e1e2e 0%, transparent 70%);
}
.scn-matrena-heroic-hand .deep-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e18 0%, #06060e 100%);
  animation: mat-shadow 10s ease-in-out infinite alternate;
}
.scn-matrena-heroic-hand .door-hinge-light {
  position: absolute; bottom: 20%; left: 30%; width: 5%; height: 50%;
  background: linear-gradient(180deg, rgba(220,200,160,0.5) 0%, rgba(220,200,160,0) 100%);
  border-radius: 50%;
  animation: mat-light 4s ease-in-out infinite alternate;
}
.scn-matrena-heroic-hand .hand-reach {
  position: absolute; bottom: 10%; left: 20%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom left;
  animation: mat-hand 5s ease-in-out infinite;
}
.scn-matrena-heroic-hand .coat-badge {
  position: absolute; bottom: 35%; left: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, #b09050 0%, #806830 60%, #504010 100%);
  border-radius: 50%; box-shadow: 0 0 12px rgba(180,140,80,0.6);
  animation: mat-badge 3s ease-in-out infinite;
}
.scn-matrena-heroic-hand .sparkle {
  position: absolute; top: 20%; left: 40%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(255,240,200,0.8) 0%, transparent 100%);
  filter: blur(3px); animation: mat-sparkle 2s ease-in-out infinite;
}
.scn-matrena-heroic-hand .floor-reflect {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e18 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
  animation: mat-floor 8s ease-in-out infinite alternate;
}
@keyframes mat-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes mat-light {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.2); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes mat-hand {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(5px, -3px) rotate(3deg); }
}
@keyframes mat-badge {
  0%, 100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 8px rgba(180,140,80,0.4); }
  50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 20px rgba(180,140,80,0.9); }
}
@keyframes mat-sparkle {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.5); opacity: 1; }
}
@keyframes mat-floor {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}

.scn-rouletabille-despair {
  background: 
    linear-gradient(180deg, #2a3a5c 0%, #1a2a4a 40%, #0a1a3a 100%),
    radial-gradient(ellipse at 50% 0%, #3a5a8c 0%, transparent 60%);
}
.scn-rouletabille-despair .sky-dawn {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a6a9c 0%, #2a3a6c 50%, transparent 100%);
  animation: rd-sky 12s ease-in-out infinite alternate;
}
.scn-rouletabille-despair .water-neva {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  border-radius: 20% 10% 0 0 / 10% 5% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: rd-water 20s ease-in-out infinite;
}
.scn-rouletabille-despair .ruins {
  position: absolute; bottom: 40%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: rd-ruins 8s ease-in-out infinite alternate;
}
.scn-rouletabille-despair .figure-desolate {
  position: absolute; bottom: 42%; left: 45%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-figure 4s ease-in-out infinite;
}
.scn-rouletabille-despair .tree-stump {
  position: absolute; bottom: 44%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rd-stump 6s ease-in-out infinite alternate;
}
.scn-rouletabille-despair .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(100,120,160,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: rd-mist 15s ease-in-out infinite alternate;
}
@keyframes rd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rd-water { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes rd-ruins { 0% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes rd-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 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 rd-stump { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes rd-mist { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-trace-discovery {
  background:
    linear-gradient(180deg, #2a3a5c 0%, #1a2a4a 50%, #0a1a3a 100%),
    radial-gradient(ellipse at 20% 80%, #4a6a9c 0%, transparent 60%);
}
.scn-trace-discovery .sky-dawn-td {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a7ab4 0%, #2a3a6c 50%, transparent 100%);
  animation: td-sky 14s ease-in-out infinite alternate;
}
.scn-trace-discovery .ground-td {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.5);
  animation: td-ground 10s ease-in-out infinite;
}
.scn-trace-discovery .footprints {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 20px;
  background: radial-gradient(circle at 10% 50%, #2a1a1a 2px, transparent 3px),
              radial-gradient(circle at 25% 55%, #2a1a1a 2px, transparent 3px),
              radial-gradient(circle at 40% 48%, #2a1a1a 2px, transparent 3px);
  background-size: 10px 10px;
  background-repeat: repeat-x;
  animation: td-print 5s ease-in-out infinite alternate;
}
.scn-trace-discovery .tree-cover {
  position: absolute; bottom: 35%; left: 5%; width: 200px; height: 140px;
  background: radial-gradient(ellipse at 30% 50%, #1a3a2a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, #0a2a1a 0%, transparent 50%);
  filter: blur(6px);
  animation: td-trees 20s linear infinite;
}
.scn-trace-discovery .figure-td {
  position: absolute; bottom: 32%; left: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-figure 7s ease-in-out infinite;
}
.scn-trace-discovery .dawn-light {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: td-light 4s ease-in-out infinite alternate;
}
@keyframes td-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes td-ground { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes td-print { 0% { opacity: 0.6; transform: translateX(0); } 100% { opacity: 1; transform: translateX(5px); } }
@keyframes td-trees { 0% { transform: scale(0.95); } 100% { transform: scale(1.05); } }
@keyframes td-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(5px) translateY(-1px) rotate(0); } 66% { transform: translateX(12px) translateY(0) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes td-light { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-bay-of-lachtka {
  background:
    linear-gradient(180deg, #2a3a5c 0%, #1a2a4a 50%, #0a1a3a 100%),
    radial-gradient(ellipse at 50% 100%, #4a6a9c 0%, transparent 70%);
}
.scn-bay-of-lachtka .sky-bl {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a8ab4 0%, #3a5a8c 50%, transparent 100%);
  animation: bl-sky 16s ease-in-out infinite alternate;
}
.scn-bay-of-lachtka .water-bl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: bl-water 12s ease-in-out infinite;
}
.scn-bay-of-lachtka .marsh-bl {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: bl-marsh 18s ease-in-out infinite alternate;
}
.scn-bay-of-lachtka .reeds-bl {
  position: absolute; bottom: 32%; left: 10%; width: 80px; height: 60px;
  background: repeating-linear-gradient(90deg, transparent, transparent 6px, #2a4a3a 6px, #2a4a3a 8px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%, #000 100%);
  animation: bl-reeds 7s ease-in-out infinite;
}
.scn-bay-of-lachtka .distant-boat {
  position: absolute; bottom: 40%; left: 70%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bl-boat 25s linear infinite;
}
.scn-bay-of-lachtka .scum-bl {
  position: absolute; bottom: 45%; left: 20%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(60,80,60,0.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: bl-scum 10s ease-in-out infinite alternate;
}
@keyframes bl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bl-water { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes bl-marsh { 0% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-3px) rotate(1deg); } }
@keyframes bl-reeds { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(0.95); } }
@keyframes bl-boat { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-1px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes bl-scum { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

.scn-koupriane-capture-plan {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a3a 0%, transparent 60%);
}
.scn-koupriane-capture-plan .sky-dusk-kc {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #8a5a4a 0%, #5a3a2a 50%, transparent 100%);
  animation: kc-sky 18s ease-in-out infinite alternate;
}
.scn-koupriane-capture-plan .fortress-wall {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6),
              0 -4px 10px rgba(0,0,0,0.3);
  animation: kc-wall 6s ease-in-out infinite alternate;
}
.scn-koupriane-capture-plan .barred-window {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #0a0a0a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 10px rgba(100,60,30,0.5);
  animation: kc-window 4s ease-in-out infinite;
}
.scn-koupriane-capture-plan .figure-kc {
  position: absolute; bottom: 25%; left: 35%; 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: kc-figure 5s ease-in-out infinite;
}
.scn-koupriane-capture-plan .lantern-kc {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c08040 0%, #804020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.6);
  animation: kc-lantern 3s ease-in-out infinite alternate;
}
.scn-koupriane-capture-plan .shadow-kc {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: kc-shadow 4s ease-in-out infinite alternate;
}
@keyframes kc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kc-wall { 0% { transform: translateY(0) scaleY(1); } 100% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes kc-window { 0% { box-shadow: inset 0 0 10px rgba(100,60,30,0.5); } 50% { box-shadow: inset 0 0 20px rgba(150,100,50,0.8); } 100% { box-shadow: inset 0 0 10px rgba(100,60,30,0.5); } }
@keyframes kc-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(0); } 50% { transform: translateX(6px) translateY(0) rotate(1deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(0); } 100% { transform: translateX(12px) translateY(0) rotate(-1deg); } }
@keyframes kc-lantern { 0% { box-shadow: 0 0 15px 4px rgba(192,128,64,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,180,100,0.8); } 100% { box-shadow: 0 0 20px 6px rgba(192,128,64,0.5); } }
@keyframes kc-shadow { 0% { transform: scaleX(1) opacity(0.5); } 100% { transform: scaleX(1.2) opacity(0.7); } }

.scn-brass-wire-trick {
  background:
    radial-gradient(ellipse at 45% 60%, #3a2e2a 0%, transparent 50%),
    linear-gradient(180deg, #1a1210 0%, #0d0806 100%);
}
.scn-brass-wire-trick .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e1a 0%, #0a0604 100%);
  animation: btw-dimmer 10s ease-in-out infinite alternate;
}
.scn-brass-wire-trick .spotlight {
  position: absolute; inset: 20% 25% 30% 25%;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,180,150,.25) 0%, transparent 70%);
  mix-blend-mode: overlay;
  animation: btw-pulse 4s ease-in-out infinite;
}
.scn-brass-wire-trick .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-brass-wire-trick .lock-body {
  position: absolute; bottom: 32%; left: 48%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,200,150,.1);
  transform: translateX(-50%);
}
.scn-brass-wire-trick .keyhole {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 16px;
  background: #0a0604;
  border-radius: 2px 2px 50% 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 4px rgba(0,0,0,.8);
}
.scn-brass-wire-trick .hand {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 40px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #1a0e0a 0%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: 50% 90%;
  animation: btw-hand 3s ease-in-out infinite alternate;
  mix-blend-mode: multiply;
}
.scn-brass-wire-trick .wire {
  position: absolute; bottom: 27%; left: 44%; width: 40px; height: 2px;
  background: linear-gradient(90deg, #c8a070 0%, #8a6a40 50%, #5a3a20 100%);
  transform-origin: 0% 50%;
  animation: btw-wire 3s ease-in-out infinite alternate;
  border-radius: 1px;
}
.scn-brass-wire-trick .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: btw-shadow 3s ease-in-out infinite alternate;
}
@keyframes btw-dimmer { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes btw-pulse { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes btw-hand { 0% { transform: translate(0,0) rotate(-5deg) scaleY(1) } 50% { transform: translate(4px,-2px) rotate(2deg) scaleY(1.02) } 100% { transform: translate(0,0) rotate(-5deg) scaleY(1) } }
@keyframes btw-wire { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px,-2px) rotate(8deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes btw-shadow { 0% { transform: scaleX(1); opacity: .6 } 50% { transform: scaleX(1.2); opacity: .8 } 100% { transform: scaleX(1); opacity: .6 } }

.scn-hole-discovered {
  background:
    radial-gradient(ellipse at 40% 50%, #2a1e1a 0%, transparent 60%),
    linear-gradient(180deg, #120a08 0%, #0a0504 100%);
}
.scn-hole-discovered .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a100e 0%, #080402 100%);
  animation: hdi-flicker 12s ease-in-out infinite;
}
.scn-hole-discovered .door-frame {
  position: absolute; left: 25%; top: 10%; width: 150px; height: 80%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,.7);
}
.scn-hole-discovered .door-ajar {
  position: absolute; left: 25%; top: 12%; width: 130px; height: 76%;
  background: linear-gradient(135deg, #2a1a12 0%, #0e0806 100%);
  transform-origin: left center;
  transform: skewY(6deg);
  box-shadow: 4px 0 12px rgba(0,0,0,.6);
  animation: hdi-door 8s ease-in-out infinite alternate;
}
.scn-hole-discovered .figure {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 80px;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #0a0604 0%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hdi-figure 6s ease-in-out infinite;
}
.scn-hole-discovered .light-slit {
  position: absolute; left: 26%; top: 30%; width: 4px; height: 100px;
  background: linear-gradient(180deg, rgba(220,200,180,.6) 0%, rgba(180,150,130,.2) 100%);
  filter: blur(2px);
  animation: hdi-slit 4s ease-in-out infinite alternate;
}
.scn-hole-discovered .keyhole {
  position: absolute; left: 30%; top: 45%; width: 12px; height: 20px;
  background: #080402;
  border-radius: 3px 3px 50% 50%;
  box-shadow: 0 0 6px rgba(255,200,150,.3);
  transform: rotate(5deg);
}
.scn-hole-discovered .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 180px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 80%);
  filter: blur(6px);
}
@keyframes hdi-flicker { 0% { opacity: .85 } 25% { opacity: .95 } 50% { opacity: .9 } 75% { opacity: 1 } 100% { opacity: .8 } }
@keyframes hdi-door { 0% { transform: skewY(4deg) translateX(0) } 50% { transform: skewY(7deg) translateX(2px) } 100% { transform: skewY(4deg) translateX(0) } }
@keyframes hdi-figure { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes hdi-slit { 0% { opacity: .3; filter: blur(3px) } 50% { opacity: .7; filter: blur(1px) } 100% { opacity: .3; filter: blur(3px) } }

.scn-item-beer-bootprint {
  background:
    radial-gradient(ellipse at 50% 80%, #2a1e12 0%, transparent 50%),
    linear-gradient(180deg, #1a120e 0%, #0a0604 100%);
}
.scn-item-beer-bootprint .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a120c 0%, #0d0805 100%);
}
.scn-item-beer-bootprint .table {
  position: absolute; bottom: 55%; left: 20%; width: 100px; height: 8px;
  background: linear-gradient(90deg, #3a2a1e 0%, #2a1a12 50%, #1a0e0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-item-beer-bootprint .beer-puddle {
  position: absolute; bottom: 48%; left: 35%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #b89868 0%, #7a5a30 60%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  box-shadow: 0 0 8px rgba(120,80,40,.3);
  animation: ibb-puddle 6s ease-in-out infinite alternate;
}
.scn-item-beer-bootprint .bootprint {
  position: absolute; bottom: 44%; left: 42%; width: 24px; height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #0d0805 0%, #1a100a 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: ibb-print 4s ease-in-out infinite;
}
.scn-item-beer-bootprint .glass {
  position: absolute; bottom: 56%; left: 28%; width: 12px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,160,.1) 30%, rgba(100,80,60,.2) 100%);
  border-radius: 0 0 4px 4px;
  border: 1px solid rgba(200,180,160,.15);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  transform: rotate(-5deg);
}
.scn-item-beer-bootprint .shadow {
  position: absolute; bottom: 40%; left: 10%; width: 200px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 80%);
  filter: blur(8px);
  animation: ibb-shadow 8s ease-in-out infinite alternate;
}
@keyframes ibb-puddle { 0% { transform: rotate(-10deg) scaleX(1); opacity: .8 } 50% { transform: rotate(-5deg) scaleX(1.1); opacity: 1 } 100% { transform: rotate(-10deg) scaleX(1); opacity: .8 } }
@keyframes ibb-print { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.05) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes ibb-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .5; transform: scaleX(1) } }

.scn-reasons-for-silence {
  background:
    radial-gradient(ellipse at 30% 40%, #2a1e1a 0%, transparent 70%),
    linear-gradient(180deg, #120a08 0%, #080402 100%);
}
.scn-reasons-for-silence .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a100e 0%, #080402 100%);
  animation: rfs-dimmer 15s ease-in-out infinite alternate;
}
.scn-reasons-for-silence .window {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a2e2a 0%, #1a100e 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(200,180,160,.1);
}
.scn-reasons-for-silence .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 100px;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #0a0604 0%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfs-figure-l 5s ease-in-out infinite;
}
.scn-reasons-for-silence .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 55px; height: 95px;
  background: radial-gradient(ellipse 100% 100% at 50% 100%, #0a0604 0%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfs-figure-r 5s ease-in-out infinite alternate;
}
.scn-reasons-for-silence .table-center {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 6px;
  background: linear-gradient(90deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-reasons-for-silence .lantern {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.3);
  animation: rfs-glow 3s ease-in-out infinite alternate;
}
.scn-reasons-for-silence .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 200px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 80%);
  filter: blur(8px);
  animation: rfs-shadow 6s ease-in-out infinite;
}
@keyframes rfs-dimmer { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes rfs-figure-l { 0% { transform: scaleY(1) translateY(0) rotate(-2deg) } 50% { transform: scaleY(1.02) translateY(-2px) rotate(0deg) } 100% { transform: scaleY(1) translateY(0) rotate(-2deg) } }
@keyframes rfs-figure-r { 0% { transform: scaleY(1) translateY(0) rotate(2deg) } 50% { transform: scaleY(1.02) translateY(-2px) rotate(0deg) } 100% { transform: scaleY(1) translateY(0) rotate(2deg) } }
@keyframes rfs-glow { 0% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,.3); opacity: .8 } 50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,.3); opacity: .85 } }
@keyframes rfs-shadow { 0% { transform: scaleX(1); opacity: .6 } 50% { transform: scaleX(1.1); opacity: .8 } 100% { transform: scaleX(1); opacity: .6 } }

/* view-from-veranda */
.scn-view-from-veranda {
  background: linear-gradient(180deg, #2d1b3d 0%, #4a2e4a 30%, #6b4a5a 60%, #8b6a5a 100%),
              radial-gradient(ellipse at 50% 0%, #8b6a5a 0%, transparent 70%);
}
.scn-view-from-veranda .vv-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2d1b3d 0%, #5a3a4a 50%, transparent 100%); animation: vv-sky 14s ease-in-out infinite alternate; }
.scn-view-from-veranda .vv-sea { position:absolute; bottom:10%; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a4a5a 0%, #4a6a7a 50%, transparent 100%); border-radius: 30% 50% 0 0 / 20% 30% 0 0; animation: vv-sea 20s ease-in-out infinite; }
.scn-view-from-veranda .vv-isles { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: 0 4px 15px rgba(0,0,0,0.5); }
.scn-view-from-veranda .vv-veranda { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-view-from-veranda .vv-railing { position:absolute; bottom:30%; left:5%; right:5%; height:4%; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: vv-rail 6s ease-in-out infinite; }
.scn-view-from-veranda .vv-figure { position:absolute; bottom:10%; left:30%; width:24px; 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: vv-figure 8s ease-in-out infinite; }
.scn-view-from-veranda .vv-cloud { position:absolute; top:15%; width:70px; height:16px; background: rgba(255,200,180,0.25); border-radius: 50%; filter: blur(5px); animation: vv-drift 40s linear infinite; }
.scn-view-from-veranda .vv-cloud-l { left:10%; animation-delay: 0s; }
.scn-view-from-veranda .vv-cloud-r { left:60%; animation-delay: -20s; }
@keyframes vv-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes vv-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes vv-rail { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes vv-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scaleX(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) scaleX(0.95) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) scaleX(1) } 75% { transform: translateX(8px) translateY(-1px) rotate(2deg) scaleX(0.98) } 100% { transform: translateX(0) translateY(0) rotate(0) scaleX(1) } }
@keyframes vv-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* soir-des-iles */
.scn-soir-des-iles {
  background: linear-gradient(180deg, #1a2030 0%, #2d3a4a 30%, #4a5a6a 60%, #7a8a8a 100%),
              radial-gradient(ellipse at 20% 50%, #7a8a8a 0%, transparent 60%);
}
.scn-soir-des-iles .si-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a2030 0%, #2d3a4a 50%, transparent 100%); animation: si-sky 12s ease-in-out infinite alternate; }
.scn-soir-des-iles .si-horizon { position:absolute; bottom:50%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #8a9a8a 20%, #b0a0a0 50%, #8a9a8a 80%, transparent 100%); box-shadow: 0 0 20px rgba(180,160,160,0.5); }
.scn-soir-des-iles .si-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a2a3a 0%, #3a4a5a 50%, #5a6a7a 100%); border-radius: 40% 30% 0 0 / 20% 10% 0 0; animation: si-sea 18s ease-in-out infinite; }
.scn-soir-des-iles .si-ship { position:absolute; bottom:40%; left:25%; width:90px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform: rotate(-2deg); animation: si-ship 8s ease-in-out infinite; }
.scn-soir-des-iles .si-sail { position:absolute; bottom:50%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius: 0% 50% 0% 50% / 0% 50% 0% 50%; transform-origin: bottom center; animation: si-sail 10s ease-in-out infinite alternate; }
.scn-soir-des-iles .si-sun { position:absolute; bottom:55%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 20px rgba(255,208,128,0.5); animation: si-sun 20s ease-in-out infinite; }
.scn-soir-des-iles .si-bird { position:absolute; top:20%; width:24px; height:8px; background: #1a1a2a; border-radius: 50% 50% 0 0; transform-origin: center; animation: si-bird 15s linear infinite; }
.scn-soir-des-iles .si-bird-a { left:35%; animation-delay: 0s; }
.scn-soir-des-iles .si-bird-b { left:55%; animation-delay: -7s; }
@keyframes si-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes si-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes si-ship { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes si-sail { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.05) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes si-sun { 0% { opacity: 0.9; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-5px); } 100% { opacity: 0.9; transform: translateY(0); } }
@keyframes si-bird { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(20px) translateY(-5px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* officers-watch-natacha */
.scn-officers-watch-natacha {
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #4a3a4a 60%, #5a4a4a 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a4a 0%, transparent 70%);
}
.scn-officers-watch-natacha .ow-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #4a3a4a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-officers-watch-natacha .ow-window { position:absolute; top:15%; left:35%; right:35%; bottom:50%; background: linear-gradient(180deg, #5a4a6a 0%, #8a7a8a 100%); border: 6px solid #4a3a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,180,180,0.3); animation: ow-win 10s ease-in-out infinite alternate; }
.scn-officers-watch-natacha .ow-natacha { position:absolute; bottom:40%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ow-nat 6s ease-in-out infinite; }
.scn-officers-watch-natacha .ow-dress { position:absolute; bottom:30%; left:42%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform-origin: top center; animation: ow-dress 8s ease-in-out infinite; }
.scn-officers-watch-natacha .ow-officer { position:absolute; bottom:20%; width:20px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; }
.scn-officers-watch-natacha .ow-officer-left { left:25%; animation: ow-off 10s ease-in-out infinite; }
.scn-officers-watch-natacha .ow-officer-right { left:60%; animation: ow-off 10s ease-in-out infinite reverse; }
.scn-officers-watch-natacha .ow-shadow { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(8px); animation: ow-shadow 12s ease-in-out infinite; }
@keyframes ow-win { 0% { box-shadow: inset 0 0 20px rgba(200,180,180,0.2); } 50% { box-shadow: inset 0 0 50px rgba(200,180,180,0.5); } 100% { box-shadow: inset 0 0 20px rgba(200,180,180,0.2); } }
@keyframes ow-nat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ow-dress { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes ow-off { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ow-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }

/* matrena-searches-for-rouletabille */
.scn-matrena-searches-for-rouletabille {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 30%, #2a2a2a 60%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a2a 0%, transparent 70%);
}
.scn-matrena-searches-for-rouletabille .ms-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,0.8); animation: ms-wall 20s ease-in-out infinite; }
.scn-matrena-searches-for-rouletabille .ms-stairs { position:absolute; bottom:10%; left:40%; right:40%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); transform: skewX(-10deg); border-left: 4px solid #2a1a1a; border-right: 4px solid #2a1a1a; animation: ms-stairs 15s ease-in-out infinite; }
.scn-matrena-searches-for-rouletabille .ms-lantern { position:absolute; top:20%; left:20%; width:24px; height:30px; background: radial-gradient(circle, #ffb060 0%, #c07030 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 80px 30px rgba(255,176,96,0.3); animation: ms-lantern 4s ease-in-out infinite alternate; }
.scn-matrena-searches-for-rouletabille .ms-matrena { position:absolute; bottom:35%; left:45%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ms-matrena 6s ease-in-out infinite; }
.scn-matrena-searches-for-rouletabille .ms-shadow { position:absolute; bottom:20%; left:35%; width:60px; height:20px; background: rgba(0,0,0,0.8); border-radius: 50%; filter: blur(10px); animation: ms-shadow 8s ease-in-out infinite; }
.scn-matrena-searches-for-rouletabille .ms-door { position:absolute; bottom:5%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); animation: ms-door 12s ease-in-out infinite; }
.scn-matrena-searches-for-rouletabille .ms-crack { position:absolute; bottom:30%; left:35%; width:2px; height:10%; background: rgba(180,140,100,0.4); box-shadow: 0 0 6px rgba(180,140,100,0.2); animation: ms-crack 5s ease-in-out infinite alternate; }
@keyframes ms-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ms-stairs { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-8deg) translateY(-3px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes ms-lantern { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes ms-matrena { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ms-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes ms-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(0deg); } }
@keyframes ms-crack { 0% { opacity: 0.3; width: 1px; } 100% { opacity: 0.8; width: 3px; } }

.scn-general-pleased {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4b896 100%),
    radial-gradient(ellipse at 70% 30%, #ffd9a0 0%, transparent 60%);
}
.scn-general-pleased .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #f0dcc0 0%, #dcc4a8 100%);
  animation: gp-bg 12s ease-in-out infinite alternate;
}
.scn-general-pleased .window {
  position: absolute; top: 8%; right: 8%; width: 40%; height: 55%;
  background: linear-gradient(135deg, #ffe8c0 0%, #f0d8a0 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,200,100,0.3);
  animation: gp-window 9s ease-in-out infinite alternate;
}
.scn-general-pleased .chair {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: gp-chair 6s ease-in-out infinite;
}
.scn-general-pleased .figure-gp {
  position: absolute; bottom: 22%; left: 18%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gp-fig 4s ease-in-out infinite;
}
.scn-general-pleased .lamp {
  position: absolute; top: 12%; left: 40%; width: 8%; height: 15%;
  background: radial-gradient(circle, #ffd070 0%, #c89030 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #ffd070;
  animation: gp-lamp 3s ease-in-out infinite alternate;
}
.scn-general-pleased .curtain {
  position: absolute; top: 8%; right: 45%; width: 4%; height: 55%;
  background: linear-gradient(180deg, #c8a88a 0%, #b0886a 100%);
  border-radius: 0 4px 4px 0; filter: blur(1px);
  animation: gp-curtain 8s ease-in-out infinite alternate;
}
.scn-general-pleased .rug {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #9a7a5a, #7a5a3a, #6a4a2a, #7a5a3a);
  border-radius: 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: gp-rug 10s ease-in-out infinite;
}
@keyframes gp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gp-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.02); } 100% { transform: scaleY(1); } }
@keyframes gp-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes gp-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gp-lamp { 0% { box-shadow: 0 0 20px 5px #ffd070; opacity: 0.9; } 100% { box-shadow: 0 0 60px 15px #ffd070; opacity: 1; } }
@keyframes gp-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(6px); } }
@keyframes gp-rug { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.02); } }

.scn-orders-to-sleep {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4b896 100%),
    radial-gradient(ellipse at 50% 20%, #ffd9a0 0%, transparent 70%);
}
.scn-orders-to-sleep .bedroom-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #dcc4a8 100%);
  animation: os-bg 15s ease-in-out infinite alternate;
}
.scn-orders-to-sleep .bed {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 40%;
  background: linear-gradient(180deg, #b89878 0%, #8c6c4c 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: os-bed 12s ease-in-out infinite;
}
.scn-orders-to-sleep .figure-os {
  position: absolute; bottom: 18%; left: 25%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-fig 6s ease-in-out infinite;
}
.scn-orders-to-sleep .pillow {
  position: absolute; bottom: 28%; left: 18%; width: 15%; height: 8%;
  background: linear-gradient(180deg, #f0e0d0 0%, #d0c0a0 100%);
  border-radius: 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: os-pillow 4s ease-in-out infinite alternate;
}
.scn-orders-to-sleep .lamp-os {
  position: absolute; top: 10%; right: 15%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffd070 0%, #c89030 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #ffd070;
  animation: os-lamp 3s ease-in-out infinite alternate;
}
.scn-orders-to-sleep .window-os {
  position: absolute; top: 5%; right: 10%; width: 35%; height: 40%;
  background: linear-gradient(135deg, #ffe8c0 0%, #f0d8a0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.2);
  animation: os-window 20s ease-in-out infinite alternate;
}
.scn-orders-to-sleep .book {
  position: absolute; bottom: 12%; right: 30%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: os-book 5s ease-in-out infinite;
}
@keyframes os-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes os-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes os-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes os-pillow { 0% { transform: scale(1); } 50% { transform: scale(0.02); } 100% { transform: scale(1); } }
@keyframes os-lamp { 0% { box-shadow: 0 0 20px 5px #ffd070; opacity: 0.9; } 100% { box-shadow: 0 0 50px 12px #ffd070; opacity: 1; } }
@keyframes os-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes os-book { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } }

.scn-liqueurs-on-veranda {
  background:
    linear-gradient(180deg, #3a2a4a 0%, #4a3050 30%, #5a4060 60%, #6a5070 100%),
    radial-gradient(ellipse at 50% 0%, #8060a0 0%, transparent 70%);
}
.scn-liqueurs-on-veranda .veranda-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3848 0%, #3a2838 100%);
  border-radius: 0 0 4px 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: lv-floor 10s ease-in-out infinite alternate;
}
.scn-liqueurs-on-veranda .railing {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #6a4a5a, #5a3a4a, #6a4a5a);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: lv-rail 15s ease-in-out infinite;
}
.scn-liqueurs-on-veranda .table-lv {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: lv-table 7s ease-in-out infinite;
}
.scn-liqueurs-on-veranda .glasses {
  position: absolute; bottom: 32%; left: 45%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #d0c0a8 0%, #a09078 100%);
  border-radius: 0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: lv-glasses 5s ease-in-out infinite alternate;
}
.scn-liqueurs-on-veranda .figure-lv {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lv-fig 4s ease-in-out infinite;
}
.scn-liqueurs-on-veranda .wheelchair {
  position: absolute; bottom: 18%; left: 28%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lv-chair 6s ease-in-out infinite;
}
.scn-liqueurs-on-veranda .lantern-lv {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffd070 0%, #b08030 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #ffc040;
  animation: lv-lantern 3s ease-in-out infinite alternate;
}
.scn-liqueurs-on-veranda .sky-lv {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #4a3050 0%, #6a5070 60%, transparent 100%);
  animation: lv-sky 20s ease-in-out infinite alternate;
}
@keyframes lv-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lv-rail { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes lv-table { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes lv-glasses { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(0.02) rotate(3deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes lv-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lv-chair { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes lv-lantern { 0% { box-shadow: 0 0 20px 5px #ffc040; opacity: 0.8; } 100% { box-shadow: 0 0 50px 12px #ffc040; opacity: 1; } }
@keyframes lv-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-golden-night {
  background:
    linear-gradient(180deg, #2a2040 0%, #3a3060 40%, #504080 100%),
    radial-gradient(ellipse at 50% 100%, #8060b0 0%, transparent 70%);
}
.scn-golden-night .sky-gn {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #4a3a6a 0%, #6a5080 50%, #9070a0 100%);
  animation: gn-sky 30s ease-in-out infinite alternate;
}
.scn-golden-night .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3060 0%, #2a2040 100%);
  border-radius: 0 0 20px 20px; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: gn-water 25s ease-in-out infinite alternate;
}
.scn-golden-night .shore {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: gn-shore 20s ease-in-out infinite;
}
.scn-golden-night .boat {
  position: absolute; bottom: 32%; left: 30%; width: 15%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: gn-boat 8s ease-in-out infinite;
}
.scn-golden-night .tree {
  position: absolute; bottom: 35%; right: 15%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: gn-tree 10s ease-in-out infinite alternate;
}
.scn-golden-night .cloud-gn {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(200,180,220,0.6), rgba(200,180,220,0.1));
  border-radius: 50%; filter: blur(4px);
  animation: gn-cloud 50s linear infinite;
}
.scn-golden-night .star {
  position: absolute; top: 10%; left: 45%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ffd0a0 0%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 10px 2px #ffd0a0;
  animation: gn-star 3s ease-in-out infinite alternate;
}
@keyframes gn-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes gn-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.02); } 100% { transform: scaleY(1); } }
@keyframes gn-shore { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gn-boat { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gn-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(0.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes gn-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes gn-star { 0% { opacity: 0.5; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-living-domovoi { background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 60%, #3a2518 100%), radial-gradient(ellipse at 50% 70%, #4a2a18 0%, transparent 80%); }
.scn-living-domovoi .room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #1a0e08 100%); }
.scn-living-domovoi .hearth-glow { position:absolute; bottom:10%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, #e08040 0%, #b05020 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: ld-hearth 4s ease-in-out infinite alternate; }
.scn-living-domovoi .domovoi { position:absolute; bottom:20%; left:40%; width:28px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ld-figure 6s ease-in-out infinite; }
.scn-living-domovoi .chair { position:absolute; bottom:15%; left:55%; width:50px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:10% 10% 20% 20% / 20% 20% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.6); animation: ld-chair 8s ease-in-out infinite alternate; }
.scn-living-domovoi .lantern-light { position:absolute; top:30%; right:20%; width:20px; height:30px; background: radial-gradient(circle, #f0c060 0%, #c08030 60%); border-radius:30%; box-shadow:0 0 40px 20px rgba(200,130,50,.4), 0 0 80px 40px rgba(200,130,50,.2); animation: ld-lantern 3s ease-in-out infinite alternate; }
@keyframes ld-hearth { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.7; transform:scaleY(.95) } }
@keyframes ld-figure { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(-4px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ld-chair { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes ld-lantern { 0% { box-shadow:0 0 30px 15px rgba(200,130,50,.3); opacity:.8 } 50% { box-shadow:0 0 60px 30px rgba(200,130,50,.6); opacity:1 } 100% { box-shadow:0 0 40px 20px rgba(200,130,50,.4); opacity:.9 } }

.scn-under-zakouskis-table { background: linear-gradient(180deg, #0d0806 0%, #1a120e 40%, #261a14 100%), radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 80%); }
.scn-under-zakouskis-table .table-top { position:absolute; top:5%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #403020 0%, #2a1a10 100%); border-radius:8px 8px 0 0; box-shadow:0 -4px 12px rgba(0,0,0,.7); animation: uz-tabletop 12s ease-in-out infinite alternate; }
.scn-under-zakouskis-table .table-leg { position:absolute; top:20%; left:15%; width:8%; height:45%; background: linear-gradient(90deg, #2a1a10 0%, #3a2a1a 50%, #2a1a10 100%); border-radius:4px; box-shadow:0 0 10px rgba(0,0,0,.5); }
.scn-under-zakouskis-table .figure-under { position:absolute; bottom:15%; left:35%; width:30px; height:38px; background: radial-gradient(ellipse at 50% 30%, #4a2a18 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: uz-figure 5s ease-in-out infinite; }
.scn-under-zakouskis-table .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: uz-shadow 8s ease-in-out infinite alternate; }
.scn-under-zakouskis-table .distant-light { position:absolute; top:10%; left:60%; width:12px; height:12px; background: radial-gradient(circle, #c08040 0%, #804020 70%); border-radius:50%; box-shadow:0 0 30px 10px rgba(128,64,32,.3); animation: uz-light 4s ease-in-out infinite alternate; }
@keyframes uz-tabletop { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-1px) scaleX(1.01) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes uz-figure { 0% { transform:translateX(0) rotate(-3deg) } 30% { transform:translateX(6px) rotate(2deg) } 60% { transform:translateX(-4px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes uz-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes uz-light { 0% { box-shadow:0 0 20px 5px rgba(128,64,32,.2); opacity:.6 } 50% { box-shadow:0 0 40px 15px rgba(128,64,32,.5); opacity:1 } 100% { box-shadow:0 0 25px 8px rgba(128,64,32,.3); opacity:.7 } }

.scn-under-table-questions { background: linear-gradient(180deg, #0a0a12 0%, #10101a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 80%); }
.scn-under-table-questions .table-bg { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; }
.scn-under-table-questions .table-leg-left { position:absolute; top:5%; left:20%; width:6%; height:70%; background: linear-gradient(90deg, #1a1410 0%, #2a2018 50%, #1a1410 100%); border-radius:3px; animation: utq-leg-left 10s ease-in-out infinite alternate; }
.scn-under-table-questions .table-leg-right { position:absolute; top:5%; right:20%; width:6%; height:70%; background: linear-gradient(90deg, #1a1410 0%, #2a2018 50%, #1a1410 100%); border-radius:3px; animation: utq-leg-right 10s ease-in-out infinite alternate; }
.scn-under-table-questions .figure-sitting { position:absolute; bottom:10%; left:40%; width:36px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: utq-figure 7s ease-in-out infinite; }
.scn-under-table-questions .candle-glow { position:absolute; top:15%; left:45%; width:14px; height:24px; background: radial-gradient(circle, #d0b080 0%, #a08050 70%); border-radius:30% 30% 10% 10%; box-shadow:0 0 30px 15px rgba(160,128,80,.3), 0 0 60px 30px rgba(160,128,80,.15); animation: utq-candle 4s ease-in-out infinite alternate; }
.scn-under-table-questions .cloth-drape { position:absolute; top:0; left:5%; width:50%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:0 0 60% 40% / 0 0 80% 60%; filter:blur(4px); animation: utq-drape 15s ease-in-out infinite alternate; }
@keyframes utq-leg-left { 0% { transform:translateX(0) } 50% { transform:translateX(-2px) } 100% { transform:translateX(0) } }
@keyframes utq-leg-right { 0% { transform:translateX(0) } 50% { transform:translateX(2px) } 100% { transform:translateX(0) } }
@keyframes utq-figure { 0% { transform:translateY(0) rotate(-1deg) } 33% { transform:translateY(-2px) rotate(1deg) } 66% { transform:translateY(0) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes utq-candle { 0% { opacity:.5; transform:scaleY(.9) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.6; transform:scaleY(1) } }
@keyframes utq-drape { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(3px) scale(1.02) } 100% { transform:translateX(0) scale(1) } }

.scn-officers-disagree { background: linear-gradient(180deg, #0a0a0e 0%, #12121a 50%, #1a1a26 100%), radial-gradient(ellipse at 50% 50%, #1a1a26 0%, transparent 80%); }
.scn-officers-disagree .wall { position:absolute; inset:0; background: linear-gradient(90deg, #12121a 0%, #1a1a26 50%, #12121a 100%); }
.scn-officers-disagree .table-center { position:absolute; bottom:25%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,.7); animation: od-table 8s ease-in-out infinite alternate; }
.scn-officers-disagree .candle { position:absolute; bottom:33%; left:48%; width:10px; height:18px; background: radial-gradient(circle, #e0b060 0%, #b08040 70%); border-radius:20% 20% 10% 10%; box-shadow:0 0 20px 8px rgba(176,128,64,.4); animation: od-candle 3s ease-in-out infinite alternate; }
.scn-officers-disagree .officer-left { position:absolute; bottom:30%; left:10%; width:30px; 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: od-left 9s ease-in-out infinite; }
.scn-officers-disagree .officer-right { position:absolute; bottom:30%; right:10%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: od-right 9s ease-in-out infinite; }
.scn-officers-disagree .shadow-left { position:absolute; bottom:15%; left:5%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(6px); animation: od-shadow 7s ease-in-out infinite alternate; }
.scn-officers-disagree .shadow-right { position:absolute; bottom:15%; right:5%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(6px); animation: od-shadow 7s ease-in-out infinite alternate-reverse; }
@keyframes od-table { 0% { transform:scaleX(1) translateY(0) } 50% { transform:scaleX(1.02) translateY(-1px) } 100% { transform:scaleX(1) translateY(0) } }
@keyframes od-candle { 0% { opacity:.6; transform:scaleY(.9) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.7; transform:scaleY(1) } }
@keyframes od-left { 0% { transform:translateX(0) rotate(-3deg) } 30% { transform:translateX(5px) rotate(2deg) } 70% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes od-right { 0% { transform:translateX(0) rotate(3deg) } 30% { transform:translateX(-5px) rotate(-2deg) } 70% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes od-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } 100% { opacity:.5; transform:scaleX(1) } }

.scn-promenade-plan {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 30%, #c8a878 70%),
              radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%);
}
.scn-promenade-plan .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #d4c0a0 100%);
  box-shadow: inset 0 20px 40px rgba(255,200,100,0.3);
  animation: pp-wall 8s ease-in-out infinite alternate;
}
.scn-promenade-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #a08060 0%, #b89870 40%, #d0b890 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-promenade-plan .door-frame {
  position: absolute; bottom: 20%; left: 28%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-promenade-plan .door-panel {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 96px;
  background: linear-gradient(180deg, #8c683c 0%, #6c4828 100%);
  border: 2px solid #5a3a1a;
  border-radius: 2px;
  transform-origin: left center;
  animation: pp-door 6s ease-in-out infinite alternate;
}
.scn-promenade-plan .table {
  position: absolute; bottom: 18%; left: 52%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #b09060 0%, #c8a870 50%, #b09060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: translate(-50%, -50%);
  animation: pp-table 12s ease-in-out infinite;
}
.scn-promenade-plan .chair {
  position: absolute; bottom: 14%; left: 52%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 8% 8%;
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-promenade-plan .figure-seated {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(2deg);
  animation: pp-figure 4s ease-in-out infinite alternate;
}
.scn-promenade-plan .sunbeam {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 70%);
  transform: skewX(-30deg) translateX(-20%);
  filter: blur(8px);
  animation: pp-sun 10s ease-in-out infinite alternate;
}
@keyframes pp-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pp-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(20deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes pp-table {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
  50% { box-shadow: 0 8px 16px rgba(0,0,0,0.3); transform: translate(-50%, -50%) scale(1.01); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
}
@keyframes pp-figure {
  0% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-50%) rotate(-1deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes pp-sun {
  0% { opacity: 0.3; transform: skewX(-30deg) translateX(-20%); }
  50% { opacity: 0.7; transform: skewX(-25deg) translateX(-10%); }
  100% { opacity: 0.4; transform: skewX(-30deg) translateX(-20%); }
}

.scn-forty-eight-hours {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c0b090 70%),
              radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-forty-eight-hours .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
  animation: feh-room 15s ease-in-out infinite alternate;
}
.scn-forty-eight-hours .table-top {
  position: absolute; bottom: 30%; left: 30%; width: 160px; height: 12px;
  background: linear-gradient(90deg, #a08050 0%, #c8a868 50%, #a08050 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: translateX(-50%);
  z-index: 1;
}
.scn-forty-eight-hours .bowl-chocolate {
  position: absolute; bottom: 32%; left: 30%; width: 24px; height: 16px;
  background: radial-gradient(ellipse, #4a2a0a 0%, #2a1a0a 90%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(74,42,10,0.6);
  transform: translateX(-50%);
  animation: feh-bowl 3s ease-in-out infinite;
}
.scn-forty-eight-hours .bread {
  position: absolute; bottom: 34%; left: 28%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
  animation: feh-bread 5s ease-in-out infinite;
}
.scn-forty-eight-hours .hand-reaching {
  position: absolute; bottom: 36%; left: 22%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0b090 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: feh-hand 2s ease-in-out infinite alternate;
}
.scn-forty-eight-hours .shadow-sharp {
  position: absolute; bottom: 28%; left: 28%; width: 100px; height: 60px;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 60%);
  transform: skewX(-20deg);
  filter: blur(4px);
  animation: feh-shadow 4s ease-in-out infinite alternate;
}
.scn-forty-eight-hours .window-light {
  position: absolute; top: 10%; left: 55%; width: 80px; height: 120px;
  background: linear-gradient(135deg, rgba(255,230,180,0.6) 0%, transparent 70%);
  transform: skewX(-30deg);
  filter: blur(8px);
  animation: feh-window 8s ease-in-out infinite alternate;
}
@keyframes feh-room { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .92; } }
@keyframes feh-bowl { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes feh-bread { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes feh-hand { 0% { transform: rotate(20deg); } 50% { transform: rotate(15deg) translateX(2px); } 100% { transform: rotate(20deg); } }
@keyframes feh-shadow { 0% { opacity: .3; transform: skewX(-20deg); } 50% { opacity: .7; transform: skewX(-15deg); } 100% { opacity: .4; transform: skewX(-20deg); } }
@keyframes feh-window { 0% { opacity: .2; } 50% { opacity: .6; } 100% { opacity: .3; } }

.scn-home-security {
  background: linear-gradient(180deg, #b8c8d0 0%, #90a0b0 40%, #607080 70%),
              radial-gradient(ellipse at 20% 60%, #d0e0e8 0%, transparent 50%);
}
.scn-home-security .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(0deg, #b8c8d0 0%, #a0b0c0 100%);
  animation: hs-sky 20s ease-in-out infinite alternate;
}
.scn-home-security .wall-perimeter {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, #3a4a5a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-home-security .gate-iron {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  background: repeating-linear-gradient(90deg, #5a6a7a 2px, transparent 2px 10px);
  border: 4px solid #4a5a6a;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: hs-gate 6s ease-in-out infinite;
}
.scn-home-security .figure-guard {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(2deg);
  animation: hs-guard 4s ease-in-out infinite alternate;
}
.scn-home-security .dog-silhouette {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 20px;
  background: #1a2a3a;
  border-radius: 50% 50% 0 0;
  transform: scale(1.2);
  animation: hs-dog 3s ease-in-out infinite;
}
.scn-home-security .shadow-moving {
  position: absolute; bottom: 15%; left: 30%; width: 150px; height: 60px;
  background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,0.3) 50%, transparent 80%);
  transform: translateX(-50%) skewX(-30deg);
  filter: blur(6px);
  animation: hs-shadow 10s ease-in-out infinite alternate;
}
.scn-home-security .beam-sunlight {
  position: absolute; top: 0; left: 40%; width: 100px; height: 120px;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 60%);
  transform: skewX(-40deg);
  filter: blur(10px);
  animation: hs-beam 12s ease-in-out infinite alternate;
}
@keyframes hs-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes hs-gate { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.97); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes hs-guard { 0% { transform: rotate(2deg); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(1deg); } }
@keyframes hs-dog { 0% { transform: scale(1.2); } 50% { transform: scale(1.25) translateX(3px); } 100% { transform: scale(1.2); } }
@keyframes hs-shadow { 0% { transform: translateX(-50%) skewX(-30deg); opacity: .3; } 50% { transform: translateX(-40%) skewX(-25deg); opacity: .6; } 100% { transform: translateX(-50%) skewX(-30deg); opacity: .35; } }
@keyframes hs-beam { 0% { opacity: .1; } 50% { opacity: .4; } 100% { opacity: .15; } }

.scn-matrena-relents {
  background: linear-gradient(180deg, #d4c0a8 0%, #c0a888 40%, #a89070 70%),
              radial-gradient(ellipse at 30% 10%, #f0dcc0 0%, transparent 60%);
}
.scn-matrena-relents .hallway-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-matrena-relents .door-arch {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: mr-arch 10s ease-in-out infinite;
}
.scn-matrena-relents .door-half-open {
  position: absolute; bottom: 22%; left: 48%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%);
  border: 2px solid #6a5030;
  border-radius: 2px;
  transform: skewY(10deg) translateX(-10px);
  transform-origin: left center;
  animation: mr-door 5s ease-in-out infinite alternate;
}
.scn-matrena-relents .figure-matrena {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: mr-figure 4s ease-in-out infinite alternate;
}
.scn-matrena-relents .hand-gesturing {
  position: absolute; bottom: 24%; left: 43%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom left;
  animation: mr-hand 2s ease-in-out infinite;
}
.scn-matrena-relents .lamp-glowing {
  position: absolute; top: 20%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.6);
  animation: mr-lamp 3s ease-in-out infinite alternate;
}
.scn-matrena-relents .shadow-flicker {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: mr-shadow 8s ease-in-out infinite alternate;
}
@keyframes mr-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes mr-door { 0% { transform: skewY(10deg) translateX(-10px); } 50% { transform: skewY(8deg) translateX(-5px); } 100% { transform: skewY(10deg) translateX(-10px); } }
@keyframes mr-figure { 0% { transform: rotate(5deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(4deg); } }
@keyframes mr-hand { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-30deg); } }
@keyframes mr-lamp { 0% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.4); opacity: .8; } 50% { box-shadow: 0 0 40px 15px rgba(200,160,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.45); opacity: .85; } }
@keyframes mr-shadow { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .35; } }

.scn-ambush-at-bay {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #5a4a3a 60%, #7a6a4a 100%),
    radial-gradient(ellipse at 40% 60%, #6a5a3a 0%, transparent 60%);
}
.scn-ambush-at-bay .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-bottom: 4px solid #1a0a0a;
  animation: ab-wall 20s ease-in-out infinite;
}
.scn-ambush-at-bay .shutter-a,
.scn-ambush-at-bay .shutter-b {
  position: absolute; top: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #1a0a0a;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  transform-origin: left center;
}
.scn-ambush-at-bay .shutter-a { left: 10%; animation: ab-close 6s ease-in-out infinite; }
.scn-ambush-at-bay .shutter-b { left: 28%; animation: ab-close 6s ease-in-out 3s infinite; }
.scn-ambush-at-bay .slat-light {
  position: absolute; top: 20%; left: 10%; width: 36%; height: 45%;
  background: repeating-linear-gradient(90deg,
    transparent 0%, transparent 6%,
    rgba(255,200,100,0.15) 6%, rgba(255,200,100,0.15) 7%,
    transparent 7%, transparent 12%
  );
  animation: ab-lightpulse 4s ease-in-out infinite alternate;
}
.scn-ambush-at-bay .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
  animation: ab-table 8s ease-in-out infinite;
}
.scn-ambush-at-bay .figure {
  position: absolute; bottom: 25%; left: 42%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: ab-figure 4s ease-in-out infinite;
}
.scn-ambush-at-bay .chair {
  position: absolute; bottom: 21%; left: 58%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: ab-chair 6s ease-in-out infinite;
}
.scn-ambush-at-bay .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: ab-floor 12s linear infinite alternate;
}
@keyframes ab-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ab-close { 0% { transform: rotate(0deg); } 30% { transform: rotate(8deg); } 60% { transform: rotate(12deg); } 100% { transform: rotate(10deg); } }
@keyframes ab-lightpulse { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes ab-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ab-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ab-chair { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } }
@keyframes ab-floor { 0% { background-position: 0 0; } 100% { background-position: 10px 0; } }

.scn-after-arrest {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 30%, #2a2a4e 60%, #0e0e2a 100%),
    radial-gradient(ellipse at 80% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-after-arrest .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  animation: aa-sky 30s ease-in-out infinite alternate;
}
.scn-after-arrest .lamp {
  position: absolute; bottom: 40%; left: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 0 2px #4a3a2a;
  animation: aa-lamp 3s ease-in-out infinite;
}
.scn-after-arrest .lamp-glow {
  position: absolute; bottom: 32%; left: 12%; width: 16%; height: 20%;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  animation: aa-glow 4s ease-in-out infinite alternate;
}
.scn-after-arrest .figure-ac {
  position: absolute; bottom: 32%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 40% 40%;
  animation: aa-figure1 6s ease-in-out infinite;
}
.scn-after-arrest .figure-agent {
  position: absolute; bottom: 32%; left: 68%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #0a0a2a 0%, #00001a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: scaleX(-1);
  animation: aa-figure2 8s ease-in-out infinite;
}
.scn-after-arrest .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-top: 2px solid #2a2a3e;
}
.scn-after-arrest .fog {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(200,200,220,0.03) 0%, transparent 100%);
  filter: blur(8px);
  animation: aa-fog 20s linear infinite alternate;
}
@keyframes aa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aa-lamp { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4%); } }
@keyframes aa-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1.05); } }
@keyframes aa-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3%) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aa-figure2 { 0% { transform: translateX(0) scaleX(-1); } 50% { transform: translateX(4%) scaleX(-1) rotate(3deg); } 100% { transform: translateX(0) scaleX(-1); } }
@keyframes aa-fog { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }

.scn-bear-restaurant {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4b880 60%, #c4a460 100%),
    radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, transparent 80%);
}
.scn-bear-restaurant .wall-br {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-bottom: 3px solid #a08a6a;
}
.scn-bear-restaurant .table-br {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #b08860 0%, #8a6a4a 100%);
  border-radius: 12px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.15);
}
.scn-bear-restaurant .chair-br {
  position: absolute; bottom: 16%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.scn-bear-restaurant .chair-1 { left: 22%; animation: br-chair1 5s ease-in-out infinite; }
.scn-bear-restaurant .chair-2 { right: 22%; animation: br-chair2 7s ease-in-out infinite; }
.scn-bear-restaurant .vase {
  position: absolute; bottom: 26%; left: 48%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a890 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 0 3px #a8a090;
}
.scn-bear-restaurant .flower-a,
.scn-bear-restaurant .flower-b {
  position: absolute; bottom: 38%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffc0a0 0%, #ffa080 60%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-bear-restaurant .flower-a { left: 47%; animation: br-flower 8s ease-in-out infinite; }
.scn-bear-restaurant .flower-b { left: 50%; animation: br-flower 8s ease-in-out 4s infinite; }
.scn-bear-restaurant .sconce {
  position: absolute; top: 30%; left: 15%; width: 4%; height: 10%;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: br-sconce 3s ease-in-out infinite alternate;
}
@keyframes br-chair1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3%) rotate(2deg); } }
@keyframes br-chair2 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2%) rotate(-1deg); } }
@keyframes br-flower { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-20%) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes br-sconce { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-farewell-to-marshal {
  background:
    linear-gradient(180deg, #b0c8d8 0%, #d0dce8 30%, #e8f0f8 60%, #f0f8ff 100%),
    radial-gradient(ellipse at 70% 30%, #c0d8e8 0%, transparent 70%);
}
.scn-farewell-to-marshal .sky-fm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0bcd0 0%, #c8d8e8 100%);
  animation: fm-sky 30s ease-in-out infinite alternate;
}
.scn-farewell-to-marshal .building-fm {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #c0a880 0%, #a08868 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
}
.scn-farewell-to-marshal .shop-window {
  position: absolute; bottom: 28%; left: 16%; width: 28%; height: 34%;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%);
  border: 4px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: fm-shop 8s ease-in-out infinite;
}
.scn-farewell-to-marshal .figure-fm {
  position: absolute; bottom: 22%; left: 55%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: fm-figure 6s ease-in-out infinite;
}
.scn-farewell-to-marshal .gift-box {
  position: absolute; bottom: 32%; width: 6%; height: 6%;
  background: linear-gradient(180deg, #e0a080 0%, #c08060 100%);
  border: 2px solid #a06040;
  border-radius: 4px;
  animation: fm-gift 4s ease-in-out infinite alternate;
}
.scn-farewell-to-marshal .gift-a { left: 20%; }
.scn-farewell-to-marshal .gift-b { left: 26%; animation-delay: 2s; }
.scn-farewell-to-marshal .pavement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #989080 0%, #7a7268 100%);
}
.scn-farewell-to-marshal .cobblestone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: radient(repeating-conic-gradient(#a09080 0% 25%, transparent 0% 50%) 0 0 / 20px 20px);
  opacity: 0.15;
  animation: fm-cobble 15s linear infinite;
}
@keyframes fm-sky { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes fm-shop { 0% { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%); } 50% { background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 100%); } 100% { background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%); } }
@keyframes fm-figure { 0% { transform: translateX(0); } 25% { transform: translateX(2%) scale(1.02); } 50% { transform: translateX(0); } 75% { transform: translateX(-2%) scale(0.98); } 100% { transform: translateX(0); } }
@keyframes fm-gift { 0% { transform: scale(1); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1); } }
@keyframes fm-cobble { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.scn-he-is-dead {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1c1c3a 40%, #3a2a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 70% 30%, #2a1a3a 0%, transparent 60%);
}
.scn-he-is-dead .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a35 0%, #2a2a45 60%, #3a3a55 100%);
  animation: hd1-wall 12s ease-in-out infinite alternate;
}
.scn-he-is-dead .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 0 0 0 / 50% 0 0 0;
}
.scn-he-is-dead .window-frame {
  position: absolute; top: 8%; left: 60%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 4px solid #0a0a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  border-radius: 4px;
}
.scn-he-is-dead .dawn-sky {
  position: absolute; top: 10%; left: 62%; width: 24%; height: 41%;
  background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%);
  border-radius: 2px;
  animation: hd1-dawn 15s ease-in-out infinite alternate;
}
.scn-he-is-dead .body {
  position: absolute; bottom: 28%; left: 38%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: hd1-body 8s ease-in-out infinite alternate;
}
.scn-he-is-dead .arm-left {
  position: absolute; bottom: 36%; left: 32%; width: 10%; height: 4%;
  background: #0a0a1a; border-radius: 40% 10% 10% 40%;
  transform-origin: right center; transform: rotate(30deg);
  animation: hd1-arm-l 6s ease-in-out infinite alternate;
}
.scn-he-is-dead .arm-right {
  position: absolute; bottom: 38%; left: 52%; width: 10%; height: 4%;
  background: #0a0a1a; border-radius: 10% 40% 40% 10%;
  transform-origin: left center; transform: rotate(-20deg);
  animation: hd1-arm-r 7s ease-in-out infinite alternate;
}
.scn-he-is-dead .shadow-figure {
  position: absolute; bottom: 32%; left: 70%; width: 12%; height: 30%;
  background: #0a0a1a; border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  opacity: 0.4;
  animation: hd1-shadow 10s ease-in-out infinite alternate;
}
@keyframes hd1-wall {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.9 }
}
@keyframes hd1-dawn {
  0% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
  50% { background: linear-gradient(180deg, #3a2a4a 0%, #6a5a3a 50%, #9a7a4a 100%); }
  100% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
}
@keyframes hd1-body {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(1px); }
}
@keyframes hd1-arm-l {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(35deg); }
  100% { transform: rotate(28deg); }
}
@keyframes hd1-arm-r {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-22deg); }
}
@keyframes hd1-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(2px); }
  100% { opacity: 0.4; transform: translateX(-1px); }
}

.scn-ask-your-daughter {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1c1c3a 40%, #3a2a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 30% 40%, #2a1a3a 0%, transparent 60%);
}
.scn-ask-your-daughter .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a35 0%, #2a2a45 60%, #3a3a55 100%);
  animation: ask2-wall 10s ease-in-out infinite alternate;
}
.scn-ask-your-daughter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 0 0 0 / 50% 0 0 0;
}
.scn-ask-your-daughter .window-frame {
  position: absolute; top: 8%; left: 10%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 4px solid #0a0a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  border-radius: 4px;
}
.scn-ask-your-daughter .dawn-sky {
  position: absolute; top: 10%; left: 12%; width: 24%; height: 41%;
  background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%);
  border-radius: 2px;
  animation: ask2-dawn 18s ease-in-out infinite alternate;
}
.scn-ask-your-daughter .father {
  position: absolute; bottom: 28%; left: 45%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform: rotate(3deg);
  animation: ask2-father 7s ease-in-out infinite alternate;
}
.scn-ask-your-daughter .daughter {
  position: absolute; bottom: 25%; left: 60%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%;
  transform: rotate(-2deg);
  animation: ask2-daughter 9s ease-in-out infinite alternate;
}
.scn-ask-your-daughter .outstretched-hand {
  position: absolute; bottom: 42%; left: 56%; width: 8%; height: 2%;
  background: #0a0a1a; border-radius: 20% 40% 40% 20%;
  transform-origin: left center; transform: rotate(-15deg);
  animation: ask2-hand 5s ease-in-out infinite alternate;
}
.scn-ask-your-daughter .lamp-glow {
  position: absolute; bottom: 38%; left: 40%; width: 6%; height: 6%;
  background: radial-gradient(circle, #b08030 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(176,128,48,.3);
  animation: ask2-lamp 4s ease-in-out infinite alternate;
}
@keyframes ask2-wall {
  0% { opacity: 0.9 }
  50% { opacity: 1 }
  100% { opacity: 0.95 }
}
@keyframes ask2-dawn {
  0% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
  50% { background: linear-gradient(180deg, #3a2a4a 0%, #6a5a3a 50%, #9a7a4a 100%); }
  100% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
}
@keyframes ask2-father {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(1px); }
}
@keyframes ask2-daughter {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes ask2-hand {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-18deg); }
}
@keyframes ask2-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(176,128,48,.2); }
  50% { opacity: 1; box-shadow: 0 0 25px 12px rgba(176,128,48,.4); }
  100% { opacity: 0.7; box-shadow: 0 0 18px 8px rgba(176,128,48,.3); }
}

.scn-father-it-is-true {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1c1c3a 40%, #3a2a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, #2a1a3a 0%, transparent 60%);
}
.scn-father-it-is-true .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a35 0%, #2a2a45 60%, #3a3a55 100%);
  animation: fit3-wall 14s ease-in-out infinite alternate;
}
.scn-father-it-is-true .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 0 0 0 / 50% 0 0 0;
}
.scn-father-it-is-true .window-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 42%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 4px solid #0a0a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  border-radius: 4px;
}
.scn-father-it-is-true .dawn-sky {
  position: absolute; top: 12%; left: 37%; width: 26%; height: 38%;
  background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%);
  border-radius: 2px;
  animation: fit3-dawn 20s ease-in-out infinite alternate;
}
.scn-father-it-is-true .father {
  position: absolute; bottom: 30%; left: 35%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform: rotate(5deg);
  animation: fit3-father 8s ease-in-out infinite alternate;
}
.scn-father-it-is-true .daughter {
  position: absolute; bottom: 27%; left: 55%; width: 14%; height: 26%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 30% 30%;
  transform: rotate(-3deg);
  animation: fit3-daughter 10s ease-in-out infinite alternate;
}
.scn-father-it-is-true .pointing-arm {
  position: absolute; bottom: 45%; left: 48%; width: 8%; height: 2%;
  background: #0a0a1a; border-radius: 20% 40% 40% 20%;
  transform-origin: left center; transform: rotate(-20deg);
  animation: fit3-point 4s ease-in-out infinite alternate;
}
.scn-father-it-is-true .shadow-cast {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 10%;
  background: #0a0a1a; opacity: 0.3; border-radius: 40% 40% 20% 20%;
  filter: blur(4px);
  animation: fit3-shadow 6s ease-in-out infinite alternate;
}
@keyframes fit3-wall {
  0% { opacity: 0.9 }
  50% { opacity: 1 }
  100% { opacity: 0.95 }
}
@keyframes fit3-dawn {
  0% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
  50% { background: linear-gradient(180deg, #3a2a4a 0%, #6a5a3a 50%, #9a7a4a 100%); }
  100% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
}
@keyframes fit3-father {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(2px); }
}
@keyframes fit3-daughter {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes fit3-point {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-23deg); }
}
@keyframes fit3-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(0.95); }
}

.scn-kill-me-father {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1c1c3a 40%, #3a2a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 40% 60%, #2a1a3a 0%, transparent 60%);
}
.scn-kill-me-father .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a35 0%, #2a2a45 60%, #3a3a55 100%);
  animation: kmf4-wall 16s ease-in-out infinite alternate;
}
.scn-kill-me-father .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 0 0 0 / 50% 0 0 0;
}
.scn-kill-me-father .window-frame {
  position: absolute; top: 8%; left: 65%; width: 25%; height: 44%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 4px solid #0a0a1a; box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  border-radius: 4px;
}
.scn-kill-me-father .dawn-sky {
  position: absolute; top: 10%; left: 67%; width: 21%; height: 40%;
  background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%);
  border-radius: 2px;
  animation: kmf4-dawn 22s ease-in-out infinite alternate;
}
.scn-kill-me-father .father {
  position: absolute; bottom: 30%; left: 40%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 35% 35%;
  transform: rotate(8deg);
  animation: kmf4-father 6s ease-in-out infinite alternate;
}
.scn-kill-me-father .daughter-kneeling {
  position: absolute; bottom: 18%; left: 52%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: kmf4-daughter 9s ease-in-out infinite alternate;
}
.scn-kill-me-father .raised-stick {
  position: absolute; bottom: 55%; left: 48%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center; transform: rotate(30deg);
  animation: kmf4-stick 3s ease-in-out infinite alternate;
}
.scn-kill-me-father .tear-drop {
  position: absolute; bottom: 32%; left: 58%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #b0c0d0 0%, #6080a0 70%);
  border-radius: 50% 0 50% 50% / 60% 0 60% 60%;
  transform: rotate(-20deg);
  opacity: 0.6;
  animation: kmf4-tear 5s ease-in-out infinite alternate;
}
@keyframes kmf4-wall {
  0% { opacity: 0.9 }
  50% { opacity: 1 }
  100% { opacity: 0.95 }
}
@keyframes kmf4-dawn {
  0% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
  50% { background: linear-gradient(180deg, #3a2a4a 0%, #6a5a3a 50%, #9a7a4a 100%); }
  100% { background: linear-gradient(180deg, #2a2a5a 0%, #5a4a3a 50%, #8a6a3a 100%); }
}
@keyframes kmf4-father {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(6deg) translateY(2px); }
}
@keyframes kmf4-daughter {
  0% { transform: rotate(-5deg) translateX(0) translateY(0); }
  50% { transform: rotate(-3deg) translateX(2px) translateY(-2px); }
  100% { transform: rotate(-7deg) translateX(-1px) translateY(1px); }
}
@keyframes kmf4-stick {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(35deg); }
}
@keyframes kmf4-tear {
  0% { opacity: 0.4; transform: rotate(-20deg) translateY(0); }
  50% { opacity: 0.8; transform: rotate(-15deg) translateY(-2px); }
  100% { opacity: 0.5; transform: rotate(-25deg) translateY(1px); }
}

.scn-suspicious-pin { background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4a 40%, #4a3a4a 100%), radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%); }
.scn-suspicious-pin .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 20% 20%; }
.scn-suspicious-pin .table { position:absolute; bottom:20%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 4%; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-suspicious-pin .pin { position:absolute; bottom:28%; left:50%; width:4px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #b0a090 0%, #706050 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px 2px rgba(176,160,144,.5); animation: sp-pin 4s ease-in-out infinite; }
.scn-suspicious-pin .shadow-pin { position:absolute; bottom:22%; left:50%; width:4px; height:40px; transform:translateX(-55%); background: rgba(0,0,0,.5); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: sp-shadow 4s ease-in-out infinite; }
.scn-suspicious-pin .hand { position:absolute; bottom:25%; right:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: sp-hand 3s ease-in-out infinite alternate; }
.scn-suspicious-pin .window { position:absolute; top:8%; right:12%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 8px rgba(74,58,90,.3); animation: sp-window 12s ease-in-out infinite alternate; }
@keyframes sp-pin { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(1deg); } }
@keyframes sp-shadow { 0%,100% { transform: translateX(-55%) scaleY(1); } 50% { transform: translateX(-55%) scaleY(1.05); opacity: .8; } }
@keyframes sp-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(5deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sp-window { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-dinner-lively { background: linear-gradient(180deg, #f5e6c8 0%, #d4a86a 40%, #b8864a 100%), radial-gradient(ellipse at 50% 20%, #ffe080 0%, transparent 70%); }
.scn-dinner-lively .ceiling { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 0 0 20% 20%; }
.scn-dinner-lively .chandelier { position:absolute; top:8%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #806040 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 0 20px 10px rgba(192,160,96,.6); animation: dl-chandelier 6s ease-in-out infinite; }
.scn-dinner-lively .tablecloth { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 0 0 15% 15%; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-dinner-lively .plate { position:absolute; bottom:38%; left:35%; width:30px; height:30px; background: radial-gradient(circle, #f0f0f0 0%, #c0c0b0 70%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: dl-plate 8s ease-in-out infinite; }
.scn-dinner-lively .wineglass { position:absolute; bottom:42%; left:50%; width:10px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,200,200,.4) 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 8px rgba(255,255,255,.5); animation: dl-glass 5s ease-in-out infinite alternate; }
.scn-dinner-lively .candle { position:absolute; bottom:44%; left:58%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #f0c080; animation: dl-candle 2s ease-in-out infinite; }
.scn-dinner-lively .figure-left { position:absolute; bottom:25%; left:15%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dl-figure 6s ease-in-out infinite alternate; }
.scn-dinner-lively .figure-right { position:absolute; bottom:25%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dl-figure 6s ease-in-out infinite alternate-reverse; }
@keyframes dl-chandelier { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.03); } }
@keyframes dl-plate { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes dl-glass { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dl-candle { 0%,100% { opacity: .9; transform: scaleY(1); } 25% { opacity: 1; transform: scaleY(1.05); } 75% { opacity: .85; transform: scaleY(0.95); } }
@keyframes dl-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }

.scn-doubting-natacha { background: linear-gradient(180deg, #e8dcc0 0%, #c0b090 40%, #a09880 100%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%); }
.scn-doubting-natacha .backwall { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 0 0 5% 5%; }
.scn-doubting-natacha .spotlight { position:absolute; top:0; left:50%; width:200px; height:70%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,245,224,.8) 0%, transparent 60%); animation: dn-spotlight 4s ease-in-out infinite alternate; }
.scn-doubting-natacha .shadow { position:absolute; bottom:20%; left:40%; width:100px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(8px); animation: dn-shadow 3s ease-in-out infinite; }
.scn-doubting-natacha .profile { position:absolute; bottom:10%; right:30%; width:40px; height:100px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: dn-profile 5s ease-in-out infinite alternate; }
.scn-doubting-natacha .hand-tremble { position:absolute; bottom:15%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: dn-hand 0.8s ease-in-out infinite; }
.scn-doubting-natacha .table-edge { position:absolute; bottom:20%; left:20%; right:20%; height:8px; background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 20%; }
@keyframes dn-spotlight { 0% { opacity: .8; transform: translateX(-50%) scaleX(1); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.1); } 100% { opacity: .7; transform: translateX(-50%) scaleX(0.9); } }
@keyframes dn-shadow { 0%,100% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.05); opacity: .7; } }
@keyframes dn-profile { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dn-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 75% { transform: translateX(-2px) rotate(-3deg); } }

.scn-rouletabille-tired { background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 40%, #b8a888 100%), radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 70%); }
.scn-rouletabille-tired .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 20% 20% 0 0; }
.scn-rouletabille-tired .window { position:absolute; top:10%; left:10%; width:50px; height:70px; background: linear-gradient(180deg, #c0d8e0 0%, #a0b8c0 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,.2), 0 0 20px rgba(192,216,224,.5); animation: rt-window 10s ease-in-out infinite alternate; }
.scn-rouletabille-tired .chair { position:absolute; bottom:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); 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,.3); }
.scn-rouletabille-tired .figure-sleep { position:absolute; bottom:18%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: rt-sleep 6s ease-in-out infinite; }
.scn-rouletabille-tired .rug { position:absolute; bottom:5%; left:30%; right:30%; height:10%; background: radial-gradient(ellipse, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,.2); }
.scn-rouletabille-tired .lamp { position:absolute; bottom:25%; left:20%; width:10px; height:40px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(192,160,128,.5); animation: rt-lamp 4s ease-in-out infinite alternate; }
.scn-rouletabille-tired .curtain { position:absolute; top:10%; left:10%; width:15px; height:70px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 20% 20% 0; opacity: .8; animation: rt-curtain 8s ease-in-out infinite alternate; }
@keyframes rt-window { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: .8; transform: scale(0.97); } }
@keyframes rt-sleep { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes rt-lamp { 0% { opacity: .8; box-shadow: 0 0 15px 5px rgba(192,160,128,.4); } 50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(192,160,128,.6); } 100% { opacity: .7; box-shadow: 0 0 10px 3px rgba(192,160,128,.3); } }
@keyframes rt-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(2px); } }

/* music-and-drink – warm interior */
.scn-music-and-drink {
  background: 
    linear-gradient(180deg, #fff8e7 0%, #f5e6c8 40%, #d4b896 100%),
    radial-gradient(ellipse at 60% 70%, #f0d8a0 0%, transparent 60%);
}
.scn-music-and-drink .mu-piano {
  position: absolute; bottom: 15%; left: 50%; width: 160px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: mu-piano 12s ease-in-out infinite alternate;
}
.scn-music-and-drink .mu-figure {
  position: absolute; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-music-and-drink .mu-figure-left {
  bottom: 25%; left: 28%;
  animation: mu-sway 4s ease-in-out infinite;
}
.scn-music-and-drink .mu-figure-right {
  bottom: 25%; right: 28%;
  animation: mu-sway 4s ease-in-out infinite 0.5s;
}
.scn-music-and-drink .mu-figure-center {
  bottom: 30%; left: 50%; transform: translateX(-50%) scale(1.1);
  animation: mu-sway 4.5s ease-in-out infinite 1s;
}
.scn-music-and-drink .mu-lamp {
  position: absolute; top: 18%; left: 60%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a22 100%);
  border-radius: 4px;
}
.scn-music-and-drink .mu-lamp::after {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px; border-radius: 50%;
  background: radial-gradient(circle, #ffdd88 0%, #f0b040 50%, transparent 70%);
  animation: mu-glow 3s ease-in-out infinite alternate;
}
.scn-music-and-drink .mu-glass {
  position: absolute; width: 14px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.35) 0%, rgba(200,180,140,0.3) 100%);
  border-radius: 0 0 6px 6px;
  border: 1px solid rgba(200,180,140,0.3);
}
.scn-music-and-drink .mu-glass1 { bottom: 30%; left: 38%; transform: rotate(10deg); animation: mu-fizz 2.5s ease-in-out infinite; }
.scn-music-and-drink .mu-glass2 { bottom: 32%; right: 40%; transform: rotate(-8deg); animation: mu-fizz 2.5s ease-in-out infinite 1s; }
.scn-music-and-drink .mu-window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff4d4 0%, #e8d4a8 60%, #b89870 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px 10px rgba(255,200,100,0.2);
  animation: mu-window 8s ease-in-out infinite alternate;
}
@keyframes mu-piano {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes mu-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mu-glow {
  0% { opacity: 0.7; box-shadow: 0 0 12px 6px #f0b040; }
  50% { opacity: 1; box-shadow: 0 0 24px 12px #ffd060; }
  100% { opacity: 0.8; box-shadow: 0 0 18px 8px #e8a830; }
}
@keyframes mu-fizz {
  0% { transform: rotate(10deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(15deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(10deg) translateY(0); opacity: 0.6; }
}
@keyframes mu-window {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}

/* matrena-restless – tense bright interior */
.scn-matrena-restless {
  background:
    linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 30%, #c0a88a 70%, #a89070 100%),
    radial-gradient(ellipse at 80% 20%, #f0e0c8 0%, transparent 60%);
}
.scn-matrena-restless .mr-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c4ac 0%, #b8a88c 100%);
  animation: mr-wall 15s ease-in-out infinite alternate;
}
.scn-matrena-restless .mr-matrena {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mr-fidget 3s ease-in-out infinite;
}
.scn-matrena-restless .mr-feodor {
  position: absolute; bottom: 30%; left: 40%; width: 32px; height: 55px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-leg 4s ease-in-out infinite;
}
.scn-matrena-restless .mr-couple {
  position: absolute; bottom: 35%; right: 20%; width: 50px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 30%, #3a2a1e 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  animation: mr-whisper 6s ease-in-out infinite;
}
.scn-matrena-restless .mr-boris {
  position: absolute; bottom: 30%; right: 40%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: right center;
  animation: mr-strum 0.6s ease-in-out infinite;
}
.scn-matrena-restless .mr-guzla {
  position: absolute; bottom: 30%; right: 38%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #8a6a3a 0%, #b08050 50%, #6a4a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  animation: mr-guzla 0.6s ease-in-out infinite alternate;
}
.scn-matrena-restless .mr-shadow {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: mr-shadow 8s ease-in-out infinite alternate;
}
@keyframes mr-wall {
  0% { background-position: 0 0; }
  100% { background-position: 0 10px; }
}
@keyframes mr-fidget {
  0% { transform: rotate(-3deg); }
  30% { transform: rotate(2deg) translateX(2px); }
  70% { transform: rotate(-1deg) translateX(-1px); }
  100% { transform: rotate(-3deg); }
}
@keyframes mr-leg {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mr-whisper {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-3px); }
}
@keyframes mr-strum {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-5deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes mr-guzla {
  0% { transform: rotate(-20deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes mr-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* image-of-trebassof – tense portrait */
.scn-image-of-trebassof {
  background:
    linear-gradient(180deg, #2c1c14 0%, #4a3222 30%, #3a2216 70%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a32 0%, transparent 60%);
}
.scn-image-of-trebassof .tb-backdrop {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: tb-backdrop 20s ease-in-out infinite alternate;
}
.scn-image-of-trebassof .tb-figure {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.6);
  animation: tb-figure 8s ease-in-out infinite alternate;
}
.scn-image-of-trebassof .tb-desk {
  position: absolute; bottom: 12%; left: 30%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4px;
  animation: tb-desk 12s ease-in-out infinite alternate;
}
.scn-image-of-trebassof .tb-map {
  position: absolute; bottom: 15%; left: 42%; width: 90px; height: 70px;
  background: linear-gradient(135deg, #8a7a5a 0%, #b0a080 50%, #7a6a4a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  animation: tb-map 6s ease-in-out infinite alternate;
}
.scn-image-of-trebassof .tb-lamp {
  position: absolute; top: 10%; right: 20%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a22 100%);
  border-radius: 4px;
}
.scn-image-of-trebassof .tb-lamp::after {
  content: ''; position: absolute; top: -25px; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px; border-radius: 50%;
  background: radial-gradient(circle, #d0a060 0%, #b08040 40%, transparent 70%);
  animation: tb-glow 3s ease-in-out infinite alternate;
}
.scn-image-of-trebassof .tb-shadow {
  position: absolute; bottom: 15%; left: 40%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: tb-shadow 6s ease-in-out infinite alternate;
}
@keyframes tb-backdrop {
  0% { background-position: 0 0; }
  100% { background-position: 0 30px; }
}
@keyframes tb-figure {
  0% { transform: translateX(-50%) scale(1); filter: brightness(1); }
  50% { transform: translateX(-50%) scale(1.02); filter: brightness(1.1); }
  100% { transform: translateX(-50%) scale(1); filter: brightness(1); }
}
@keyframes tb-desk {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02); }
}
@keyframes tb-map {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg); }
}
@keyframes tb-glow {
  0% { opacity: 0.6; box-shadow: 0 0 10px 4px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 20px 10px #d0a060; }
  100% { opacity: 0.7; box-shadow: 0 0 12px 6px #a07030; }
}
@keyframes tb-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

/* war-is-war – tense battle scene */
.scn-war-is-war {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e12 40%, #1a0e06 100%),
    radial-gradient(ellipse at 30% 50%, #6a4a2a 0%, transparent 70%);
}
.scn-war-is-war .wi-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0e 100%);
  animation: wi-sky 20s ease-in-out infinite alternate;
}
.scn-war-is-war .wi-barricade {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: wi-barricade 8s ease-in-out infinite alternate;
}
.scn-war-is-war .wi-figure {
  position: absolute; bottom: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wi-figure 4s ease-in-out infinite;
}
.scn-war-is-war .wi-figure-left { left: 20%; animation: wi-figure 4s ease-in-out infinite; }
.scn-war-is-war .wi-figure-right { right: 20%; animation: wi-figure 4s ease-in-out infinite 2s; }
.scn-war-is-war .wi-smoke {
  position: absolute; width: 100px; height: 60px;
  background: radial-gradient(ellipse, rgba(120,100,80,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: wi-smoke 12s linear infinite;
}
.scn-war-is-war .wi-smoke1 { bottom: 40%; left: 15%; animation: wi-smoke 15s linear infinite; }
.scn-war-is-war .wi-smoke2 { bottom: 45%; right: 25%; animation: wi-smoke 20s linear infinite 5s; }
.scn-war-is-war .wi-flash {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffcc88 0%, #e8a030 50%, transparent 80%);
  border-radius: 50%;
  animation: wi-flash 0.8s ease-in-out infinite alternate;
}
@keyframes wi-sky {
  0% { background-position: 0 0; }
  100% { background-position: 0 40px; }
}
@keyframes wi-barricade {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-3px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes wi-figure {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(5px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes wi-smoke {
  0% { transform: translateX(-20px) scale(1); opacity: 0.5; }
  50% { transform: translateX(30px) scale(1.3); opacity: 0.3; }
  100% { transform: translateX(80px) scale(1); opacity: 0.1; }
}
@keyframes wi-flash {
  0% { opacity: 0; transform: scale(0.5); }
  30% { opacity: 1; transform: scale(2); }
  100% { opacity: 0; transform: scale(1.5); }
}

/* scenes */
.scn-shutters-thrown-wide {
  background: linear-gradient(180deg, #1c1c3a 0%, #3a3a5e 30%, #7a6a4a 70%, #b8a080 100%), radial-gradient(ellipse at 50% 100%, #b8a080 0%, transparent 50%);
}
.scn-shutters-thrown-wide .building {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-shutters-thrown-wide .window-frame {
  position: absolute; bottom: 45%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(circle at 50% 40%, #7a5a3a 0%, #3a2a1a 70%);
  border: 3px solid #1a0a00;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-shutters-thrown-wide .shutter-left {
  position: absolute; bottom: 45%; left: 34%; width: 12%; height: 30%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-right: 2px solid #1a0a00;
  transform-origin: left center;
  animation: swt-shutter 2s ease-in-out infinite alternate;
}
.scn-shutters-thrown-wide .shutter-right {
  position: absolute; bottom: 45%; right: 34%; width: 12%; height: 30%;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%);
  border-left: 2px solid #1a0a00;
  transform-origin: right center;
  animation: swt-shutter 2s ease-in-out infinite alternate-reverse;
}
.scn-shutters-thrown-wide .shadow-figures {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%;
  background: rgba(0,0,0,.3);
  clip-path: polygon(20% 10%, 35% 15%, 40% 60%, 25% 70%, 10% 50%);
  animation: swt-shadow 1.5s ease-in-out infinite;
}
.scn-shutters-thrown-wide .balcony-rail {
  position: absolute; bottom: 20%; left: 28%; width: 44%; height: 4%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  box-shadow: 0 -2px 6px rgba(0,0,0,.4);
}
.scn-shutters-thrown-wide .mist-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(180,160,120,.15) 0%, transparent 60%);
  filter: blur(8px);
  animation: swt-mist 12s linear infinite;
}
@keyframes swt-shutter {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-8deg); }
  100% { transform: rotate(0deg); }
}
@keyframes swt-shadow {
  0% { opacity: 0.4; transform: translateY(0) scaleY(1); }
  25% { opacity: 0.7; transform: translateY(-5px) scaleY(1.1); }
  50% { opacity: 0.3; transform: translateY(2px) scaleY(0.9); }
  75% { opacity: 0.6; transform: translateY(-3px) scaleY(1.05); }
  100% { opacity: 0.4; transform: translateY(0) scaleY(1); }
}
@keyframes swt-mist {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(20px); }
  100% { opacity: 0.3; transform: translateX(0); }
}

.scn-matrena-on-balcony {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #4a3a2a 70%, #6a5a4a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%);
}
.scn-matrena-on-balcony .balcony-floor {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
}
.scn-matrena-on-balcony .railing {
  position: absolute; bottom: 30%; left: 12%; width: 76%; height: 8%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2%;
  box-shadow: 0 -3px 8px rgba(0,0,0,.5);
}
.scn-matrena-on-balcony .door {
  position: absolute; bottom: 38%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 12px rgba(0,0,0,.4);
}
.scn-matrena-on-balcony .curtain-left {
  position: absolute; bottom: 40%; left: 34%; width: 8%; height: 50%;
  background: linear-gradient(90deg, #6a5a4a 0%, #3a2a1a 100%);
  transform-origin: left center;
  animation: mob-curtain 4s ease-in-out infinite alternate;
}
.scn-matrena-on-balcony .curtain-right {
  position: absolute; bottom: 40%; right: 34%; width: 8%; height: 50%;
  background: linear-gradient(90deg, #3a2a1a 0%, #6a5a4a 100%);
  transform-origin: right center;
  animation: mob-curtain 4s ease-in-out infinite alternate-reverse;
}
.scn-matrena-on-balcony .maid-figure {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mob-maid 6s ease-in-out infinite;
}
.scn-matrena-on-balcony .floor-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 8%;
  background: rgba(0,0,0,.3);
  filter: blur(4px);
  transform: scaleX(0.8);
  animation: mob-shadow 6s ease-in-out infinite alternate;
}
@keyframes mob-curtain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mob-maid {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mob-shadow {
  0% { opacity: 0.3; transform: scaleX(0.8) translateX(0); }
  50% { opacity: 0.6; transform: scaleX(0.9) translateX(5px); }
  100% { opacity: 0.3; transform: scaleX(0.8) translateX(0); }
}

.scn-revolver-shots-mist {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #4a4a5a 60%, #6a6a7a 100%), radial-gradient(ellipse at 50% 80%, #7a7a8a 0%, transparent 70%);
}
.scn-revolver-shots-mist .mist-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(100,100,120,.25) 0%, transparent 70%);
  filter: blur(10px);
  animation: rsm-mist-back 20s linear infinite;
}
.scn-revolver-shots-mist .mist-front {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 40%, rgba(80,80,100,.2) 0%, transparent 60%);
  filter: blur(6px);
  animation: rsm-mist-front 15s linear infinite reverse;
}
.scn-revolver-shots-mist .ladder {
  position: absolute; bottom: 20%; left: 50%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
}
.scn-revolver-shots-mist .police-1 {
  position: absolute; bottom: 40%; left: 35%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsm-police 4s ease-in-out infinite;
}
.scn-revolver-shots-mist .police-2 {
  position: absolute; bottom: 30%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsm-police 4s ease-in-out infinite 2s;
}
.scn-revolver-shots-mist .fleeing-man {
  position: absolute; bottom: 25%; left: 20%; width: 8%; height: 32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsm-flee 3s ease-in-out infinite;
}
.scn-revolver-shots-mist .muzzle-flash {
  position: absolute; bottom: 38%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffa040;
  animation: rsm-flash 1.5s ease-in-out infinite;
}
.scn-revolver-shots-mist .ground {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
}
@keyframes rsm-mist-back {
  0% { opacity: 0.4; transform: translateX(-10px); }
  50% { opacity: 0.7; transform: translateX(15px); }
  100% { opacity: 0.4; transform: translateX(-10px); }
}
@keyframes rsm-mist-front {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(-20px); }
  100% { opacity: 0.3; transform: translateX(0); }
}
@keyframes rsm-police {
  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 rsm-flee {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-30px) scaleX(0.8); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes rsm-flash {
  0% { opacity: 0; transform: scale(0.5); }
  25% { opacity: 1; transform: scale(1.2); }
  50% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(0.5); }
}

.scn-matrena-fires-revolver {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4a 60%, #4a4a5a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%);
}
.scn-matrena-fires-revolver .bg-wall {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 80%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-matrena-fires-revolver .figure-matrena {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: mfr-matrena 4s ease-in-out infinite;
}
.scn-matrena-fires-revolver .figure-rouletabille {
  position: absolute; bottom: 18%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: mfr-rouletabille 4s ease-in-out infinite 1s;
}
.scn-matrena-fires-revolver .figure-natacha {
  position: absolute; bottom: 40%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) scaleY(0.9);
  animation: mfr-natacha 4s ease-in-out infinite 2s;
}
.scn-matrena-fires-revolver .revolver {
  position: absolute; bottom: 28%; left: 35%; width: 8%; height: 4%;
  background: linear-gradient(90deg, #1a1a1a 0%, #0a0a0a 50%, #1a1a1a 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
}
.scn-matrena-fires-revolver .muzzle-flash {
  position: absolute; bottom: 30%; left: 32%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px #ffa040;
  animation: mfr-flash 0.8s ease-in-out infinite;
}
.scn-matrena-fires-revolver .smoke-puff {
  position: absolute; bottom: 32%; left: 28%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(100,100,120,.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: mfr-smoke 2s ease-in-out infinite;
}
@keyframes mfr-matrena {
  0% { transform: rotate(-10deg) translateY(0); }
  30% { transform: rotate(-5deg) translateY(-3px); }
  60% { transform: rotate(-12deg) translateY(2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes mfr-rouletabille {
  0% { transform: rotate(5deg) translateX(0); }
  30% { transform: rotate(8deg) translateX(5px); }
  60% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes mfr-natacha {
  0% { transform: rotate(15deg) scaleY(0.9) translateY(0); }
  30% { transform: rotate(10deg) scaleY(1) translateY(-5px); }
  60% { transform: rotate(18deg) scaleY(0.85) translateY(3px); }
  100% { transform: rotate(15deg) scaleY(0.9) translateY(0); }
}
@keyframes mfr-flash {
  0% { opacity: 0; transform: scale(0.3); }
  20% { opacity: 1; transform: scale(1.5); }
  40% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(0.3); }
}
@keyframes mfr-smoke {
  0% { opacity: 0.2; transform: scale(1) translateY(0); }
  50% { opacity: 0.5; transform: scale(1.3) translateY(-10px); }
  100% { opacity: 0; transform: scale(1.6) translateY(-20px); }
}

.scn-search-barque {
  background: linear-gradient(180deg, #1a2a3e 0%, #2c4055 40%, #4a6a7a 100%),
              radial-gradient(ellipse at 50% 0%, #8a9ab0 0%, transparent 60%);
}
.scn-search-barque .dawn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, transparent 100%);
  animation: sb-sky 15s ease-in-out infinite alternate;
}
.scn-search-barque .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: sb-sea 8s ease-in-out infinite alternate;
}
.scn-search-barque .hull {
  position: absolute; bottom: 35%; left: 25%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform: rotate(-2deg);
  animation: sb-rock 12s ease-in-out infinite;
}
.scn-search-barque .mast {
  position: absolute; bottom: 35%; left: 40%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20%;
  animation: sb-rock 12s ease-in-out infinite;
}
.scn-search-barque .sail {
  position: absolute; bottom: 55%; left: 38%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #c0c8d0 0%, #8090a0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: sb-sail-flap 6s ease-in-out infinite alternate;
}
.scn-search-barque .netting {
  position: absolute; bottom: 38%; right: 20%; width: 60px; height: 40px;
  background: repeating-linear-gradient(90deg, transparent, transparent 4px, #2a3a3a 4px, #2a3a3a 6px);
  border-radius: 30%;
  filter: blur(1px);
  animation: sb-net 10s linear infinite;
}
.scn-search-barque .figure {
  position: absolute; bottom: 38%; left: 30%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sb-figure 4s ease-in-out infinite;
}
@keyframes sb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sb-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sb-rock { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sb-sail-flap { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(-2deg); } }
@keyframes sb-net { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sb-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }

.scn-koupriane-rouletabille-clash {
  background: linear-gradient(180deg, #3a4a6a 0%, #5a6a8a 50%, #c0a88a 100%),
              radial-gradient(ellipse at 50% 100%, #d0b08a 0%, transparent 70%);
}
.scn-koupriane-rouletabille-clash .dawn-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #d0b08a 100%);
  animation: krc-dawn 12s ease-in-out infinite alternate;
}
.scn-koupriane-rouletabille-clash .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-koupriane-rouletabille-clash .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: krc-left 3s ease-in-out infinite alternate;
}
.scn-koupriane-rouletabille-clash .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scaleX(-1);
  animation: krc-right 3.2s ease-in-out infinite alternate;
}
.scn-koupriane-rouletabille-clash .lamp-post {
  position: absolute; bottom: 20%; left: 48%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10%;
}
.scn-koupriane-rouletabille-clash .lamp-glow {
  position: absolute; bottom: 38%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c080 0%, #c09050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e0c080, 0 0 60px 20px rgba(224,192,128,0.4);
  animation: krc-lamp 2s ease-in-out infinite alternate;
}
@keyframes krc-dawn { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes krc-left { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes krc-right { 0% { transform: rotate(-5deg) scaleX(-1) translateX(0); } 50% { transform: rotate(-8deg) scaleX(-1) translateX(-2px); } 100% { transform: rotate(-5deg) scaleX(-1) translateX(0); } }
@keyframes krc-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 6px #e0c080; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #f0d090, 0 0 80px 25px rgba(240,208,144,0.5); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px #e0c080; } }

.scn-rouletabille-excluded {
  background: linear-gradient(180deg, #d0c8b0 0%, #a09070 50%, #6a5a4a 100%),
              radial-gradient(ellipse at 80% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-rouletabille-excluded .sun-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0a080 0%, #d0c0a0 50%, #e0d0b0 100%);
  animation: re-sky 10s ease-in-out infinite alternate;
}
.scn-rouletabille-excluded .sun {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0e0c0 0%, #e0c080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #e0c080, 0 0 120px 60px rgba(224,192,128,0.3);
  animation: re-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-rouletabille-excluded .villa-wall {
  position: absolute; bottom: 20%; left: 40%; width: 200px; height: 120px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
}
.scn-rouletabille-excluded .gate {
  position: absolute; bottom: 20%; left: 48%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(200px) rotateY(-10deg);
  animation: re-gate 4s ease-in-out infinite alternate;
}
.scn-rouletabille-excluded .guard {
  position: absolute; bottom: 15%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: re-guard 5s ease-in-out infinite;
}
.scn-rouletabille-excluded .reporter {
  position: absolute; bottom: 15%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: re-reporter 3s ease-in-out infinite alternate;
}
.scn-rouletabille-excluded .shadow-cast {
  position: absolute; bottom: 12%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: re-shadow 3s ease-in-out infinite alternate;
}
@keyframes re-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes re-sun-pulse { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes re-gate { 0% { transform: perspective(200px) rotateY(-10deg); } 50% { transform: perspective(200px) rotateY(-5deg); } 100% { transform: perspective(200px) rotateY(-10deg); } }
@keyframes re-guard { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes re-reporter { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes re-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }

.scn-police-report {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(circle at 50% 40%, #3a3a4a 0%, transparent 70%);
}
.scn-police-report .dim-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: pr-wall 8s ease-in-out infinite alternate;
}
.scn-police-report .desk {
  position: absolute; bottom: 10%; left: 20%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-police-report .lamp {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: translateX(-50%);
}
.scn-police-report .lamp-light {
  position: absolute; bottom: 15%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, #e0c080 0%, #c09050 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pr-lamp 3s ease-in-out infinite alternate;
}
.scn-police-report .report {
  position: absolute; bottom: 12%; left: 30%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: pr-report 6s ease-in-out infinite;
}
.scn-police-report .figure-bent {
  position: absolute; bottom: 10%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(10deg) scaleY(0.85);
  animation: pr-figure 4s ease-in-out infinite alternate;
}
.scn-police-report .chair {
  position: absolute; bottom: 6%; left: 33%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  animation: pr-chair 5s ease-in-out infinite;
}
@keyframes pr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pr-lamp { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.95); } }
@keyframes pr-report { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes pr-figure { 0% { transform: rotate(10deg) scaleY(0.85) translateY(0); } 50% { transform: rotate(12deg) scaleY(0.85) translateY(-2px); } 100% { transform: rotate(10deg) scaleY(0.85) translateY(0); } }
@keyframes pr-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-open-to-all {
  background: linear-gradient(180deg, #7ec8e3 0%, #f4d03f 60%, #e67e22 100%), radial-gradient(ellipse at 50% 100%, #e67e22 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-open-to-all .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c9e2f0 0%, #fae5d3 100%); animation: ota-sky 6s ease-in-out infinite alternate; }
.scn-open-to-all .sun { position: absolute; top: 12%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #ffeaa7 0%, #f39c12 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(243,156,18,.5); animation: ota-sun 8s ease-in-out infinite alternate; }
.scn-open-to-all .villa { position: absolute; bottom: 30%; left: 20%; width: 120px; height: 80px; background: linear-gradient(180deg, #d5a67a 0%, #a0522d 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -10px 15px rgba(0,0,0,.3); transform: perspective(300px) rotateX(3deg); }
.scn-open-to-all .gate { position: absolute; bottom: 30%; left: 20%; width: 20px; height: 40px; background: #8b4513; border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: ota-gate 4s ease-in-out infinite alternate; }
.scn-open-to-all .lodge { position: absolute; bottom: 32%; left: 60%; width: 50px; height: 40px; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); }
.scn-open-to-all .figure { position: absolute; bottom: 30%; left: 62%; width: 14px; height: 30px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ota-figure 3s ease-in-out infinite alternate; }
.scn-open-to-all .shadow { position: absolute; bottom: 28%; left: 20%; width: 120px; height: 10px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(5px); animation: ota-shadow 5s ease-in-out infinite alternate; }
@keyframes ota-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes ota-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px rgba(243,156,18,.5); } 50% { transform: translateY(-15px) scale(1.05); box-shadow: 0 0 60px 30px rgba(243,156,18,.6); } 100% { transform: translateY(5px) scale(.95); box-shadow: 0 0 30px 15px rgba(243,156,18,.4); } }
@keyframes ota-gate { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-20deg); } 100% { transform: rotateY(0deg); } }
@keyframes ota-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 70% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ota-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .3; transform: scaleX(1.1); } 100% { opacity: .5; transform: scaleX(1); } }

.scn-absent-at-lunch {
  background: linear-gradient(180deg, #f5deb3 0%, #ffeaa7 40%, #f39c12 80%, #d35400 100%), radial-gradient(ellipse at 30% 60%, #f39c12 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-absent-at-lunch .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #c0392b 0%, #922b21 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); }
.scn-absent-at-lunch .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #3498db 0%, #85c1e9 100%); animation: abl-sky 10s ease-in-out infinite alternate; }
.scn-absent-at-lunch .figure-left { position: absolute; bottom: 25%; left: 25%; width: 20px; height: 40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abl-left 3s ease-in-out infinite alternate; }
.scn-absent-at-lunch .figure-right { position: absolute; bottom: 25%; left: 55%; width: 18px; height: 38px; background: linear-gradient(180deg, #5b2c6f 0%, #3b1f4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abl-right 4s ease-in-out infinite alternate; }
.scn-absent-at-lunch .arm { position: absolute; bottom: 40%; left: 55%; width: 30px; height: 6px; background: #5b2c6f; border-radius: 3px; transform-origin: left center; animation: abl-arm 2s ease-in-out infinite alternate; }
.scn-absent-at-lunch .dust { position: absolute; bottom: 20%; left: 40%; width: 20px; height: 20px; background: radial-gradient(circle, #f39c12 0%, transparent 70%); border-radius: 50%; animation: abl-dust 1.5s ease-in-out infinite; }
.scn-absent-at-lunch .shadow { position: absolute; bottom: 22%; left: 25%; width: 80px; height: 10px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: abl-shadow 5s ease-in-out infinite alternate; }
@keyframes abl-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes abl-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-5px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(2px) translateY(0) rotate(-2deg); } }
@keyframes abl-right { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(3px) translateY(-2px); } 70% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes abl-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(0deg); } }
@keyframes abl-dust { 0% { opacity: .8; transform: translate(0,0) scale(1); } 50% { opacity: .3; transform: translate(10px,-15px) scale(2); } 100% { opacity: 0; transform: translate(20px,-30px) scale(3); } }
@keyframes abl-shadow { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .2; transform: scaleX(1.5); } 100% { opacity: .4; transform: scaleX(1); } }

.scn-rouletabille-will-be-around {
  background: linear-gradient(180deg, #e74c3c 0%, #f39c12 30%, #f1c40f 60%, #ffffff 100%), radial-gradient(ellipse at 50% 20%, #f39c12 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-rouletabille-will-be-around .bg-city { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2980b9 0%, #6dd5fa 100%); clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 30% 30%, 40% 50%, 50% 20%, 60% 40%, 70% 35%, 80% 55%, 90% 25%, 100% 50%, 100% 100%); animation: rwba-city 20s linear infinite alternate; }
.scn-rouletabille-will-be-around .domes { position: absolute; bottom: 25%; left: 15%; width: 100px; height: 60px; background: radial-gradient(ellipse at 30% 40%, #e67e22 0%, #d35400 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: rwba-domes 12s ease-in-out infinite; }
.scn-rouletabille-will-be-around .sun { position: absolute; top: 10%; left: 50%; width: 80px; height: 80px; background: radial-gradient(circle, #ffeaa7 0%, #f39c12 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(243,156,18,.6); animation: rwba-sun 9s ease-in-out infinite alternate; }
.scn-rouletabille-will-be-around .figure { position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rwba-figure 5s ease-in-out infinite; }
.scn-rouletabille-will-be-around .street { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #7f8c8d 0%, #5d6d7e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.3); }
.scn-rouletabille-will-be-around .banner { position: absolute; bottom: 30%; left: 60%; width: 30px; height: 50px; background: linear-gradient(180deg, #e67e22 0%, #c0392b 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 2px 2px 5px rgba(0,0,0,.4); animation: rwba-banner 4s ease-in-out infinite alternate; }
@keyframes rwba-city { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.02); } 100% { opacity: .7; transform: scaleY(1); } }
@keyframes rwba-domes { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes rwba-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 30px rgba(243,156,18,.6); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 40px rgba(243,156,18,.8); } 100% { transform: scale(.95); box-shadow: 0 0 50px 20px rgba(243,156,18,.5); } }
@keyframes rwba-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 70% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rwba-banner { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.1); } 100% { transform: rotate(-12deg) scaleX(1); } }

.scn-friends-arrive-morning {
  background: linear-gradient(180deg, #f9e79f 0%, #f7dc6f 40%, #abebc6 70%, #a2d9ce 100%), radial-gradient(ellipse at 50% 80%, #abebc6 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-friends-arrive-morning .wall { position: absolute; inset: 0 60% 0 0; background: linear-gradient(180deg, #d5a67a 0%, #a0522d 100%); border-radius: 0 20% 20% 0; box-shadow: inset -5px 0 10px rgba(0,0,0,.3); }
.scn-friends-arrive-morning .veranda { position: absolute; bottom: 0; left: 60%; right: 0; height: 60%; background: linear-gradient(180deg, #f0b27a 0%, #e59866 100%); border-radius: 20% 0 0 0; box-shadow: inset 0 -10px 15px rgba(0,0,0,.2); }
.scn-friends-arrive-morning .table { position: absolute; bottom: 20%; left: 65%; width: 60px; height: 30px; background: linear-gradient(180deg, #b03a2e 0%, #922b21 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-friends-arrive-morning .cup { position: absolute; bottom: 28%; left: 72%; width: 12px; height: 14px; background: linear-gradient(180deg, #fff 0%, #ddd 100%); border-radius: 0 0 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fam-cup 6s ease-in-out infinite alternate; }
.scn-friends-arrive-morning .figure-gen { position: absolute; bottom: 25%; left: 62%; width: 20px; height: 35px; background: linear-gradient(180deg, #5b2c6f 0%, #3b1f4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fam-fig 4s ease-in-out infinite; }
.scn-friends-arrive-morning .figure-mike { position: absolute; bottom: 22%; left: 75%; width: 18px; height: 32px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fam-fig 4.5s ease-in-out infinite; }
.scn-friends-arrive-morning .figure-boris { position: absolute; bottom: 22%; left: 82%; width: 20px; height: 34px; background: linear-gradient(180deg, #7d3c98 0%, #5b2c6f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fam-fig 3.5s ease-in-out infinite; }
.scn-friends-arrive-morning .garden { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #27ae60 0%, #1e8449 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,.2); }
@keyframes fam-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fam-fig { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* waiting-for-dawn */
.scn-waiting-for-dawn {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 60%);
}
.scn-waiting-for-dawn .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #252535 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: wd1-wall 20s ease-in-out infinite alternate;
}
.scn-waiting-for-dawn .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(0deg, #1a1a28 0%, #2a2a3a 100%);
}
.scn-waiting-for-dawn .window-frame {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 0 0 4px #2a2a3a, 0 0 20px rgba(0,0,0,0.7);
}
.scn-waiting-for-dawn .window-pane {
  position: absolute; top: 18%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(100,130,180,0.1) 0%, rgba(180,200,230,0.05) 50%, rgba(80,110,160,0.1) 100%);
  border-radius: 2px;
  animation: wd1-pane 15s ease-in-out infinite alternate;
}
.scn-waiting-for-dawn .candle {
  position: absolute; bottom: 40%; left: 25%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 0 2px #6a4a2a, 0 0 12px 4px rgba(200,160,96,0.4);
  transform-origin: bottom center;
  animation: wd1-candle 4s ease-in-out infinite;
}
.scn-waiting-for-dawn .figure-silhouette {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wd1-figure 8s ease-in-out infinite;
}
.scn-waiting-for-dawn .chair {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: translateX(-50%);
}
.scn-waiting-for-dawn .dawn-glow {
  position: absolute; top: 10%; left: 50%; width: 180px; height: 180px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, rgba(200,180,150,0.08) 0%, transparent 70%);
  animation: wd1-dawn 20s ease-in-out infinite alternate;
}
@keyframes wd1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wd1-pane { 0% { opacity: 0.15 } 50% { opacity: 0.3 } 100% { opacity: 0.1 } }
@keyframes wd1-candle { 0%,100% { transform: translateY(0) rotate(-2deg) scaleY(1) } 25% { transform: translateY(-2px) rotate(3deg) scaleY(1.02) } 50% { transform: translateY(0) rotate(-1deg) scaleY(0.98) } 75% { transform: translateY(-1px) rotate(2deg) scaleY(1) } }
@keyframes wd1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes wd1-dawn { 0% { opacity: 0.05 } 50% { opacity: 0.15 } 100% { opacity: 0.08 } }

/* noise-in-lock */
.scn-noise-in-lock {
  background: 
    linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a42 0%, transparent 60%);
}
.scn-noise-in-lock .cell-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1e30 0%, #14142a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-noise-in-lock .cell-floor {
  position: absolute; inset: 75% 0 0 0;
  background: linear-gradient(0deg, #0a0a18 0%, #18182a 100%);
}
.scn-noise-in-lock .bars {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: repeating-linear-gradient(
    90deg,
    #2a2a3e 0px, #2a2a3e 4px,
    transparent 4px, transparent 12px
  );
  border-radius: 8px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  animation: nl2-bars 12s ease-in-out infinite alternate;
}
.scn-noise-in-lock .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl2-figure-left 6s ease-in-out infinite;
}
.scn-noise-in-lock .figure-right {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #0e0e1e 0%, #02020a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl2-figure-right 7s ease-in-out infinite;
}
.scn-noise-in-lock .hands {
  position: absolute; bottom: 42%; left: 44%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #1a1a2a 0%, transparent 70%);
  box-shadow: 0 0 8px 4px rgba(30,30,50,0.6);
  border-radius: 50%;
  animation: nl2-hands 3s ease-in-out infinite;
}
.scn-noise-in-lock .keyhole-light {
  position: absolute; top: 45%; left: 50%; width: 8px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: nl2-keyhole 4s ease-in-out infinite alternate;
}
.scn-noise-in-lock .rat {
  position: absolute; bottom: 22%; right: 20%; width: 18px; height: 8px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: nl2-rat 20s linear infinite;
}
@keyframes nl2-bars { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes nl2-figure-left { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes nl2-figure-right { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(-2deg) } 75% { transform: translateX(2px) translateY(-2px) rotate(1deg) } }
@keyframes nl2-hands { 0%,100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes nl2-keyhole { 0% { opacity: 0.1 } 50% { opacity: 0.4 } 100% { opacity: 0.15 } }
@keyframes nl2-rat { 0% { transform: translateX(0) } 50% { transform: translateX(-30px) } 100% { transform: translateX(0) } }

/* arm-stretches-through */
.scn-arm-stretches-through {
  background: 
    linear-gradient(180deg, #12121e 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 50%);
}
.scn-arm-stretches-through .door-back {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 75%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 0 3px #3a3a4e;
}
.scn-arm-stretches-through .door-edge {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 75%;
  background: linear-gradient(180deg, #3a3a4e, #2a2a3e);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-arm-stretches-through .crack-light {
  position: absolute; top: 10%; left: 30%; width: 8px; height: 75%;
  background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%);
  animation: as3-crack 6s ease-in-out infinite alternate;
}
.scn-arm-stretches-through .arm-shadow {
  position: absolute; top: 30%; left: 25%; width: 60px; height: 20px;
  background: linear-gradient(170deg, #0a0a1a 0%, transparent 100%);
  border-radius: 40% 10% 10% 40%;
  transform-origin: left center;
  animation: as3-arm 8s ease-in-out infinite;
}
.scn-arm-stretches-through .hand {
  position: absolute; top: 25%; left: 40%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #0e0e1e 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: as3-hand 8s ease-in-out infinite;
}
.scn-arm-stretches-through .shiny-object {
  position: absolute; top: 22%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,160,0.7) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,180,160,0.3);
  animation: as3-shiny 3s ease-in-out infinite alternate;
}
.scn-arm-stretches-through .floor-light {
  position: absolute; bottom: 12%; left: 25%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.05) 0%, transparent 70%);
  animation: as3-floor 10s ease-in-out infinite alternate;
}
.scn-arm-stretches-through .observer-silhouette {
  position: absolute; bottom: 20%; right: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as3-observer 12s ease-in-out infinite;
}
@keyframes as3-crack { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.15 } }
@keyframes as3-arm { 0%,100% { transform: translateX(-10px) rotate(-5deg) } 50% { transform: translateX(20px) rotate(5deg) } }
@keyframes as3-hand { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(8px) rotate(3deg) } }
@keyframes as3-shiny { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes as3-floor { 0% { opacity: 0.03 } 50% { opacity: 0.1 } 100% { opacity: 0.05 } }
@keyframes as3-observer { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }

/* item-phial-poured */
.scn-item-phial-poured {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 60%);
}
.scn-item-phial-poured .table-top {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-item-phial-poured .potion-bowl {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
}
.scn-item-phial-poured .phial {
  position: absolute; bottom: 30%; left: 38%; width: 8px; height: 28px;
  background: linear-gradient(180deg, rgba(200,180,150,0.3) 0%, rgba(100,80,60,0.2) 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: ip4-phial 10s ease-in-out infinite;
}
.scn-item-phial-poured .hand {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #0e0e1e 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: ip4-hand 10s ease-in-out infinite;
}
.scn-item-phial-poured .falling-drops {
  position: absolute; bottom: 30%; left: 40%; width: 4px; height: 40px;
  background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%);
  border-radius: 50%;
  animation: ip4-drops 2s ease-in infinite;
}
.scn-item-phial-poured .lock-bolt {
  position: absolute; top: 15%; right: 20%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: ip4-bolt 10s ease-in-out infinite;
}
.scn-item-phial-poured .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 35%, transparent 30%, rgba(0,0,0,0.4) 80%);
  animation: ip4-veil 15s ease-in-out infinite alternate;
}
.scn-item-phial-poured .vignette {
  position: absolute; inset: 0;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
  animation: ip4-vignette 12s ease-in-out infinite alternate;
}
@keyframes ip4-phial { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(-30deg) } 60% { transform: rotate(0deg) } }
@keyframes ip4-hand { 0%,100% { transform: rotate(0deg) translate(0,0) } 30% { transform: rotate(-30deg) translate(-4px,2px) } 60% { transform: rotate(0deg) translate(0,0) } }
@keyframes ip4-drops { 0% { transform: translateY(0); opacity: 0.6 } 50% { transform: translateY(20px); opacity: 0.2 } 100% { transform: translateY(40px); opacity: 0 } }
@keyframes ip4-bolt { 0%,100% { transform: translateX(0) } 30% { transform: translateX(4px) } 60% { transform: translateX(0) } }
@keyframes ip4-veil { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes ip4-vignette { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }

/* Scene 1: koupriane-agents - dim interior, tense */
.scn-koupriane-agents {
  background: linear-gradient(180deg, #2b1e1a 0%, #1a0f0c 50%, #0d0706 100%),
              radial-gradient(ellipse at 50% 20%, #3a2b25 0%, transparent 60%);
}
.scn-koupriane-agents .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2b20 0%, #4a3a30 40%, #3a2b20 80%);
  animation: ka-wall 12s ease-in-out infinite alternate;
}
.scn-koupriane-agents .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1f15 0%, #1a110b 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-koupriane-agents .table {
  position: absolute; bottom: 22%; left: 35%; width: 120px; height: 10px;
  background: linear-gradient(90deg, #4a3520, #5a4530);
  border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.5);
  animation: ka-table 8s ease-in-out infinite alternate;
}
.scn-koupriane-agents .lamp-glow {
  position: absolute; top: 15%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffc080 0%, #b07030 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,192,128,.3);
  animation: ka-lamp 3s ease-in-out infinite alternate;
}
.scn-koupriane-agents .chair-left {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1a0e05);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 2px 0 4px rgba(0,0,0,.4);
}
.scn-koupriane-agents .chair-right {
  position: absolute; bottom: 22%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1a0e05);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: -2px 0 4px rgba(0,0,0,.4);
}
.scn-koupriane-agents .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1510, #0d0805);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ka-fig-left 6s ease-in-out infinite;
}
.scn-koupriane-agents .figure-right {
  position: absolute; bottom: 20%; right: 22%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1510, #0d0805);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ka-fig-right 6s ease-in-out infinite 1s;
}
.scn-koupriane-agents .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));
  animation: ka-shadow 15s ease-in-out infinite alternate;
}
@keyframes ka-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ka-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ka-lamp { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes ka-fig-left { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ka-fig-right { 0% { transform: rotate(2deg) } 25% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes ka-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* Scene 2: katharina-escape - dawn chase */
.scn-katharina-escape {
  background: linear-gradient(180deg, #c8a884 0%, #a0745a 30%, #705a40 60%, #403028 100%),
              radial-gradient(ellipse at 50% 100%, #8a6a52 0%, transparent 70%);
}
.scn-katharina-escape .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b09070 0%, #d0b890 40%, #f0e0c0 70%);
  animation: ke-sky 20s ease-in-out infinite alternate;
}
.scn-katharina-escape .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5540, #40352a);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ke-hills 25s ease-in-out infinite alternate;
}
.scn-katharina-escape .path {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #5a4530, #7a6045, #5a4530);
  border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-katharina-escape .house-distant {
  position: absolute; bottom: 28%; right: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3520, #2a1f10);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ke-house 12s ease-in-out infinite;
}
.scn-katharina-escape .tree-a {
  position: absolute; bottom: 18%; left: 5%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3a1a, #1a2a0a);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ke-tree 15s ease-in-out infinite alternate;
}
.scn-katharina-escape .tree-b {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #2a3a1a, #1a2a0a);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ke-tree 18s ease-in-out infinite alternate 5s;
}
.scn-katharina-escape .figure-runner {
  position: absolute; bottom: 10%; left: 20%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ke-run 0.6s steps(2) infinite;
}
.scn-katharina-escape .figure-chaser {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ke-run 0.8s steps(2) infinite 0.4s;
}
.scn-katharina-escape .cloud-morning {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,200,150,.5), rgba(255,200,150,.1));
  border-radius: 50%; filter: blur(4px);
  animation: ke-cloud 40s linear infinite;
}
@keyframes ke-sky { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: .8; transform: scaleY(.98) } }
@keyframes ke-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ke-house { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ke-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ke-run { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes ke-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }

/* Scene 3: rouletabille-intervenes - dawn struggle */
.scn-rouletabille-intervenes {
  background: linear-gradient(180deg, #b09478 0%, #8a7058 30%, #5a4530 60%, #2a1f15 100%),
              radial-gradient(ellipse at 50% 0%, #d0b898 0%, transparent 50%);
}
.scn-rouletabille-intervenes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a, #2a1f10);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
}
.scn-rouletabille-intervenes .figure-left {
  position: absolute; bottom: 5%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a, #151520);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-struggle 3s ease-in-out infinite;
}
.scn-rouletabille-intervenes .figure-right {
  position: absolute; bottom: 5%; left: 45%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a, #151520);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-struggle 3s ease-in-out infinite 1.5s;
}
.scn-rouletabille-intervenes .revolver {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #3a3a3a, #5a5a5a);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ri-revolver 4s ease-in-out infinite alternate;
}
.scn-rouletabille-intervenes .dust {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(150,120,80,.4), transparent);
  filter: blur(4px);
  animation: ri-dust 5s ease-in-out infinite alternate;
}
.scn-rouletabille-intervenes .sun-hint {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,180,.6), transparent 70%);
  border-radius: 50%;
  animation: ri-sun 15s ease-in-out infinite alternate;
}
.scn-rouletabille-intervenes .shadow-fig {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.5));
  animation: ri-shadow 4s ease-in-out infinite alternate;
}
@keyframes ri-struggle { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes ri-revolver { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes ri-dust { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .3; transform: scale(.95) } }
@keyframes ri-sun { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .5; transform: scale(.95) } }
@keyframes ri-shadow { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }

/* Scene 4: prince-galitch-encounter - dawn on ship */
.scn-prince-galitch-encounter {
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 30%, #3a3028 70%, #1a1510 100%),
              radial-gradient(ellipse at 50% 30%, #b09a82 0%, transparent 60%);
}
.scn-prince-galitch-encounter .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a08870, #c0a888 50%, #d0b898);
  animation: pg-sky 20s ease-in-out infinite alternate;
}
.scn-prince-galitch-encounter .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a5a5a, #2a3a3a);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: pg-sea 15s ease-in-out infinite alternate;
}
.scn-prince-galitch-encounter .deck {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(90deg, #4a3a2a, #5a4a3a, #4a3a2a);
  border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,.4);
  animation: pg-deck 16s ease-in-out infinite alternate;
}
.scn-prince-galitch-encounter .mast {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a, #1a1005);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-prince-galitch-encounter .sail {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #c0b098, #a09078);
  clip-path: polygon(0% 0%, 100% 20%, 100% 100%, 0% 80%);
  box-shadow: 2px 4px 8px rgba(0,0,0,.3);
  animation: pg-sail 8s ease-in-out infinite alternate;
}
.scn-prince-galitch-encounter .figure-prince {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-figure 6s ease-in-out infinite;
}
.scn-prince-galitch-encounter .clouds {
  position: absolute; top: 15%; left: 20%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(200,180,160,.4), rgba(200,180,160,.05));
  border-radius: 50%; filter: blur(5px);
  animation: pg-clouds 50s linear infinite;
}
.scn-prince-galitch-encounter .railing {
  position: absolute; bottom: 24%; left: 8%; right: 8%; height: 4px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  border-radius: 1px;
  animation: pg-rail 12s ease-in-out infinite alternate;
}
@keyframes pg-sky { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } 100% { opacity: .8; transform: scaleY(.98) } }
@keyframes pg-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes pg-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pg-sail { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes pg-figure { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pg-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-300px) } }
@keyframes pg-rail { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }

.scn-grapes-not-served {
  background: linear-gradient(180deg, #f7e8c8 0%, #d4b886 60%), radial-gradient(ellipse at 80% 40%, #fff2d0 0%, transparent 70%);
}
.scn-grapes-not-served .tabletop {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8a87c 0%, #a6845e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
}
.scn-grapes-not-served .bowl {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #b8a080 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: gns-bowl 5s ease-in-out infinite;
}
.scn-grapes-not-served .grape-cluster {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-55%);
  background: radial-gradient(circle at 30% 40%, #6a4e3a 0%, #3a2a1a 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(0,0,0,.2);
  animation: gns-grapes 4s ease-in-out infinite alternate;
}
.scn-grapes-not-served .water-glass {
  position: absolute; bottom: 28%; left: 62%; width: 22px; height: 40px;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(180,210,240,.2) 50%, transparent 100%);
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 4% 4% 10% 10% / 6% 6% 12% 12%;
  transform: skewX(-2deg);
  animation: gns-glass 6s ease-in-out infinite;
}
.scn-grapes-not-served .glass-shadow {
  position: absolute; bottom: 26%; left: 62%; width: 26px; height: 6px;
  background: rgba(0,0,0,.15);
  border-radius: 50%;
  transform: translateX(-2px);
  animation: gns-glassshadow 6s ease-in-out infinite;
}
.scn-grapes-not-served .hand-shadow {
  position: absolute; bottom: 45%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(40,30,20,.25) 0%, rgba(40,30,20,.45) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-15deg) translateY(10px);
  animation: gns-hand 3.5s ease-in-out infinite alternate;
}
@keyframes gns-bowl { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes gns-grapes { 0% { transform: translateX(-55%) rotate(0deg); } 100% { transform: translateX(-55%) rotate(5deg); } }
@keyframes gns-glass { 0%,100% { opacity: .9; } 50% { opacity: .6; } }
@keyframes gns-glassshadow { 0%,100% { transform: translateX(-2px) scaleX(1); } 50% { transform: translateX(-2px) scaleX(1.15); } }
@keyframes gns-hand { 0% { transform: rotate(-15deg) translateY(10px) scaleX(1); } 100% { transform: rotate(-10deg) translateY(5px) scaleX(.95); } }

.scn-bordeaux-mixture {
  background: linear-gradient(180deg, #f5d8a0 0%, #d4b060 40%, #a08040 100%), radial-gradient(ellipse at 50% 100%, #d4b060 0%, transparent 70%);
}
.scn-bordeaux-mixture .sky-bmx {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d090 100%);
  animation: bmx-sky 15s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture .hills-bmx {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8aa070 0%, #5a7840 100%);
  border-radius: 40% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,.2);
  animation: bmx-hills 12s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture .vine-row {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 18%;
  background: repeating-linear-gradient(90deg, #4a6a2a 0px, #4a6a2a 8px, transparent 8px, transparent 60px);
  border-radius: 10% 10% 0 0;
  animation: bmx-vines 20s linear infinite;
}
.scn-bordeaux-mixture .figure-bmx {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bmx-figure 4s ease-in-out infinite;
}
.scn-bordeaux-mixture .spray-mist {
  position: absolute; bottom: 35%; left: 42%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,220,240,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: bmx-mist 3s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture .bottle-bmx {
  position: absolute; bottom: 18%; left: 32%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(-10deg);
  animation: bmx-bottle 5s ease-in-out infinite;
}
@keyframes bmx-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes bmx-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes bmx-vines { 0% { background-position-x: 0; } 100% { background-position-x: -60px; } }
@keyframes bmx-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bmx-mist { 0% { opacity: .3; transform: translateX(0); } 100% { opacity: .6; transform: translateX(10px); } }
@keyframes bmx-bottle { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-arsenate-revelation {
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a060 60%, #a08040 100%), radial-gradient(ellipse at 30% 50%, #e0c080 0%, transparent 60%);
}
.scn-arsenate-revelation .wall-arv {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #e8d4a8 0%, #c8b080 100%);
  border-radius: 0 0 10% 10%;
}
.scn-arsenate-revelation .stairs-arv {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 60%;
  background: repeating-linear-gradient(180deg, #a08860 0px, #a08860 8px, #b8a070 8px, #b8a070 16px);
  transform: skewX(-5deg);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-arsenate-revelation .banister-arv {
  position: absolute; bottom: 30%; left: 30%; width: 4px; height: 60%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: arv-banister 8s ease-in-out infinite alternate;
}
.scn-arsenate-revelation .figure-descending {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg) translateY(0);
  animation: arv-descend 5s ease-in-out infinite;
}
.scn-arsenate-revelation .figure-watching {
  position: absolute; bottom: 5%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1e14 0%, #0a0604 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform: scaleX(-1);
  animation: arv-watch 6s ease-in-out infinite alternate;
}
.scn-arsenate-revelation .door-frame {
  position: absolute; bottom: 10%; left: 60%; width: 40px; height: 80px;
  border: 3px solid #6a4a2a;
  border-radius: 6% 6% 4% 4% / 8% 8% 4% 4%;
  background: rgba(0,0,0,.1);
  box-shadow: inset 0 0 15px rgba(0,0,0,.2);
}
.scn-arsenate-revelation .shadow-arv {
  position: absolute; bottom: 0; left: 25%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: arv-shadow 7s ease-in-out infinite;
}
@keyframes arv-banister { 0% { transform: rotate(-8deg) scaleY(1); } 100% { transform: rotate(-6deg) scaleY(1.02); } }
@keyframes arv-descend { 0% { transform: rotate(5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-5px); } 75% { transform: rotate(6deg) translateY(5px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes arv-watch { 0% { transform: scaleX(-1) translateY(0); } 100% { transform: scaleX(-1) translateY(-3px); } }
@keyframes arv-shadow { 0%,100% { opacity: .8; } 50% { opacity: .5; } }

.scn-general-settles-on-sofa {
  background: linear-gradient(180deg, #f5e4c0 0%, #d4b880 40%, #b09060 100%), radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-general-settles-on-sofa .wall-gss {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(180deg, #e8d0a8 0%, #c8b488 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.1);
}
.scn-general-settles-on-sofa .window-gss {
  position: absolute; top: 5%; right: 8%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff8e8 0%, #e8dcc8 100%);
  border: 4px solid #8a6a4a;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 20px rgba(255,255,200,.5);
  animation: gss-window 8s ease-in-out infinite alternate;
}
.scn-general-settles-on-sofa .sofa-gss {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 15px rgba(0,0,0,.4);
  animation: gss-sofa 6s ease-in-out infinite;
}
.scn-general-settles-on-sofa .general-figure {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: gss-general 5s ease-in-out infinite;
}
.scn-general-settles-on-sofa .helper-figure {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: gss-helper 7s ease-in-out infinite alternate;
}
.scn-general-settles-on-sofa .table-gss {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 6% 6%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
}
.scn-general-settles-on-sofa .lamp-gss {
  position: absolute; bottom: 35%; left: 55%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 20px 4px rgba(200,160,80,.6), 0 0 40px 8px rgba(200,160,80,.3);
  animation: gss-lamp 4s ease-in-out infinite alternate;
}
@keyframes gss-window { 0% { opacity: .85; } 100% { opacity: 1; } }
@keyframes gss-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gss-general { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(-2deg); } 70% { transform: translateY(3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gss-helper { 0% { transform: scaleX(-1) translateY(0); } 100% { transform: scaleX(-1) translateY(-4px); } }
@keyframes gss-lamp { 0% { box-shadow: 0 0 20px 4px rgba(200,160,80,.6), 0 0 40px 8px rgba(200,160,80,.3); } 100% { box-shadow: 0 0 30px 6px rgba(200,160,80,.8), 0 0 60px 12px rgba(200,160,80,.5); } }

.scn-datcha-dining-room { background: linear-gradient(180deg, #f5e6c0 0%, #d4a870 40%, #8b5e3c 100%), radial-gradient(ellipse at 50% 100%, #cba06a 0%, transparent 60%); }
.scn-datcha-dining-room .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0dbb0 0%, #d9b880 100%); }
.scn-datcha-dining-room .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6b4a2e 0%, #4a3020 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.3); }
.scn-datcha-dining-room .window { position:absolute; top:8%; left:18%; width:25%; height:45%; background: linear-gradient(180deg, #b8d4e8 0%, #e8f4ff 80%); border: 6px solid #5a3a20; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,.4), 0 0 20px rgba(255,220,150,.3); }
.scn-datcha-dining-room .table { position:absolute; bottom:20%; left:50%; width:55%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #8b5e3c 0%, #5a3a20 100%); border-radius: 6px 6px 12px 12px; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: ddr-table 6s ease-in-out infinite; }
.scn-datcha-dining-room .samovar { position:absolute; bottom:26%; left:38%; width:8%; height:14%; background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #8a6a40 60%, #4a2a18 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 24px 6px rgba(200,150,80,.5); animation: ddr-glow 4s ease-in-out infinite alternate; }
.scn-datcha-dining-room .figure-datcha { position:absolute; bottom:16%; left:62%; width:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center 80%; animation: ddr-figure 5s ease-in-out infinite; }
.scn-datcha-dining-room .chair { position:absolute; bottom:14%; left:55%; width:6%; height:18%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 40% 40% 20% 20%; transform: skewX(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-datcha-dining-room .chandelier { position:absolute; top:2%; left:50%; width:12%; height:8%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #e8d080 0%, #b09050 60%, #705030 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 10px rgba(200,180,100,.4); animation: ddr-chandelier 3s ease-in-out infinite alternate; }
.scn-datcha-dining-room .glow-datcha { position:absolute; bottom:25%; left:37%; width:16%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.3) 0%, transparent 70%); pointer-events: none; animation: ddr-ambient 8s ease-in-out infinite; }
@keyframes ddr-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes ddr-glow { 0% { box-shadow: 0 0 20px 4px rgba(200,150,80,.4); } 50% { box-shadow: 0 0 30px 8px rgba(240,180,90,.7); } 100% { box-shadow: 0 0 20px 4px rgba(200,150,80,.4); } }
@keyframes ddr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ddr-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes ddr-ambient { 0%,100% { opacity: .6; } 50% { opacity: 1; } }

.scn-ivan-petrovitch-tale { background: linear-gradient(180deg, #e8d4a8 0%, #c4a870 50%, #8a6a40 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%); }
.scn-ivan-petrovitch-tale .bg-tale { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d9c090 0%, #b89860 100%); }
.scn-ivan-petrovitch-tale .chair-tale { position:absolute; bottom:10%; left:35%; width:18%; height:55%; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-ivan-petrovitch-tale .bald-head { position:absolute; bottom:38%; left:36%; width:14%; height:14%; background: radial-gradient(ellipse at 50% 40%, #f0d8b0 0%, #d4b080 60%, #b09060 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: ivt-head 7s ease-in-out infinite; }
.scn-ivan-petrovitch-tale .body-tale { position:absolute; bottom:8%; left:34%; width:18%; height:34%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 30% 30%; }
.scn-ivan-petrovitch-tale .arm-tale { position:absolute; bottom:22%; left:28%; width:6%; height:20%; background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius: 40% 40% 30% 30%; transform-origin: 50% 20%; animation: ivt-arm 5s ease-in-out infinite; }
.scn-ivan-petrovitch-tale .glass-tale { position:absolute; bottom:30%; left:24%; width:4%; height:8%; background: rgba(200,180,140,.5); border: 2px solid rgba(200,180,140,.7); border-radius: 2px; box-shadow: 0 0 12px 2px rgba(255,200,100,.3); animation: ivt-glass 4s ease-in-out infinite; }
.scn-ivan-petrovitch-tale .table-tale { position:absolute; bottom:6%; left:20%; width:20%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-ivan-petrovitch-tale .glow-tale { position:absolute; bottom:28%; left:22%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,120,.4) 0%, transparent 70%); pointer-events: none; animation: ivt-ambient 6s ease-in-out infinite alternate; }
@keyframes ivt-head { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes ivt-arm { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(20deg); } }
@keyframes ivt-glass { 0%,100% { transform: rotate(-5deg) translateY(0); opacity: .7; } 50% { transform: rotate(5deg) translateY(-3px); opacity: 1; } }
@keyframes ivt-ambient { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }

.scn-cossacks-drink-emperors-health { background: linear-gradient(180deg, #6b7a8a 0%, #8a9aaa 20%, #b8c8d0 40%, #d4c8a0 70%, #8a7a5a 100%), radial-gradient(ellipse at 50% 100%, #a09070 0%, transparent 50%); }
.scn-cossacks-drink-emperors-health .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a5a6a 0%, #8a8a7a 30%, #c8a060 60%, #e8c070 100%); animation: cde-sky 15s ease-in-out infinite alternate; }
.scn-cossacks-drink-emperors-health .riverbank { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-cossacks-drink-emperors-health .river { position:absolute; bottom:8%; left:0; right:0; height:18%; background: linear-gradient(180deg, #8a9aaa 0%, #6a8a9a 100%); border-radius: 0 0 40% 60% / 0 0 60% 40%; animation: cde-river 8s ease-in-out infinite alternate; }
.scn-cossacks-drink-emperors-health .cossack-left { position:absolute; bottom:28%; left:28%; width:12%; height:26%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: center 80%; animation: cde-fig-left 4s ease-in-out infinite; }
.scn-cossacks-drink-emperors-health .cossack-right { position:absolute; bottom:30%; left:52%; width:14%; height:28%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: center 80%; animation: cde-fig-right 5s ease-in-out infinite; }
.scn-cossacks-drink-emperors-health .banner { position:absolute; bottom:54%; left:48%; width:6%; height:20%; background: linear-gradient(180deg, #7a3a2a 0%, #5a2a1a 100%); border-radius: 2px; transform: skewX(-5deg); animation: cde-banner 6s ease-in-out infinite; }
.scn-cossacks-drink-emperors-health .dawn-sun { position:absolute; bottom:48%; left:42%; width:10%; height:10%; background: radial-gradient(circle, #f0d080 0%, #d0a050 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,150,80,.5); animation: cde-sun 20s ease-in-out infinite alternate; }
.scn-cossacks-drink-emperors-health .cloud-cossack { position:absolute; top:12%; right:15%; width:20%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(200,200,220,.1) 100%); border-radius: 50%; filter: blur(8px); animation: cde-cloud 40s linear infinite; }
@keyframes cde-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes cde-river { 0% { transform: translateY(0); opacity: .7; } 50% { transform: translateY(-2px); opacity: .9; } 100% { transform: translateY(0); opacity: .7; } }
@keyframes cde-fig-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes cde-fig-right { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes cde-banner { 0%,100% { transform: skewX(-5deg) rotate(-3deg); } 50% { transform: skewX(-5deg) rotate(3deg); } }
@keyframes cde-sun { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(-4px) scale(1.05); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: .7; } }
@keyframes cde-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-subalterns-thirsty { background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 20%, #b8c0b0 40%, #c8b890 60%, #a09070 100%), radial-gradient(ellipse at 50% 0%, #d0c8a8 0%, transparent 60%); }
.scn-subalterns-thirsty .dawn-sky-suba { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, #8a8a7a 30%, #c8a060 60%, #d8b870 100%); animation: suba-sky 12s ease-in-out infinite alternate; }
.scn-subalterns-thirsty .ground-suba { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0; }
.scn-subalterns-thirsty .table-suba { position:absolute; bottom:15%; left:50%; width:30%; height:8%; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius: 10px; box-shadow: 0 6px 16px rgba(0,0,0,.4); animation: suba-table 7s ease-in-out infinite; }
.scn-subalterns-thirsty .bottle { position:absolute; bottom:19%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,180,100,.3); animation: suba-bottle 5s ease-in-out infinite; }
.scn-subalterns-thirsty .glass-left { position:absolute; bottom:17%; left:42%; width:3%; height:6%; background: rgba(200,200,180,.4); border: 2px solid rgba(200,200,180,.6); border-radius: 2px; animation: suba-glass-l 4s ease-in-out infinite; }
.scn-subalterns-thirsty .glass-right { position:absolute; bottom:17%; left:52%; width:3%; height:6%; background: rgba(200,200,180,.4); border: 2px solid rgba(200,200,180,.6); border-radius: 2px; animation: suba-glass-r 4s ease-in-out infinite reverse; }
.scn-subalterns-thirsty .officer-left { position:absolute; bottom:12%; left:34%; width:10%; height:28%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: center 80%; animation: suba-off-l 6s ease-in-out infinite; }
.scn-subalterns-thirsty .officer-right { position:absolute; bottom:12%; left:54%; width:10%; height:28%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: center 80%; animation: suba-off-r 6s ease-in-out infinite alternate; }
.scn-subalterns-thirsty .dawn-horizon { position:absolute; bottom:42%; left:0; right:0; height:6%; background: linear-gradient(180deg, #c8a060 0%, #d8b870 100%); filter: blur(4px); animation: suba-horizon 10s ease-in-out infinite alternate; }
@keyframes suba-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes suba-table { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes suba-bottle { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes suba-glass-l { 0%,100% { transform: rotate(-5deg) translateY(0); opacity: .6; } 50% { transform: rotate(5deg) translateY(-2px); opacity: .9; } }
@keyframes suba-glass-r { 0%,100% { transform: rotate(5deg) translateY(0); opacity: .6; } 50% { transform: rotate(-5deg) translateY(-2px); opacity: .9; } }
@keyframes suba-off-l { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes suba-off-r { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes suba-horizon { 0% { opacity: .5; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.2); } 100% { opacity: .6; transform: scaleY(1); } }

.scn-natachas-dark-chamber {
  background: linear-gradient(180deg, #1b1b3a 0%, #2a1e3e 40%, #1f1235 100%), radial-gradient(ellipse at 50% 70%, #2a1e3e 0%, transparent 70%);
}
.scn-natachas-dark-chamber .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0d1a 0%, #1a1228 60%, #0f0920 100%); opacity: 0.9;
  animation: ndc-pulse 12s ease-in-out infinite alternate;
}
.scn-natachas-dark-chamber .window {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 80px; background: linear-gradient(180deg, #0f1628 0%, #0a0d1a 100%); border: 2px solid #2a203a; border-radius: 4px;
  box-shadow: inset 0 0 20px #0f1628, 0 0 10px #1a1a3a;
  animation: ndc-window 5s ease-in-out infinite;
}
.scn-natachas-dark-chamber .figure-walk {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ndc-walk 4s ease-in-out infinite;
}
.scn-natachas-dark-chamber .door-open {
  position: absolute; bottom: 0; left: 50%; width: 50px; height: 90px; background: linear-gradient(180deg, #1e1528 0%, #140f1f 100%); border: 1px solid #2a1e36; border-radius: 2px 0 0 0; transform: skewY(2deg);
  animation: ndc-door 8s ease-in-out infinite alternate;
}
.scn-natachas-dark-chamber .table {
  position: absolute; bottom: 8%; left: 20%; width: 60px; height: 12px; background: linear-gradient(180deg, #2a1e36 0%, #1a1226 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: ndc-table 10s ease-in-out infinite;
}
.scn-natachas-dark-chamber .chair {
  position: absolute; bottom: 12%; left: 18%; width: 16px; height: 30px; background: linear-gradient(180deg, #2a203a 0%, #1a1528 100%); border-radius: 20% 20% 10% 10%;
  animation: ndc-chair 7s ease-in-out infinite alternate;
}
.scn-natachas-dark-chamber .shadow-cast {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(8px);
  animation: ndc-shadow 6s ease-in-out infinite alternate;
}
@keyframes ndc-pulse { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ndc-window { 0% { box-shadow: inset 0 0 20px #0f1628, 0 0 10px #1a1a3a; } 50% { box-shadow: inset 0 0 30px #141a2e, 0 0 15px #2a2a4a; } 100% { box-shadow: inset 0 0 20px #0f1628, 0 0 10px #1a1a3a; } }
@keyframes ndc-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(10px) translateY(-3px) rotate(0deg); } 50% { transform: translateX(20px) translateY(0) rotate(2deg); } 75% { transform: translateX(10px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ndc-door { 0% { transform: skewY(2deg) scaleX(0.95); opacity: 0.8; } 50% { transform: skewY(0deg) scaleX(1); opacity: 1; } 100% { transform: skewY(2deg) scaleX(0.95); opacity: 0.8; } }
@keyframes ndc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ndc-chair { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes ndc-shadow { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.6; transform: scaleY(1); } }

.scn-waiting-in-dark {
  background: linear-gradient(180deg, #12101e 0%, #1a1430 40%, #0f0b22 100%), radial-gradient(ellipse at 50% 50%, #1a1430 0%, transparent 80%);
}
.scn-waiting-in-dark .corridor-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a0a14 0%, #141125 30%, #0e0d1e 60%, #141125 100%);
  animation: wtd-bg-drift 20s ease-in-out infinite alternate;
}
.scn-waiting-in-dark .door-left {
  position: absolute; bottom: 0; left: 10%; width: 45px; height: 80px; background: linear-gradient(180deg, #1e1a30 0%, #161228 100%); border: 1px solid #2a223e; border-radius: 0 4px 0 0; transform-origin: left bottom;
  animation: wtd-door-l 9s ease-in-out infinite alternate;
}
.scn-waiting-in-dark .door-right {
  position: absolute; bottom: 0; right: 10%; width: 45px; height: 80px; background: linear-gradient(180deg, #1e1a30 0%, #161228 100%); border: 1px solid #2a223e; border-radius: 4px 0 0 0; transform-origin: right bottom;
  animation: wtd-door-r 9s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-waiting-in-dark .figure-wait {
  position: absolute; bottom: 5%; left: 46%; width: 18px; height: 48px; background: linear-gradient(180deg, #181428 0%, #0b0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: wtd-figure 5s ease-in-out infinite;
}
.scn-waiting-in-dark .floor-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #16122a 0%, #0e0c20 100%); border-top: 1px solid #221e38;
  animation: wtd-floor 7s ease-in-out infinite alternate;
}
.scn-waiting-in-dark .ceiling-arch {
  position: absolute; top: 0; left: 20%; right: 20%; height: 12%; background: radial-gradient(ellipse at 50% 100%, #2a2240 0%, transparent 70%); border-radius: 0 0 60% 60%;
  animation: wtd-ceiling 12s ease-in-out infinite alternate;
}
@keyframes wtd-bg-drift { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes wtd-door-l { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes wtd-door-r { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(0.98); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes wtd-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes wtd-floor { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes wtd-ceiling { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

.scn-vertical-bar-light {
  background: linear-gradient(180deg, #0e1a2e 0%, #14223a 40%, #0a1426 100%), radial-gradient(ellipse at 50% 80%, #1a2a42 0%, transparent 70%);
}
.scn-vertical-bar-light .night-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1220 0%, #121c30 50%, #0e1828 100%);
  animation: vbl-sky 15s ease-in-out infinite alternate;
}
.scn-vertical-bar-light .window-frame {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 55%; background: linear-gradient(180deg, #1a2640 0%, #121c32 100%); border: 2px solid #2a3a56; border-radius: 4px; box-shadow: 0 0 20px rgba(20,30,50,0.8);
  animation: vbl-frame 8s ease-in-out infinite;
}
.scn-vertical-bar-light .light-bar {
  position: absolute; top: 22%; left: 48%; width: 4%; height: 50%; background: linear-gradient(180deg, rgba(180,200,255,0.8) 0%, rgba(100,130,200,0.6) 50%, rgba(60,80,140,0.4) 100%); filter: blur(3px); box-shadow: 0 0 30px rgba(150,180,255,0.5), 0 0 60px rgba(100,130,200,0.3);
  animation: vbl-light 6s ease-in-out infinite alternate;
}
.scn-vertical-bar-light .figure-roule {
  position: absolute; bottom: 5%; left: 42%; width: 16px; height: 40px; background: linear-gradient(180deg, #0a101c 0%, #020510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: vbl-figure 4s ease-in-out infinite;
}
.scn-vertical-bar-light .cloud-moon {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 25px; background: radial-gradient(ellipse, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 60%, transparent 100%); filter: blur(8px);
  animation: vbl-cloud 30s linear infinite;
}
.scn-vertical-bar-light .shadow-floor {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(5px);
  animation: vbl-shadow 9s ease-in-out infinite alternate;
}
@keyframes vbl-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vbl-frame { 0% { box-shadow: 0 0 20px rgba(20,30,50,0.8); } 50% { box-shadow: 0 0 40px rgba(30,50,80,0.6); } 100% { box-shadow: 0 0 20px rgba(20,30,50,0.8); } }
@keyframes vbl-light { 0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes vbl-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vbl-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes vbl-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }

.scn-blow-on-glass {
  background: linear-gradient(180deg, #0e1628 0%, #16203a 40%, #0a1020 100%), radial-gradient(ellipse at 50% 80%, #1a2640 0%, transparent 70%);
}
.scn-blow-on-glass .shutter-left {
  position: absolute; top: 10%; left: 20%; width: 20%; height: 70%; background: linear-gradient(180deg, #1a1e30 0%, #0e1220 100%); border: 1px solid #2a2e42; border-radius: 2px; transform-origin: left center;
  animation: bog-shutter-l 5s ease-in-out infinite alternate;
}
.scn-blow-on-glass .shutter-right {
  position: absolute; top: 10%; right: 20%; width: 20%; height: 70%; background: linear-gradient(180deg, #1a1e30 0%, #0e1220 100%); border: 1px solid #2a2e42; border-radius: 2px; transform-origin: right center;
  animation: bog-shutter-r 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-blow-on-glass .window-pane {
  position: absolute; top: 12%; left: 38%; right: 38%; height: 66%; background: linear-gradient(180deg, #0e1426 0%, #0a0e1e 100%); border: 1px solid #2a3650; box-shadow: inset 0 0 15px #10182c;
  animation: bog-pane 7s ease-in-out infinite;
}
.scn-blow-on-glass .man-silhouette {
  position: absolute; bottom: 5%; left: 35%; width: 22px; height: 50px; background: linear-gradient(180deg, #050812 0%, #020408 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bog-man 6s ease-in-out infinite;
}
.scn-blow-on-glass .hand-tap {
  position: absolute; top: 45%; left: 48%; width: 12px; height: 8px; background: radial-gradient(ellipse, #0a0e1a 0%, #020408 100%); border-radius: 50% 50% 40% 40%; transform-origin: center bottom;
  animation: bog-hand 3s ease-in-out infinite alternate;
}
.scn-blow-on-glass .moon-glow {
  position: absolute; top: 5%; right: 25%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(180,200,255,0.4) 0%, rgba(100,130,200,0.1) 60%, transparent 100%); filter: blur(10px);
  animation: bog-moon 20s ease-in-out infinite alternate;
}
.scn-blow-on-glass .shadow-mix {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 15%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(6px);
  animation: bog-shadow 4s ease-in-out infinite alternate;
}
@keyframes bog-shutter-l { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes bog-shutter-r { 0% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes bog-pane { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes bog-man { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes bog-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(10deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes bog-moon { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes bog-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-dangerous-student {
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 0%, #5a5a6e 0%, transparent 70%);
}
.scn-dangerous-student .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-dangerous-student .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, #4a4a5e 50%, #3a3a4e 100%);
}
.scn-dangerous-student .window {
  position: absolute; top: 20%; left: 15%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #6e6e7e 0%, #5e5e6e 100%);
  border: 6px solid #3a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 0 2px #2a2a1a;
  animation: ds1-window 8s ease-in-out infinite alternate;
}
.scn-dangerous-student .guard {
  position: absolute; bottom: 35%; left: 55%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: ds1-guard 5s ease-in-out infinite;
}
.scn-dangerous-student .student {
  position: absolute; bottom: 35%; left: 25%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  animation: ds1-student 4s ease-in-out infinite;
}
.scn-dangerous-student .shadow-guard {
  position: absolute; bottom: 0; left: 55%; width: 12%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: rotate(10deg);
  filter: blur(4px);
  animation: ds1-shadow-move 6s ease-in-out infinite;
}
.scn-dangerous-student .shadow-student {
  position: absolute; bottom: 5%; left: 22%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: rotate(-5deg);
  filter: blur(3px);
  animation: ds1-shadow-move 6s ease-in-out infinite reverse;
}
@keyframes ds1-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } 50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } 100% { opacity: 0.7; box-shadow: inset 0 0 25px rgba(0,0,0,0.8); } }
@keyframes ds1-guard { 0% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes ds1-student { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ds1-shadow-move { 0% { opacity: 0.4; transform: scale(1) rotate(10deg); } 50% { opacity: 0.7; transform: scale(1.1) rotate(12deg); } 100% { opacity: 0.4; transform: scale(1) rotate(10deg); } }

.scn-trebassof-humanity {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-trebassof-humanity .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%);
  animation: trb-bg 12s ease-in-out infinite alternate;
}
.scn-trebassof-humanity .bg-mid {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-trebassof-humanity .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: trb-desk 10s ease-in-out infinite;
}
.scn-trebassof-humanity .general {
  position: absolute; bottom: 30%; left: 35%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  transform: rotate(2deg);
  animation: trb-figure 6s ease-in-out infinite;
}
.scn-trebassof-humanity .student {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: trb-figure 6s ease-in-out infinite reverse;
}
.scn-trebassof-humanity .lamp {
  position: absolute; bottom: 50%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(192,160,96,0.6);
  animation: trb-lamp 3s ease-in-out infinite alternate;
}
.scn-trebassof-humanity .lamp-glow {
  position: absolute; bottom: 45%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(192,160,96,0.3) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  filter: blur(8px);
  animation: trb-glow 3s ease-in-out infinite alternate;
}
.scn-trebassof-humanity .paper {
  position: absolute; bottom: 12%; left: 42%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #d0c8b0 0%, #b0a890 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: trb-paper 8s ease-in-out infinite;
}
@keyframes trb-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes trb-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes trb-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes trb-lamp { 0% { box-shadow: 0 0 12px 4px rgba(192,160,96,0.6); opacity: 0.9; } 50% { box-shadow: 0 0 20px 8px rgba(192,160,96,0.8); opacity: 1; } 100% { box-shadow: 0 0 16px 6px rgba(192,160,96,0.7); opacity: 0.95; } }
@keyframes trb-glow { 0% { opacity: 0.3; transform: translate(-50%, 50%) scale(1); } 50% { opacity: 0.5; transform: translate(-50%, 50%) scale(1.2); } 100% { opacity: 0.3; transform: translate(-50%, 50%) scale(1); } }
@keyframes trb-paper { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-three-soldiers-killed {
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%), radial-gradient(ellipse at 50% 100%, #2a2a1a 0%, transparent 70%);
}
.scn-three-soldiers-killed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-three-soldiers-killed .body-student {
  position: absolute; bottom: 35%; left: 30%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ts-body 4s ease-in-out infinite;
}
.scn-three-soldiers-killed .soldier-1 {
  position: absolute; bottom: 38%; left: 48%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: ts-soldier 6s ease-in-out infinite;
}
.scn-three-soldiers-killed .soldier-2 {
  position: absolute; bottom: 35%; left: 60%; width: 12%; height: 48%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(2deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: ts-soldier 6s ease-in-out infinite reverse;
}
.scn-three-soldiers-killed .soldier-3 {
  position: absolute; bottom: 40%; left: 72%; width: 11%; height: 42%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-8deg);
  box-shadow: 4px 0 6px rgba(0,0,0,0.5);
  animation: ts-soldier 6s ease-in-out infinite;
}
.scn-three-soldiers-killed .kick-leg {
  position: absolute; bottom: 32%; left: 55%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 6% 6% 4% 4%;
  transform: rotate(-30deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: ts-kick 2s ease-in-out infinite;
}
.scn-three-soldiers-killed .blood-pool {
  position: absolute; bottom: 30%; left: 28%; width: 18%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #8a3a2a 0%, #6a2a1a 50%, transparent 100%);
  filter: blur(2px);
  animation: ts-blood 8s ease-in-out infinite alternate;
}
.scn-three-soldiers-killed .dust {
  position: absolute; bottom: 35%; left: 25%; right: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: ts-dust 10s ease-in-out infinite;
}
@keyframes ts-body { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ts-soldier { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ts-kick { 0% { transform: rotate(-30deg) translate(0,0); } 25% { transform: rotate(-40deg) translate(4px,-2px); } 50% { transform: rotate(-30deg) translate(0,0); } 75% { transform: rotate(-20deg) translate(-2px,2px); } 100% { transform: rotate(-30deg) translate(0,0); } }
@keyframes ts-blood { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ts-dust { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

.scn-night-attack {
  background: linear-gradient(180deg, #0a0a1a 0%, #0a0a2e 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%);
}
.scn-night-attack .sky-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #050515 0%, #0a0a2e 100%);
  animation: na-sky 15s ease-in-out infinite alternate;
}
.scn-night-attack .palace-wall {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 20%, #2a2a3e 80%, #1a1a2a 100%);
  box-shadow: 0 -10px 20px rgba(0,0,0,0.8);
  border-radius: 8px 8px 0 0;
}
.scn-night-attack .gate {
  position: absolute; bottom: 0; left: 40%; right: 40%; height: 50%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  animation: na-gate 12s ease-in-out infinite;
}
.scn-night-attack .sleigh-1 {
  position: absolute; bottom: 40%; left: 5%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.6);
  animation: na-sleigh 4s ease-in-out infinite;
}
.scn-night-attack .sleigh-2 {
  position: absolute; bottom: 35%; left: 50%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: -2px 2px 8px rgba(0,0,0,0.6);
  animation: na-sleigh 4s ease-in-out infinite reverse;
}
.scn-night-attack .muzzle-flash {
  position: absolute; bottom: 50%; left: 15%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(255,160,64,0.6);
  animation: na-flash 0.8s ease-in-out infinite;
}
.scn-night-attack .bullet-trail {
  position: absolute; bottom: 52%; left: 15%; width: 60%; height: 2px;
  background: linear-gradient(90deg, #ffd080 0%, transparent 100%);
  filter: blur(1px);
  animation: na-trail 1.5s ease-out infinite;
}
.scn-night-attack .shadow-figures {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: na-figures 6s ease-in-out infinite;
}
.scn-night-attack .lamp-post {
  position: absolute; bottom: 0; left: 10%; width: 4px; height: 60%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: 0 0 6px rgba(0,0,0,0.5);
}
@keyframes na-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes na-gate { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.95); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.9); } }
@keyframes na-sleigh { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(8px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes na-flash { 0% { opacity: 0; transform: scale(0.5); } 20% { opacity: 1; transform: scale(1.5); } 40% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0; transform: scale(0.8); } }
@keyframes na-trail { 0% { opacity: 0; width: 0%; } 30% { opacity: 0.5; width: 60%; } 60% { opacity: 0.2; width: 80%; } 100% { opacity: 0; width: 90%; } }
@keyframes na-figures { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-artists-exit { background: linear-gradient(180deg, #1a1a2e 0%, #2c2030 30%, #1a1420 70%, #0d0d12 100%); }
.scn-artists-exit .bg-gloom { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 20%, rgba(240,200,80,0.3) 0%, transparent 60%); animation: ae-gloom-pulse 10s ease-in-out infinite; }
.scn-artists-exit .gaslight-glow { position:absolute; top:10%; left:20%; width:200px; height:200px; background: radial-gradient(circle, rgba(255,220,120,0.5) 0%, rgba(255,200,80,0.2) 40%, transparent 70%); filter: blur(10px); animation: ae-glow-flicker 3s ease-in-out infinite; }
.scn-artists-exit .crowd-left { position:absolute; bottom:20%; left:5%; width:40%; height:50%; background: linear-gradient(180deg, #2a2630 0%, #1a1620 100%); border-radius: 30% 50% 0 0 / 60% 40% 0 0; box-shadow: -10px 0 20px rgba(0,0,0,0.6); animation: ae-crowd-sway 8s ease-in-out infinite; }
.scn-artists-exit .crowd-right { position:absolute; bottom:20%; right:5%; width:35%; height:45%; background: linear-gradient(180deg, #2c2835 0%, #1c1825 100%); border-radius: 50% 30% 0 0 / 40% 50% 0 0; box-shadow: 10px 0 20px rgba(0,0,0,0.6); animation: ae-crowd-sway 9s ease-in-out infinite 2s; }
.scn-artists-exit .mantle-figure { position:absolute; bottom:25%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #1a1420 0%, #0d0810 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: center bottom; animation: ae-figure-turn 6s ease-in-out infinite; }
.scn-artists-exit .mantle-figure::before { content:''; position:absolute; top:0; left:-8px; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a2030 0%, transparent 70%); border-radius: 50%; transform: rotate(-20deg); }
.scn-artists-exit .police-bar { position:absolute; bottom:22%; left:35%; width:30%; height:8px; background: linear-gradient(90deg, #4a4230 0%, #6a5a40 50%, #4a4230 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.7); animation: ae-bar-slide 12s ease-in-out infinite; }
.scn-artists-exit .fence-post { position:absolute; bottom:20%; left:32%; width:6px; height:30px; background: #3a3228; border-radius: 3px 3px 0 0; box-shadow: 0px 0px 4px rgba(0,0,0,0.5); }
.scn-artists-exit .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }

@keyframes ae-gloom-pulse { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes ae-glow-flicker { 0%,100% { transform: scale(1) translate(0,0); opacity:0.7; } 25% { transform: scale(1.02) translate(2px,-1px); opacity:0.9; } 50% { transform: scale(0.98) translate(-1px,1px); opacity:0.6; } 75% { transform: scale(1.01) translate(1px,0); opacity:0.8; } }
@keyframes ae-crowd-sway { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } }
@keyframes ae-figure-turn { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-3deg); } 50% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ae-bar-slide { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-8px); } }

.scn-caracho-passage { background: linear-gradient(180deg, #1e1a28 0%, #2a2435 50%, #1a1625 100%); }
.scn-caracho-passage .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, transparent 0%, rgba(0,0,0,0.5) 100%); }
.scn-caracho-passage .gaslight-beam { position:absolute; top:8%; left:30%; width:150px; height:200px; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,120,0.6) 0%, rgba(255,200,80,0.2) 40%, transparent 70%); filter: blur(8px); animation: cp-beam-sway 5s ease-in-out infinite alternate; }
.scn-caracho-passage .crowd-front { position:absolute; bottom:10%; left:0; right:0; height:45%; background: linear-gradient(180deg, #2e2835 0%, #1e1825 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,0.8); animation: cp-crowd-shift 10s ease-in-out infinite; }
.scn-caracho-passage .mantle-black { position:absolute; bottom:25%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #221e2a 0%, #0f0c14 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cp-mantle-black 4s ease-in-out infinite; }
.scn-caracho-passage .mantle-black::after { content:''; position:absolute; top:0; left:-10px; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, #2a2435 0%, transparent 70%); border-radius: 50%; transform: rotate(-15deg); }
.scn-caracho-passage .mantle-red { position:absolute; bottom:28%; left:52%; width:32px; height:68px; background: linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 15px rgba(160,70,26,0.4); animation: cp-mantle-red 4s ease-in-out infinite 1s; }
.scn-caracho-passage .mantle-red::after { content:''; position:absolute; top:0; left:-8px; width:48px; height:28px; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 70%); border-radius: 50%; transform: rotate(10deg); }
.scn-caracho-passage .arm-gesture { position:absolute; bottom:45%; left:48%; width:4px; height:25px; background: #2a2435; border-radius: 2px; transform-origin: bottom center; animation: cp-arm 3s ease-in-out infinite; }
.scn-caracho-passage .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #3a3435 0px, #3a3435 20px, #4a4445 20px, #4a4445 40px); opacity:0.3; }

@keyframes cp-beam-sway { 0%,100% { transform: translateX(-10px) skewX(-2deg); opacity:0.8; } 50% { transform: translateX(10px) skewX(2deg); opacity:1; } }
@keyframes cp-crowd-shift { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } }
@keyframes cp-mantle-black { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes cp-mantle-red { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes cp-arm { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px,-5px) rotate(-30deg); } }

.scn-better-so-perhaps { background: linear-gradient(180deg, #181c2a 0%, #2a2e38 30%, #1a1c24 70%, #0e1016 100%); }
.scn-better-so-perhaps .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 20%, rgba(200,180,120,0.3) 0%, transparent 50%); }
.scn-better-so-perhaps .streetlamp-glow { position:absolute; top:5%; left:25%; width:180px; height:180px; background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, rgba(255,210,100,0.3) 30%, transparent 70%); filter: blur(12px); animation: bs-lamp-flicker 4s ease-in-out infinite; }
.scn-better-so-perhaps .young-man { position:absolute; bottom:25%; left:40%; width:28px; height:70px; background: linear-gradient(180deg, #221e2a 0%, #100c16 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: center bottom; animation: bs-man-turn 6s ease-in-out infinite; }
.scn-better-so-perhaps .arm-out { position:absolute; bottom:50%; left:43%; width:5px; height:30px; background: #221e2a; border-radius: 3px; transform-origin: bottom right; animation: bs-arm-gesture 4s ease-in-out infinite; }
.scn-better-so-perhaps .shadow-long { position:absolute; bottom:20%; left:30%; width:60%; height:10px; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: bs-shadow-stretch 6s ease-in-out infinite; }
.scn-better-so-perhaps .window-light { position:absolute; top:15%; right:15%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,120,0.8) 0%, rgba(255,200,80,0.4) 60%, transparent 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(255,200,80,0.3); animation: bs-window-pulse 8s ease-in-out infinite; }
.scn-better-so-perhaps .door-arch { position:absolute; bottom:10%; right:10%; width:50px; height:80px; border: 2px solid #3a3a4a; border-radius: 25px 25px 0 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); opacity:0.4; }
.scn-better-so-perhaps .door-arch::after { content:''; position:absolute; bottom:0; left:50%; width:30px; height:60px; background: #1a1a28; transform: translateX(-50%); border-radius: 15px 15px 0 0; }

@keyframes bs-lamp-flicker { 0%,100% { transform: scale(1) translate(0,0); opacity:0.8; } 25% { transform: scale(1.03) translate(1px,-1px); opacity:0.95; } 50% { transform: scale(0.97) translate(-1px,1px); opacity:0.6; } 75% { transform: scale(1.01) translate(0,0); opacity:0.85; } }
@keyframes bs-man-turn { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-5deg); } 60% { transform: translateX(4px) rotate(3deg); } 80% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes bs-arm-gesture { 0%,100% { transform: translate(0,0) rotate(10deg); } 50% { transform: translate(5px,-6px) rotate(-20deg); } }
@keyframes bs-shadow-stretch { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(-5px); } }
@keyframes bs-window-pulse { 0%,100% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } }

.scn-private-room-supper { background: linear-gradient(180deg, #2a1c14 0%, #3a2820 40%, #1e1410 100%); }
.scn-private-room-supper .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, rgba(220,160,80,0.2) 0%, transparent 60%); }
.scn-private-room-supper .table-cloth { position:absolute; bottom:15%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #f0e4c8 0%, #c8b898 100%); border-radius: 10px 10px 50% 50% / 20px 20px 40% 40%; box-shadow: 0 4px 15px rgba(0,0,0,0.5); animation: pr-cloth-sway 10s ease-in-out infinite; }
.scn-private-room-supper .candle-glow { position:absolute; bottom:30%; left:45%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,80,0.6) 0%, rgba(255,160,40,0.3) 40%, transparent 80%); filter: blur(10px); animation: pr-candle-flicker 2s ease-in-out infinite; }
.scn-private-room-supper .figure-left { position:absolute; bottom:22%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a2420 0%, #141010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pr-figure-left 6s ease-in-out infinite; }
.scn-private-room-supper .figure-right { position:absolute; bottom:25%; right:22%; width:32px; height:72px; background: linear-gradient(180deg, #2a2420 0%, #141010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pr-figure-right 6s ease-in-out infinite 1s; }
.scn-private-room-supper .balcony-door { position:absolute; top:10%; left:60%; width:80px; height:120px; border: 3px solid #4a3a30; border-radius: 6px; background: linear-gradient(180deg, #1a1410 40%, #0a0806 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.8); overflow:hidden; }
.scn-private-room-supper .balcony-door::before { content:''; position:absolute; top:20%; left:30%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.3) 0%, transparent 100%); border-radius: 4px; }
.scn-private-room-supper .wine-glass { position:absolute; bottom:28%; left:40%; width:8px; height:16px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 0 0 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pr-glass-raise 8s ease-in-out infinite; }
.scn-private-room-supper .plate { position:absolute; bottom:18%; left:48%; width:25px; height:25px; background: radial-gradient(circle at 50% 50%, #f0e4c8 0%, #d0c4a8 60%, #b8a888 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: pr-plate-bob 10s ease-in-out infinite 2s; }

@keyframes pr-cloth-sway { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes pr-candle-flicker { 0%,100% { transform: scale(1) translate(0,0); opacity:1; } 25% { transform: scale(1.05) translate(1px,-1px); opacity:0.9; } 50% { transform: scale(0.95) translate(-1px,1px); opacity:1; } 75% { transform: scale(1.03) translate(0,0); opacity:0.95; } }
@keyframes pr-figure-left { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes pr-figure-right { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes pr-glass-raise { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(5deg); } }
@keyframes pr-plate-bob { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }

/* natacha-absent */
.scn-natacha-absent {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 30%, #1a1a3e 100%), radial-gradient(ellipse at 30% 70%, #2a2a4e 0%, transparent 60%);
}
.scn-natacha-absent .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #121224 100%); animation: nabs-wall 8s ease-in-out infinite alternate;
}
.scn-natacha-absent .window-frame {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 50%; transform: translateX(-50%); background: #2a2a3a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-natacha-absent .window-pane {
  position: absolute; top: 12%; left: 52%; width: 36%; height: 46%; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 50%, #0a0a1a 100%); border-radius: 2%; box-shadow: inset 0 0 30px rgba(0,0,40,.3); animation: nabs-pane 6s ease-in-out infinite alternate;
}
.scn-natacha-absent .chair {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; transform: rotate(2deg); animation: nabs-chair 10s ease-in-out infinite;
}
.scn-natacha-absent .book {
  position: absolute; bottom: 36%; left: 36%; width: 6%; height: 4%; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 100%); border-radius: 10%; transform: rotate(-5deg); animation: nabs-book 12s ease-in-out infinite;
}
.scn-natacha-absent .shadow-chair {
  position: absolute; bottom: 20%; left: 34%; width: 14%; height: 6%; background: rgba(0,0,0,.4); filter: blur(6px); border-radius: 50%; animation: nabs-shadow 10s ease-in-out infinite;
}
.scn-natacha-absent .candle {
  position: absolute; bottom: 40%; left: 60%; width: 2%; height: 8%; background: linear-gradient(180deg, #d0a060 0%, #806040 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 10px rgba(200,160,100,.3);
}
.scn-natacha-absent .glow {
  position: absolute; bottom: 44%; left: 60%; width: 6%; height: 6%; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 70%); border-radius: 50%; animation: nabs-glow 3s ease-in-out infinite alternate;
}
@keyframes nabs-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nabs-pane { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes nabs-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes nabs-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes nabs-shadow { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.05); opacity:.6; } 100% { transform: scale(1); opacity:.5; } }
@keyframes nabs-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.7; transform: scale(1); } }

/* investigation-of-bouquet */
.scn-investigation-of-bouquet {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0a0a15 100%), radial-gradient(ellipse at 50% 80%, #1a1a30 0%, transparent 80%);
}
.scn-investigation-of-bouquet .tabletop {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5);
}
.scn-investigation-of-bouquet .vase {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 16%; transform: translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.scn-investigation-of-bouquet .flowers.stem {
  position: absolute; bottom: 48%; left: 50%; width: 1%; height: 18%; transform: translateX(-50%); background: linear-gradient(180deg, #2a5a1a 0%, #1a3a0a 100%); border-radius: 50% 50% 0 0; animation: invb-stem 8s ease-in-out infinite alternate;
}
.scn-investigation-of-bouquet .flowers.petal-left {
  position: absolute; bottom: 60%; left: 46%; width: 4%; height: 6%; background: radial-gradient(circle, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 0 50%; transform: rotate(30deg); animation: invb-petal 6s ease-in-out infinite;
}
.scn-investigation-of-bouquet .flowers.petal-right {
  position: absolute; bottom: 60%; left: 54%; width: 4%; height: 6%; background: radial-gradient(circle, #b87878 0%, #8a5050 100%); border-radius: 50% 50% 50% 0; transform: rotate(-30deg); animation: invb-petal 6s ease-in-out infinite 2s;
}
.scn-investigation-of-bouquet .flowers.leaf {
  position: absolute; bottom: 52%; left: 44%; width: 4%; height: 2%; background: #2a6a1a; border-radius: 0 50% 50% 0; transform: rotate(-20deg); animation: invb-leaf 10s ease-in-out infinite;
}
.scn-investigation-of-bouquet .magnifier {
  position: absolute; bottom: 38%; left: 70%; width: 6%; height: 6%; background: radial-gradient(circle, #a08060 0%, #605040 70%); border-radius: 50%; border: 2px solid #705040; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: invb-mag 12s ease-in-out infinite;
}
.scn-investigation-of-bouquet .shadow-vase {
  position: absolute; bottom: 32%; left: 48%; width: 12%; height: 4%; background: rgba(0,0,0,.5); filter: blur(4px); border-radius: 50%; animation: invb-shadow 8s ease-in-out infinite;
}
@keyframes invb-stem { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes invb-petal { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes invb-leaf { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes invb-mag { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes invb-shadow { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.05); opacity:.6; } 100% { transform: scale(1); opacity:.5; } }

/* three-police-night */
.scn-three-police-night {
  background: linear-gradient(180deg, #0a0a2a 0%, #12123a 40%, #1a1a4e 100%), radial-gradient(ellipse at 50% 100%, #1a1a4e 0%, transparent 70%);
}
.scn-three-police-night .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #151540 100%); animation: thrp-sky 15s ease-in-out infinite alternate;
}
.scn-three-police-night .villa-wall {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 30px rgba(0,0,0,.5);
}
.scn-three-police-night .villa-roof {
  position: absolute; bottom: 60%; left: 18%; right: 18%; height: 15%; background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: thrp-roof 20s ease-in-out infinite;
}
.scn-three-police-night .window-lit {
  position: absolute; bottom: 40%; left: 35%; width: 10%; height: 15%; background: radial-gradient(circle at 50% 50%, #f0c068 0%, #806030 70%); border-radius: 5%; box-shadow: 0 0 30px 10px rgba(240,192,104,.5); animation: thrp-window 4s ease-in-out infinite alternate;
}
.scn-three-police-night .agent.agent-1 {
  position: absolute; bottom: 20%; left: 25%; width: 6%; height: 16%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(.95); animation: thrp-agent1 6s ease-in-out infinite;
}
.scn-three-police-night .agent.agent-2 {
  position: absolute; bottom: 20%; left: 45%; width: 6%; height: 16%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1); animation: thrp-agent2 8s ease-in-out infinite 1s;
}
.scn-three-police-night .agent.agent-3 {
  position: absolute; bottom: 20%; left: 62%; width: 6%; height: 16%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: thrp-agent3 7s ease-in-out infinite 2s;
}
.scn-three-police-night .veranda {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 12%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: thrp-veranda 12s ease-in-out infinite;
}
@keyframes thrp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes thrp-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes thrp-window { 0% { opacity:.8; box-shadow: 0 0 20px 5px rgba(240,192,104,.4); } 50% { opacity:1; box-shadow: 0 0 40px 10px rgba(240,192,104,.6); } 100% { opacity:.85; box-shadow: 0 0 25px 8px rgba(240,192,104,.45); } }
@keyframes thrp-agent1 { 0% { transform: scale(.95) translateX(0) rotate(0deg); } 50% { transform: scale(.95) translateX(3px) rotate(2deg); } 100% { transform: scale(.95) translateX(0) rotate(0deg); } }
@keyframes thrp-agent2 { 0% { transform: scale(1) translateX(0) rotate(0deg); } 50% { transform: scale(1) translateX(-2px) rotate(-1deg); } 100% { transform: scale(1) translateX(0) rotate(0deg); } }
@keyframes thrp-agent3 { 0% { transform: scale(1.1) translateX(0) rotate(0deg); } 50% { transform: scale(1.1) translateX(4px) rotate(1.5deg); } 100% { transform: scale(1.1) translateX(0) rotate(0deg); } }
@keyframes thrp-veranda { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* matrena-carries-general */
.scn-matrena-carries-general {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #1a1a3e 100%), radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 60%);
}
.scn-matrena-carries-general .stair-wall {
  position: absolute; top: 0; bottom: 0; left: 20%; right: 20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: matc-wall 10s ease-in-out infinite alternate;
}
.scn-matrena-carries-general .steps {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 80%; background: repeating-linear-gradient(0deg, #3a3a4a 0px, #3a3a4a 8px, #2a2a3a 8px, #2a2a3a 16px); animation: matc-steps 12s linear infinite;
}
.scn-matrena-carries-general .railing {
  position: absolute; top: 10%; left: 22%; width: 2%; height: 90%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10%; animation: matc-rail 8s ease-in-out infinite alternate;
}
.scn-matrena-carries-general .figure-porter {
  position: absolute; bottom: 50%; left: 45%; width: 10%; height: 18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: matc-porter 4s ease-in-out infinite;
}
.scn-matrena-carries-general .figure-carried {
  position: absolute; bottom: 56%; left: 48%; width: 8%; height: 14%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; transform: rotate(-10deg); animation: matc-carried 4s ease-in-out infinite 0.5s;
}
.scn-matrena-carries-general .shadow-figures {
  position: absolute; bottom: 48%; left: 44%; width: 14%; height: 6%; background: rgba(0,0,0,.4); filter: blur(8px); border-radius: 50%; animation: matc-shadow 4s ease-in-out infinite;
}
.scn-matrena-carries-general .lantern {
  position: absolute; bottom: 70%; left: 30%; width: 3%; height: 5%; background: radial-gradient(circle, #f0c068 0%, #b08040 60%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(240,192,104,.6); animation: matc-lantern 3s ease-in-out infinite alternate;
}
.scn-matrena-carries-general .light-shaft {
  position: absolute; top: 0; left: 28%; width: 4%; height: 100%; background: linear-gradient(180deg, rgba(240,192,104,.15) 0%, transparent 80%); animation: matc-shaft 6s ease-in-out infinite;
}
@keyframes matc-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes matc-steps { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }
@keyframes matc-rail { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes matc-porter { 0% { transform: rotate(5deg) translateX(0) translateY(0); } 50% { transform: rotate(7deg) translateX(2px) translateY(-3px); } 100% { transform: rotate(5deg) translateX(0) translateY(0); } }
@keyframes matc-carried { 0% { transform: rotate(-10deg) translateX(0) translateY(0); } 50% { transform: rotate(-8deg) translateX(-1px) translateY(-2px); } 100% { transform: rotate(-10deg) translateX(0) translateY(0); } }
@keyframes matc-shadow { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.1); opacity:.6; } 100% { transform: scale(1); opacity:.4; } }
@keyframes matc-lantern { 0% { opacity:.7; transform: scale(1) rotate(-3deg); } 50% { opacity:1; transform: scale(1.1) rotate(3deg); } 100% { opacity:.8; transform: scale(1) rotate(-3deg); } }
@keyframes matc-shaft { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.3; } }

.scn-guest-of-tsar {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b99a 40%, #b8906a 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,255,200,.3) 0%, transparent 60%);
}
.scn-guest-of-tsar .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(100,70,40,0.4) 0%, transparent 60%);
}
.scn-guest-of-tsar .sun-beam {
  position: absolute; top: 5%; left: 30%; width: 30%; height: 90%;
  background: linear-gradient(135deg, rgba(255,255,180,0.3) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: gt-beam 6s ease-in-out infinite alternate;
}
.scn-guest-of-tsar .window {
  position: absolute; top: 8%; left: 25%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #b89870 100%);
  border-radius: 4% / 6%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2), 0 8px 20px rgba(0,0,0,0.1);
}
.scn-guest-of-tsar .figure-left {
  position: absolute; bottom: 12%; left: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-shadow-fig 4s ease-in-out infinite;
}
.scn-guest-of-tsar .figure-right {
  position: absolute; bottom: 12%; right: 22%;
  width: 45px; height: 85px;
  background: linear-gradient(180deg, #3a2415 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gt-fig-turn 5s ease-in-out infinite alternate;
}
.scn-guest-of-tsar .shadow-line {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 10%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.3) 70%, transparent 90%);
  filter: blur(2px);
  animation: gt-shadow-line 3s ease-in-out infinite alternate;
}
.scn-guest-of-tsar .dust {
  position: absolute; top: 30%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: gt-dust 8s linear infinite;
}
@keyframes gt-beam { 0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); } 50% { opacity: 0.6; transform: skewX(-10deg) translateX(5px); } 100% { opacity: 0.4; transform: skewX(-10deg) translateX(-3px); } }
@keyframes gt-shadow-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gt-fig-turn { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(0.98); } }
@keyframes gt-shadow-line { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.5); } 100% { opacity: 0.5; transform: scaleY(1); } }
@keyframes gt-dust { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 0.5; } 100% { transform: translateY(-80px) scale(2); opacity: 0; } }

.scn-koupriane-yields {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b08a 40%, #a88868 100%),
              radial-gradient(circle at 50% 70%, rgba(255,200,150,0.2) 0%, transparent 70%);
}
.scn-koupriane-yields .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(80,60,40,0.3) 0%, transparent 60%);
}
.scn-koupriane-yields .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-koupriane-yields .figure-center {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 55px; height: 90px;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0501 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ky-fig-center 5s ease-in-out infinite alternate;
}
.scn-koupriane-yields .figure-left {
  position: absolute; bottom: 14%; left: 15%;
  width: 48px; height: 82px;
  background: linear-gradient(180deg, #3a2415 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ky-fig-left 4s ease-in-out infinite alternate;
}
.scn-koupriane-yields .figure-right {
  position: absolute; bottom: 14%; right: 15%;
  width: 50px; height: 85px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ky-fig-right 6s ease-in-out infinite alternate;
}
.scn-koupriane-yields .lamp {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #f0d080 0%, #c09050 100%);
  border-radius: 30% / 40%;
  box-shadow: 0 0 40px 10px rgba(240,208,128,0.4), 0 0 80px 20px rgba(240,208,128,0.2);
  animation: ky-lamp 3s ease-in-out infinite alternate;
}
.scn-koupriane-yields .shadow-sharp {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 5px;
  background: linear-gradient(90deg, transparent 10%, rgba(0,0,0,0.4) 30%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0.4) 70%, transparent 90%);
  filter: blur(1px);
  animation: ky-shadow 2s ease-in-out infinite alternate;
}
@keyframes ky-fig-center { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ky-fig-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg); } }
@keyframes ky-fig-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(2deg); } }
@keyframes ky-lamp { 0% { box-shadow: 0 0 30px 8px rgba(240,208,128,0.3); } 50% { box-shadow: 0 0 60px 15px rgba(240,208,128,0.6); } 100% { box-shadow: 0 0 40px 10px rgba(240,208,128,0.4); } }
@keyframes ky-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.8); } 100% { opacity: 0.5; transform: scaleY(1); } }

.scn-promenade-ends {
  background: linear-gradient(180deg, #b8d8f0 0%, #d8e8f8 30%, #e8f0f8 60%, #c0d0e0 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,240,200,0.5) 0%, transparent 60%);
}
.scn-promenade-ends .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,220,0.2) 0%, transparent 60%);
  animation: pe-sky 20s ease-in-out infinite alternate;
}
.scn-promenade-ends .sun {
  position: absolute; top: 5%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,240,200,0.3);
  animation: pe-sun 30s linear infinite;
}
.scn-promenade-ends .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: pe-path 15s ease-in-out infinite alternate;
}
.scn-promenade-ends .trees-back {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  filter: blur(4px);
  animation: pe-trees-b 40s ease-in-out infinite alternate;
}
.scn-promenade-ends .trees-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: pe-trees-f 25s ease-in-out infinite alternate;
}
.scn-promenade-ends .villa {
  position: absolute; bottom: 28%; left: 60%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #d0a878 0%, #b08858 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: pe-villa 12s ease-in-out infinite;
}
.scn-promenade-ends .figure-walk {
  position: absolute; bottom: 14%; left: 30%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pe-walk 6s ease-in-out infinite;
}
@keyframes pe-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pe-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes pe-path { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes pe-trees-b { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-4px) scale(1); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes pe-trees-f { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes pe-villa { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes pe-walk { 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); } }

.scn-return-to-datcha {
  background: linear-gradient(180deg, #c8d8e0 0%, #a8b8c8 40%, #8898a8 100%),
              radial-gradient(ellipse at 30% 40%, rgba(200,210,220,0.3) 0%, transparent 60%);
}
.scn-return-to-datcha .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-return-to-datcha .carriage-left {
  position: absolute; bottom: 30%; left: 10%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: rd-carriage-l 18s ease-in-out infinite alternate;
}
.scn-return-to-datcha .carriage-right {
  position: absolute; bottom: 30%; right: 8%; width: 110px; height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: rd-carriage-r 18s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-return-to-datcha .trees-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  filter: blur(5px);
  animation: rd-trees-b 30s ease-in-out infinite alternate;
}
.scn-return-to-datcha .trees-front {
  position: absolute; bottom: 38%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #2a4a1a 0%, #0a2a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.4);
  animation: rd-trees-f 25s ease-in-out infinite alternate;
  animation-delay: -10s;
}
.scn-return-to-datcha .figure-search {
  position: absolute; bottom: 30%; left: 45%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0501 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rd-fig-search 5s ease-in-out infinite;
}
.scn-return-to-datcha .shadow-move {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,0.5) 40%, rgba(0,0,0,0.7) 50%, rgba(0,0,0,0.5) 60%, transparent 80%);
  filter: blur(2px);
  animation: rd-shadow 4s ease-in-out infinite alternate;
}
@keyframes rd-carriage-l { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rd-carriage-r { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(1px) rotate(1deg); } }
@keyframes rd-trees-b { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes rd-trees-f { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes rd-fig-search { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(3deg); } 50% { transform: translateX(12px) rotate(-2deg); } 75% { transform: translateX(18px) rotate(1deg); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes rd-shadow { 0% { opacity: 0.3; transform: scaleX(1) translateX(0); } 50% { opacity: 0.7; transform: scaleX(1.3) translateX(5px); } 100% { opacity: 0.5; transform: scaleX(1) translateX(-3px); } }

/* scene poison-on-grapes */
.scn-poison-on-grapes { background: linear-gradient(180deg, #1b1b3a 0%, #3a2b4e 30%, #5a4a6e 60%, #8a7a9e 100%), radial-gradient(ellipse at 30% 100%, #3a2b4e 0%, transparent 70%); }
.scn-poison-on-grapes .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: pgn-sky 12s ease-in-out infinite alternate; }
.scn-poison-on-grapes .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e4e 0%, #1a1a2e 100%); opacity:0.4; }
.scn-poison-on-grapes .table { position:absolute; bottom:16%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #6e5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-poison-on-grapes .goblet { position:absolute; bottom:24%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(255,200,100,0.3); animation: pgn-goblet 4s ease-in-out infinite alternate; }
.scn-poison-on-grapes .grapes { position:absolute; bottom:22%; left:48%; width:50px; height:40px; background: radial-gradient(circle at 40% 40%, #4a3a6e 0%, #2a1a2e 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); box-shadow: 0 0 10px 2px rgba(0,0,0,0.5); animation: pgn-grapes 6s ease-in-out infinite; }
.scn-poison-on-grapes .droplet { position:absolute; bottom:32%; left:44%; width:6px; height:10px; background: radial-gradient(circle at top, #c0e0e0 0%, #a0c0c0 80%); border-radius:50% 50% 30% 30%; animation: pgn-droplet 3s ease-in infinite; }
.scn-poison-on-grapes .figure { position:absolute; bottom:20%; left:60%; width:50px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pgn-figure 8s ease-in-out infinite; }
@keyframes pgn-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes pgn-goblet { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 4px rgba(255,200,100,0.3); } 50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 30px 6px rgba(255,200,100,0.5); } 100% { transform: translateY(0) scale(1); } }
@keyframes pgn-grapes { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(5deg) scale(1.03); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes pgn-droplet { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 90% { transform: translateY(30px) rotate(20deg); opacity:0.7; } 100% { transform: translateY(32px) rotate(25deg); opacity:0; } }
@keyframes pgn-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(-2px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-2px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }

/* scene base-deeds-nihilism */
.scn-base-deeds-nihilism { background: linear-gradient(180deg, #1a1a3a 0%, #2e2e5a 40%, #4a3a5e 70%, #6a5a7e 100%), radial-gradient(ellipse at 70% 20%, #4a3a5e 0%, transparent 60%); }
.scn-base-deeds-nihilism .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: bdn-sky 15s linear infinite alternate; }
.scn-base-deeds-nihilism .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; }
.scn-base-deeds-nihilism .body { position:absolute; bottom:20%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bdn-body 6s ease-in-out infinite; }
.scn-base-deeds-nihilism .arms { position:absolute; bottom:35%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: bdn-arms 3s ease-in-out infinite alternate; }
.scn-base-deeds-nihilism .shadow { position:absolute; bottom:18%; left:38%; width:70px; height:20px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 70%); animation: bdn-shadow 6s ease-in-out infinite; }
.scn-base-deeds-nihilism .window { position:absolute; top:15%; right:15%; width:40px; height:50px; background: radial-gradient(circle at center, #4a3a5e 0%, #2a2a4e 70%); border:2px solid #2a2a3a; border-radius:2px; box-shadow: inset 0 0 10px rgba(255,255,255,0.2); animation: bdn-window 8s ease-in-out infinite alternate; }
@keyframes bdn-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes bdn-body { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bdn-arms { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(12px) translateY(-8px) rotate(15deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes bdn-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3) scaleY(0.8); opacity:0.8; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes bdn-window { 0% { opacity:0.6; box-shadow: inset 0 0 10px rgba(255,255,255,0.2); } 50% { opacity:0.9; box-shadow: inset 0 0 20px rgba(255,255,255,0.4); } 100% { opacity:0.6; box-shadow: inset 0 0 10px rgba(255,255,255,0.2); } }

/* scene bring-papers-here */
.scn-bring-papers-here { background: linear-gradient(180deg, #1e1e3e 0%, #3a3a5a 40%, #5a4a6e 70%, #7a6a8e 100%), radial-gradient(ellipse at 50% 30%, #5a4a6e 0%, transparent 70%); }
.scn-bring-papers-here .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e4e 0%, #1a1a2e 100%); opacity:0.3; }
.scn-bring-papers-here .desk { position:absolute; bottom:25%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #6e5a4a 0%, #4a3a2a 100%); border-radius:6px 6px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-bring-papers-here .papers { position:absolute; bottom:35%; left:25%; width:60px; height:40px; background: linear-gradient(135deg, #c8b8a8 0%, #a89888 50%, #b8a898 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: bph-papers 10s ease-in-out infinite alternate; }
.scn-bring-papers-here .hand { position:absolute; bottom:38%; left:42%; width:18px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bph-hand 4s ease-in-out infinite alternate; }
.scn-bring-papers-here .lamp { position:absolute; top:20%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(255,220,180,0.4); animation: bph-lamp 6s ease-in-out infinite alternate; }
.scn-bring-papers-here .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:20% 20% 0 0; }
@keyframes bph-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes bph-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(6px) translateY(-2px) rotate(8deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes bph-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,220,180,0.4); } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(255,240,200,0.6); } 100% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(255,220,180,0.4); } }

/* scene everything-carried-away */
.scn-everything-carried-away { background: linear-gradient(180deg, #1a1a3a 0%, #2e2e4e 40%, #4a3a5e 70%, #6a5a7e 100%), radial-gradient(ellipse at 80% 50%, #4a3a5e 0%, transparent 60%); }
.scn-everything-carried-away .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 0 0; }
.scn-everything-carried-away .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e4e 0%, #1a1a3e 100%); opacity:0.6; }
.scn-everything-carried-away .figure { position:absolute; bottom:22%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: eca-figure 12s ease-in-out infinite; }
.scn-everything-carried-away .doorway { position:absolute; top:15%; right:20%; width:50px; height:70px; border:2px solid #2a2a3a; border-radius:2px; background: linear-gradient(180deg, #1a1a3a 0%, #2e2e4e 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: eca-door 10s ease-in-out infinite alternate; }
.scn-everything-carried-away .dust-1 { position:absolute; bottom:40%; left:30%; width:6px; height:6px; background: rgba(200,200,220,0.3); border-radius:50%; filter: blur(2px); animation: eca-dust1 15s linear infinite; }
.scn-everything-carried-away .dust-2 { position:absolute; bottom:50%; left:50%; width:4px; height:4px; background: rgba(200,200,220,0.4); border-radius:50%; filter: blur(1px); animation: eca-dust2 20s linear infinite reverse; }
.scn-everything-carried-away .luminescence { position:absolute; top:40%; left:30%; width:100px; height:100px; background: radial-gradient(circle, rgba(220,220,255,0.05) 0%, transparent 70%); animation: eca-lum 8s ease-in-out infinite alternate; }
@keyframes eca-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-4px) rotate(2deg); } 70% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eca-door { 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 30px rgba(0,0,0,0.3); } 100% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes eca-dust1 { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3; } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity:0.8; } 100% { transform: translateY(-40px) translateX(20px) scale(1); opacity:0; } }
@keyframes eca-dust2 { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.4; } 50% { transform: translateY(-15px) translateX(-10px) scale(1.2); opacity:0.7; } 100% { transform: translateY(-30px) translateX(-20px) scale(1); opacity:0; } }
@keyframes eca-lum { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* scene: hypothesis-proof (calm, bright interior) */
.scn-hypothesis-proof {
  background: linear-gradient(180deg, #f5ebd0 0%, #e8dcc4 40%, #d4c4a8 100%),
              radial-gradient(ellipse at 70% 20%, #fff8ea 0%, transparent 60%);
}
.scn-hypothesis-proof .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e4cc 0%, #e3d3b8 100%);
  box-shadow: inset 0 0 80px rgba(180,140,90,.3);
}
.scn-hypothesis-proof .window {
  position: absolute; top: 8%; left: 15%; width: 45%; height: 55%;
  background: radial-gradient(ellipse at center, #b8d4e8 0%, #8cb0cc 100%);
  border: 4px solid #c1a67e; border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(200,200,200,.5), 0 8px 20px rgba(0,0,0,.15);
  animation: hp-sky 20s ease-in-out infinite alternate;
}
.scn-hypothesis-proof .desk {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 35%;
  background: linear-gradient(180deg, #8b6f4e 0%, #6d553a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3);
}
.scn-hypothesis-proof .papers {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #faf0dc 0%, #e6d6b8 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.2);
  animation: hp-papers 6s ease-in-out infinite;
}
.scn-hypothesis-proof .lamp {
  position: absolute; bottom: 36%; left: 65%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #c8a878 0%, #a0805a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(255,200,100,.5);
}
.scn-hypothesis-proof .tsar {
  position: absolute; bottom: 22%; left: 18%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2e2a24 0%, #14120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: hp-figures 8s ease-in-out infinite;
}
.scn-hypothesis-proof .rouletabille {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1f1c18 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: hp-figures 8s ease-in-out infinite reverse;
}
.scn-hypothesis-proof .dust-particle {
  position: absolute; top: 30%; left: 70%; width: 6px; height: 6px;
  background: rgba(255,240,200,.7); border-radius: 50%;
  filter: blur(2px); animation: hp-dust 12s linear infinite;
}
@keyframes hp-sky {
  0% { background: radial-gradient(ellipse at center, #b8d4e8 0%, #8cb0cc 100%); }
  50% { background: radial-gradient(ellipse at 30% 40%, #cce0f0 0%, #a0bcd4 100%); }
  100% { background: radial-gradient(ellipse at 70% 60%, #b0c8dc 0%, #889bb0 100%); }
}
@keyframes hp-papers {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes hp-figures {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes hp-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.2; }
  25% { transform: translate(20px,-10px) scale(1.5); opacity: 0.8; }
  50% { transform: translate(40px,-20px) scale(2); opacity: 0.3; }
  75% { transform: translate(60px,-15px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(80px,-30px) scale(1); opacity: 0.1; }
}

/* scene: time-proof-watch (tense, bright interior) */
.scn-time-proof-watch {
  background: linear-gradient(135deg, #e8e0cc 0%, #d4c8b0 50%, #bfb098 100%),
              radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 70%);
}
.scn-time-proof-watch .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #dad0bc 0%, #c4b6a0 100%);
  box-shadow: inset 0 0 60px rgba(80,60,40,.2);
}
.scn-time-proof-watch .table {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 25%;
  background: linear-gradient(180deg, #7a6248 0%, #5c4732 100%);
  border-radius: 10% 10% 0 0;
}
.scn-time-proof-watch .watch-face {
  position: absolute; bottom: 28%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 45%, #f2ebd6 0%, #c8bba5 70%, #a89980 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,.4), inset 0 0 30px rgba(0,0,0,.15);
  animation: tw-breathe 5s ease-in-out infinite;
}
.scn-time-proof-watch .watch-hand-sec {
  position: absolute; bottom: 48%; left: 50%; width: 2%; height: 30%;
  transform-origin: bottom center;
  background: #1a1a1a;
  border-radius: 2px 2px 0 0;
  animation: tw-sec 5s linear infinite;
}
.scn-time-proof-watch .watch-hand-min {
  position: absolute; bottom: 48%; left: 50%; width: 3%; height: 22%;
  transform-origin: bottom center;
  background: #2e2e2e;
  border-radius: 2px 2px 0 0;
  animation: tw-min 30s linear infinite;
}
.scn-time-proof-watch .watch-crown {
  position: absolute; top: 28%; left: 50%; width: 6%; height: 4%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 20% 20% 0 0;
}
.scn-time-proof-watch .shadow-stripes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 20px, rgba(0,0,0,.05) 20px, rgba(0,0,0,.05) 22px);
  pointer-events: none;
}
.scn-time-proof-watch .proof-text-icon {
  position: absolute; bottom: 15%; left: 20%; width: 10%; height: 8%;
  background: #c8553d; border-radius: 2px; box-shadow: 0 0 8px rgba(200,85,61,.4);
  animation: tw-icon 2s ease-in-out infinite;
}
@keyframes tw-breathe {
  0%,100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes tw-sec {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes tw-min {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes tw-icon {
  0%,100% { box-shadow: 0 0 8px #c8553d; transform: scale(1); }
  50% { box-shadow: 0 0 16px #c8553d; transform: scale(1.1); }
}

/* scene: item-watch-striking (tense, bright interior) */
.scn-item-watch-striking {
  background: linear-gradient(180deg, #e4dcc8 0%, #d4c4ac 60%, #c0ae94 100%),
              radial-gradient(ellipse at 60% 50%, #fffbe8 0%, transparent 70%);
}
.scn-item-watch-striking .bg-hard {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0d6c0 0%, #cec0a8 100%);
  box-shadow: inset 0 0 50px rgba(40,30,20,.15);
}
.scn-item-watch-striking .watch-dial {
  position: absolute; top: 18%; left: 50%; width: 45%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 48%, #f2ebd6 0%, #c8bba5 70%, #a89980 100%);
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3), inset 0 0 40px rgba(0,0,0,.1);
  overflow: hidden;
}
.scn-item-watch-striking .watch-hour-marks {
  position: absolute; top: 18%; left: 50%; width: 45%; height: 50%;
  transform: translateX(-50%) rotate(0deg);
  background: repeating-conic-gradient(#2e2e2e 0% 1%, transparent 1% 8.33%);
  border-radius: 50%; opacity: 0.7;
  animation: ws-rotate 60s linear infinite;
}
.scn-item-watch-striking .watch-min-marks {
  position: absolute; top: 18%; left: 50%; width: 45%; height: 50%;
  transform: translateX(-50%) rotate(0deg);
  background: repeating-conic-gradient(#5a4e3e 0% 0.5%, transparent 0.5% 1.67%);
  border-radius: 50%; opacity: 0.5;
  animation: ws-rotate 10s linear infinite;
}
.scn-item-watch-striking .hand-hour {
  position: absolute; top: 38%; left: 50%; width: 3%; height: 20%;
  transform-origin: bottom center;
  background: #1a1a1a; border-radius: 2px 2px 0 0;
  transform: translateX(-50%) rotate(-45deg);
  animation: ws-hour 12s linear infinite;
}
.scn-item-watch-striking .hand-minute {
  position: absolute; top: 38%; left: 50%; width: 2%; height: 28%;
  transform-origin: bottom center;
  background: #2e2e2e; border-radius: 2px 2px 0 0;
  transform: translateX(-50%) rotate(20deg);
  animation: ws-minute 2s linear infinite;
}
.scn-item-watch-striking .alarm-hammer {
  position: absolute; top: 18%; left: 50%; width: 8%; height: 18%;
  transform: translateX(-50%) rotate(0deg);
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,.2);
  animation: ws-hammer 0.5s ease-in-out infinite alternate;
}
.scn-item-watch-striking .strike-glow {
  position: absolute; top: 15%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd060 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.7;
  animation: ws-glow 0.5s ease-in-out infinite alternate;
}
@keyframes ws-rotate {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes ws-hour {
  0% { transform: translateX(-50%) rotate(-45deg); }
  100% { transform: translateX(-50%) rotate(315deg); }
}
@keyframes ws-minute {
  0% { transform: translateX(-50%) rotate(20deg); }
  100% { transform: translateX(-50%) rotate(380deg); }
}
@keyframes ws-hammer {
  0% { transform: translateX(-50%) rotate(-5deg); }
  100% { transform: translateX(-50%) rotate(5deg); }
}
@keyframes ws-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* scene: experiment-confirmation (calm, bright interior looking out) */
.scn-experiment-confirmation {
  background: linear-gradient(180deg, #e3dcc8 0%, #d4c8b0 50%, #c4b49c 100%),
              radial-gradient(ellipse at 80% 30%, #fff8ea 0%, transparent 60%);
}
.scn-experiment-confirmation .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 100%);
  box-shadow: inset 0 0 60px rgba(120,80,40,.15);
}
.scn-experiment-confirmation .window-frame {
  position: absolute; top: 10%; left: 15%; width: 60%; height: 70%;
  border: 12px solid #6d5a3e;
  border-radius: 6px;
  box-shadow: inset 0 0 0px, 0 8px 30px rgba(0,0,0,.2);
}
.scn-experiment-confirmation .garden-bg {
  position: absolute; top: 12%; left: 17%; width: 58%; height: 68%;
  background: linear-gradient(180deg, #b8d4c4 0%, #8ca89c 60%, #708880 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.2);
  animation: ec-garden 30s ease-in-out infinite alternate;
}
.scn-experiment-confirmation .path {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform: skewX(-10deg);
}
.scn-experiment-confirmation .tree-left {
  position: absolute; top: 14%; left: 18%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #4a6b3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 6px 0 12px rgba(0,0,0,.2);
  animation: ec-trees 15s ease-in-out infinite alternate;
}
.scn-experiment-confirmation .tree-right {
  position: absolute; top: 18%; right: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: -4px 0 8px rgba(0,0,0,.15);
  animation: ec-trees 15s ease-in-out infinite alternate-reverse;
}
.scn-experiment-confirmation .figure-outside {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1e1c18 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ec-figure 8s ease-in-out infinite;
}
.scn-experiment-confirmation .sunbeam {
  position: absolute; top: 12%; left: 30%; width: 20%; height: 55%;
  background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, transparent 100%);
  border-radius: 60% 40% 0 0 / 20% 30% 0 0;
  transform: rotate(15deg);
  filter: blur(4px);
  pointer-events: none;
  animation: ec-beam 12s ease-in-out infinite alternate;
}
@keyframes ec-garden {
  0% { background: linear-gradient(180deg, #b8d4c4 0%, #8ca89c 60%, #708880 100%); }
  100% { background: linear-gradient(180deg, #c0dcc8 0%, #98b4a4 60%, #7a9488 100%); }
}
@keyframes ec-trees {
  0% { transform: translateY(0) scaleY(1); }
  100% { transform: translateY(-4px) scaleY(1.02); }
}
@keyframes ec-figure {
  0%,100% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(6px) rotate(1deg); }
}
@keyframes ec-beam {
  0% { opacity: 0.4; transform: rotate(15deg) scaleX(0.9); }
  100% { opacity: 0.8; transform: rotate(20deg) scaleX(1.1); }
}

/* Scene 1: execution-credit-claim */
.scn-execution-credit-claim { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%); }
.scn-execution-credit-claim .spotlight { position:absolute; top:10%; left:35%; width:30%; height:50%; background: radial-gradient(ellipse at center, rgba(200,180,140,0.3) 0%, transparent 70%); animation: ecc-spot 4s ease-in-out infinite alternate; }
.scn-execution-credit-claim .figure-silhouette { position:absolute; bottom:30%; left:48%; width:60px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #0b0b1a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ecc-fig 3s ease-in-out infinite; }
.scn-execution-credit-claim .podium { position:absolute; bottom:20%; left:48%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -10px 20px rgba(0,0,0,0.6); }
.scn-execution-credit-claim .audience-left { position:absolute; bottom:18%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, transparent 0%, #0f0f1a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; filter: blur(6px); animation: ecc-aud 8s ease-in-out infinite alternate; }
.scn-execution-credit-claim .audience-right { position:absolute; bottom:18%; right:5%; width:30%; height:50%; background: linear-gradient(180deg, transparent 0%, #0f0f1a 100%); border-radius: 70% 30% 0 0 / 80% 50% 0 0; filter: blur(5px); animation: ecc-aud 8s ease-in-out infinite alternate-reverse; }
.scn-execution-credit-claim .voice-wave { position:absolute; top:30%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(180,160,120,0.15) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: ecc-wave 2.5s ease-in-out infinite; }
@keyframes ecc-spot { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes ecc-fig { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-48%) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ecc-aud { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-3px); } 100% { opacity:0.4; transform: translateY(2px); } }
@keyframes ecc-wave { 0% { transform: scale(1) rotate(0deg); opacity:0; } 50% { transform: scale(1.3) rotate(15deg); opacity:0.4; } 100% { transform: scale(1) rotate(0deg); opacity:0; } }

/* Scene 2: execution-neva-final-warning */
.scn-execution-neva-final-warning { background: linear-gradient(180deg, #0b1420 0%, #14253d 40%, #0e1e30 100%), radial-gradient(ellipse at 50% 80%, #1c2e42 0%, transparent 70%); }
.scn-execution-neva-final-warning .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1a2a3e 0%, transparent 100%); animation: enf-sky 12s ease-in-out infinite alternate; }
.scn-execution-neva-final-warning .river { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #14253d 0%, #0e1e30 100%); border-radius: 0 0 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: enf-river 15s ease-in-out infinite alternate; }
.scn-execution-neva-final-warning .figure-tall { position:absolute; bottom:45%; left:35%; width:50px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #0b0f18 0%, #141e2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: enf-tall 6s ease-in-out infinite; }
.scn-execution-neva-final-warning .figure-short { position:absolute; bottom:42%; left:60%; width:45px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0e16 0%, #121c28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: enf-short 7s ease-in-out infinite alternate; }
.scn-execution-neva-final-warning .lamp-post { position:absolute; bottom:50%; left:20%; width:8px; height:100px; background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%); border-radius: 4px; transform-origin: bottom; animation: enf-lamp 5s ease-in-out infinite; }
.scn-execution-neva-final-warning .lamp-glow { position:absolute; bottom:45%; left:16%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,180,120,0.5) 0%, transparent 60%); border-radius:50%; filter: blur(8px); animation: enf-glow 3s ease-in-out infinite alternate; }
.scn-execution-neva-final-warning .ripple { position:absolute; bottom:15%; left:50%; width:80px; height:10px; background: radial-gradient(ellipse, rgba(100,130,160,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: enf-ripple 4s ease-in-out infinite; }
@keyframes enf-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes enf-river { 0% { background-position: 0 0; background-size: 100% 100%; } 50% { background-position: 10% 5%; background-size: 110% 110%; } 100% { background-position: -5% -2%; background-size: 105% 105%; } }
@keyframes enf-tall { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(1deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes enf-short { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-55%) scaleY(1.03) rotate(0deg); } 100% { transform: translateX(-50%) scaleY(1) rotate(-1deg); } }
@keyframes enf-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(-1deg); } }
@keyframes enf-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes enf-ripple { 0% { transform: scaleX(1) translateX(0); opacity:0.3; } 50% { transform: scaleX(1.5) translateX(10px); opacity:0.6; } 100% { transform: scaleX(1) translateX(0); opacity:0.2; } }

/* Scene 3: execution-stool-discourse */
.scn-execution-stool-discourse { background: linear-gradient(180deg, #151515 0%, #1f1f1f 30%, #0a0a0a 100%), radial-gradient(ellipse at 50% 40%, #1a1a1a 0%, transparent 70%); }
.scn-execution-stool-discourse .stool-base { position:absolute; bottom:15%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3430 0%, #2a2420 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); }
.scn-execution-stool-discourse .stool-leg-a { position:absolute; bottom:8%; left:44%; width:12px; height:60px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 4px; transform-origin: top center; animation: esd-leg 3s ease-in-out infinite; }
.scn-execution-stool-discourse .stool-leg-b { position:absolute; bottom:8%; right:44%; width:12px; height:60px; background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%); border-radius: 4px; transform-origin: top center; animation: esd-leg 3s ease-in-out infinite alternate-reverse; }
.scn-execution-stool-discourse .figure-on-stool { position:absolute; bottom:40%; left:50%; width:60px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: esd-fig 2.8s ease-in-out infinite; }
.scn-execution-stool-discourse .crowd-shadow { position:absolute; bottom:5%; left:5%; width:90%; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(20,20,30,0.7) 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; filter: blur(15px); animation: esd-crowd 10s ease-in-out infinite alternate; }
.scn-execution-stool-discourse .spotlight-fx { position:absolute; top:5%; left:40%; width:20%; height:50%; background: radial-gradient(ellipse at center, rgba(200,180,140,0.2) 0%, transparent 70%); animation: esd-glare 5s ease-in-out infinite alternate; }
@keyframes esd-leg { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes esd-fig { 0% { transform: translateX(-50%) rotate(-2deg) scaleY(1); } 25% { transform: translateX(-48%) rotate(1deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(0) scaleY(1.02); } 75% { transform: translateX(-52%) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(2deg) scaleY(1); } }
@keyframes esd-crowd { 0% { opacity:0.4; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-10px); } 100% { opacity:0.3; transform: translateY(5px); } }
@keyframes esd-glare { 0% { opacity:0.3; transform: scaleY(0.8); } 50% { opacity:0.6; transform: scaleY(1.2); } 100% { opacity:0.2; transform: scaleY(0.9); } }

/* Scene 4: execution-president-proclamation */
.scn-execution-president-proclamation { background: linear-gradient(180deg, #161c26 0%, #1a2430 50%, #0f1520 100%), radial-gradient(ellipse at 50% 30%, #1e283a 0%, transparent 70%); }
.scn-execution-president-proclamation .desk { position:absolute; bottom:25%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #2a303a 0%, #1a2028 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: epp-desk 6s ease-in-out infinite alternate; }
.scn-execution-president-proclamation .document { position:absolute; bottom:28%; left:43%; width:14%; height:6%; background: linear-gradient(180deg, #d8d0c0 0%, #b8b0a0 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: epp-doc 10s ease-in-out infinite; }
.scn-execution-president-proclamation .figure-president { position:absolute; bottom:20%; left:48%; width:70px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #101520 0%, #1a222e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: epp-pres 4s ease-in-out infinite; }
.scn-execution-president-proclamation .lamp-table { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #2a2e38 0%, #1a1e28 100%); border-radius: 20% 20% 10% 10%; animation: epp-lamp 3s ease-in-out infinite alternate; }
.scn-execution-president-proclamation .audience-rows { position:absolute; bottom:5%; left:10%; width:80%; height:30%; background: repeating-linear-gradient(0deg, rgba(20,24,32,0.6) 0px, rgba(20,24,32,0.6) 8px, transparent 8px, transparent 16px); border-radius: 20% 20% 0 0 / 50% 50% 0 0; filter: blur(4px); animation: epp-rows 9s ease-in-out infinite alternate; }
.scn-execution-president-proclamation .proclamation-glow { position:absolute; top:25%; left:45%; width:10%; height:15%; background: radial-gradient(circle, rgba(200,180,140,0.25) 0%, transparent 70%); filter: blur(8px); animation: epp-glow 2.2s ease-in-out infinite alternate; }
@keyframes epp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes epp-doc { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes epp-pres { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(2deg) translateY(-3px); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-52%) rotate(-1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes epp-lamp { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1) rotate(2deg); } 100% { opacity:0.8; transform: scaleY(0.95) rotate(-1deg); } }
@keyframes epp-rows { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.2; transform: scaleY(0.95); } }
@keyframes epp-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.5); } 100% { opacity:0.2; transform: scale(0.9); } }

/* scene 1: item-white-cardboard-box */
.scn-item-white-cardboard-box { background: linear-gradient(180deg, #ffe8d0 0%, #f5dbb0 50%, #e8c8a0 100%), radial-gradient(ellipse at 80% 20%, #fff6e8 0%, transparent 60%); }
.scn-item-white-cardboard-box .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #f7e6d0 0%, #f0dcc0 100%); animation: s1-wall 10s ease-in-out infinite alternate; }
.scn-item-white-cardboard-box .table { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #c9a87c 0%, #b08e6a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.25); }
.scn-item-white-cardboard-box .box { position:absolute; bottom:15%; left:35%; width:30%; height:25%; background: linear-gradient(135deg, #faf3e8 0%, #e3d4c0 100%); border-radius:6%; box-shadow: 6px 6px 12px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,255,255,0.5); animation: s1-box 6s ease-in-out infinite; }
.scn-item-white-cardboard-box .box-lid { position:absolute; bottom:37%; left:33%; width:34%; height:6%; background: linear-gradient(180deg, #f5ead8 0%, #dcc6ae 100%); border-radius:4% 4% 0 0; transform-origin: bottom left; animation: s1-lid 4s ease-in-out infinite; }
.scn-item-white-cardboard-box .shadow { position:absolute; bottom:10%; left:30%; width:40%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 0%, transparent 70%); filter: blur(6px); animation: s1-shadow 7s ease-in-out infinite alternate; }
.scn-item-white-cardboard-box .sunbeam { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,240,210,0.3) 0%, transparent 60%); animation: s1-beam 8s ease-in-out infinite; }
.scn-item-white-cardboard-box .dust { position:absolute; top:20%; left:20%; width:6px; height:6px; background: rgba(255,220,160,0.6); border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,220,160,0.4); animation: s1-dust 4s ease-in-out infinite; }
@keyframes s1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s1-box { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(1deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-1px) rotate(-1deg); } }
@keyframes s1-lid { 0%,100% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(-15deg) translateX(-6px); } }
@keyframes s1-shadow { 0% { transform:scaleX(1) translateX(0); } 50% { transform:scaleX(1.1) translateX(4px); } 100% { transform:scaleX(0.95) translateX(-2px); } }
@keyframes s1-beam { 0% { opacity:0.2; transform:rotate(-5deg); } 50% { opacity:0.5; transform:rotate(5deg); } 100% { opacity:0.3; transform:rotate(0deg); } }
@keyframes s1-dust { 0%,100% { transform:translate(0,0) scale(1); opacity:0.4; } 25% { transform:translate(15px,-8px) scale(1.3); opacity:0.8; } 50% { transform:translate(30px,-4px) scale(0.9); opacity:0.3; } 75% { transform:translate(45px,-12px) scale(1.1); opacity:0.6; } }

/* scene 2: where-are-grapes */
.scn-where-are-grapes { background: linear-gradient(180deg, #b8d4e8 0%, #d4e8f0 40%, #a0c0d0 100%), radial-gradient(ellipse at 30% 20%, #ffe8c8 0%, transparent 50%); }
.scn-where-are-grapes .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0dcee 0%, #a8c8dc 100%); animation: s2-sky 12s ease-in-out infinite alternate; }
.scn-where-are-grapes .garden { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius:70% 70% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: s2-garden 9s ease-in-out infinite; }
.scn-where-are-grapes .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #c69c72 0%, #a88058 100%); border-radius:12% 12% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); }
.scn-where-are-grapes .cloth { position:absolute; bottom:22%; left:18%; right:18%; height:8%; background: linear-gradient(180deg, #faf0e0 0%, #e8dcc8 100%); border-radius:20% 20% 0 0; filter: blur(2px); animation: s2-cloth 7s ease-in-out infinite alternate; }
.scn-where-are-grapes .plate { position:absolute; bottom:24%; left:42%; width:16%; height:6%; background: radial-gradient(ellipse at 50% 50%, #f8f0e8 0%, #d8c8b8 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
.scn-where-are-grapes .glass { position:absolute; bottom:23%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, rgba(180,200,220,0.4) 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; box-shadow: 0 0 4px rgba(255,255,255,0.3); animation: s2-glass 5s ease-in-out infinite; }
.scn-where-are-grapes .hand { position:absolute; bottom:18%; left:30%; width:8%; height:12%; background: linear-gradient(180deg, #dbb58c 0%, #b88e68 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: s2-hand 3s ease-in-out infinite; }
@keyframes s2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s2-garden { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes s2-cloth { 0% { transform:translateY(0); } 100% { transform:translateY(-2px); } }
@keyframes s2-glass { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(2deg); } }
@keyframes s2-hand { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(8px) rotate(10deg); } 50% { transform:translateX(16px) rotate(0deg); } 75% { transform:translateX(24px) rotate(-5deg); } }

/* scene 3: left-on-garden-table */
.scn-left-on-garden-table { background: linear-gradient(180deg, #d9c6a8 0%, #c4b096 100%), radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%); }
.scn-left-on-garden-table .bg-table { position:absolute; inset:0; background: linear-gradient(180deg, #b89c80 0%, #a08468 100%); }
.scn-left-on-garden-table .plate { position:absolute; top:30%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #d8c8b0 100%); border-radius:50%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2), 0 6px 12px rgba(0,0,0,0.25); animation: s3-plate 8s ease-in-out infinite; }
.scn-left-on-garden-table .napkin { position:absolute; top:35%; left:42%; width:12%; height:10%; background: linear-gradient(135deg, #faf3e8 0%, #e8dcc8 100%); border-radius:10% 10% 30% 30%; transform:rotate(15deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.1); animation: s3-napkin 6s ease-in-out infinite; }
.scn-left-on-garden-table .glass { position:absolute; top:28%; left:50%; width:4%; height:18%; background: linear-gradient(180deg, rgba(220,240,255,0.5) 0%, rgba(180,210,240,0.3) 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; box-shadow: 0 0 6px rgba(255,255,255,0.4); animation: s3-glass 4s ease-in-out infinite; }
.scn-left-on-garden-table .shadow-plate { position:absolute; top:35%; left:30%; width:40%; height:6%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 0%, transparent 70%); filter: blur(6px); animation: s3-shadow 9s ease-in-out infinite alternate; }
.scn-left-on-garden-table .leaf { position:absolute; top:45%; left:30%; width:10%; height:8%; background: linear-gradient(135deg, #79a06a 0%, #5a7a4a 100%); border-radius:70% 30% 50% 50% / 60% 40% 60% 40%; transform:rotate(-20deg); animation: s3-leaf 7s ease-in-out infinite; }
@keyframes s3-plate { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes s3-napkin { 0%,100% { transform:rotate(15deg) translateX(0); } 50% { transform:rotate(20deg) translateX(2px); } }
@keyframes s3-glass { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(3deg); } }
@keyframes s3-shadow { 0% { transform:scaleX(1) translateX(0); } 50% { transform:scaleX(1.1) translateX(5px); } 100% { transform:scaleX(0.9) translateX(-3px); } }
@keyframes s3-leaf { 0%,100% { transform:rotate(-20deg) scale(1); } 50% { transform:rotate(-15deg) scale(1.1); } }

/* scene 4: doucets-son-dead */
.scn-doucets-son-dead { background: linear-gradient(180deg, #f0dcc0 0%, #d8be9a 50%, #c8a882 100%), radial-gradient(ellipse at 50% 30%, #ffe8c8 0%, transparent 60%); }
.scn-doucets-son-dead .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0c8b0 0%, #c8ae92 100%); animation: s4-wall 11s ease-in-out infinite alternate; }
.scn-doucets-son-dead .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b09878 0%, #988058 100%); box-shadow: inset 0 20px 20px rgba(0,0,0,0.2); }
.scn-doucets-son-dead .door { position:absolute; top:10%; left:10%; width:30%; height:80%; background: linear-gradient(90deg, #c8a880 0%, #b09068 100%); border-radius:0 8% 8% 0 / 0 20% 20% 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: s4-door 14s ease-in-out infinite; }
.scn-doucets-son-dead .chair { position:absolute; bottom:10%; right:20%; width:20%; height:30%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:10% 10% 0 0; box-shadow: 4px 4px 10px rgba(0,0,0,0.4); animation: s4-chair 8s ease-in-out infinite; }
.scn-doucets-son-dead .candle { position:absolute; top:20%; left:45%; width:4%; height:18%; background: linear-gradient(180deg, #f0d898 0%, #c8a868 100%); border-radius:10% 10% 0 0; box-shadow: 0 0 16px 4px rgba(255,200,100,0.6); animation: s4-candle 5s ease-in-out infinite; }
.scn-doucets-son-dead .shadow-chair { position:absolute; bottom:8%; right:15%; width:30%; height:4%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(5px); animation: s4-shadow 6s ease-in-out infinite alternate; }
.scn-doucets-son-dead .sunbeam { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, transparent 50%); animation: s4-beam 9s ease-in-out infinite; }
@keyframes s4-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes s4-door { 0%,100% { transform:rotateY(0deg); } 50% { transform:rotateY(10deg); } }
@keyframes s4-chair { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes s4-candle { 0%,100% { transform:scaleY(1) translateY(0); opacity:0.9; } 25% { transform:scaleY(1.05) translateY(-2px); opacity:1; } 50% { transform:scaleY(1) translateY(0); opacity:0.85; } 75% { transform:scaleY(0.98) translateY(-1px); opacity:0.95; } }
@keyframes s4-shadow { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(8px) scaleX(1.1); } 100% { transform:translateX(-4px) scaleX(0.9); } }
@keyframes s4-beam { 0% { opacity:0.15; transform:rotate(-3deg); } 50% { opacity:0.4; transform:rotate(3deg); } 100% { opacity:0.2; transform:rotate(0deg); } }

/* hard-thinking – calm sunlit interior */
.scn-hard-thinking {
  background: linear-gradient(180deg, #e8dcc0 0%, #d4c8a8 100%), radial-gradient(ellipse at 50% 20%, #fef8e0 0%, transparent 60%);
}
.scn-hard-thinking .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c8a8 100%); }
.scn-hard-thinking .window-frame { position:absolute; top:8%; left:30%; width:40%; height:50%; border:8px solid #8a7050; background: #87ceeb; border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,200,.5); }
.scn-hard-thinking .window-pane { position:absolute; top:8%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #bfdff0 0%, #87ceeb 100%); opacity:.7; animation: hth-sky 20s ease-in-out infinite alternate; }
.scn-hard-thinking .desk { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-hard-thinking .chair { position:absolute; bottom:23%; left:45%; width:12%; height:14%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:40% 40% 10% 10%; transform-origin: bottom center; }
.scn-hard-thinking .figure { position:absolute; bottom:22%; left:45%; width:8%; height:16%; background: linear-gradient(180deg, #2c2c24 0%, #1a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hth-breathe 4s ease-in-out infinite; }
.scn-hard-thinking .sunbeam { position:absolute; top:10%; left:35%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,255,220,.6) 0%, rgba(255,255,200,.2) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter:blur(6px); animation: hth-beam 10s ease-in-out infinite alternate; }
.scn-hard-thinking .dust { position:absolute; top:20%; left:40%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,200,.5); opacity:.3; animation: hth-dust 15s linear infinite; }

@keyframes hth-sky {
  0% { opacity:.6; transform:scaleY(1); }
  50% { opacity:.8; transform:scaleY(1.02); }
  100% { opacity:.7; transform:scaleY(1); }
}
@keyframes hth-breathe {
  0% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-2px) scale(1.01); }
  100% { transform:translateY(0) scale(1); }
}
@keyframes hth-beam {
  0% { opacity:.4; transform:translateX(-5px) rotate(-2deg); }
  50% { opacity:.7; transform:translateX(0) rotate(0); }
  100% { opacity:.5; transform:translateX(5px) rotate(2deg); }
}
@keyframes hth-dust {
  0% { transform:translate(0,10px) scale(1); opacity:0; }
  25% { opacity:.5; }
  50% { transform:translate(20px,0) scale(1.5); opacity:.6; }
  75% { opacity:.4; }
  100% { transform:translate(40px,-10px) scale(1); opacity:0; }
}

/* krestowsky-establishment – warm gaslit facade */
.scn-krestowsky-establishment {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-krestowsky-establishment .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a0a 100%); }
.scn-krestowsky-establishment .building { position:absolute; bottom:20%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 -20px 30px rgba(0,0,0,.5); }
.scn-krestowsky-establishment .door { position:absolute; bottom:20%; left:40%; width:20%; height:25%; background: #3a2a1a; border-radius:30% 30% 0 0; box-shadow:0 0 20px 6px #d09050; }
.scn-krestowsky-establishment .window-glow { position:absolute; bottom:50%; left:20%; width:15%; height:15%; background: radial-gradient(circle, #ffd080 0%, #b07040 70%); border-radius:10%; box-shadow:0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,.4); animation: krt-glow 4s ease-in-out infinite alternate; }
.scn-krestowsky-establishment .street-lamp { position:absolute; bottom:30%; left:12%; width:6px; height:30%; background: #2a1a0a; transform-origin: bottom center; }
.scn-krestowsky-establishment .lamp-glow { position:absolute; bottom:45%; left:11%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 70%); border-radius:50%; animation: krt-lamp 3s ease-in-out infinite; }
.scn-krestowsky-establishment .tree { position:absolute; bottom:20%; left:70%; width:20%; height:40%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:50%; transform-origin: bottom center; animation: krt-tree 20s ease-in-out infinite alternate; }
.scn-krestowsky-establishment .crowd { position:absolute; bottom:18%; left:10%; width:80%; height:8%; display:flex; gap:2%; flex-wrap:wrap; justify-content:center; align-items:flex-end; }
/* crowd is multiple small silhouettes – we use one div with repeated background for simplicity */
.scn-krestowsky-establishment .crowd {
  background: radial-gradient(circle at 10% 100%, #1a1a12 4px, transparent 4px),
              radial-gradient(circle at 30% 100%, #1a1a12 4px, transparent 4px),
              radial-gradient(circle at 50% 100%, #1a1a12 4px, transparent 4px),
              radial-gradient(circle at 70% 100%, #1a1a12 4px, transparent 4px),
              radial-gradient(circle at 90% 100%, #1a1a12 4px, transparent 4px);
  background-size: 20% 100%;
  height:20px;
  animation: krt-crowd 8s ease-in-out infinite;
}

@keyframes krt-glow {
  0% { box-shadow:0 0 20px 6px #d09050, 0 0 40px 12px rgba(208,144,80,.3); opacity:.8; }
  50% { box-shadow:0 0 40px 12px #ffd080, 0 0 80px 25px rgba(255,208,128,.5); opacity:1; }
  100% { box-shadow:0 0 25px 8px #d09050, 0 0 50px 15px rgba(208,144,80,.35); opacity:.85; }
}
@keyframes krt-lamp {
  0% { transform:scale(1); opacity:.7; }
  50% { transform:scale(1.1); opacity:1; }
  100% { transform:scale(1); opacity:.7; }
}
@keyframes krt-tree {
  0% { transform:rotate(-2deg); }
  50% { transform:rotate(1deg); }
  100% { transform:rotate(-1deg); }
}
@keyframes krt-crowd {
  0% { opacity:.5; transform:scaleY(1); }
  50% { opacity:1; transform:scaleY(1.2); }
  100% { opacity:.6; transform:scaleY(1); }
}

/* french-chanteuses – gaslit stage with singer */
.scn-french-chanteuses {
  background: linear-gradient(180deg, #1a0a0a 0%, #3a1a1a 50%, #2a0a0a 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-french-chanteuses .stage-backdrop { position:absolute; top:5%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%); border-radius:10% 10% 0 0; }
.scn-french-chanteuses .stage-floor { position:absolute; bottom:30%; left:5%; width:90%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:0 0 20% 20%; }
.scn-french-chanteuses .singer { position:absolute; bottom:35%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fch-bow 6s ease-in-out infinite; }
.scn-french-chanteuses .piano { position:absolute; bottom:31%; left:35%; width:20%; height:12%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:10% 10% 0 0; border:2px solid #2a1a0a; }
.scn-french-chanteuses .footlights { position:absolute; bottom:33%; left:20%; width:60%; height:3%; display:flex; justify-content:space-around; }
.scn-french-chanteuses .footlights {
  background: radial-gradient(circle at 10% 50%, #ffd080 6px, transparent 6px),
              radial-gradient(circle at 30% 50%, #ffd080 6px, transparent 6px),
              radial-gradient(circle at 50% 50%, #ffd080 6px, transparent 6px),
              radial-gradient(circle at 70% 50%, #ffd080 6px, transparent 6px),
              radial-gradient(circle at 90% 50%, #ffd080 6px, transparent 6px);
  background-size: 20% 100%;
  animation: fch-footlights 2s ease-in-out infinite alternate;
}
.scn-french-chanteuses .spotlight { position:absolute; top:10%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, rgba(255,255,200,0) 100%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); filter:blur(8px); animation: fch-spot 10s ease-in-out infinite alternate; }
.scn-french-chanteuses .audience { position:absolute; bottom:20%; left:5%; width:90%; height:10%; background: repeating-radial-gradient(circle at 10% 100%, #1a1a1a 6px, transparent 8px); opacity:.7; animation: fch-audience 12s ease-in-out infinite; }

@keyframes fch-bow {
  0% { transform:translateY(0) rotate(0); }
  25% { transform:translateY(-3px) rotate(-3deg); }
  50% { transform:translateY(0) rotate(0); }
  75% { transform:translateY(-3px) rotate(3deg); }
  100% { transform:translateY(0) rotate(0); }
}
@keyframes fch-footlights {
  0% { opacity:.6; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes fch-spot {
  0% { opacity:.3; transform:scaleX(1); }
  50% { opacity:.6; transform:scaleX(1.05); }
  100% { opacity:.4; transform:scaleX(0.95); }
}
@keyframes fch-audience {
  0% { opacity:.5; transform:scaleY(1); }
  50% { opacity:1; transform:scaleY(1.1); }
  100% { opacity:.6; transform:scaleY(1); }
}

/* bohemian-songs – terrace with women and tables */
.scn-bohemian-songs {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, transparent 60%);
}
.scn-bohemian-songs .terrace-floor { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 0 0; }
.scn-bohemian-songs .table { position:absolute; bottom:30%; left:30%; width:15%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-bohemian-songs .chair { position:absolute; bottom:30%; left:28%; width:8%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:30% 30% 20% 20%; transform-origin: bottom center; }
.scn-bohemian-songs .figure-woman { position:absolute; bottom:32%; left:40%; width:8%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bhm-walk 5s ease-in-out infinite; }
.scn-bohemian-songs .gas-lamp { position:absolute; bottom:40%; left:20%; width:4px; height:20%; background: #2a1a0a; transform-origin: bottom center; }
.scn-bohemian-songs .lamp-halo { position:absolute; bottom:55%; left:18%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 70%); border-radius:50%; animation: bhm-lamp 3s ease-in-out infinite; }
.scn-bohemian-songs .foliage { position:absolute; top:5%; left:0; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 70%); border-radius:50%; animation: bhm-leaf 15s ease-in-out infinite alternate; }
.scn-bohemian-songs .wine-bottle { position:absolute; bottom:32%; left:50%; width:4%; height:12%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:20% 20% 10% 10%; transform:rotate(10deg); transform-origin: bottom center; }

@keyframes bhm-walk {
  0% { transform:translateX(0) translateY(0) rotate(0); }
  25% { transform:translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform:translateX(16px) translateY(0) rotate(0); }
  75% { transform:translateX(24px) translateY(-2px) rotate(-2deg); }
  100% { transform:translateX(32px) translateY(0) rotate(0); }
}
@keyframes bhm-lamp {
  0% { transform:scale(1); opacity:.7; }
  50% { transform:scale(1.2); opacity:1; }
  100% { transform:scale(1); opacity:.7; }
}
@keyframes bhm-leaf {
  0% { transform:rotate(-3deg); }
  50% { transform:rotate(2deg); }
  100% { transform:rotate(-1deg); }
}

.scn-matrenas-anguish { background: linear-gradient(180deg, #1a1410 0%, #2c2218 40%, #3a2e1e 70%, #1f1914 100%), radial-gradient(ellipse at 50% 80%, #4a3a28 0%, transparent 70%); }
.scn-matrenas-anguish .room-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #2c2218 0%, #1f1914 60%, #140f0c 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: ma-wallpulse 12s ease-in-out infinite alternate; }
.scn-matrenas-anguish .room-floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2c2418 0%, #1a1410 100%); box-shadow: inset 0 -12px 30px rgba(0,0,0,.5); }
.scn-matrenas-anguish .table { position:absolute; bottom:20%; left:50%; width:100px; height:14px; transform:translateX(-50%); background: linear-gradient(90deg, #4a3828 0%, #6a4e36 50%, #4a3828 100%); border-radius:4px; box-shadow: 0 6px 18px rgba(0,0,0,.7); animation: ma-tablebreathe 9s ease-in-out infinite; }
.scn-matrenas-anguish .hatpin.shadow { position:absolute; bottom:24%; left:48%; width:3px; height:26px; background: linear-gradient(180deg, #5a4838 0%, #2a1e12 100%); border-radius:50%; transform:rotate(20deg); transform-origin:100% 100%; animation: ma-hatpin 5s ease-in-out infinite; }
.scn-matrenas-anguish .hatpin.broken { position:absolute; bottom:24%; left:54%; width:3px; height:14px; background: linear-gradient(180deg, #5a4838 0%, #2a1e12 100%); border-radius:50%; transform:rotate(-30deg); transform-origin:100% 100%; opacity:.6; animation: ma-hatpin 5s ease-in-out infinite -1s; }
.scn-matrenas-anguish .figure-inner { position:absolute; bottom:14%; left:36%; width:30px; height:50px; background: linear-gradient(180deg, #2c2218 0%, #140f0c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ma-figuretilt 4s ease-in-out infinite; }
.scn-matrenas-anguish .figure-outer { position:absolute; bottom:12%; left:58%; width:34px; height:54px; background: linear-gradient(180deg, #3a2e1e 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ma-figuretilt 4s ease-in-out infinite -2s; }
.scn-matrenas-anguish .lamp-glow { position:absolute; bottom:40%; left:50%; width:50px; height:50px; transform:translate(-50%, 50%); background: radial-gradient(circle, #c09860 0%, #806030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(192,152,96,.25); animation: ma-lampflicker 3s ease-in-out infinite alternate; }
@keyframes ma-wallpulse { 0% { opacity:.85; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.08) } 100% { opacity:.9; filter:brightness(.95) } }
@keyframes ma-tablebreathe { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes ma-hatpin { 0% { transform:rotate(20deg) translateY(0) } 30% { transform:rotate(30deg) translateY(-1px) } 70% { transform:rotate(15deg) translateY(1px) } 100% { transform:rotate(20deg) translateY(0) } }
@keyframes ma-figuretilt { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes ma-lampflicker { 0% { transform:translate(-50%, 50%) scale(.9); opacity:.7 } 50% { transform:translate(-50%, 50%) scale(1.1); opacity:1 } 100% { transform:translate(-50%, 50%) scale(.95); opacity:.85 } }

.scn-watching-the-bolt { background: linear-gradient(180deg, #141820 0%, #1c2430 40%, #2a3440 70%, #1a1c22 100%), radial-gradient(ellipse at 60% 50%, #2a3440 0%, transparent 70%); }
.scn-watching-the-bolt .wall-bg { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #1c2430 0%, #141820 60%, #101218 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: wtb-wallshift 14s ease-in-out infinite alternate; }
.scn-watching-the-bolt .door-frame { position:absolute; bottom:0; left:15%; width:30%; height:70%; background: linear-gradient(90deg, #2a3440 0%, #3a4658 50%, #2a3440 100%); border-radius:8% 8% 0 0; box-shadow: -8px 0 30px rgba(0,0,0,.6), 8px 0 30px rgba(0,0,0,.4); animation: wtb-doorbreathe 12s ease-in-out infinite; }
.scn-watching-the-bolt .door-bolt { position:absolute; bottom:35%; left:28%; width:8px; height:30px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: 0 0 12px rgba(0,0,0,.4); animation: wtb-bolt 5s ease-in-out infinite; }
.scn-watching-the-bolt .figure-a { position:absolute; bottom:12%; left:48%; width:36px; height:58px; background: linear-gradient(180deg, #2a3440 0%, #141820 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wtb-figurea 4s ease-in-out infinite; }
.scn-watching-the-bolt .figure-b { position:absolute; bottom:10%; left:58%; width:32px; height:52px; background: linear-gradient(180deg, #3a4658 0%, #1c2430 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wtb-figureb 4s ease-in-out infinite -1.5s; }
.scn-watching-the-bolt .lamp-light { position:absolute; bottom:50%; left:65%; width:40px; height:40px; background: radial-gradient(circle, #c0a870 0%, #806040 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(192,168,112,.2); animation: wtb-lampflicker 3s ease-in-out infinite alternate; }
.scn-watching-the-bolt .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: wtb-shadow 8s ease-in-out infinite alternate; }
@keyframes wtb-wallshift { 0% { filter:brightness(.9) } 50% { filter:brightness(1.05) } 100% { filter:brightness(.95) } }
@keyframes wtb-doorbreathe { 0% { transform:scaleX(1) translateY(0) } 50% { transform:scaleX(1.01) translateY(-2px) } 100% { transform:scaleX(1) translateY(0) } }
@keyframes wtb-bolt { 0% { transform:translateY(0) } 30% { transform:translateY(-3px) } 70% { transform:translateY(2px) } 100% { transform:translateY(0) } }
@keyframes wtb-figurea { 0% { transform:rotate(2deg) translateX(0) } 50% { transform:rotate(-1deg) translateX(4px) } 100% { transform:rotate(2deg) translateX(0) } }
@keyframes wtb-figureb { 0% { transform:rotate(-3deg) translateX(0) } 50% { transform:rotate(1deg) translateX(3px) } 100% { transform:rotate(-3deg) translateX(0) } }
@keyframes wtb-lampflicker { 0% { transform:scale(.9); opacity:.7 } 50% { transform:scale(1.15); opacity:1 } 100% { transform:scale(.95); opacity:.8 } }
@keyframes wtb-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }

.scn-general-sleeps-peaceful { background: linear-gradient(180deg, #2c281c 0%, #3a3426 40%, #4a4232 70%, #2c281c 100%), radial-gradient(ellipse at 50% 70%, #4a4232 0%, transparent 70%); }
.scn-general-sleeps-peaceful .room-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #3a3426 0%, #2c281c 60%, #1f1c14 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.4); animation: gsp-wall 16s ease-in-out infinite alternate; }
.scn-general-sleeps-peaceful .doorway { position:absolute; bottom:0; right:10%; width:28%; height:75%; background: linear-gradient(90deg, #2c281c 0%, #3a3426 50%, #2c281c 100%); border-radius:10% 10% 0 0; box-shadow: -6px 0 24px rgba(0,0,0,.5); }
.scn-general-sleeps-peaceful .bed-frame { position:absolute; bottom:16%; left:10%; width:50%; height:30%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2e1e 100%); border-radius:15% 5% 5% 15%; box-shadow: 0 12px 30px rgba(0,0,0,.6); animation: gsp-bed 12s ease-in-out infinite; }
.scn-general-sleeps-peaceful .figure-sleeping { position:absolute; bottom:20%; left:16%; width:50px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom left; animation: gsp-sleep 6s ease-in-out infinite; }
.scn-general-sleeps-peaceful .blanket-fold { position:absolute; bottom:20%; left:14%; width:46px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:0 0 30% 30%; transform-origin:top center; animation: gsp-blanket 8s ease-in-out infinite; }
.scn-general-sleeps-peaceful .table-phials { position:absolute; bottom:22%; right:35%; width:60px; height:18px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius:8px; box-shadow: 0 6px 20px rgba(0,0,0,.4); animation: gsp-table 9s ease-in-out infinite alternate; }
.scn-general-sleeps-peaceful .warm-glow { position:absolute; bottom:50%; left:30%; width:80px; height:80px; background: radial-gradient(circle, #d0b880 0%, #b09860 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(208,184,128,.15); animation: gsp-glow 5s ease-in-out infinite alternate; }
.scn-general-sleeps-peaceful .dust-mote { position:absolute; top:30%; left:40%; width:4px; height:4px; background: rgba(208,184,128,.3); border-radius:50%; filter: blur(1px); animation: gsp-dust 15s linear infinite; }
@keyframes gsp-wall { 0% { opacity:.9; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.92; filter:brightness(.98) } }
@keyframes gsp-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes gsp-sleep { 0% { transform:rotate(0) scaleY(1) } 50% { transform:rotate(2deg) scaleY(1.02) } 100% { transform:rotate(0) scaleY(1) } }
@keyframes gsp-blanket { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.04) } 100% { transform:scaleY(1) } }
@keyframes gsp-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes gsp-glow { 0% { opacity:.6; transform:scale(.95) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }
@keyframes gsp-dust { 0% { transform:translateY(0) rotate(0) scale(1); opacity:.3 } 50% { transform:translateY(-40px) rotate(180deg) scale(1.5); opacity:.6 } 100% { transform:translateY(-80px) rotate(360deg) scale(1); opacity:.2 } }

.scn-bedroom-layout { background: linear-gradient(180deg, #2c281c 0%, #3a3426 30%, #4a4232 60%, #2c281c 100%), radial-gradient(ellipse at 50% 40%, #3a3426 0%, transparent 70%); }
.scn-bedroom-layout .floor-plan { position:absolute; inset:8% 8% 8% 8%; background: linear-gradient(135deg, #3a3426 0%, #2c281c 100%); border-radius:6px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: bl-plan 20s ease-in-out infinite alternate; }
.scn-bedroom-layout .bed-shape { position:absolute; bottom:20%; left:15%; width:55%; height:35%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2e1e 100%); border-radius: 20% 6% 6% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: bl-bed 14s ease-in-out infinite; }
.scn-bedroom-layout .pillow { position:absolute; bottom:30%; left:22%; width:16%; height:18%; background: radial-gradient(ellipse, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: bl-pillow 9s ease-in-out infinite alternate; }
.scn-bedroom-layout .table-circle { position:absolute; bottom:24%; right:25%; width:12%; height:12%; background: radial-gradient(circle, #5a4a3a 0%, #3a2e1e 100%); border-radius:50%; box-shadow: 0 6px 16px rgba(0,0,0,.5); animation: bl-table 8s ease-in-out infinite; }
.scn-bedroom-layout .phial.group-a { position:absolute; bottom:26%; right:28%; width:3%; height:10%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: bl-phial 7s ease-in-out infinite; }
.scn-bedroom-layout .phial.group-b { position:absolute; bottom:24%; right:30%; width:2.5%; height:12%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20%; transform:rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: bl-phial 7s ease-in-out infinite -2s; }
.scn-bedroom-layout .stairs-door { position:absolute; top:12%; right:12%; width:10%; height:20%; background: linear-gradient(180deg, #4a4232 0%, #2c281c 100%); border-radius:10% 10% 0 0; box-shadow: -4px 0 16px rgba(0,0,0,.4); animation: bl-door 15s ease-in-out infinite; }
.scn-bedroom-layout .layout-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,.4) 100%); animation: bl-shadow 12s ease-in-out infinite alternate; }
.scn-bedroom-layout .ambient-light { position:absolute; top:20%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(208,184,128,.08) 0%, transparent 70%); border-radius:50%; animation: bl-light 10s ease-in-out infinite alternate; }
@keyframes bl-plan { 0% { transform:scale(.98) } 50% { transform:scale(1.01) } 100% { transform:scale(.99) } }
@keyframes bl-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes bl-pillow { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.05) translateY(-2px) } 100% { transform:scale(1) translateY(0) } }
@keyframes bl-table { 0% { transform:scale(1) } 50% { transform:scale(1.03) } 100% { transform:scale(1) } }
@keyframes bl-phial { 0% { transform:rotate(0) translateY(0) } 50% { transform:rotate(2deg) translateY(-1px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes bl-door { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.04) } 100% { transform:scaleX(1) } }
@keyframes bl-shadow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bl-light { 0% { opacity:.4; transform:scale(.9) } 50% { opacity:.8; transform:scale(1.2) } 100% { opacity:.5; transform:scale(1) } }

/* Scene: touman-confession */
.scn-touman-confession {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b09a 40%, #8a7a64 100%),
              radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 70%);
}
.scn-touman-confession .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #d9ccb8 0%, #b8a88e 50%, #9a8a72 100%);
  animation: tc-wall-pulse 6s ease-in-out infinite alternate;
}
.scn-touman-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #6b5b4a 0%, #8a7a64 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-touman-confession .window-frame {
  position: absolute; top: 8%; left: 10%; width: 30%; height: 50%;
  border: 8px solid #5a4a38;
  background: linear-gradient(180deg, #b8d8e8 0%, #a0c0d0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: tc-window-flicker 4s ease-in-out infinite;
}
.scn-touman-confession .guard-left {
  position: absolute; bottom: 25%; left: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform: scaleX(-1);
  animation: tc-guard-sway 3s ease-in-out infinite alternate;
}
.scn-touman-confession .guard-right {
  position: absolute; bottom: 25%; right: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  animation: tc-guard-sway 3.2s ease-in-out infinite alternate;
}
.scn-touman-confession .touman-silhouette {
  position: absolute; bottom: 25%; left: 38%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: tc-figure-breathe 4s ease-in-out infinite;
}
.scn-touman-confession .koupriane-silhouette {
  position: absolute; bottom: 25%; right: 38%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #1c2a3a 0%, #0e1a2a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: scaleX(-1);
  animation: tc-figure-breathe 3.8s ease-in-out infinite;
}
.scn-touman-confession .lamp-glow {
  position: absolute; bottom: 60%; left: 45%; width: 20%; height: 30%;
  background: radial-gradient(circle, #f0d090 0%, #e0b060 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(20px);
  animation: tc-lamp-pulse 2s ease-in-out infinite alternate;
}
@keyframes tc-wall-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tc-window-flicker {
  0% { opacity: 0.9; }
  25% { opacity: 1; }
  50% { opacity: 0.85; }
  75% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tc-guard-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(1deg); }
}
@keyframes tc-figure-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes tc-lamp-pulse {
  0% { filter: blur(15px) brightness(0.9); }
  50% { filter: blur(25px) brightness(1.2); }
  100% { filter: blur(18px) brightness(1); }
}

/* Scene: speak-french */
.scn-speak-french {
  background: linear-gradient(90deg, #d4c8b0 0%, #bfae92 50%, #a08c74 100%),
              radial-gradient(ellipse at 60% 40%, #f5e6d0 0%, transparent 70%);
}
.scn-speak-french .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d0c2ae 0%, #b8a68e 100%);
  animation: sf-wall-tremor 5s ease-in-out infinite;
}
.scn-speak-french .desk {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
}
.scn-speak-french .koupriane-arm {
  position: absolute; bottom: 40%; right: 35%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: sf-point 3s ease-in-out infinite alternate;
}
.scn-speak-french .touman-profile {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 50% 20% 20% 50% / 70% 40% 40% 70%;
  clip-path: polygon(0% 0%, 80% 0%, 100% 50%, 80% 100%, 0% 100%);
  animation: sf-profile-turn 4s ease-in-out infinite;
}
.scn-speak-french .lamplight {
  position: absolute; top: 15%; left: 50%; width: 10%; height: 12%;
  background: radial-gradient(circle, #f5d8a0 0%, #e8c080 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(35px);
  animation: sf-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-speak-french .shadow-sharp {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: sf-shadow-slide 7s ease-in-out infinite;
}
.scn-speak-french .window-bar {
  position: absolute; top: 10%; right: 15%; width: 4%; height: 50%;
  background: #4a3a28;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
}
@keyframes sf-wall-tremor {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.95); }
  100% { filter: brightness(1); }
}
@keyframes sf-point {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes sf-profile-turn {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sf-lamp-flicker {
  0% { filter: blur(30px) brightness(0.8); }
  50% { filter: blur(40px) brightness(1.2); }
  100% { filter: blur(35px) brightness(0.9); }
}
@keyframes sf-shadow-slide {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

/* Scene: strip-him */
.scn-strip-him {
  background: linear-gradient(180deg, #c8b098 0%, #a08870 30%, #705848 100%),
              radial-gradient(ellipse at 50% 50%, #e8d4b8 0%, transparent 60%);
}
.scn-strip-him .bg-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #bfa68a 0%, #9a8068 100%);
  animation: sh-bg-pulse 8s ease-in-out infinite;
}
.scn-strip-him .guard-left-arm {
  position: absolute; bottom: 25%; left: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: sh-grab-left 1.5s ease-in-out infinite alternate;
}
.scn-strip-him .guard-right-arm {
  position: absolute; bottom: 25%; right: 20%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: top center;
  animation: sh-grab-right 1.5s ease-in-out infinite alternate 0.2s;
}
.scn-strip-him .touman-torso {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #c8a888 0%, #b09078 40%, #8a6c54 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: sh-torso-twist 2s ease-in-out infinite alternate;
}
.scn-strip-him .falling-coat {
  position: absolute; bottom: 20%; left: 32%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: sh-fall-coat 3s ease-in-out infinite;
}
.scn-strip-him .falling-shirt {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 15%;
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a898 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%;
  transform: rotate(-20deg);
  animation: sh-fall-shirt 2.5s ease-in-out infinite;
}
.scn-strip-him .floor-shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: sh-shadow-pulse 4s ease-in-out infinite alternate;
}
@keyframes sh-bg-pulse {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.9); }
  100% { filter: brightness(1); }
}
@keyframes sh-grab-left {
  0% { transform: rotate(10deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-5px); }
}
@keyframes sh-grab-right {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-5px); }
}
@keyframes sh-torso-twist {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(0.95); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes sh-fall-coat {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  50% { transform: translateY(10px) rotate(10deg); opacity: 0.7; }
  100% { transform: translateY(0) rotate(0deg); opacity: 1; }
}
@keyframes sh-fall-shirt {
  0% { transform: translateY(0) rotate(-20deg); opacity: 1; }
  50% { transform: translateY(8px) rotate(-15deg); opacity: 0.6; }
  100% { transform: translateY(0) rotate(-20deg); opacity: 1; }
}
@keyframes sh-shadow-pulse {
  0% { transform: scaleX(1); opacity: 0.6; }
  100% { transform: scaleX(0.8); opacity: 1; }
}

/* Scene: whip-blows */
.scn-whip-blows {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 60%, #b08060 0%, transparent 70%);
}
.scn-whip-blows .dark-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: wb-wall-flicker 4s ease-in-out infinite;
}
.scn-whip-blows .guard-hold-left {
  position: absolute; bottom: 25%; left: 15%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: wb-hold-sway 2s ease-in-out infinite alternate;
}
.scn-whip-blows .guard-hold-right {
  position: absolute; bottom: 25%; right: 15%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  animation: wb-hold-sway 2.2s ease-in-out infinite alternate;
}
.scn-whip-blows .touman-back {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #c8a888 0%, #b09078 40%, #8a6c54 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.4);
  animation: wb-back-flinch 1s ease-in-out infinite;
}
.scn-whip-blows .whip-arc {
  position: absolute; bottom: 40%; left: 50%; width: 30%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #5a3a2a 40%, #8a6a5a 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%) rotate(-30deg);
  animation: wb-whip-crack 0.8s ease-in-out infinite alternate;
}
.scn-whip-blows .impact-flash {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffcc88 0%, #ffa050 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: wb-flash-burst 0.4s ease-in-out infinite alternate 0.2s;
}
.scn-whip-blows .floor-bloodstain {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 6%;
  background: radial-gradient(ellipse, #8a3a2a 0%, #5a1a0a 40%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: wb-stain-spread 6s ease-in-out infinite;
}
.scn-whip-blows .lamp-swing {
  position: absolute; top: 5%; left: 50%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 20%, #f5d8a0 0%, #d0a060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  transform: translateX(-50%);
  animation: wb-lamp-swing 3s ease-in-out infinite alternate;
}
@keyframes wb-wall-flicker {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.9); }
}
@keyframes wb-hold-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes wb-back-flinch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes wb-whip-crack {
  0% { transform: translateX(-50%) rotate(-40deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-20deg) scaleX(1.2); }
  100% { transform: translateX(-50%) rotate(-40deg) scaleX(1); }
}
@keyframes wb-flash-burst {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0.5); }
}
@keyframes wb-stain-spread {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes wb-lamp-swing {
  0% { transform: translateX(-50%) rotate(-5deg); }
  100% { transform: translateX(-50%) rotate(5deg); }
}

/* rouletabille-departing – calm sunlit interior */
.scn-rouletabille-departing {
  background: 
    linear-gradient(180deg, #faf0e6 0%, #e8dccc 40%, #d4c4b0 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e7 0%, transparent 60%);
}
.scn-rouletabille-departing .wall-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #e8dccc 0%, #d4c4b0 100%);
}
.scn-rouletabille-departing .window-frame {
  position: absolute; top: 10%; left: 15%; width: 35%; height: 45%;
  background: linear-gradient(135deg, #b8a898 0%, #9a8a7a 100%);
  border-radius: 4px; box-shadow: inset 0 0 0 6px #8a7a6a;
  animation: rde-frame 12s ease-in-out infinite alternate;
}
.scn-rouletabille-departing .window-light {
  position: absolute; top: 12%; left: 17%; width: 31%; height: 41%;
  background: linear-gradient(180deg, #fff8e7 0%, #fae0c0 100%);
  box-shadow: 0 0 60px 20px rgba(255, 248, 231, 0.4);
  animation: rde-light 6s ease-in-out infinite alternate;
}
.scn-rouletabille-departing .figure-matrena {
  position: absolute; bottom: 18%; left: 20%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #b09888 0%, #806860 50%, #5a4a42 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rde-matrena 4s ease-in-out infinite;
}
.scn-rouletabille-departing .figure-reporter {
  position: absolute; bottom: 20%; right: 18%; width: 18%; height: 44%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 50%, #706050 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rde-reporter 5s ease-in-out infinite;
}
.scn-rouletabille-departing .table-ledge {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-rouletabille-departing .dust-mote {
  position: absolute; width: 6px; height: 6px; background: rgba(255,248,231,0.6);
  border-radius: 50%; filter: blur(3px);
}
.scn-rouletabille-departing .d1 { top: 30%; left: 40%; animation: rde-dust 14s linear infinite; }
.scn-rouletabille-departing .d2 { top: 60%; left: 60%; animation: rde-dust 18s linear infinite reverse; }
@keyframes rde-frame { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes rde-light { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rde-matrena { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rde-reporter { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rde-dust { 0% { transform: translate(0,0); opacity: 0.6; } 25% { transform: translate(10px, -20px); opacity: 0.8; } 50% { transform: translate(20px, -10px); opacity: 0.6; } 75% { transform: translate(30px, -30px); opacity: 0.9; } 100% { transform: translate(40px, -20px); opacity: 0.6; } }

/* entirely-easy – calm sunlit sitting room */
.scn-entirely-easy {
  background: 
    linear-gradient(180deg, #f5f0e8 0%, #e0d4c8 40%, #c8b8a8 100%),
    radial-gradient(ellipse at 50% 30%, #fffdf5 0%, transparent 70%);
}
.scn-entirely-easy .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8ccc0 0%, #c8b8a8 100%);
}
.scn-entirely-easy .sofa-left {
  position: absolute; bottom: 15%; left: 8%; width: 28%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.scn-entirely-easy .sofa-right {
  position: absolute; bottom: 15%; right: 8%; width: 28%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.scn-entirely-easy .figure-natacha {
  position: absolute; bottom: 22%; left: 22%; width: 16%; height: 34%;
  background: linear-gradient(180deg, #d4b8a0 0%, #b09880 50%, #8a7868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ee-natacha 5s ease-in-out infinite;
}
.scn-entirely-easy .figure-madame {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 36%;
  background: linear-gradient(180deg, #c0a890 0%, #a08870 50%, #7a6858 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  animation: ee-madame 6s ease-in-out infinite alternate;
}
.scn-entirely-easy .figure-mademoiselle {
  position: absolute; bottom: 22%; right: 22%; width: 15%; height: 32%;
  background: linear-gradient(180deg, #d8c0b0 0%, #b8a090 50%, #8a7868 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: ee-mlle 7s ease-in-out infinite;
}
.scn-entirely-easy .teacup {
  position: absolute; bottom: 32%; left: 48%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e8dccc 0%, #c8b8a8 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ee-cup 4s ease-in-out infinite;
}
.scn-entirely-easy .sun-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,248,231,0.15) 0%, transparent 80%);
  animation: ee-beam 12s ease-in-out infinite alternate;
}
@keyframes ee-natacha { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ee-madame { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes ee-mlle { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ee-cup { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes ee-beam { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* marshal-disquieted – tense sunlit with harsh shadows */
.scn-marshal-disquieted {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0c0c18 100%),
    radial-gradient(ellipse at 60% 10%, #ffeedd 0%, transparent 50%);
}
.scn-marshal-disquieted .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-marshal-disquieted .window-high {
  position: absolute; top: 8%; right: 12%; width: 25%; height: 35%;
  background: linear-gradient(135deg, #ffeedd 0%, #d4c4b0 100%);
  border-radius: 4px; box-shadow: inset 0 0 0 8px #2a2a3a;
  animation: md-window 8s ease-in-out infinite alternate;
}
.scn-marshal-disquieted .sun-shaft {
  position: absolute; top: 0; right: 15%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,238,221,0.25) 0%, rgba(255,238,221,0.05) 80%);
  animation: md-shaft 3s ease-in-out infinite alternate;
}
.scn-marshal-disquieted .figure-count {
  position: absolute; bottom: 18%; left: 20%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -8px 0 12px rgba(0,0,0,0.5);
  animation: md-count 4s ease-in-out infinite;
}
.scn-marshal-disquieted .shadow-count {
  position: absolute; bottom: 18%; left: 40%; width: 22%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(8px);
  animation: md-shadow 4s ease-in-out infinite;
}
.scn-marshal-disquieted .furniture-edge {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-marshal-disquieted .glint-metal {
  position: absolute; bottom: 25%; left: 35%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffeedd 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,238,221,0.6);
  animation: md-glint 2s ease-in-out infinite alternate;
}
.scn-marshal-disquieted .dust-fast {
  position: absolute; top: 30%; right: 30%; width: 8px; height: 8px;
  background: rgba(255,238,221,0.3); border-radius: 50%; filter: blur(4px);
  animation: md-dust 2s linear infinite;
}
@keyframes md-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-shaft { 0% { opacity: 0.3; transform: skewX(-2deg); } 50% { opacity: 0.7; transform: skewX(2deg); } 100% { opacity: 0.4; transform: skewX(-1deg); } }
@keyframes md-count { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes md-shadow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes md-glint { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes md-dust { 0% { transform: translate(0,0); opacity: 0.6; } 100% { transform: translate(-30px, -20px); opacity: 0.1; } }

/* emperors-grapes – tense sunlit close-up on table */
.scn-emperors-grapes {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #0a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 70%);
}
.scn-emperors-grapes .table-top {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a422a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-emperors-grapes .plate {
  position: absolute; bottom: 20%; left: 28%; width: 44%; height: 25%;
  background: radial-gradient(ellipse, #e8d4b8 0%, #c8b090 70%, #a89070 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: eg-plate 6s ease-in-out infinite alternate;
}
.scn-emperors-grapes .grapes-cluster {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(circle at 50% 60%, #5a3a2a 0%, #3a1a0a 60%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(90,58,42,0.4);
  animation: eg-grapes 4s ease-in-out infinite;
}
.scn-emperors-grapes .grape-reflect {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 8%;
  background: radial-gradient(circle, rgba(255,232,192,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: eg-reflect 4s ease-in-out infinite alternate;
}
.scn-emperors-grapes .hand-natacha {
  position: absolute; bottom: 15%; left: 20%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #c8a890 0%, #a08070 50%, #806050 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: eg-hand-n 4s ease-in-out infinite;
}
.scn-emperors-grapes .hand-other {
  position: absolute; bottom: 15%; right: 20%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #b09880 0%, #8a7060 50%, #6a5040 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: eg-hand-o 5s ease-in-out infinite;
}
.scn-emperors-grapes .shadow-table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
}
.scn-emperors-grapes .ambient-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,232,192,0.08) 0%, transparent 60%);
  animation: eg-ambient 8s ease-in-out infinite alternate;
}
@keyframes eg-plate { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(0.98); } }
@keyframes eg-grapes { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes eg-reflect { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes eg-hand-n { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 70% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eg-hand-o { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-4deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eg-ambient { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

.scn-hat-pin-inspection {
  background: linear-gradient(180deg, #2b2b3e 0%, #1c1a2e 50%, #3a2f4a 100%);
  box-shadow: inset 0 0 60px #0a0a14;
}
.scn-hat-pin-inspection .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #1e1c30 0%, #2a2540 100%);
  animation: hpi-wall 8s ease-in-out infinite alternate;
}
.scn-hat-pin-inspection .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3c2a 0%, #2a1e12 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
  animation: hpi-table 6s ease-in-out infinite;
}
.scn-hat-pin-inspection .hat {
  position: absolute; bottom: 36%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3c2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: hpi-hat 4s ease-in-out infinite alternate;
}
.scn-hat-pin-inspection .pin-glow {
  position: absolute; bottom: 42%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #ffcc66 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 14px 8px rgba(255,204,102,0.5), 0 0 30px 15px rgba(255,204,102,0.2);
  transform: rotate(20deg);
  animation: hpi-pin 2s ease-in-out infinite alternate;
}
.scn-hat-pin-inspection .hand {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: hpi-hand 3s ease-in-out infinite;
}
.scn-hat-pin-inspection .shadow-hand {
  position: absolute; bottom: 26%; left: 36%; width: 34px; height: 54px;
  background: #0a0810;
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  opacity: 0.3;
  transform: rotate(20deg);
  animation: hpi-shadow 3s ease-in-out infinite;
}
.scn-hat-pin-inspection .lintel {
  position: absolute; top: 8%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(90deg, transparent, #3a2a1a, transparent);
  border-radius: 3px;
  animation: hpi-lintel 12s linear infinite;
}
@keyframes hpi-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hpi-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.01) } }
@keyframes hpi-hat { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-8deg) } }
@keyframes hpi-pin { 0% { box-shadow:0 0 10px 4px #ffcc66; opacity:0.7 } 50% { box-shadow:0 0 22px 12px #ffcc66; opacity:1 } 100% { box-shadow:0 0 14px 6px #ffcc66; opacity:0.8 } }
@keyframes hpi-hand { 0% { transform: rotate(15deg) } 25% { transform: rotate(18deg) translateX(2px) } 50% { transform: rotate(12deg) translateY(-2px) } 75% { transform: rotate(16deg) } 100% { transform: rotate(15deg) } }
@keyframes hpi-shadow { 0% { transform: rotate(20deg); opacity:0.2 } 50% { opacity:0.35 } 100% { transform: rotate(25deg); opacity:0.2 } }
@keyframes hpi-lintel { 0% { background-position: -100% 0 } 100% { background-position: 200% 0 } }

/* natacha-questioned */
.scn-natacha-questioned {
  background: linear-gradient(180deg, #1a1c30 0%, #2a2440 50%, #1c1a2a 100%);
  box-shadow: inset 0 0 80px #0a0a14;
}
.scn-natacha-questioned .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #24203a 0%, #1a1830 100%);
  animation: nq-room 10s ease-in-out infinite alternate;
}
.scn-natacha-questioned .window-shape {
  position: absolute; top: 12%; right: 18%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 60%, #b88a60 0%, #6a4a30 70%);
  border-radius: 8px;
  box-shadow: 0 0 30px 8px rgba(184,138,96,0.3);
  border: 3px solid #3a2a1a;
  animation: nq-window 6s ease-in-out infinite alternate;
}
.scn-natacha-questioned .figure-left {
  position: absolute; bottom: 28%; left: 22%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: nq-figL 4s ease-in-out infinite;
}
.scn-natacha-questioned .figure-right {
  position: absolute; bottom: 28%; right: 28%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.95);
  animation: nq-figR 4s ease-in-out infinite;
}
.scn-natacha-questioned .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px #0a0a0a;
}
.scn-natacha-questioned .lamp-glow {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #b08040 0%, transparent 70%);
  border-radius: 50%;
  animation: nq-lamp 3s ease-in-out infinite alternate;
}
.scn-natacha-questioned .lamp-stand {
  position: absolute; bottom: 18%; left: 50%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a, #2a1e12);
  transform: translateX(-50%);
  border-radius: 2px;
}
@keyframes nq-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes nq-window { 0% { box-shadow:0 0 20px 4px #b88a60; opacity:0.9 } 50% { box-shadow:0 0 40px 12px #b88a60; opacity:1 } 100% { box-shadow:0 0 25px 6px #b88a60; opacity:0.85 } }
@keyframes nq-figL { 0% { transform: scale(0.9) translateX(0) } 25% { transform: scale(0.92) translateX(-2px) rotate(-2deg) } 50% { transform: scale(0.88) translateX(1px) rotate(2deg) } 75% { transform: scale(0.91) translateX(-1px) rotate(0) } 100% { transform: scale(0.9) } }
@keyframes nq-figR { 0% { transform: scale(0.95) translateX(0) } 25% { transform: scale(0.93) translateX(3px) rotate(2deg) } 50% { transform: scale(0.97) translateX(-1px) rotate(-1deg) } 75% { transform: scale(0.94) translateX(2px) rotate(0) } 100% { transform: scale(0.95) } }
@keyframes nq-lamp { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }

/* hat-pin-in-hat */
.scn-hat-pin-in-hat {
  background: linear-gradient(180deg, #1e1c2a 0%, #2c2840 50%, #1a1830 100%);
  box-shadow: inset 0 0 50px #0a0812;
}
.scn-hat-pin-in-hat .backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a2640 0%, #1e1c30 100%);
  animation: hih-back 8s ease-in-out infinite alternate;
}
.scn-hat-pin-in-hat .hat-stand {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #2a1e12 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-hat-pin-in-hat .hat-crown {
  position: absolute; bottom: 52%; left: 50%; width: 70px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: hih-crown 6s ease-in-out infinite alternate;
}
.scn-hat-pin-in-hat .hat-brim {
  position: absolute; bottom: 48%; left: 50%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-8deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: hih-brim 6s ease-in-out infinite alternate;
}
.scn-hat-pin-in-hat .pin-needle {
  position: absolute; bottom: 55%; left: 52%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #888080 0%, #4a4040 100%);
  transform: rotate(30deg);
  border-radius: 1px;
  animation: hih-needle 4s ease-in-out infinite;
}
.scn-hat-pin-in-hat .pin-head {
  position: absolute; bottom: 62%; left: 53%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c4a060 0%, #8a6a30 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(196,160,96,0.6);
  animation: hih-head 2s ease-in-out infinite alternate;
}
.scn-hat-pin-in-hat .observer {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #22223a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: hih-obs 5s ease-in-out infinite;
}
.scn-hat-pin-in-hat .table-edge {
  position: absolute; bottom: 18%; left: 8%; right: 8%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
@keyframes hih-back { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hih-crown { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-7deg) } }
@keyframes hih-brim { 0% { transform: translateX(-50%) rotate(-8deg) } 50% { transform: translateX(-50%) rotate(-11deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes hih-needle { 0% { transform: rotate(30deg) } 25% { transform: rotate(35deg) } 50% { transform: rotate(28deg) } 75% { transform: rotate(32deg) } 100% { transform: rotate(30deg) } }
@keyframes hih-head { 0% { box-shadow:0 0 8px 2px #c4a060; opacity:0.8 } 50% { box-shadow:0 0 18px 8px #c4a060; opacity:1 } 100% { box-shadow:0 0 10px 4px #c4a060; opacity:0.9 } }
@keyframes hih-obs { 0% { transform: scale(0.85) translateX(0) } 25% { transform: scale(0.87) translateX(-3px) rotate(-2deg) } 50% { transform: scale(0.83) translateX(2px) rotate(1deg) } 75% { transform: scale(0.86) translateX(-1px) } 100% { transform: scale(0.85) } }

/* toque-pin */
.scn-toque-pin {
  background: linear-gradient(180deg, #1a1c30 0%, #2a2440 50%, #3a3050 100%);
  box-shadow: inset 0 0 60px #0a0a14;
}
.scn-toque-pin .veranda-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a2640 0%, #1c1a30 100%);
  animation: tp-ver 10s ease-in-out infinite alternate;
}
.scn-toque-pin .railing {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, #3a2a1a 40%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: tp-rail 8s ease-in-out infinite;
}
.scn-toque-pin .corner-wall {
  position: absolute; top: 5%; right: 15%; width: 30%; height: 70%;
  background: linear-gradient(135deg, #2a2440 0%, #1c1a2e 100%);
  border-left: 4px solid #4a3a2a;
  border-bottom: 4px solid #3a2a1a;
  box-shadow: inset 0 0 30px #0a0a14;
  transform: skewX(-5deg);
  animation: tp-wall 12s linear infinite;
}
.scn-toque-pin .toque {
  position: absolute; bottom: 40%; left: 20%; width: 50px; height: 45px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3c2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: tp-toque 5s ease-in-out infinite alternate;
}
.scn-toque-pin .pin-spark {
  position: absolute; bottom: 48%; left: 25%; width: 5px; height: 5px;
  background: radial-gradient(circle, #ffcc66 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 14px 6px rgba(255,204,102,0.6), 0 0 30px 12px rgba(255,204,102,0.3);
  animation: tp-spark 1.5s ease-in-out infinite alternate;
}
.scn-toque-pin .dusk-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b88a60 0%, #8a6a40 30%, #2a2440 70%);
  border-radius: 0 0 40% 40%;
  animation: tp-sky 15s ease-in-out infinite alternate;
}
.scn-toque-pin .pot-plant {
  position: absolute; bottom: 28%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px #000;
  animation: tp-plant 7s ease-in-out infinite;
}
@keyframes tp-ver { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes tp-rail { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes tp-wall { 0% { opacity:0.9 } 33% { opacity:1 } 66% { opacity:0.85 } 100% { opacity:0.9 } }
@keyframes tp-toque { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-18deg) translateY(-3px) } 100% { transform: rotate(-12deg) } }
@keyframes tp-spark { 0% { box-shadow:0 0 10px 4px #ffcc66; opacity:0.7 } 50% { box-shadow:0 0 20px 10px #ffcc66; opacity:1 } 100% { box-shadow:0 0 12px 6px #ffcc66; opacity:0.8 } }
@keyframes tp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tp-plant { 0% { transform: scale(1) } 25% { transform: scale(1.02) rotate(-2deg) } 50% { transform: scale(0.98) rotate(2deg) } 75% { transform: scale(1.01) } 100% { transform: scale(1) } }

.scn-domovoi-doukh { background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }

.scn-domovoi-doukh .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: dd-sky 14s ease-in-out infinite alternate; }
.scn-domovoi-doukh .path { position:absolute; bottom:0; left:20%; right:20%; height:35%; background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 60%, transparent 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: dd-path 20s ease-in-out infinite alternate; }
.scn-domovoi-doukh .tree-left { position:absolute; bottom:40%; left:8%; width:30%; height:50%; background: radial-gradient(ellipse at 20% 100%, #1a2a1a 0%, transparent 60%), radial-gradient(ellipse at 80% 100%, #1a2a1a 0%, transparent 60%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: dd-sway 9s ease-in-out infinite; }
.scn-domovoi-doukh .tree-right { position:absolute; bottom:40%; right:8%; width:35%; height:55%; background: radial-gradient(ellipse at 30% 100%, #1a2a1a 0%, transparent 60%), radial-gradient(ellipse at 70% 100%, #1a2a1a 0%, transparent 60%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: dd-sway 11s ease-in-out infinite reverse; }
.scn-domovoi-doukh .bush { position:absolute; bottom:25%; left:40%; right:40%; height:15%; background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%); border-radius: 50%; animation: dd-bush 6s ease-in-out infinite alternate; }
.scn-domovoi-doukh .figure { position:absolute; bottom:28%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 4px rgba(0,0,0,.8); animation: dd-figure 5s ease-in-out infinite; }
.scn-domovoi-doukh .glowworm { position:absolute; bottom:35%; left:55%; width:4px; height:4px; background: #b08040; border-radius: 50%; box-shadow: 0 0 12px 3px rgba(176,128,64,.6); animation: dd-glowworm 3s ease-in-out infinite alternate; }

@keyframes dd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dd-path { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dd-sway { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes dd-bush { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) } }
@keyframes dd-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dd-glowworm { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.5; transform: scale(.9) } }

.scn-domovoi-brought-home { background: linear-gradient(180deg, #1a1a3a 0%, #2a224a 40%, #1a2a1a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }

.scn-domovoi-brought-home .sky-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: dbh-sky 10s ease-in-out infinite alternate; }
.scn-domovoi-brought-home .lawn { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.5); animation: dbh-lawn 15s ease-in-out infinite alternate; }
.scn-domovoi-brought-home .datcha { position:absolute; bottom:25%; left:35%; right:35%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: dbh-house 8s ease-in-out infinite; }
.scn-domovoi-brought-home .case-box { position:absolute; bottom:22%; left:48%; width:20px; height:15px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dbh-case 4s ease-in-out infinite alternate; }
.scn-domovoi-brought-home .dweller { position:absolute; bottom:28%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dbh-figure 6s ease-in-out infinite; }
.scn-domovoi-brought-home .lantern-glow { position:absolute; bottom:40%; left:58%; width:8px; height:8px; background: #ffd680; border-radius: 50%; box-shadow: 0 0 18px 5px rgba(255,214,128,.5), 0 0 36px 12px rgba(255,214,128,.2); animation: dbh-lantern 3s ease-in-out infinite alternate; }
.scn-domovoi-brought-home .fence-left { position:absolute; bottom:28%; left:20%; width:4px; height:30px; background: #2a1a0a; border-radius: 2px; box-shadow: 8px 0 0 #2a1a0a, 16px 0 0 #2a1a0a, 24px 0 0 #2a1a0a; animation: dbh-fence 12s ease-in-out infinite alternate; }
.scn-domovoi-brought-home .fence-right { position:absolute; bottom:28%; right:20%; width:4px; height:30px; background: #2a1a0a; border-radius: 2px; box-shadow: -8px 0 0 #2a1a0a, -16px 0 0 #2a1a0a, -24px 0 0 #2a1a0a; animation: dbh-fence 12s ease-in-out infinite alternate-reverse; }

@keyframes dbh-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes dbh-lawn { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dbh-house { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dbh-case { 0% { transform: translateY(0) opacity:.8 } 50% { transform: translateY(-3px) opacity:1 } 100% { transform: translateY(0) opacity:.9 } }
@keyframes dbh-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes dbh-lantern { 0% { box-shadow: 0 0 12px 3px rgba(255,214,128,.4); opacity:.7 } 50% { box-shadow: 0 0 24px 8px rgba(255,214,128,.7); opacity:1 } 100% { box-shadow: 0 0 16px 5px rgba(255,214,128,.5); opacity:.8 } }
@keyframes dbh-fence { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-two-spirits { background: linear-gradient(180deg, #1a1a3e 0%, #2a2250 40%, #1a2a2a 100%), radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); }

.scn-two-spirits .night-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: ts-sky 12s ease-in-out infinite alternate; }
.scn-two-spirits .house-roof { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: ts-roof 10s ease-in-out infinite alternate; }
.scn-two-spirits .house-wall { position:absolute; bottom:10%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 6% 6%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ts-wall 8s ease-in-out infinite; }
.scn-two-spirits .window-warm { position:absolute; bottom:20%; left:45%; right:45%; height:10%; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: ts-window 4s ease-in-out infinite alternate; }
.scn-two-spirits .genius-a { position:absolute; bottom:38%; left:38%; width:14px; height:30px; background: radial-gradient(circle at 50% 30%, #ffd680 0%, #b08040 80%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: ts-genius-a 5s ease-in-out infinite; }
.scn-two-spirits .genius-b { position:absolute; bottom:38%; right:38%; width:14px; height:30px; background: radial-gradient(circle at 50% 30%, #ffd680 0%, #b08040 80%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: ts-genius-b 5s ease-in-out infinite 1s; }
.scn-two-spirits .chimney { position:absolute; bottom:45%; left:55%; width:10px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; animation: ts-chimney 7s ease-in-out infinite alternate; }

@keyframes ts-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ts-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ts-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ts-window { 0% { box-shadow: 0 0 15px 4px #c08040; opacity:.8 } 50% { box-shadow: 0 0 30px 8px #ffd060; opacity:1 } 100% { box-shadow: 0 0 20px 5px #c08040; opacity:.9 } }
@keyframes ts-genius-a { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-4px) scale(1.1) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes ts-genius-b { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-3px) scale(1.05) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(-4px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes ts-chimney { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-rouletabille-the-watcher { background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%); }

.scn-rouletabille-the-watcher .dark-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%); animation: rtw-sky 18s ease-in-out infinite alternate; }
.scn-rouletabille-the-watcher .parapet { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 0 0 8% 8%; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: rtw-parapet 12s ease-in-out infinite alternate; }
.scn-rouletabille-the-watcher .figure-watcher { position:absolute; bottom:35%; left:50%; width:20px; height:45px; background: radial-gradient(ellipse at 50% 20%, #e0d0c0 0%, #c0b0a0 40%, #0a0a0a 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,.5); animation: rtw-figure 7s ease-in-out infinite; }
.scn-rouletabille-the-watcher .streetlamp { position:absolute; bottom:30%; left:20%; width:6px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 0 0 2px 2px; transform-origin: bottom center; animation: rtw-lamp-post 9s ease-in-out infinite alternate; }
.scn-rouletabille-the-watcher .lamp-glow { position:absolute; bottom:48%; left:20%; width:16px; height:16px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px rgba(255,214,128,.3), 0 0 48px 16px rgba(255,214,128,.1); animation: rtw-lamp-glow 4s ease-in-out infinite alternate; }
.scn-rouletabille-the-watcher .paving { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); animation: rtw-paving 20s ease-in-out infinite alternate; }

@keyframes rtw-sky { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes rtw-parapet { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes rtw-figure { 0% { transform: translateY(0) rotate(-1deg) scale(1) } 25% { transform: translateY(-3px) rotate(2deg) scale(1.02) } 50% { transform: translateY(0) rotate(0) scale(1) } 75% { transform: translateY(-3px) rotate(-2deg) scale(1.02) } 100% { transform: translateY(0) rotate(1deg) scale(1) } }
@keyframes rtw-lamp-post { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes rtw-lamp-glow { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes rtw-paving { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

/* one block per scene id. Append to style.css. */
.scn-guard-him-for-me { background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 40%, #9a8a70 100%), radial-gradient(ellipse at 50% 30%, #fff5e6 0%, transparent 70%); }
.scn-guard-him-for-me .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c4ac 0%, #b8a48c 100%); border-bottom: 2px solid #8a7a62; }
.scn-guard-him-for-me .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); }
.scn-guard-him-for-me .door    { position:absolute; right:8%; bottom:30%; width:16%; height:60%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 2px 8px rgba(0,0,0,.3); animation: ghi-door 9s ease-in-out infinite alternate; }
.scn-guard-him-for-me .guard-sil { position:absolute; bottom:30%; left:40%; width:14%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ghi-guard 5s ease-in-out infinite alternate; }
.scn-guard-him-for-me .guard-shadow { position:absolute; bottom:30%; left:38%; width:18%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: ghi-shadow 5s ease-in-out infinite alternate; }
.scn-guard-him-for-me .lamp-glow { position:absolute; top:8%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse, #ffd080 0%, #ffb060 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: ghi-lamp-glow 3s ease-in-out infinite alternate; }
.scn-guard-him-for-me .lamp-body { position:absolute; top:15%; left:14%; width:4%; height:8%; background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px rgba(255,200,100,.5); animation: ghi-lamp-body 3s ease-in-out infinite alternate; }
@keyframes ghi-door { 0% { transform: scaleX(1); } 30% { transform: scaleX(1.02); } 70% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }
@keyframes ghi-guard { 0% { transform: rotate(0deg); opacity:0.9; } 25% { transform: rotate(1.5deg); opacity:1; } 50% { transform: rotate(-1deg); opacity:0.95; } 75% { transform: rotate(2deg); opacity:1; } 100% { transform: rotate(0.5deg); opacity:0.9; } }
@keyframes ghi-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.6; } 50% { transform: translateX(2px) scaleX(1.1); opacity:0.8; } 100% { transform: translateX(-2px) scaleX(0.9); opacity:0.6; } }
@keyframes ghi-lamp-glow { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes ghi-lamp-body { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-impossible-to-go { background: linear-gradient(180deg, #f0e4d0 0%, #d0c0a8 40%, #a09078 100%), radial-gradient(ellipse at 60% 20%, #fff8f0 0%, transparent 60%); }
.scn-impossible-to-go .wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); box-shadow: inset 0 -4px 8px rgba(0,0,0,.1); }
.scn-impossible-to-go .floor   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); }
.scn-impossible-to-go .desk    { position:absolute; bottom:25%; left:15%; width:40%; height:40%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: itg-desk 12s ease-in-out infinite alternate; }
.scn-impossible-to-go .chair   { position:absolute; bottom:25%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: itg-chair 12s ease-in-out infinite alternate; }
.scn-impossible-to-go .figure-walk { position:absolute; bottom:25%; left:50%; width:12%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: itg-walk 4s ease-in-out infinite; }
.scn-impossible-to-go .figure-shadow { position:absolute; bottom:25%; left:48%; width:16%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: itg-shadow 4s ease-in-out infinite; }
.scn-impossible-to-go .clock   { position:absolute; top:10%; right:15%; width:12%; height:16%; background: radial-gradient(circle, #f0e0c0 30%, #8a7a62 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.2); animation: itg-clock 10s linear infinite; }
.scn-impossible-to-go .lamp-glow { position:absolute; top:5%; left:5%; width:25%; height:35%; background: radial-gradient(ellipse, #ffd890 0%, #ffb860 40%, transparent 70%); filter: blur(12px); animation: itg-lamp-glow 3s ease-in-out infinite alternate; }
.scn-impossible-to-go .lamp-body { position:absolute; top:12%; left:8%; width:3%; height:10%; background: linear-gradient(180deg, #b09878 0%, #806850 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px rgba(255,200,100,.4); animation: itg-lamp-body 3s ease-in-out infinite alternate; }
@keyframes itg-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes itg-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes itg-walk { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(8px) rotate(1deg); } 40% { transform: translateX(16px) rotate(-0.5deg); } 60% { transform: translateX(8px) rotate(0.5deg); } 80% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes itg-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(8px) scaleX(0.8); opacity:0.7; } 100% { transform: translateX(0) scaleX(1); opacity:0.5; } }
@keyframes itg-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes itg-lamp-glow { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.98); opacity:0.85; } }
@keyframes itg-lamp-body { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-life-for-life { background: linear-gradient(180deg, #e4d4bc 0%, #c4b098 40%, #a08870 100%), radial-gradient(ellipse at 30% 40%, #fff0dc 0%, transparent 60%); }
.scn-life-for-life .wall    { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d0bca4 0%, #b8a088 100%); }
.scn-life-for-life .floor   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-life-for-life .desk    { position:absolute; bottom:20%; left:38%; width:24%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: lfl-desk 14s ease-in-out infinite alternate; }
.scn-life-for-life .figure-left { position:absolute; bottom:20%; left:20%; width:14%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lfl-figure-l 5s ease-in-out infinite alternate; }
.scn-life-for-life .figure-right { position:absolute; bottom:20%; right:20%; width:14%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lfl-figure-r 5s ease-in-out infinite alternate; }
.scn-life-for-life .shadow-left { position:absolute; bottom:20%; left:18%; width:18%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: lfl-shadow-l 5s ease-in-out infinite alternate; }
.scn-life-for-life .shadow-right { position:absolute; bottom:20%; right:18%; width:18%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: lfl-shadow-r 5s ease-in-out infinite alternate; }
.scn-life-for-life .lamp-glow { position:absolute; top:10%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse, #ffd080 0%, #ffb060 40%, transparent 70%); filter: blur(10px); animation: lfl-lamp-glow 3s ease-in-out infinite alternate; }
.scn-life-for-life .lamp-body { position:absolute; top:18%; left:13%; width:3%; height:8%; background: linear-gradient(180deg, #b09878 0%, #806850 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px rgba(255,200,100,.4); animation: lfl-lamp-body 3s ease-in-out infinite alternate; }
@keyframes lfl-desk { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes lfl-figure-l { 0% { transform: rotate(0deg); opacity:0.95; } 50% { transform: rotate(2deg); opacity:1; } 100% { transform: rotate(-1deg); opacity:0.95; } }
@keyframes lfl-figure-r { 0% { transform: rotate(0deg); opacity:0.95; } 50% { transform: rotate(-2deg); opacity:1; } 100% { transform: rotate(1deg); opacity:0.95; } }
@keyframes lfl-shadow-l { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(2px) scaleX(1.1); opacity:0.8; } 100% { transform: translateX(-2px) scaleX(0.9); opacity:0.5; } }
@keyframes lfl-shadow-r { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(-2px) scaleX(1.1); opacity:0.8; } 100% { transform: translateX(2px) scaleX(0.9); opacity:0.5; } }
@keyframes lfl-lamp-glow { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes lfl-lamp-body { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-you-have-my-word { background: linear-gradient(180deg, #e8d8c0 0%, #c8b4a0 40%, #a89078 100%), radial-gradient(ellipse at 70% 30%, #fff4e6 0%, transparent 70%); }
.scn-you-have-my-word .wall    { position:absolute; inset:0 0 22% 0; background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%); }
.scn-you-have-my-word .floor   { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); }
.scn-you-have-my-word .door-bg { position:absolute; right:5%; top:0; width:18%; height:78%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 2px 8px rgba(0,0,0,.3); animation: yhw-door 12s ease-in-out infinite alternate; }
.scn-you-have-my-word .hand-left { position:absolute; bottom:30%; left:38%; width:6%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: yhw-hand-l 6s ease-in-out infinite alternate; }
.scn-you-have-my-word .hand-right { position:absolute; bottom:30%; right:38%; width:6%; height:14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: yhw-hand-r 6s ease-in-out infinite alternate; }
.scn-you-have-my-word .arm-left { position:absolute; bottom:38%; left:35%; width:4%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom left; animation: yhw-arm-l 6s ease-in-out infinite alternate; }
.scn-you-have-my-word .arm-right { position:absolute; bottom:38%; right:35%; width:4%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom right; animation: yhw-arm-r 6s ease-in-out infinite alternate; }
.scn-you-have-my-word .shadow-left { position:absolute; bottom:22%; left:34%; width:16%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: yhw-shadow-l 6s ease-in-out infinite alternate; }
.scn-you-have-my-word .shadow-right { position:absolute; bottom:22%; right:34%; width:16%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); animation: yhw-shadow-r 6s ease-in-out infinite alternate; }
@keyframes yhw-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.98); } }
@keyframes yhw-hand-l { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes yhw-hand-r { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes yhw-arm-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-2deg); } }
@keyframes yhw-arm-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(2deg); } }
@keyframes yhw-shadow-l { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(4px) scaleX(0.8); opacity:0.7; } 100% { transform: translateX(-2px) scaleX(1.1); opacity:0.5; } }
@keyframes yhw-shadow-r { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(-4px) scaleX(0.8); opacity:0.7; } 100% { transform: translateX(2px) scaleX(1.1); opacity:0.5; } }

/* Scene 1: rouletabille-dismisses-police */
.scn-rouletabille-dismisses-police {
  background:
    linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 30%, #6a4a3a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 60%, #6a4a3a 0%, transparent 70%);
}
.scn-rouletabille-dismisses-police .bg-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 60%, transparent 100%);
  animation: rdp-sky 15s ease-in-out infinite alternate;
}
.scn-rouletabille-dismisses-police .bg-horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: rdp-hills 20s ease-in-out infinite alternate;
}
.scn-rouletabille-dismisses-police .door-frame {
  position: absolute; bottom: 20%; left: 45%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(0,0,0,0.5);
}
.scn-rouletabille-dismisses-police .door-light {
  position: absolute; bottom: 22%; left: 48%; width: 24%; height: 56%;
  background: radial-gradient(ellipse at 50% 60%, #c08040 0%, #8a6020 60%, transparent 100%);
  border-radius: 4%;
  box-shadow: 0 0 40px 10px rgba(192,128,64,0.4);
  animation: rdp-glow 4s ease-in-out infinite alternate;
}
.scn-rouletabille-dismisses-police .figure-main {
  position: absolute; bottom: 22%; left: 50%; width: 8%; 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: rdp-figure 4s ease-in-out infinite;
}
.scn-rouletabille-dismisses-police .figure-police1 {
  position: absolute; bottom: 22%; left: 62%; width: 7%; 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: rdp-walk-away 6s ease-in-out infinite;
}
.scn-rouletabille-dismisses-police .figure-police2 {
  position: absolute; bottom: 22%; left: 72%; width: 6%; 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: rdp-walk-away 7s ease-in-out infinite 0.5s;
}
.scn-rouletabille-dismisses-police .lantern {
  position: absolute; bottom: 48%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.7);
  animation: rdp-lantern 3s ease-in-out infinite alternate;
}
@keyframes rdp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rdp-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rdp-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 5px #8a6020, 0 0 40px 10px rgba(138,96,32,0.3) } 50% { opacity:1; box-shadow: 0 0 40px 12px #c08040, 0 0 60px 18px rgba(192,128,64,0.5) } 100% { opacity:0.8; box-shadow: 0 0 25px 6px #8a6020, 0 0 45px 12px rgba(138,96,32,0.35) } }
@keyframes rdp-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2%) translateY(-1%) rotate(3deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-2%) translateY(-1%) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes rdp-walk-away { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8%) translateY(-2%) rotate(2deg) } 50% { transform: translateX(16%) translateY(0) rotate(0) } 75% { transform: translateX(24%) translateY(-2%) rotate(-2deg) } 100% { transform: translateX(32%) translateY(0) rotate(0) } }
@keyframes rdp-lantern { 0% { transform: translateX(0) rotate(-5deg); opacity:0.8 } 50% { transform: translateX(2%) rotate(5deg); opacity:1 } 100% { transform: translateX(0) rotate(-5deg); opacity:0.8 } }

/* Scene 2: rouletabille-skeptical-of-police */
.scn-rouletabille-skeptical-of-police {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #4a3a5a 80%, #2a1a2a 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a5a 0%, transparent 80%);
}
.scn-rouletabille-skeptical-of-police .bg-window {
  position: absolute; inset: 10% 15% 40% 15%;
  background: linear-gradient(135deg, #3a4a6a 0%, #2a3a5a 60%, transparent 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: rsw-window 12s ease-in-out infinite alternate;
}
.scn-rouletabille-skeptical-of-police .bg-wall {
  position: absolute; inset: 8% 12% 38% 12%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 3% 3% 1% 1%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-rouletabille-skeptical-of-police .figure-profile {
  position: absolute; bottom: 30%; left: 25%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rsw-profile 8s ease-in-out infinite;
}
.scn-rouletabille-skeptical-of-police .hand-gesture {
  position: absolute; bottom: 52%; left: 38%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom left;
  animation: rsw-hand 4s ease-in-out infinite alternate;
}
.scn-rouletabille-skeptical-of-police .shadow-cast {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: rsw-shadow 6s ease-in-out infinite alternate;
}
.scn-rouletabille-skeptical-of-police .lintel {
  position: absolute; top: 8%; left: 15%; right: 15%; height: 4%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
@keyframes rsw-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes rsw-profile { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2%) translateY(-1%) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-2%) translateY(-1%) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes rsw-hand { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(15deg) translateX(5%) } 100% { transform: rotate(0) translateX(2%) } }
@keyframes rsw-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(0.9) } }

/* Scene 3: order-to-leave */
.scn-order-to-leave {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #4a3a5a 70%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a5a 0%, transparent 60%);
}
.scn-order-to-leave .bg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-order-to-leave .bg-sky-otl {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 50%, transparent 100%);
  animation: otl-sky 18s ease-in-out infinite alternate;
}
.scn-order-to-leave .figure-commander {
  position: absolute; bottom: 20%; left: 20%; 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: otl-commander 5s ease-in-out infinite;
}
.scn-order-to-leave .commander-arm {
  position: absolute; bottom: 50%; left: 28%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: otl-arm 3s ease-in-out infinite alternate;
}
.scn-order-to-leave .figure-police-a {
  position: absolute; bottom: 20%; left: 45%; 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: otl-walk 10s ease-in-out infinite;
}
.scn-order-to-leave .figure-police-b {
  position: absolute; bottom: 20%; left: 58%; width: 9%; height: 42%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otl-walk 11s ease-in-out infinite 0.5s;
}
.scn-order-to-leave .figure-police-c {
  position: absolute; bottom: 20%; left: 70%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otl-walk 12s ease-in-out infinite 1s;
}
@keyframes otl-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes otl-commander { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(1%) translateY(-1%) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-1%) translateY(-1%) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes otl-arm { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-20deg) scaleY(1.1) } 100% { transform: rotate(0) scaleY(1) } }
@keyframes otl-walk { 0% { transform: translateX(0) translateY(0) rotate(0) } 20% { transform: translateX(5%) translateY(-2%) rotate(2deg) } 40% { transform: translateX(10%) translateY(0) rotate(0) } 60% { transform: translateX(15%) translateY(-2%) rotate(-2deg) } 80% { transform: translateX(20%) translateY(0) rotate(0) } 100% { transform: translateX(25%) translateY(0) rotate(0) } }

/* Scene 4: matrena-bribes-police */
.scn-matrena-bribes-police {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 40%, #4a3a3a 70%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 80%);
}
.scn-matrena-bribes-police .bg-interior {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 50%, #3a2a2a 100%);
  border-radius: 8%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
}
.scn-matrena-bribes-police .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.6);
}
.scn-matrena-bribes-police .figure-matrena {
  position: absolute; bottom: 22%; left: 30%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbp-matrena 6s ease-in-out infinite;
}
.scn-matrena-bribes-police .figure-policeman {
  position: absolute; bottom: 22%; left: 55%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbp-policeman 7s ease-in-out infinite;
}
.scn-matrena-bribes-police .hand-money {
  position: absolute; bottom: 50%; left: 40%; width: 6%; height: 4%;
  background: radial-gradient(ellipse at 50% 50%, #c08040 0%, #8a6020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(192,128,64,0.3);
  animation: mbp-hand 3s ease-in-out infinite alternate;
}
.scn-matrena-bribes-police .candle {
  position: absolute; bottom: 30%; left: 48%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10%;
}
.scn-matrena-bribes-police .candle-glow {
  position: absolute; bottom: 32%; left: 46%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(192,128,64,0.5);
  animation: mbp-glow 4s ease-in-out infinite alternate;
}
@keyframes mbp-matrena { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(1%) translateY(-1%) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-1%) translateY(-1%) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mbp-policeman { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-1%) translateY(-1%) rotate(-2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(1%) translateY(-1%) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mbp-hand { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0.8 } 50% { transform: translateX(5%) translateY(-2%) scale(1.2); opacity:1 } 100% { transform: translateX(0) translateY(0) scale(1); opacity:0.8 } }
@keyframes mbp-glow { 0% { opacity:0.6; box-shadow: 0 0 15px 5px #c08040 } 50% { opacity:1; box-shadow: 0 0 30px 12px #ffd080 } 100% { opacity:0.7; box-shadow: 0 0 20px 8px #c08040 } }

.scn-roubles-in-pockets {
  background: linear-gradient(180deg, #f9d68a 0%, #e8b55a 40%, #c98a3e 100%), radial-gradient(ellipse at 70% 30%, #f0c060 0%, transparent 60%);
}
.scn-roubles-in-pockets .sunbeam {
  position: absolute; top: 0; left: 40%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 20% 100%);
  animation: rp-sun 8s ease-in-out infinite alternate;
}
.scn-roubles-in-pockets .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #b87a3a 0%, #8c5a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.4);
  animation: rp-table 6s ease-in-out infinite;
}
.scn-roubles-in-pockets .book {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: rp-book 4s ease-in-out infinite alternate;
}
.scn-roubles-in-pockets .coin-1 {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #f0d060 0%, #b08030 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(255,215,0,0.4);
  animation: rp-coin1 3s ease-in-out infinite alternate;
}
.scn-roubles-in-pockets .coin-2 {
  position: absolute; bottom: 25%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 40%, #e8c840 0%, #a07020 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,215,0,0.3);
  animation: rp-coin2 4s ease-in-out infinite alternate;
}
.scn-roubles-in-pockets .hand {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c89868 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rp-hand 2s ease-in-out infinite;
}
.scn-roubles-in-pockets .shadow {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: rp-shadow 3s ease-in-out infinite alternate;
}
@keyframes rp-sun { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes rp-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rp-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(2px); } }
@keyframes rp-coin1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rp-coin2 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes rp-hand { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rp-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.9); } }

.scn-affair-of-digestion {
  background: linear-gradient(180deg, #f5e6ca 0%, #d4b98a 50%, #b89a6a 100%), radial-gradient(ellipse at 80% 20%, #ffd78c 0%, transparent 60%);
}
.scn-affair-of-digestion .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e6d4a8 0%, transparent 100%);
  animation: ad-wall 12s ease-in-out infinite alternate;
}
.scn-affair-of-digestion .table-cloth {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #f8f0d8 0%, #e0d0b0 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: ad-cloth 6s ease-in-out infinite;
}
.scn-affair-of-digestion .bottle {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ad-bottle 3s ease-in-out infinite alternate;
}
.scn-affair-of-digestion .bubbles {
  position: absolute; bottom: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, transparent 80%);
  border-radius: 50%;
}
.scn-affair-of-digestion .bubble-1 {
  left: 35%;
  animation: ad-bubble1 2s ease-out infinite;
}
.scn-affair-of-digestion .bubble-2 {
  left: 40%;
  animation: ad-bubble2 2.5s ease-out infinite 0.5s;
}
.scn-affair-of-digestion .figure-silhouette {
  position: absolute; bottom: 20%; right: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-figure 4s ease-in-out infinite;
}
.scn-affair-of-digestion .glass {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 0 0 10% 10%;
  animation: ad-glass 3s ease-in-out infinite alternate;
}
@keyframes ad-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ad-cloth { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ad-bottle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-1deg); } }
@keyframes ad-bubble1 { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-40px) scale(0.5); opacity: 0; } }
@keyframes ad-bubble2 { 0% { transform: translateY(0) scale(0.8); opacity: 0.8; } 100% { transform: translateY(-50px) scale(0.4); opacity: 0; } }
@keyframes ad-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 75% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ad-glass { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-department-of-police {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 50%, #988868 100%), radial-gradient(ellipse at 40% 60%, #e0d4b4 0%, transparent 70%);
}
.scn-department-of-police .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-bottom: 4px solid #786850;
  animation: dp-wall 10s ease-in-out infinite alternate;
}
.scn-department-of-police .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: dp-desk 8s ease-in-out infinite;
}
.scn-department-of-police .lamp {
  position: absolute; bottom: 35%; left: 30%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8a868 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 4px rgba(192,160,80,0.5);
  animation: dp-lamp 4s ease-in-out infinite alternate;
}
.scn-department-of-police .chair {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: dp-chair 6s ease-in-out infinite alternate;
}
.scn-department-of-police .door {
  position: absolute; bottom: 0; left: 5%; width: 30px; height: 70%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 2px 20px 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: dp-door 12s ease-in-out infinite;
}
.scn-department-of-police .hors-doeuvres {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 8px;
  background: radial-gradient(circle, #c06040 0%, #8a4020 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: dp-hors 3s ease-in-out infinite;
}
.scn-department-of-police .window {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8d8e0 0%, #a8b8c0 100%);
  border: 2px solid #786850;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,220,240,0.5);
  animation: dp-window 8s ease-in-out infinite alternate;
}
.scn-department-of-police .figure-sitting {
  position: absolute; bottom: 20%; left: 22%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dp-figure 5s ease-in-out infinite;
}
@keyframes dp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dp-lamp { 0% { box-shadow: 0 0 15px 3px rgba(192,160,80,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 25px 6px rgba(192,160,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 18px 4px rgba(192,160,80,0.5); opacity: 0.9; } }
@keyframes dp-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dp-door { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes dp-hors { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes dp-window { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(0.98); } }
@keyframes dp-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-koupriane-at-inspection {
  background: linear-gradient(180deg, #f0f4f0 0%, #dce0dc 50%, #c8ccc8 100%), radial-gradient(ellipse at 50% 20%, #ffffff 0%, transparent 70%);
}
.scn-koupriane-at-inspection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b0b8b0 0%, #909890 100%);
  border-top: 2px solid #a0a8a0;
  animation: ki-floor 10s ease-in-out infinite alternate;
}
.scn-koupriane-at-inspection .wall-bright {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8ece8 0%, #d0d4d0 100%);
  box-shadow: inset 0 0 40px rgba(255,255,255,0.3);
  animation: ki-wall 12s ease-in-out infinite;
}
.scn-koupriane-at-inspection .bunk {
  position: absolute; bottom: 20%; height: 30%;
  background: linear-gradient(180deg, #b8beb8 0%, #989e98 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.scn-koupriane-at-inspection .bunk-1 {
  left: 10%; width: 25%;
  animation: ki-bunk1 6s ease-in-out infinite alternate;
}
.scn-koupriane-at-inspection .bunk-2 {
  right: 10%; width: 25%;
  animation: ki-bunk2 7s ease-in-out infinite alternate 0.5s;
}
.scn-koupriane-at-inspection .pillow {
  position: absolute; bottom: 38%; width: 12px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #f0f0f0 0%, #d0d0d0 100%);
  border-radius: 50%;
}
.scn-koupriane-at-inspection .pillow-1 {
  left: 18%;
  animation: ki-pillow1 4s ease-in-out infinite;
}
.scn-koupriane-at-inspection .pillow-2 {
  right: 18%;
  animation: ki-pillow2 5s ease-in-out infinite 1s;
}
.scn-koupriane-at-inspection .window-high {
  position: absolute; top: 8%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #c8dce8 0%, #a8c0d0 100%);
  border: 2px solid #a0a8a0;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,220,240,0.6);
  animation: ki-window 8s ease-in-out infinite alternate;
}
.scn-koupriane-at-inspection .light-shaft {
  position: absolute; top: 0; left: 35%; right: 35%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: ki-shaft 6s ease-in-out infinite alternate;
}
@keyframes ki-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ki-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ki-bunk1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ki-bunk2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ki-pillow1 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes ki-pillow2 { 0% { transform: translateY(0) scale(0.9); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(0.9); } }
@keyframes ki-window { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.03); } 100% { opacity: 0.8; transform: scaleY(0.97); } }
@keyframes ki-shaft { 0% { opacity: 0.3; transform: skewX(0deg); } 50% { opacity: 0.5; transform: skewX(-2deg); } 100% { opacity: 0.4; transform: skewX(0deg); } }

.scn-kiosk-constitution {
  background: linear-gradient(180deg, #fff5e6 0%, #fdebd0 30%, #d4e4f7 70%, #b8d4f0 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-kiosk-constitution .window {
  position:absolute; inset:5% 15% 55% 15%; background:radial-gradient(ellipse at 50% 30%, #fffaeb 0%, #f0d090 60%, transparent 80%);
  border-radius:50%; box-shadow:0 0 40px 20px rgba(255,200,100,.3); animation:kc-window 6s ease-in-out infinite alternate;
}
.scn-kiosk-constitution .table {
  position:absolute; inset:auto 5% 5% 5%; height:40%; background:linear-gradient(180deg, #8b6f47 0%, #6b4f2a 20%, #4a3418 100%);
  border-radius:8% 8% 0 0; box-shadow:inset 0 8px 12px rgba(0,0,0,.4); transform:perspective(400px) rotateX(5deg);
}
.scn-kiosk-constitution .match-a, .scn-kiosk-constitution .match-b, .scn-kiosk-constitution .match-c {
  position:absolute; bottom:30%; height:4px; width:30px; background:linear-gradient(90deg, #f5d98c 0%, #d9b868 100%);
  border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3);
}
.scn-kiosk-constitution .match-a { left:20%; transform:rotate(15deg); animation:kc-match 9s ease-in-out infinite; }
.scn-kiosk-constitution .match-b { left:40%; transform:rotate(-5deg); animation:kc-match 9s ease-in-out 3s infinite; }
.scn-kiosk-constitution .match-c { left:60%; transform:rotate(35deg); animation:kc-match 9s ease-in-out 6s infinite; }
.scn-kiosk-constitution .figure-left {
  position:absolute; bottom:43%; left:15%; width:22px; height:50px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius:40% 40% 30% 30%; transform:rotate(-10deg) scaleX(.8);
  animation:kc-figure 7s ease-in-out infinite;
}
.scn-kiosk-constitution .figure-right {
  position:absolute; bottom:41%; right:20%; width:22px; height:52px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius:40% 40% 30% 30%; transform:rotate(4deg) scaleX(.8);
  animation:kc-figure 7s ease-in-out 3.5s infinite;
}
@keyframes kc-window { 0%{opacity:.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.04)} 100%{opacity:.8;transform:scale(1)} }
@keyframes kc-match { 0%,100%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(17deg) translateY(-1px)} }
@keyframes kc-figure { 0%,100%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-2px) scaleX(.82)} }

.scn-poisoning-scene {
  background: linear-gradient(180deg, #e8dcc0 0%, #d4c4a0 40%, #b89c78 100%),
              radial-gradient(ellipse at 70% 70%, #ffedcc 0%, transparent 60%);
}
.scn-poisoning-scene .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%); }
.scn-poisoning-scene .table-alt {
  position:absolute; inset:auto 10% 5% 10%; height:30%; background:linear-gradient(180deg, #7a5f40 0%, #4a3018 100%);
  border-radius:6px; box-shadow:0 -4px 12px rgba(0,0,0,.3);
}
.scn-poisoning-scene .figure-man {
  position:absolute; bottom:32%; left:25%; width:30px; height:60px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center;
  animation:ps-man 2s ease-in-out infinite;
}
.scn-poisoning-scene .figure-woman {
  position:absolute; bottom:32%; right:30%; width:26px; height:56px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center;
  animation:ps-woman 2.2s ease-in-out infinite;
}
.scn-poisoning-scene .glass-him, .scn-poisoning-scene .glass-her {
  position:absolute; bottom:40%; width:10px; height:18px;
  background:radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.4) 0%, rgba(180,200,220,.3) 50%, transparent 80%);
  border-radius:2px; border:1px solid rgba(255,255,255,.2);
}
.scn-poisoning-scene .glass-him { left:30%; transform:rotate(-20deg); animation:ps-glass-l 2s ease-in-out infinite; }
.scn-poisoning-scene .glass-her { right:35%; transform:rotate(15deg); animation:ps-glass-r 2.2s ease-in-out infinite; }
.scn-poisoning-scene .arm-up {
  position:absolute; bottom:50%; left:28%; width:6px; height:30px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:3px; transform-origin:bottom center;
  animation:ps-arm 2s ease-in-out infinite;
}
@keyframes ps-man { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-5deg) translateY(-1px)} 50%{transform:rotate(2deg)} 75%{transform:rotate(-3deg) translateY(-1px)} }
@keyframes ps-woman { 0%,100%{transform:rotate(2deg)} 25%{transform:rotate(-3deg) translateY(-1px)} 50%{transform:rotate(5deg)} 75%{transform:rotate(-1deg) translateY(-1px)} }
@keyframes ps-glass-l { 0%,100%{transform:rotate(-20deg)} 25%{transform:rotate(-25deg) translate(1px,-3px)} 50%{transform:rotate(-15deg)} 75%{transform:rotate(-22deg) translate(1px,-2px)} }
@keyframes ps-glass-r { 0%,100%{transform:rotate(15deg)} 25%{transform:rotate(20deg) translate(-1px,-3px)} 50%{transform:rotate(10deg)} 75%{transform:rotate(18deg) translate(-1px,-2px)} }
@keyframes ps-arm { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-30deg)} 50%{transform:rotate(10deg)} 75%{transform:rotate(-20deg)} }

.scn-after-poisoning {
  background: linear-gradient(180deg, #4a3a5a 0%, #2e2240 50%, #1a1028 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-after-poisoning .bg-dim { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%, #2a1a3a 0%, #1a0a28 100%); animation:ap-dim 15s ease-in-out infinite alternate; }
.scn-after-poisoning .cot {
  position:absolute; bottom:15%; left:10%; right:10%; height:25%;
  background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10px; box-shadow:0 6px 20px rgba(0,0,0,.6);
}
.scn-after-poisoning .body-one, .scn-after-poisoning .body-two {
  position:absolute; bottom:22%; width:30px; height:40px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center;
}
.scn-after-poisoning .body-one { left:25%; animation:ap-body 6s ease-in-out infinite; }
.scn-after-poisoning .body-two { right:30%; animation:ap-body 6s ease-in-out 3s infinite; }
.scn-after-poisoning .attendant {
  position:absolute; bottom:35%; right:15%; width:20px; height:50px;
  background:linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 40% 30% 30%; transform-origin:bottom center;
  animation:ap-attend 10s ease-in-out infinite;
}
.scn-after-poisoning .doorway {
  position:absolute; inset:auto 70% 5% 5%; height:45%; width:25%;
  background:linear-gradient(90deg, #1a0a1a 0%, #2a1a2a 50%, #1a0a1a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.8);
}
.scn-after-poisoning .lamplight {
  position:absolute; bottom:40%; right:35%; width:12px; height:12px;
  background:radial-gradient(circle, #e0b050 0%, #c08030 60%, transparent 80%);
  border-radius:50%; box-shadow:0 0 20px 6px rgba(192,128,48,.5); animation:ap-lamp 4s ease-in-out infinite alternate;
}
@keyframes ap-dim { 0%{opacity:.6} 50%{opacity:.8} 100%{opacity:.5} }
@keyframes ap-body { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02) translateY(-1px)} 100%{transform:scaleY(1)} }
@keyframes ap-attend { 0%,100%{transform:rotate(0)} 50%{transform:rotate(3deg) translateY(-2px)} }
@keyframes ap-lamp { 0%{opacity:.7;box-shadow:0 0 12px 4px rgba(192,128,48,.4)} 100%{opacity:1;box-shadow:0 0 28px 10px rgba(192,128,48,.6)} }

.scn-aptiekarski-pereoulok {
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0e1a28 100%),
              radial-gradient(ellipse at 30% 60%, #3a4a5a 0%, transparent 60%);
}
.scn-aptiekarski-pereoulok .skyline {
  position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #4a5a6a 0%, #1a2a3a 100%); opacity:.5;
  animation:ap-sky 30s ease-in-out infinite alternate;
}
.scn-aptiekarski-pereoulok .wall-left, .scn-aptiekarski-pereoulok .wall-right {
  position:absolute; top:10%; bottom:5%; width:40%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-aptiekarski-pereoulok .wall-left { left:0; border-radius:0 10% 10% 0; transform:skewY(4deg); animation:ap-wall-l 20s ease-in-out infinite; }
.scn-aptiekarski-pereoulok .wall-right { right:0; border-radius:10% 0 0 10%; transform:skewY(-4deg); animation:ap-wall-r 20s ease-in-out infinite; }
.scn-aptiekarski-pereoulok .cobbles {
  position:absolute; bottom:0; left:5%; right:5%; height:10%;
  background:repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 2px, #3a2a1a 2px, #3a2a1a 4px);
  transform:perspective(200px) rotateX(10deg); opacity:.6;
  animation:ap-cob 40s linear infinite;
}
.scn-aptiekarski-pereoulok .carriage {
  position:absolute; bottom:8%; left:30%; width:50px; height:30px;
  background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%;
  box-shadow:0 4px 8px rgba(0,0,0,.5); transform-origin:bottom center;
  animation:ap-car 4s ease-in-out infinite;
}
.scn-aptiekarski-pereoulok .driver {
  position:absolute; bottom:16%; left:32%; width:14px; height:24px;
  background:linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center;
  animation:ap-driver 4s ease-in-out infinite;
}
.scn-aptiekarski-pereoulok .shadow-long {
  position:absolute; bottom:2%; left:5%; width:100px; height:6px;
  background:linear-gradient(90deg, rgba(0,0,0,.3), transparent); transform:rotate(20deg);
  animation:ap-shadow 20s ease-in-out infinite alternate;
}
@keyframes ap-sky { 0%{opacity:.3} 50%{opacity:.6} 100%{opacity:.4} }
@keyframes ap-wall-l { 0%{transform:skewY(4deg)} 50%{transform:skewY(3deg)} 100%{transform:skewY(5deg)} }
@keyframes ap-wall-r { 0%{transform:skewY(-4deg)} 50%{transform:skewY(-3deg)} 100%{transform:skewY(-5deg)} }
@keyframes ap-cob { 0%{background-position:0 0} 100%{background-position:100% 0} }
@keyframes ap-car { 0%,100%{transform:translateX(0) rotate(0)} 25%{transform:translateX(5px) rotate(1deg)} 50%{transform:translateX(0) rotate(0)} 75%{transform:translateX(-5px) rotate(-1deg)} }
@keyframes ap-driver { 0%,100%{transform:rotate(0)} 25%{transform:rotate(2deg) translateX(2px)} 50%{transform:rotate(0)} 75%{transform:rotate(-2deg) translateX(-2px)} }
@keyframes ap-shadow { 0%{transform:rotate(20deg) scaleX(1)} 50%{transform:rotate(25deg) scaleX(1.1)} 100%{transform:rotate(15deg) scaleX(.9)} }

/* third-attack-mystery */
.scn-third-attack-mystery {
  background: linear-gradient(135deg, #1a1423 0%, #2b1f2f 40%, #3d2b3d 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 60%);
}
.scn-third-attack-mystery .wall-back  { position:absolute; inset:0 0 30% 0; background: linear-gradient(0deg, #2a1a2a 0%, #1a0a1a 100%); animation: tam-wall 12s ease-in-out infinite alternate; }
.scn-third-attack-mystery .floor     { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1210 0%, #2a1a18 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-third-attack-mystery .curtain   { position:absolute; top:5%; width:20%; height:65%; background: linear-gradient(135deg, #4a2a2a 0%, #2a1a1a 100%); border-radius: 20% 80% 20% 80%; }
.scn-third-attack-mystery .curtain.left  { left:5%; animation: tam-curtain-l 8s ease-in-out infinite alternate; }
.scn-third-attack-mystery .curtain.right { right:5%; animation: tam-curtain-r 8s ease-in-out infinite alternate-reverse; }
.scn-third-attack-mystery .table     { position:absolute; bottom:22%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-third-attack-mystery .candle    { position:absolute; bottom:30%; left:47%; width:8px; height:30px; background: linear-gradient(180deg, #e8d8b8 0%, #8a6a3a 100%); border-radius: 50% 50% 10% 10%; }
.scn-third-attack-mystery .flame     { position:absolute; bottom:60%; left:49.5%; width:10px; height:20px; background: radial-gradient(circle, #ffcc60 0%, #e08020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #e08020, 0 0 60px 20px rgba(200,100,20,0.3); animation: tam-flame 2s ease-in-out infinite; }
.scn-third-attack-mystery .figure    { position:absolute; bottom:25%; left:62%; width:24px; height:50px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tam-figure 5s ease-in-out infinite; }
@keyframes tam-wall     { 0% { opacity:0.8; filter:brightness(1); } 50% { opacity:0.9; filter:brightness(1.05); } 100% { opacity:0.8; filter:brightness(0.95); } }
@keyframes tam-curtain-l { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes tam-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes tam-flame    { 0% { transform: scaleX(1) scaleY(1) translateY(0); opacity:0.9; } 25% { transform: scaleX(1.1) scaleY(1.3) translateY(-2px); opacity:1; } 50% { transform: scaleX(0.95) scaleY(1.1) translateY(-1px); opacity:0.95; } 75% { transform: scaleX(1.05) scaleY(1.2) translateY(-3px); opacity:1; } 100% { transform: scaleX(1) scaleY(1) translateY(0); opacity:0.9; } }
@keyframes tam-figure   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-4px) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* rouletabille-calls-them-brave */
.scn-rouletabille-calls-them-brave {
  background: linear-gradient(180deg, #f0e8d8 0%, #d4c8b0 50%, #b8a88a 100%),
              radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 50%);
}
.scn-rouletabille-calls-them-brave .room-bg           { position:absolute; inset:0; background: linear-gradient(135deg, #e8ddd0 0%, #c8b8a0 100%); }
.scn-rouletabille-calls-them-brave .window-light      { position:absolute; top:10%; left:65%; width:18%; height:40%; background: linear-gradient(180deg, #fffcf0 0%, #f0e8d0 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 40px rgba(255,255,200,0.3); animation: rtb-light 6s ease-in-out infinite alternate; }
.scn-rouletabille-calls-them-brave .chair             { position:absolute; bottom:15%; left:40%; width:30%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); }
.scn-rouletabille-calls-them-brave .wounded-leg       { position:absolute; bottom:18%; left:48%; width:8%; height:20%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); transform: rotate(-15deg); }
.scn-rouletabille-calls-them-brave .figure-rouletabille { position:absolute; bottom:20%; left:20%; width:20px; height:46px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtb-roule 4s ease-in-out infinite; }
.scn-rouletabille-calls-them-brave .figure-general    { position:absolute; bottom:18%; left:52%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtb-gen 5s ease-in-out infinite; }
.scn-rouletabille-calls-them-brave .shadow-sharp      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: rtb-shadow 8s ease-in-out infinite alternate; }
@keyframes rtb-light  { 0% { opacity:0.8; filter:brightness(0.9); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.85; filter:brightness(0.95); } }
@keyframes rtb-roule  { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(-3px) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes rtb-gen    { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 66% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes rtb-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* boichlikoff-story */
.scn-boichlikoff-story {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 50%, #a89880 100%),
              radial-gradient(ellipse at 50% 70%, #e8d8c0 0%, transparent 60%);
}
.scn-boichlikoff-story .office-wall     { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d0c0b0 0%, #b8a898 100%); }
.scn-boichlikoff-story .desk            { position:absolute; bottom:14%; left:28%; width:44%; height:14%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); }
.scn-boichlikoff-story .portrait-frame  { position:absolute; top:12%; left:48%; width:16%; height:24%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: boi-frame 15s ease-in-out infinite; }
.scn-boichlikoff-story .portrait        { position:absolute; top:14%; left:49.5%; width:13%; height:20%; background: linear-gradient(180deg, #b8a898 0%, #a89888 100%); border-radius: 20% 20% 10% 10%; filter: blur(2px); }
.scn-boichlikoff-story .hand-on-desk    { position:absolute; bottom:20%; left:43%; width:10%; height:6%; background: linear-gradient(135deg, #c8b8a0 0%, #a89888 100%); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); animation: boi-hand 7s ease-in-out infinite alternate; }
.scn-boichlikoff-story .figure-seated   { position:absolute; bottom:18%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: boi-fig 6s ease-in-out infinite; }
.scn-boichlikoff-story .lamp-shade      { position:absolute; top:25%; left:20%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 100%, #b8a88a 0%, #8a7a6a 100%); border-radius: 50% 50% 0 0; }
.scn-boichlikoff-story .lamp-glow       { position:absolute; top:28%; left:19%; width:14%; height:18%; background: radial-gradient(ellipse, #f0e8d0 0%, transparent 70%); opacity:0.6; animation: boi-glow 4s ease-in-out infinite alternate; }
@keyframes boi-frame { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes boi-hand  { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes boi-fig   { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes boi-glow  { 0% { opacity:0.4; filter:brightness(0.8); } 50% { opacity:0.7; filter:brightness(1.2); } 100% { opacity:0.5; filter:brightness(0.9); } }

/* death-sentence-dinner */
.scn-death-sentence-dinner {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-death-sentence-dinner .room-bg-dark     { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); opacity:0.8; }
.scn-death-sentence-dinner .dinner-table     { position:absolute; bottom:15%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.8); }
.scn-death-sentence-dinner .plate            { position:absolute; bottom:20%; left:43%; width:14%; height:4%; background: radial-gradient(ellipse, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-death-sentence-dinner .family-kneeling  { position:absolute; bottom:12%; left:20%; width:40%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(2px); animation: ds-kneel 10s ease-in-out infinite; }
.scn-death-sentence-dinner .revolutionary-a  { position:absolute; bottom:16%; left:48%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: ds-rev-a 4s ease-in-out infinite; }
.scn-death-sentence-dinner .revolutionary-b  { position:absolute; bottom:16%; left:55%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ds-rev-b 4s ease-in-out infinite reverse; }
.scn-death-sentence-dinner .paper-sentence   { position:absolute; bottom:28%; left:46%; width:16%; height:20%; background: linear-gradient(135deg, #d0c0b0 0%, #b8a898 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.7); transform: rotate(-3deg); animation: ds-paper 3s ease-in-out infinite alternate; }
.scn-death-sentence-dinner .shadow-ominous   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
@keyframes ds-kneel { 0% { opacity:0.7; transform:translateY(0); } 50% { opacity:0.8; transform:translateY(-4px); } 100% { opacity:0.7; transform:translateY(0); } }
@keyframes ds-rev-a { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(3px) translateY(-1px); } 50% { transform: rotate(-5deg) translateX(0) translateY(0); } 75% { transform: rotate(-7deg) translateX(-2px) translateY(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ds-rev-b { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(-3px) translateY(-1px); } 50% { transform: rotate(5deg) translateX(0) translateY(0); } 75% { transform: rotate(7deg) translateX(2px) translateY(-2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ds-paper  { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02) translateY(-2px); } 100% { transform: rotate(-3deg) scale(1); } }

/* experiment-room-cupboard (erc) */
.scn-experiment-room-cupboard {
  background: 
    linear-gradient(180deg, #2b1f1a 0%, #3e2c22 50%, #1e1510 100%),
    radial-gradient(ellipse at 70% 30%, #5a3d2b 0%, transparent 60%);
}
.scn-experiment-room-cupboard .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1c14 100%); animation: erc-wall 12s ease-in-out infinite alternate; }
.scn-experiment-room-cupboard .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-experiment-room-cupboard .staircase { position:absolute; bottom:30%; right:10%; width:80px; height:200px; background: linear-gradient(180deg, #4a3022 0%, #2a1a10 100%); border-radius: 4px 4px 0 0; transform-origin: bottom right; animation: erc-stairs 18s ease-in-out infinite; }
.scn-experiment-room-cupboard .cupboard  { position:absolute; bottom:30%; left:20%; width:70px; height:120px; background: linear-gradient(180deg, #4a3022 0%, #2a1a10 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: erc-cupboard 9s ease-in-out infinite; }
.scn-experiment-room-cupboard .figure    { position:absolute; bottom:30%; left:35%; width:16px; height:32px; background: linear-gradient(180deg, #1a1510 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: erc-walk 6s ease-in-out infinite; }
.scn-experiment-room-cupboard .window-glow { position:absolute; top:12%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #d4a050 0%, #b08030 70%); border-radius: 6px; box-shadow: 0 0 30px 10px #b08030, 0 0 60px 20px rgba(176,128,48,.4); animation: erc-glow 4s ease-in-out infinite alternate; }
.scn-experiment-room-cupboard .dust-particle { position:absolute; top:20%; left:10%; width:4px; height:4px; background: rgba(200,170,120,.3); border-radius:50%; animation: erc-dust 20s linear infinite; }
@keyframes erc-wall  { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes erc-stairs { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes erc-cupboard { 0%,100% { box-shadow: 0 6px 12px rgba(0,0,0,.5) } 50% { box-shadow: 0 4px 8px rgba(0,0,0,.4) } }
@keyframes erc-walk { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) translateX(4px) } 60% { transform: translateY(0) rotate(-1deg) translateX(8px) } 100% { transform: translateY(0) rotate(0) translateX(12px) } }
@keyframes erc-glow { 0% { box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,.3); opacity:.85 } 50% { box-shadow: 0 0 40px 12px #d4a050, 0 0 80px 24px rgba(212,160,80,.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #b08030, 0 0 50px 16px rgba(176,128,48,.35); opacity:.9 } }
@keyframes erc-dust { 0% { transform: translateY(0) translateX(0) opacity(0.3) } 50% { transform: translateY(-10px) translateX(20px) opacity(0.6) } 100% { transform: translateY(-20px) translateX(40px) opacity(0) } }

/* item-keys-cupboard (ikc) */
.scn-item-keys-cupboard {
  background:
    linear-gradient(180deg, #2b201a 0%, #3a2a1e 50%, #1a100e 100%),
    radial-gradient(ellipse at 30% 60%, #4a3422 0%, transparent 70%);
}
.scn-item-keys-cupboard .floor   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-item-keys-cupboard .wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1c14 100%); }
.scn-item-keys-cupboard .cupboard { position:absolute; bottom:25%; left:38%; width:100px; height:150px; background: linear-gradient(180deg, #4a3422 0%, #2a1a10 100%); border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ikc-cupboard 15s ease-in-out infinite; }
.scn-item-keys-cupboard .table   { position:absolute; bottom:25%; left:20%; width:60px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; transform: skewX(-10deg); }
.scn-item-keys-cupboard .chair   { position:absolute; bottom:25%; left:24%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 4px; transform-origin: bottom center; animation: ikc-chair 8s ease-in-out infinite; }
.scn-item-keys-cupboard .mattress { position:absolute; bottom:25%; right:20%; width:80px; height:40px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-item-keys-cupboard .key-glow { position:absolute; bottom:30%; left:42%; width:10px; height:6px; background: #d4a050; border-radius: 40% 40% 60% 60%; box-shadow: 0 0 20px 8px #d4a050, 0 0 40px 16px rgba(212,160,80,.4); animation: ikc-key 3s ease-in-out infinite alternate; }
@keyframes ikc-cupboard { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } }
@keyframes ikc-chair { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ikc-key { 0% { box-shadow: 0 0 15px 5px #d4a050, 0 0 30px 10px rgba(212,160,80,.3); opacity:.8 } 50% { box-shadow: 0 0 25px 10px #e0b060, 0 0 50px 20px rgba(224,176,96,.5); opacity:1 } 100% { box-shadow: 0 0 18px 6px #d4a050, 0 0 35px 12px rgba(212,160,80,.35); opacity:.9 } }

/* experiment-chair-shed (ecs) */
.scn-experiment-chair-shed {
  background:
    linear-gradient(180deg, #0f0e1a 0%, #1a1520 50%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a30 0%, transparent 70%);
}
.scn-experiment-chair-shed .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1830 0%, #121028 100%); animation: ecs-sky 20s ease-in-out infinite alternate; }
.scn-experiment-chair-shed .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
.scn-experiment-chair-shed .shed   { position:absolute; bottom:40%; right:10%; width:120px; height:80px; background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%); border-radius: 8% 8% 4% 4%; transform-origin: bottom center; animation: ecs-shed 12s ease-in-out infinite; }
.scn-experiment-chair-shed .chair  { position:absolute; bottom:40%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ecs-chair 8s ease-in-out infinite; }
.scn-experiment-chair-shed .figure { position:absolute; bottom:40%; left:32%; width:20px; height:40px; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ecs-figure 6s ease-in-out infinite; }
.scn-experiment-chair-shed .lamp-post { position:absolute; bottom:45%; left:50%; width:4px; height:80px; background: #2a1e1a; border-radius: 2px; animation: ecs-lamp 5s ease-in-out infinite; }
.scn-experiment-chair-shed .lamp-post::after { content:''; position:absolute; top:0; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd060 0%, #b08020 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 30px 15px #ffd060, 0 0 60px 30px rgba(255,208,96,.3); }
.scn-experiment-chair-shed .cloud-drift { position:absolute; top:15%; left:0; width:60px; height:12px; background: linear-gradient(180deg, rgba(200,180,200,.3) 0%, rgba(200,180,200,.05) 100%); border-radius:50%; filter: blur(5px); animation: ecs-cloud 40s linear infinite reverse; }
@keyframes ecs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ecs-shed { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-1deg) } }
@keyframes ecs-chair { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ecs-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ecs-lamp { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ecs-cloud { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

/* experiment-final-maneuver (efm) */
.scn-experiment-final-maneuver {
  background:
    linear-gradient(180deg, #0a0a0f 0%, #14101a 50%, #08080c 100%),
    radial-gradient(ellipse at 30% 40%, #2a1a2e 0%, transparent 70%);
}
.scn-experiment-final-maneuver .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #12101a 0%, #0a0810 100%); animation: efm-deep 8s ease-in-out infinite alternate; }
.scn-experiment-final-maneuver .bg-mid  { position:absolute; inset:15% 10% 20% 10%; background: linear-gradient(135deg, #1e162a 0%, #2a1e32 100%); border-radius: 30% 20% 20% 30%; opacity:.6; animation: efm-mid 14s ease-in-out infinite; }
.scn-experiment-final-maneuver .foreground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0e0c12 0%, #06060a 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,.9); }
.scn-experiment-final-maneuver .figure { position:absolute; bottom:35%; left:40%; width:24px; height:44px; background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: efm-figure 3s ease-in-out infinite; }
.scn-experiment-final-maneuver .light-source { position:absolute; top:20%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #d4a050 0%, #b08030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #d4a050, 0 0 80px 40px rgba(212,160,80,.3); animation: efm-light 2s ease-in-out infinite alternate; }
.scn-experiment-final-maneuver .shadow-dance { position:absolute; bottom:35%; left:20%; width:120px; height:80px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); transform-origin: left bottom; animation: efm-shadow 4s ease-in-out infinite; }
.scn-experiment-final-maneuver .debris { position:absolute; top:50%; left:60%; width:6px; height:6px; background: rgba(255,200,100,.2); border-radius:50%; box-shadow: 0 -10px 0 0 rgba(255,200,100,.2), 10px 10px 0 0 rgba(255,200,100,.1); animation: efm-debris 5s linear infinite; }
@keyframes efm-deep { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes efm-mid { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(-2deg) } 100% { transform: scale(1) rotate(2deg) } }
@keyframes efm-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes efm-light { 0% { box-shadow: 0 0 30px 15px #d4a050, 0 0 60px 30px rgba(212,160,80,.2); opacity:.7 } 50% { box-shadow: 0 0 50px 25px #e0b060, 0 0 80px 40px rgba(224,176,96,.4); opacity:1 } 100% { box-shadow: 0 0 35px 18px #d4a050, 0 0 70px 35px rgba(212,160,80,.3); opacity:.9 } }
@keyframes efm-shadow { 0% { transform: skewX(0deg) scaleX(1) } 50% { transform: skewX(10deg) scaleX(1.2) } 100% { transform: skewX(0deg) scaleX(1) } }
@keyframes efm-debris { 0% { transform: translateY(0) rotate(0deg) opacity(0.2) } 50% { transform: translateY(-20px) rotate(180deg) opacity(0.5) } 100% { transform: translateY(-40px) rotate(360deg) opacity(0) } }

.scn-silent-parade {
  background: linear-gradient(180deg, #a0c4ff 0%, #f0e8d8 50%, #e3d0b0 100%),
              radial-gradient(ellipse at 50% 100%, #d4b88a 0%, transparent 60%);
}
.scn-silent-parade .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 70%, transparent 100%); animation: sp-sky 20s ease-in-out infinite alternate; }
.scn-silent-parade .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b8e5a 0%, #4a6e3a 100%); border-radius: 0 0 60% 40% / 0 0 80% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sp-hills 15s ease-in-out infinite alternate; }
.scn-silent-parade .path { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #d4b88a 0%, #c0a070 50%, #d4b88a 100%); border-radius: 50% 50% 20% 20% / 100% 100% 20% 20%; filter: blur(2px); animation: sp-path 12s ease-in-out infinite; }
.scn-silent-parade .pony { position:absolute; bottom:20%; height:30px; width:20px; background: linear-gradient(180deg, #8a6e4a 0%, #5a3e2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: sp-pony 4s ease-in-out infinite; }
.scn-silent-parade .pony-1 { left:15%; animation-delay:0s; }
.scn-silent-parade .pony-2 { left:35%; animation-delay:0.8s; width:22px; height:32px; }
.scn-silent-parade .pony-3 { left:55%; animation-delay:1.6s; width:18px; height:28px; }
.scn-silent-parade .bell { position:absolute; bottom:32%; width:6px; height:8px; background: radial-gradient(circle at 50% 0%, #f0c068 0%, #c08030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 2px rgba(192,128,48,.6); animation: sp-bell 1.5s ease-in-out infinite alternate; }
.scn-silent-parade .bell-1 { left:18%; animation-delay:0s; }
.scn-silent-parade .bell-2 { left:38%; animation-delay:1s; }
.scn-silent-parade .dust { position:absolute; bottom:22%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,150,.4) 0%, transparent 70%); filter: blur(8px); animation: sp-dust 8s ease-in-out infinite; }
@keyframes sp-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sp-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sp-path { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes sp-pony { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes sp-bell { 0% { transform: translateY(0) rotate(-10deg); } 20% { transform: translateY(-2px) rotate(10deg); } 40% { transform: translateY(0) rotate(-8deg); } 60% { transform: translateY(-2px) rotate(8deg); } 80% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sp-dust { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.7; transform: translateY(-10px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-beautiful-corner {
  background: linear-gradient(180deg, #fef5e4 0%, #f7e8ca 40%, #e8d1a8 100%),
              radial-gradient(ellipse at 70% 30%, #fff8d0 0%, transparent 60%);
}
.scn-beautiful-corner .wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #e8d1a8 0%, #f0dcb8 100%); }
.scn-beautiful-corner .window { position:absolute; top:10%; left:20%; right:20%; bottom:40%; background: radial-gradient(ellipse at 50% 50%, #a0d0f0 0%, #7ab0d0 100%); border:8px solid #d4b080; border-radius:10% 10% 0 0; box-shadow: inset 0 0 40px 10px rgba(255,255,200,.5); animation: bc-window 12s ease-in-out infinite alternate; }
.scn-beautiful-corner .sill { position:absolute; bottom:40%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #d4b080 0%, #b09060 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-beautiful-corner .vase { position:absolute; bottom:42%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #a08050 0%, #7a5e3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bc-vase 8s ease-in-out infinite; }
.scn-beautiful-corner .flower { position:absolute; bottom:52%; width:10px; height:18px; background: radial-gradient(circle at 50% 50%, #f0a060 0%, #c08040 70%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform-origin: bottom center; }
.scn-beautiful-corner .flower-1 { left:33%; animation: bc-flower 5s ease-in-out infinite; }
.scn-beautiful-corner .flower-2 { left:40%; width:8px; height:14px; background: #d08060; animation: bc-flower 5s ease-in-out infinite reverse; animation-delay:0.5s; }
.scn-beautiful-corner .chair { position:absolute; bottom:10%; left:50%; width:40px; height:40px; background: linear-gradient(180deg, #c0a070 0%, #8a6e4a 100%); border-radius:10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: -4px 4px 8px rgba(0,0,0,.3); animation: bc-chair 6s ease-in-out infinite; }
.scn-beautiful-corner .shadow { position:absolute; bottom:8%; left:45%; width:60px; height:20px; background: radial-gradient(ellipse at 50% 0%, rgba(60,40,20,.3) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: bc-shadow 6s ease-in-out infinite; }
@keyframes bc-window { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.85; transform: scaleX(1); } }
@keyframes bc-vase { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bc-flower { 0% { transform: rotate(-5deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }
@keyframes bc-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes bc-shadow { 0%,100% { opacity:.4; } 50% { opacity:.7; } }

.scn-attention-drawn {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4c89a 40%, #b0a070 100%),
              radial-gradient(ellipse at 30% 70%, #fff8d0 0%, transparent 50%);
}
.scn-attention-drawn .bg-trees { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(90deg, #6a8a4a 0px, #4a6e3a 20px, transparent 20px, transparent 40px); opacity:.3; animation: ad-trees 10s linear infinite; }
.scn-attention-drawn .carriage { position:absolute; bottom:30%; left:40%; width:80px; height:40px; background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform: rotate(-2deg); animation: ad-carriage 6s ease-in-out infinite; }
.scn-attention-drawn .wheel { position:absolute; bottom:24%; width:18px; height:18px; background: radial-gradient(circle, #5a3e2a 30%, #3a2a1a 70%); border-radius:50%; border:4px solid #3a2a1a; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ad-wheel 2s linear infinite; }
.scn-attention-drawn .wheel-1 { left:44%; animation-delay:0s; }
.scn-attention-drawn .wheel-2 { left:56%; animation-delay:0.5s; }
.scn-attention-drawn .general { position:absolute; bottom:44%; left:48%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); transform-origin: bottom center; animation: ad-general 4s ease-in-out infinite; }
.scn-attention-drawn .crowd-head { position:absolute; bottom:35%; width:14px; height:16px; background: radial-gradient(circle at 50% 30%, #c0a070 0%, #8a6e4a 70%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ad-head 5s ease-in-out infinite alternate; }
.scn-attention-drawn .head-1 { left:20%; animation-delay:0s; }
.scn-attention-drawn .head-2 { left:30%; animation-delay:1s; }
.scn-attention-drawn .head-3 { left:60%; animation-delay:2s; }
.scn-attention-drawn .dust-puff { position:absolute; bottom:20%; left:50%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,.4) 0%, transparent 70%); border-radius:50%; filter:blur(6px); animation: ad-dust 3s ease-in-out infinite; }
@keyframes ad-trees { 0% { transform: translateX(0); } 100% { transform: translateX(-40px); } }
@keyframes ad-carriage { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ad-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ad-general { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ad-head { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4px) rotate(10deg); } 40% { transform: translateX(8px) rotate(-5deg); } 60% { transform: translateX(4px) rotate(15deg); } 80% { transform: translateX(2px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ad-dust { 0% { opacity:.3; transform: translateY(0) scaleX(1); } 50% { opacity:.6; transform: translateY(-8px) scaleX(1.2); } 100% { opacity:.3; transform: translateY(0) scaleX(1); } }

.scn-koupriane-arrives {
  background: linear-gradient(180deg, #c0d8f0 0%, #90b0d0 40%, #4a6a8a 100%),
              radial-gradient(ellipse at 80% 50%, #fff8e0 0%, transparent 60%);
}
.scn-koupriane-arrives .courtyard { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%); }
.scn-koupriane-arrives .arch { position:absolute; top:10%; left:30%; right:30%; bottom:20%; background: radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 0 40px 10px rgba(0,0,0,.6); border:6px solid #5a6a5a; animation: ka-arch 15s ease-in-out infinite alternate; }
.scn-koupriane-arrives .figure { position:absolute; bottom:25%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 12px 4px rgba(0,0,0,.4); transform-origin: bottom center; animation: ka-figure 7s ease-in-out infinite; }
.scn-koupriane-arrives .cape { position:absolute; bottom:25%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: ka-cape 7s ease-in-out infinite; }
.scn-koupriane-arrives .sword { position:absolute; bottom:40%; left:52%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0d0 0%, #808090 100%); border-radius:2px; box-shadow: 0 0 6px 2px rgba(192,192,200,.5); transform-origin: 50% 100%; animation: ka-sword 7s ease-in-out infinite; }
.scn-koupriane-arrives .crowd { position:absolute; bottom:18%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%); border-radius: 50% 50% 0 0; }
.scn-koupriane-arrives .crowd-left { left:5%; animation: ka-crowd-left 8s ease-in-out infinite; }
.scn-koupriane-arrives .crowd-right { right:5%; animation: ka-crowd-right 8s ease-in-out infinite; }
.scn-koupriane-arrives .shadow-long { position:absolute; bottom:0; left:40%; width:60px; height:10px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 60%); border-radius:50%; filter:blur(3px); animation: ka-shadow 7s ease-in-out infinite; }
@keyframes ka-arch { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ka-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ka-cape { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ka-sword { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes ka-crowd-left { 0% { transform: translateX(0); } 25% { transform: translateX(4px); } 50% { transform: translateX(0); } 75% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes ka-crowd-right { 0% { transform: translateX(0); } 25% { transform: translateX(-4px); } 50% { transform: translateX(0); } 75% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes ka-shadow { 0% { opacity:.4; transform: scaleX(1); } 25% { opacity:.6; transform: scaleX(1.1); } 50% { opacity:.4; transform: scaleX(1); } 75% { opacity:.5; transform: scaleX(1.05); } 100% { opacity:.4; transform: scaleX(1); } }

.scn-quarrel-excuse {
  background: linear-gradient(180deg, #f0e6d0 0%, #c8b89a 40%, #9a8a6a 100%), radial-gradient(ellipse at 70% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-quarrel-excuse .wall-light { position:absolute; inset:0; background: radial-gradient(circle at 60% 20%, rgba(255,220,160,0.6) 0%, transparent 50%); animation: qe-wallpulse 6s ease-in-out infinite alternate; }
.scn-quarrel-excuse .window-frame { position:absolute; top:10%; left:50%; width:120px; height:160px; transform:translateX(-50%); border:6px solid #8a7a5a; background: linear-gradient(135deg, #fff8e0 0%, #d4c8a0 100%); border-radius:4px; box-shadow: 0 0 40px 10px rgba(255,220,160,0.4); }
.scn-quarrel-excuse .figure-left { position:absolute; bottom:20%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -8px 0 12px rgba(0,0,0,0.3); animation: qe-figureL 8s ease-in-out infinite alternate; }
.scn-quarrel-excuse .figure-right { position:absolute; bottom:20%; right:30%; width:40px; height:90px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 8px 0 12px rgba(0,0,0,0.3); animation: qe-figureR 8s ease-in-out infinite alternate; }
.scn-quarrel-excuse .sword-left { position:absolute; bottom:30%; left:33%; width:4px; height:60px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius:2px; transform:rotate(15deg); transform-origin: 50% 100%; animation: qe-swordL 4s ease-in-out infinite; }
.scn-quarrel-excuse .sword-right { position:absolute; bottom:30%; right:33%; width:4px; height:60px; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius:2px; transform:rotate(-15deg); transform-origin: 50% 100%; animation: qe-swordR 4s ease-in-out infinite; }
.scn-quarrel-excuse .floor-shadow { position:absolute; bottom:15%; left:10%; right:10%; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); filter: blur(8px); animation: qe-shadow 12s ease-in-out infinite alternate; }
.scn-quarrel-excuse .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,230,180,0.1) 0%, transparent 30%); filter: blur(6px); animation: qe-dust 15s linear infinite; }
@keyframes qe-wallpulse { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes qe-figureL { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes qe-figureR { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes qe-swordL { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(0.95); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes qe-swordR { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(0.95); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes qe-shadow { 0% { opacity:0.4; transform: scaleY(0.8); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.4; transform: scaleY(0.8); } }
@keyframes qe-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }

.scn-treason-at-such-time {
  background: linear-gradient(135deg, #ffe0b0 0%, #d4b88a 40%, #9a7a5a 100%), radial-gradient(ellipse at 30% 50%, #ffd090 0%, transparent 60%);
}
.scn-treason-at-such-time .bg-sun { position:absolute; inset:0; background: radial-gradient(circle at 40% 20%, rgba(255,230,140,0.5) 0%, transparent 50%); animation: tst-sunpulse 7s ease-in-out infinite alternate; }
.scn-treason-at-such-time .general-figure { position:absolute; bottom:15%; left:45%; width:55px; height:100px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: -6px 0 12px rgba(0,0,0,0.4); animation: tst-general 6s ease-in-out infinite alternate; }
.scn-treason-at-such-time .officer-left { position:absolute; bottom:18%; left:15%; width:35px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: tst-officerL 8s ease-in-out infinite alternate; }
.scn-treason-at-such-time .officer-right { position:absolute; bottom:18%; right:15%; width:35px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 4px 0 8px rgba(0,0,0,0.5); animation: tst-officerR 8s ease-in-out infinite alternate; }
.scn-treason-at-such-time .matrena-figure { position:absolute; bottom:10%; left:55%; width:30px; height:70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -3px 0 6px rgba(0,0,0,0.3); animation: tst-matrena 10s ease-in-out infinite alternate; }
.scn-treason-at-such-time .table { position:absolute; bottom:10%; left:30%; right:30%; height:15px; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-treason-at-such-time .document { position:absolute; bottom:12%; left:40%; width:40px; height:30px; background: linear-gradient(135deg, #f0e0c0 0%, #c8b89a 100%); border-radius:2px; transform:rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: tst-doc 5s ease-in-out infinite alternate; }
.scn-treason-at-such-time .sharp-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 50%, rgba(0,0,0,0.1) 100%); animation: tst-shadow 9s ease-in-out infinite alternate; }
@keyframes tst-sunpulse { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes tst-general { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes tst-officerL { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tst-officerR { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes tst-matrena { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tst-doc { 0% { opacity:0.7; transform: rotate(-5deg) scale(0.95); } 50% { opacity:1; transform: rotate(8deg) scale(1.05); } 100% { opacity:0.7; transform: rotate(-5deg) scale(0.95); } }
@keyframes tst-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-natacha-embraced {
  background: linear-gradient(180deg, #ffe8c0 0%, #d4b87a 40%, #9a7a4a 100%), radial-gradient(ellipse at 50% 40%, #ffd090 0%, transparent 60%);
}
.scn-natacha-embraced .gold-light { position:absolute; inset:0; background: radial-gradient(circle at 50% 30%, rgba(255,220,100,0.6) 0%, transparent 50%); animation: ne-light 10s ease-in-out infinite alternate; }
.scn-natacha-embraced .general-arms { position:absolute; bottom:20%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,0.3); animation: ne-arms 6s ease-in-out infinite alternate; }
.scn-natacha-embraced .natacha-figure { position:absolute; bottom:20%; left:55%; width:35px; height:75px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 4px 0 6px rgba(0,0,0,0.3); animation: ne-natacha 8s ease-in-out infinite alternate; }
.scn-natacha-embraced .embrace-shape { position:absolute; bottom:22%; left:48%; width:30px; height:60px; background: radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: ne-embrace 12s ease-in-out infinite; }
.scn-natacha-embraced .shoulder-layer { position:absolute; bottom:35%; left:48%; width:50px; height:25px; background: linear-gradient(180deg, rgba(255,210,120,0.4) 0%, transparent 100%); border-radius:50% 50% 0 0; filter: blur(6px); animation: ne-shoulder 9s ease-in-out infinite alternate; }
.scn-natacha-embraced .warm-glow { position:absolute; bottom:25%; left:45%; right:45%; height:40px; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,80,0.3) 0%, transparent 70%); filter: blur(15px); animation: ne-glow 7s ease-in-out infinite alternate; }
.scn-natacha-embraced .soft-particles { position:absolute; inset:0; background: radial-gradient(circle at 40% 60%, rgba(255,230,180,0.08) 0%, transparent 30%); filter: blur(8px); animation: ne-particles 20s linear infinite; }
@keyframes ne-light { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ne-arms { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(5px) rotate(-3deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ne-natacha { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ne-embrace { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.2; transform: scale(0.9); } }
@keyframes ne-shoulder { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.3; } }
@keyframes ne-glow { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes ne-particles { 0% { transform: translateY(0); } 50% { transform: translateY(-15px); } 100% { transform: translateY(0); } }

.scn-singular-grapes-disappeared {
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b89a 40%, #8a7a5a 100%), radial-gradient(ellipse at 70% 60%, #d4c8a0 0%, transparent 60%);
}
.scn-singular-grapes-disappeared .tabletop { position:absolute; bottom:10%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-singular-grapes-disappeared .bowl { position:absolute; bottom:25%; left:35%; width:80px; height:50px; background: linear-gradient(180deg, #c8b89a 0%, #9a8a6a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -8px 10px rgba(0,0,0,0.2); animation: sgd-bowl 8s ease-in-out infinite alternate; }
.scn-singular-grapes-disappeared .grapes-cluster { position:absolute; bottom:28%; left:40%; width:30px; height:40px; background: radial-gradient(circle at 40% 30%, #6a4a2a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: sgd-grapes 12s ease-in-out infinite alternate; }
.scn-singular-grapes-disappeared .hand-reach { position:absolute; bottom:30%; right:30%; width:25px; height:35px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: sgd-hand 6s ease-in-out infinite; }
.scn-singular-grapes-disappeared .shadow-arm { position:absolute; bottom:35%; right:28%; width:20px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius:40%; filter: blur(8px); transform:rotate(-20deg); transform-origin: 50% 100%; animation: sgd-arm 7s ease-in-out infinite alternate; }
.scn-singular-grapes-disappeared .mysterious-smoke { position:absolute; top:30%; left:50%; width:60px; height:60px; background: radial-gradient(ellipse, rgba(200,180,150,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(20px); animation: sgd-smoke 15s linear infinite; }
.scn-singular-grapes-disappeared .light-beam { position:absolute; top:0; left:30%; bottom:0; width:100px; background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 60%, rgba(255,230,180,0.05) 100%); transform:skewX(-10deg); filter: blur(8px); animation: sgd-beam 10s ease-in-out infinite alternate; }
@keyframes sgd-bowl { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes sgd-grapes { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sgd-hand { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-10px) rotate(-15deg); } 50% { transform: translateX(-15px) rotate(-30deg); } 75% { transform: translateX(-10px) rotate(-15deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sgd-arm { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-40deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes sgd-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-20px) scale(1.2); opacity:0.5; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }
@keyframes sgd-beam { 0% { opacity:0.2; transform: skewX(-10deg) translateX(0); } 50% { opacity:0.5; transform: skewX(-10deg) translateX(10px); } 100% { opacity:0.2; transform: skewX(-10deg) translateX(0); } }

/* ==================== matrena-relieved ==================== */
.scn-mr {
  background: 
    linear-gradient(180deg, #f4e4c4 0%, #e0c898 30%, #c8a86a 60%, #a08050 100%),
    radial-gradient(ellipse at 20% 60%, rgba(200,180,140,0.3) 0%, transparent 70%);
}
.scn-mr .window {
  position: absolute; inset: 10% 10% 45% 10%; 
  background: linear-gradient(135deg, #d8e8f0 0%, #b0c8d8 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(180,200,220,0.5);
  animation: mr-window 8s ease-in-out infinite alternate;
}
.scn-mr .sunbeams {
  position: absolute; top: 10%; left: 15%; width: 35%; height: 55%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  filter: blur(8px); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: mr-beams 6s ease-in-out infinite alternate;
}
.scn-mr .figure {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figure 4s ease-in-out infinite;
}
.scn-mr .table {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mr-table 3s ease-in-out infinite alternate;
}
.scn-mr .teacup {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 16px;
  background: radial-gradient(circle, #f8f4e8 0%, #d8ccb8 70%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: mr-teacup 2s ease-in-out infinite;
}
.scn-mr .plant {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  animation: mr-plant 5s ease-in-out infinite;
}
@keyframes mr-window { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mr-beams { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 50% { transform: translate(10px,-5px) scale(1.05); opacity:1 } 100% { transform: translate(-5px,3px) scale(0.95); opacity:0.7 } }
@keyframes mr-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) translateY(-2px) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mr-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mr-teacup { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mr-plant { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

/* ==================== promise-to-sleep ==================== */
.scn-ps {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d8c0a0 30%, #b09878 60%, #8a7050 100%),
    radial-gradient(ellipse at 50% 40%, rgba(220,200,170,0.3) 0%, transparent 60%);
}
.scn-ps .bedframe {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-ps .blanket {
  position: absolute; bottom: 24%; left: 15%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #907050 100%);
  border-radius: 10px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: ps-blanket 5s ease-in-out infinite alternate;
}
.scn-ps .pillow {
  position: absolute; bottom: 36%; left: 25%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.scn-ps .figure {
  position: absolute; bottom: 26%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 4s ease-in-out infinite;
}
.scn-ps .domovoi {
  position: absolute; bottom: 48%; left: 55%; width: 20px; height: 28px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: ps-domovoi 3s ease-in-out infinite alternate;
}
.scn-ps .smoke {
  position: absolute; bottom: 52%; left: 58%; width: 10px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: ps-smoke 4s ease-out infinite;
}
.scn-ps .window-light {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #f0e8d0 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  filter: blur(6px);
  animation: ps-light 8s ease-in-out infinite alternate;
}
@keyframes ps-blanket { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes ps-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) translateY(-2px) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes ps-domovoi { 0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 6px rgba(255,208,128,0.6) } 50% { transform: scale(1.08) rotate(2deg); box-shadow: 0 0 30px 10px rgba(255,208,128,0.8) } 100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 6px rgba(255,208,128,0.6) } }
@keyframes ps-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 100% { transform: translate(5px,-30px) scale(2); opacity:0 } }
@keyframes ps-light { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* ==================== general-carried-up ==================== */
.scn-gc {
  background: 
    linear-gradient(180deg, #e8d4b8 0%, #c8a878 30%, #a08050 60%, #786848 100%),
    radial-gradient(ellipse at 30% 20%, rgba(180,160,120,0.3) 0%, transparent 60%);
}
.scn-gc .stairs {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 50%;
  background: repeating-linear-gradient(0deg, #6a5030 0px, #6a5030 20px, #7a6040 20px, #7a6040 40px);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: gc-stairs 6s ease-in-out infinite alternate;
}
.scn-gc .railing {
  position: absolute; bottom: 20%; left: 18%; width: 4%; height: 35%;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-gc .figure-woman {
  position: absolute; bottom: 20%; left: 35%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gc-walk 3s ease-in-out infinite;
}
.scn-gc .figure-man {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-40deg) translateY(-15px);
  transform-origin: bottom center;
  animation: gc-man 3s ease-in-out infinite;
}
.scn-gc .window {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #d0e0f0 0%, #b0c0d0 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(180,200,220,0.4);
  animation: gc-window 10s ease-in-out infinite alternate;
}
.scn-gc .light-patch {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,210,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: gc-light 6s ease-in-out infinite alternate;
}
@keyframes gc-stairs { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gc-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(0deg) } 75% { transform: translateX(15px) translateY(-3px) rotate(-1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes gc-man { 0% { transform: rotate(-40deg) translateY(-15px) } 25% { transform: rotate(-35deg) translateY(-18px) } 50% { transform: rotate(-40deg) translateY(-15px) } 75% { transform: rotate(-45deg) translateY(-12px) } 100% { transform: rotate(-40deg) translateY(-15px) } }
@keyframes gc-window { 0% { box-shadow: inset 0 0 20px rgba(180,200,220,0.4) } 50% { box-shadow: inset 0 0 40px rgba(180,200,220,0.6) } 100% { box-shadow: inset 0 0 20px rgba(180,200,220,0.4) } }
@keyframes gc-light { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* ==================== marshal-at-kiosque ==================== */
.scn-mk {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 30%, #a89878 60%, #887868 100%),
    radial-gradient(ellipse at 40% 50%, rgba(180,160,130,0.4) 0%, transparent 60%);
}
.scn-mk .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: mk-table 1.5s ease-in-out infinite alternate;
}
.scn-mk .box {
  position: absolute; bottom: 32%; left: 40%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: mk-box 2s ease-in-out infinite alternate;
}
.scn-mk .hand-left {
  position: absolute; bottom: 30%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mk-hand-l 1.2s ease-in-out infinite;
}
.scn-mk .hand-right {
  position: absolute; bottom: 30%; right: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mk-hand-r 1.4s ease-in-out infinite;
}
.scn-mk .shadow {
  position: absolute; bottom: 0; left: 10%; width: 60%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: mk-shadow 0.8s ease-in-out infinite alternate;
}
.scn-mk .chair-back {
  position: absolute; bottom: 38%; left: 5%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
}
@keyframes mk-table { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes mk-box { 0% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(2deg) scale(1.02) } 50% { transform: rotate(0deg) scale(1) } 75% { transform: rotate(-1deg) scale(0.98) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes mk-hand-l { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(-1deg) } }
@keyframes mk-hand-r { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg) } }
@keyframes mk-shadow { 0% { transform: scaleY(1); opacity:0.5 } 100% { transform: scaleY(0.9); opacity:0.7 } }

/* story-ended */
.scn-story-ended { background: linear-gradient(180deg, #1a1a2e 0%, #2a2240 40%, #3c2a4a 100%), radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 60%); }
.scn-story-ended .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2240 0%, #1a1a2e 50%, #0e0e1a 100%); animation: se1-flicker 6s ease-in-out infinite; }
.scn-story-ended .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 80% 80% 0 0 / 20% 20% 0 0; }
.scn-story-ended .table { position:absolute; bottom:25%; left:38%; width:80px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: scaleX(1.2); }
.scn-story-ended .candle { position:absolute; bottom:38%; left:42%; width:6px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px 2px 0 0; }
.scn-story-ended .light-halo { position:absolute; bottom:36%; left:40%; width:24px; height:24px; background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(255,176,64,.5); animation: se1-pulse 4s ease-in-out infinite; }
.scn-story-ended .prince { position:absolute; bottom:22%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 6px 2px rgba(0,0,0,.5); animation: se1-bow 8s ease-in-out infinite; }
.scn-story-ended .annouchka { position:absolute; bottom:20%; left:56%; width:22px; height:64px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; box-shadow: 0 0 4px 1px rgba(0,0,0,.3); animation: se1-stand 10s ease-in-out infinite; }
.scn-story-ended .shadow-prince { position:absolute; bottom:20%; left:28%; width:40px; height:14px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: se1-shadow 8s ease-in-out infinite; }
.scn-story-ended .shadow-annouchka { position:absolute; bottom:18%; left:54%; width:36px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: se1-shadow 10s ease-in-out infinite; }
@keyframes se1-flicker { 0%,100% { opacity:.9 } 25% { opacity:.7 } 50% { opacity:.95 } 75% { opacity:.75 } }
@keyframes se1-pulse { 0%,100% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.08); opacity:1 } }
@keyframes se1-bow { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(8deg) } 60% { transform: translateY(-1px) rotate(0deg) } 80% { transform: translateY(0) rotate(-4deg) } }
@keyframes se1-stand { 0%,100% { transform: translateY(0) rotate(0deg) } 40% { transform: translateY(-3px) rotate(-2deg) } 70% { transform: translateY(-1px) rotate(3deg) } }
@keyframes se1-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }

/* what-have-i-done */
.scn-what-have-i-done { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a2238 100%), radial-gradient(ellipse at 60% 80%, #4a2a1a 0%, transparent 70%); }
.scn-what-have-i-done .bg-room { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #1a1a2e 0%, #0d0d1a 100%); animation: wh2-shake 12s ease-in-out infinite; }
.scn-what-have-i-done .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-what-have-i-done .lamp { position:absolute; bottom:42%; right:20%; width:8px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-what-have-i-done .lamp-light { position:absolute; bottom:40%; right:17%; width:30px; height:30px; background: radial-gradient(circle, #ffc860 0%, #ffa030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(255,160,48,.4); animation: wh2-glow 5s ease-in-out infinite alternate; }
.scn-what-have-i-done .figure { position:absolute; bottom:25%; left:40%; width:28px; height:72px; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: 0 0 10px 2px rgba(0,0,0,.6); animation: wh2-crumble 8s ease-in-out infinite; }
.scn-what-have-i-done .hands { position:absolute; bottom:28%; left:44%; width:18px; height:14px; background: radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, transparent 70%); border-radius: 50%; transform: rotate(15deg); animation: wh2-clench 4s ease-in-out infinite; }
.scn-what-have-i-done .shadow-figure { position:absolute; bottom:22%; left:38%; width:50px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; animation: wh2-shadow 8s ease-in-out infinite; }
@keyframes wh2-shake { 0%,100% { transform: translateX(0) } 10% { transform: translateX(-1px) } 30% { transform: translateX(1px) } 50% { transform: translateX(-2px) } 70% { transform: translateX(1px) } }
@keyframes wh2-glow { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes wh2-crumble { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-5px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 80% { transform: translateY(-8px) rotate(3deg) } }
@keyframes wh2-clench { 0%,100% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } }
@keyframes wh2-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

/* stool-pigeon-insult */
.scn-stool-pigeon-insult { background: linear-gradient(180deg, #1a1a2e 0%, #2e2240 40%, #3a2a4e 100%), radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 70%); }
.scn-stool-pigeon-insult .bg-dressing { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #2e2240 0%, #1a1a2e 100%); animation: st3-pulse 10s ease-in-out infinite; }
.scn-stool-pigeon-insult .mirror-frame { position:absolute; left:50%; top:15%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 8px; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-stool-pigeon-insult .mirror-glass { position:absolute; left:50%; top:20%; width:64px; height:76px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(200,200,220,.05) 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
.scn-stool-pigeon-insult .stool { position:absolute; bottom:25%; left:50%; width:40px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-stool-pigeon-insult .curtain-left { position:absolute; top:5%; left:12%; width:30px; height:95%; background: linear-gradient(90deg, #4a2a2a 0%, #2a1212 100%); border-radius: 0 30% 30% 0 / 0 40% 40% 0; box-shadow: 4px 0 10px rgba(0,0,0,.3); animation: st3-drape 15s ease-in-out infinite; }
.scn-stool-pigeon-insult .curtain-right { position:absolute; top:5%; right:12%; width:30px; height:95%; background: linear-gradient(270deg, #4a2a2a 0%, #2a1212 100%); border-radius: 30% 0 0 30% / 40% 0 0 40%; box-shadow: -4px 0 10px rgba(0,0,0,.3); animation: st3-drape 15s ease-in-out infinite reverse; }
.scn-stool-pigeon-insult .artist { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: st3-pace 6s ease-in-out infinite; }
.scn-stool-pigeon-insult .shadow-artist { position:absolute; bottom:20%; left:32%; width:36px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: st3-shadow 6s ease-in-out infinite; }
.scn-stool-pigeon-insult .lamp-dress { position:absolute; bottom:35%; left:25%; width:8px; height:12px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #ffb040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,176,64,.3); animation: st3-flicker 3s ease-in-out infinite; }
@keyframes st3-pulse { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes st3-drape { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes st3-pace { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(8px) rotate(-2deg) } }
@keyframes st3-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes st3-flicker { 0%,100% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } }

/* statue-of-hate */
.scn-statue-of-hate { background: linear-gradient(180deg, #0a0a1a 0%, #1a1228 50%, #2a1a3a 100%), radial-gradient(ellipse at 50% 40%, #5a2a1a 0%, transparent 60%); }
.scn-statue-of-hate .bg-chamber { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #1a1228 0%, #0a0a1a 100%); animation: sa4-breathe 14s ease-in-out infinite; }
.scn-statue-of-hate .pedestal { position:absolute; bottom:15%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-statue-of-hate .mantle { position:absolute; bottom:35%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #4a1a1a 0%, #6a2a2a 50%, #3a0e0e 100%); border-radius: 60% 40% 20% 20% / 70% 50% 30% 30%; box-shadow: 0 0 30px rgba(80,20,20,.5); animation: sa4-unfold 10s ease-in-out infinite; }
.scn-statue-of-hate .figure-torso { position:absolute; bottom:30%; left:50%; width:24px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%; }
.scn-statue-of-hate .arms { position:absolute; bottom:32%; left:38%; width:40px; height:14px; background: linear-gradient(90deg, transparent 0%, #1a1a2e 30%, #1a1a2e 70%, transparent 100%); border-radius: 50%; transform: rotate(10deg); animation: sa4-throw 8s ease-in-out infinite; }
.scn-statue-of-hate .face-shadow { position:absolute; bottom:58%; left:50%; width:20px; height:18px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #0d0d1a 0%, transparent 70%); border-radius: 50%; animation: sa4-glare 5s ease-in-out infinite; }
.scn-statue-of-hate .light-ray { position:absolute; bottom:50%; left:10%; width:300px; height:200px; background: linear-gradient(135deg, rgba(255,200,100,.08) 0%, transparent 60%); transform: skewY(-20deg); transform-origin: bottom left; animation: sa4-sweep 20s linear infinite; }
.scn-statue-of-hate .sparkles { position:absolute; top:20%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, transparent 80%); border-radius:50%; box-shadow: 40px 30px 8px 2px #ffd080, -20px 60px 10px 3px #ffc060, 80px 10px 5px 1px #ffb040; animation: sa4-sparkle 4s ease-in-out infinite; }
@keyframes sa4-breathe { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes sa4-unfold { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.08) scaleY(1.04) } }
@keyframes sa4-throw { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(25deg) translateX(-5px) } }
@keyframes sa4-glare { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes sa4-sweep { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }
@keyframes sa4-sparkle { 0%,100% { opacity:.3; transform: rotate(0deg) } 50% { opacity:.8; transform: rotate(180deg) } }

/* step-daughter-love – dark interior, tense interview */
.scn-step-daughter-love {
  background:
    linear-gradient(180deg, #1b1b2e 0%, #2a1f2e 40%, #1f1420 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 80%);
}
.scn-step-daughter-love .wall-dark    { position:absolute; inset:0; background:linear-gradient(180deg, #12101c 0%, #0e0c16 100%); }
.scn-step-daughter-love .table        { position:absolute; bottom:14%; left:35%; width:30%; height:4%; background:#2e1f14; border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.6); }
.scn-step-daughter-love .lamp         { position:absolute; bottom:20%; left:50%; width:12px; height:14px; transform:translateX(-50%); background:radial-gradient(circle, #c08040 0%, #805020 80%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px #c08040; animation:sdl-lamp 4s ease-in-out infinite alternate; }
.scn-step-daughter-love .figure-woman { position:absolute; bottom:6%; left:30%; width:30px; height:70px; background:linear-gradient(180deg, #1e1a28 0%, #0e0c16 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sdl-woman 6s ease-in-out infinite; }
.scn-step-daughter-love .figure-man   { position:absolute; bottom:8%; left:58%; width:28px; height:80px; background:linear-gradient(180deg, #1c1826 0%, #0c0a12 100%); border-radius:48% 48% 40% 40% / 58% 58% 42% 42%; transform-origin:bottom center; animation:sdl-man 8s ease-in-out infinite; }
.scn-step-daughter-love .shadow-man   { position:absolute; bottom:8%; left:58%; width:34px; height:90px; background:rgba(0,0,0,.5); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translate(6px,4px); animation:sdl-shadow 8s ease-in-out infinite; filter:blur(4px); }
.scn-step-daughter-love .curtain      { position:absolute; top:0; left:80%; width:20%; height:100%; background:linear-gradient(90deg, #1a1422 0%, #100c18 100%); border-radius:40% 0 0 40%; animation:sdl-curtain 12s ease-in-out infinite alternate; }
@keyframes sdl-lamp    { 0%,100% { box-shadow:0 0 12px 4px #c08040; } 50% { box-shadow:0 0 28px 10px #c08040; transform:translateX(-50%) scaleY(1.05); } }
@keyframes sdl-woman   { 0%,100% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(-2px) scaleY(0.98); } 50% { transform:translateX(1px) scaleY(1.02); } 75% { transform:translateX(-1px) scaleY(0.99); } }
@keyframes sdl-man     { 0%,100% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(3px) rotate(2deg); } 66% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes sdl-shadow  { 0%,100% { opacity:.5; transform:translate(6px,4px) scaleX(1.1); } 50% { opacity:.7; transform:translate(4px,2px) scaleX(1.2); } }
@keyframes sdl-curtain { 0% { transform:translateX(0); } 100% { transform:translateX(-10px); } }

/* boris-weakness – tense scene of kneeling and standing, dark militaristic */
.scn-boris-weakness {
  background:
    linear-gradient(180deg, #0e0f1a 0%, #1a151e 40%, #120d12 100%),
    radial-gradient(ellipse at 50% 30%, #1e1822 0%, transparent 70%);
}
.scn-boris-weakness .floor-dark    { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #18131a 0%, #0e0b10 100%); }
.scn-boris-weakness .wall-dim      { position:absolute; inset:0; background:linear-gradient(180deg, #13101a 0%, #0c0912 100%); }
.scn-boris-weakness .figure-kneel  { position:absolute; bottom:6%; left:30%; width:26px; height:50px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bw-kneel 4s ease-in-out infinite; }
.scn-boris-weakness .figure-stand  { position:absolute; bottom:8%; left:58%; width:30px; height:90px; background:linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%); border-radius:48% 48% 40% 40% / 58% 58% 42% 42%; transform-origin:bottom center; animation:bw-stand 6s ease-in-out infinite; }
.scn-boris-weakness .shadow-stand  { position:absolute; bottom:8%; left:58%; width:40px; height:100px; background:rgba(0,0,0,.6); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:translate(8px,6px); filter:blur(6px); animation:bw-stand-shadow 6s ease-in-out infinite; }
.scn-boris-weakness .door-frame    { position:absolute; top:10%; right:10%; width:30%; height:70%; border:3px solid #2a222a; border-radius:6px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); animation:bw-door 20s ease-in-out infinite alternate; }
.scn-boris-weakness .gun-leaning   { position:absolute; bottom:10%; left:15%; width:4px; height:40px; background:linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:2px; transform:rotate(-8deg); transform-origin:bottom center; animation:bw-gun 3s ease-in-out infinite; }
@keyframes bw-kneel    { 0%,100% { transform:translateX(0) scaleY(1) rotate(0deg); } 25% { transform:translateX(-1px) scaleY(0.97) rotate(2deg); } 50% { transform:translateX(1px) scaleY(1.02) rotate(-1deg); } 75% { transform:translateX(-1px) scaleY(0.98) rotate(1deg); } }
@keyframes bw-stand    { 0%,100% { transform:translateX(0) rotate(0deg) scaleY(1); } 33% { transform:translateX(2px) rotate(1deg) scaleY(1.01); } 66% { transform:translateX(-1px) rotate(-1deg) scaleY(0.99); } }
@keyframes bw-stand-shadow { 0%,100% { opacity:.6; transform:translate(8px,6px) scaleX(1.2); } 50% { opacity:.8; transform:translate(6px,4px) scaleX(1.3); } }
@keyframes bw-door     { 0% { box-shadow:inset 0 0 20px rgba(0,0,0,.8); } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,.9), 0 0 10px rgba(100,80,80,0.1); } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.8); } }
@keyframes bw-gun      { 0%,100% { transform:rotate(-8deg) scaleY(1); } 50% { transform:rotate(-6deg) scaleY(1.02); } }

/* boris-verses – writers and readers in dim candlelight */
.scn-boris-verses {
  background:
    linear-gradient(180deg, #1a1624 0%, #2a1e22 40%, #1e1218 100%),
    radial-gradient(ellipse at 50% 30%, #2e2228 0%, transparent 70%);
}
.scn-boris-verses .wall-smoke    { position:absolute; inset:0; background:linear-gradient(180deg, #181420 0%, #100c16 100%); }
.scn-boris-verses .desk          { position:absolute; bottom:12%; left:15%; width:70%; height:6%; background:#2e1f14; border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-boris-verses .candle        { position:absolute; bottom:20%; left:40%; width:8px; height:16px; background:linear-gradient(180deg, #c08040 0%, #a06030 100%); border-radius:2px; box-shadow:0 0 16px 4px #c08040; animation:bv-candle 2s ease-in-out infinite alternate; }
.scn-boris-verses .papers-scatter{ position:absolute; bottom:14%; left:28%; width:20%; height:2%; background:#e0d0c0; border-radius:1px; box-shadow:2px 2px 4px rgba(0,0,0,.4); animation:bv-papers 6s ease-in-out infinite; }
.scn-boris-verses .figure-write  { position:absolute; bottom:6%; left:22%; width:30px; height:60px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bv-write 8s ease-in-out infinite; }
.scn-boris-verses .figure-read   { position:absolute; bottom:6%; left:52%; width:28px; height:65px; background:linear-gradient(180deg, #1c1c2e 0%, #0c0c16 100%); border-radius:48% 48% 40% 40% / 58% 58% 42% 42%; transform-origin:bottom center; animation:bv-read 9s ease-in-out infinite; }
.scn-boris-verses .shelf-books   { position:absolute; top:12%; left:10%; width:30%; height:4%; background:#1e1822; border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
@keyframes bv-candle  { 0%,100% { transform:scaleY(1) rotate(0deg); opacity:.9; } 50% { transform:scaleY(1.05) rotate(2deg); opacity:1; } }
@keyframes bv-papers  { 0%,100% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-1px) rotate(0.5deg); } }
@keyframes bv-write   { 0%,100% { transform:translateX(0) rotate(0deg) scaleY(1); } 25% { transform:translateX(-1px) rotate(1deg) scaleY(0.98); } 50% { transform:translateX(1px) rotate(-1deg) scaleY(1.02); } 75% { transform:translateX(-1px) rotate(0deg) scaleY(0.99); } }
@keyframes bv-read    { 0%,100% { transform:translateX(0) rotate(0deg) scaleY(1); } 33% { transform:translateX(2px) rotate(1deg) scaleY(1.01); } 66% { transform:translateX(-1px) rotate(-1deg) scaleY(0.99); } }

/* tick-tack-heard – woman listening in dark room, clock outline */
.scn-tick-tack-heard {
  background:
    linear-gradient(180deg, #0c0c14 0%, #18121c 40%, #0e0a10 100%),
    radial-gradient(ellipse at 50% 40%, #1a1220 0%, transparent 70%);
}
.scn-tick-tack-heard .wall-void     { position:absolute; inset:0; background:linear-gradient(180deg, #0a0810 0%, #0e0a12 100%); }
.scn-tick-tack-heard .window-faint   { position:absolute; top:15%; left:60%; width:20%; height:35%; border:2px solid #2a2230; border-radius:4px; box-shadow:inset 0 0 30px rgba(30,20,40,.8); animation:th-window 20s ease-in-out infinite alternate; }
.scn-tick-tack-heard .chair-empty    { position:absolute; bottom:12%; left:30%; width:24%; height:8%; background:#1a1420; border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.6); }
.scn-tick-tack-heard .figure-tense   { position:absolute; bottom:14%; left:50%; width:28px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #1a1824 0%, #0a0810 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:th-figure 6s ease-in-out infinite; }
.scn-tick-tack-heard .clock-outline  { position:absolute; bottom:45%; left:20%; width:30px; height:30px; border:2px solid #3a2a3a; border-radius:50%; box-shadow:0 0 12px rgba(60,40,60,.3); animation:th-clock 3s ease-in-out infinite alternate; }
.scn-tick-tack-heard .shadow-clock   { position:absolute; bottom:45%; left:20%; width:32px; height:32px; background:rgba(0,0,0,.5); border-radius:50%; transform:translate(2px,2px); filter:blur(4px); animation:th-shadow-clock 3s ease-in-out infinite alternate; }
.scn-tick-tack-heard .glow-edge      { position:absolute; inset:0; background:radial-gradient(ellipse at 70% 50%, rgba(40,30,60,0.15) 0%, transparent 50%); animation:th-glow 12s ease-in-out infinite; }
@keyframes th-window   { 0% { box-shadow:inset 0 0 30px rgba(30,20,40,.8); } 50% { box-shadow:inset 0 0 40px rgba(40,30,50,.9), 0 0 10px rgba(80,60,100,0.1); } 100% { box-shadow:inset 0 0 30px rgba(30,20,40,.8); } }
@keyframes th-figure   { 0%,100% { transform:translateX(-50%) rotate(0deg) scaleY(1); } 20% { transform:translateX(-52%) rotate(-1deg) scaleY(0.98); } 40% { transform:translateX(-48%) rotate(1deg) scaleY(1.02); } 60% { transform:translateX(-51%) rotate(-0.5deg) scaleY(0.99); } 80% { transform:translateX(-49%) rotate(0.5deg) scaleY(1.01); } }
@keyframes th-clock    { 0% { transform:scale(1) rotate(0deg); opacity:.7; } 25% { transform:scale(1.02) rotate(2deg); opacity:.8; } 75% { transform:scale(0.98) rotate(-2deg); opacity:.6; } 100% { transform:scale(1) rotate(0deg); opacity:.7; } }
@keyframes th-shadow-clock { 0% { transform:translate(2px,2px) scale(1); opacity:.5; } 50% { transform:translate(1px,1px) scale(1.05); opacity:.6; } 100% { transform:translate(2px,2px) scale(1); opacity:.5; } }
@keyframes th-glow     { 0%,100% { opacity:.3; } 50% { opacity:.5; } }

.scn-delay-discussion {
  background: linear-gradient(180deg, #ffe7c0 0%, #f5dbb0 40%, #d4b080 100%),
              radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 60%);
}
.scn-delay-discussion .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%); opacity:.6; animation: dd-back 6s ease-in-out infinite alternate; }
.scn-delay-discussion .window-frame { position:absolute; left:20%; top:10%; width:60%; height:70%; border:8px solid #5a3a20; border-radius:4px; background: radial-gradient(ellipse at 50% 30%, #fff5e8 0%, #e0c8a0 100%); box-shadow: inset 0 0 60px rgba(255,200,100,.3); }
.scn-delay-discussion .sunrays { position:absolute; left:20%; top:10%; width:60%; height:70%; background: linear-gradient(135deg, rgba(255,230,180,.6) 0%, transparent 50%, rgba(255,230,180,.2) 100%); animation: dd-rays 4s ease-in-out infinite alternate; }
.scn-delay-discussion .clock { position:absolute; right:25%; top:18%; width:20px; height:20px; border:3px solid #3a2a1a; border-radius:50%; background: radial-gradient(circle, #f0e8d0 0%, #c0b090 100%); animation: dd-clock 8s linear infinite; }
.scn-delay-discussion .figure-left { position:absolute; left:30%; bottom:20%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:50% 100%; animation: dd-fig-l 3s ease-in-out infinite; }
.scn-delay-discussion .figure-right { position:absolute; right:30%; bottom:20%; width:22px; height:58px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 45% 45% 25% 25% / 55% 55% 35% 35%; transform-origin:50% 100%; animation: dd-fig-r 3.2s ease-in-out infinite; }
.scn-delay-discussion .shadow-sharp { position:absolute; bottom:16%; left:25%; width:50%; height:4px; background: rgba(0,0,0,.25); filter: blur(2px); animation: dd-shadow 3s ease-in-out infinite alternate; }
@keyframes dd-back { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes dd-rays { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(1) } }
@keyframes dd-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes dd-fig-l { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(1deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(4px) } 75% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes dd-fig-r { 0% { transform: rotate(2deg) translateX(0) } 25% { transform: rotate(-1deg) translateX(-2px) } 50% { transform: rotate(1deg) translateX(-4px) } 75% { transform: rotate(-2deg) translateX(-2px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes dd-shadow { 0% { width:45%; opacity:.2 } 50% { width:55%; opacity:.35 } 100% { width:50%; opacity:.25 } }

.scn-michael-and-natacha {
  background: linear-gradient(180deg, #ffdbb0 0%, #e8b88a 40%, #b08050 100%),
              radial-gradient(ellipse at 50% 10%, #ffe8c0 0%, transparent 60%);
}
.scn-michael-and-natacha .bg-sunlit { position:absolute; inset:0; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%); opacity:.7; animation: mn-bg 8s ease-in-out infinite; }
.scn-michael-and-natacha .sun-disk { position:absolute; top:8%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #fff5d0 0%, #ffdd88 60%, #ffbb55 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,200,100,.4); animation: mn-sun 12s ease-in-out infinite alternate; }
.scn-michael-and-natacha .michael-sil { position:absolute; left:30%; bottom:18%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 45% 40% 20% 20% / 60% 55% 30% 30%; transform-origin:50% 100%; animation: mn-m 3.5s ease-in-out infinite; }
.scn-michael-and-natacha .natacha-sil { position:absolute; right:30%; bottom:18%; width:24px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 45% 20% 20% / 55% 60% 30% 30%; transform-origin:50% 100%; animation: mn-n 3.7s ease-in-out infinite; }
.scn-michael-and-natacha .ground-glow { position:absolute; bottom:14%; left:20%; right:20%; height:10px; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,.3) 0%, transparent 70%); animation: mn-glow 5s ease-in-out infinite alternate; }
.scn-michael-and-natacha .dust-a { position:absolute; left:45%; top:40%; width:3px; height:3px; background: rgba(255,220,150,.5); border-radius:50%; animation: mn-dust1 6s linear infinite; }
.scn-michael-and-natacha .dust-b { position:absolute; left:55%; top:35%; width:4px; height:4px; background: rgba(255,210,140,.4); border-radius:50%; animation: mn-dust2 8s linear infinite; }
@keyframes mn-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes mn-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 30px rgba(255,200,100,.3) } 50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 100px 50px rgba(255,200,100,.5) } 100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 70px 35px rgba(255,200,100,.4) } }
@keyframes mn-m { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes mn-n { 0% { transform: rotate(1deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes mn-glow { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes mn-dust1 { 0% { transform: translate(0,0); opacity:.4 } 50% { transform: translate(5px,-8px); opacity:.1 } 100% { transform: translate(10px,-16px); opacity:0 } }
@keyframes mn-dust2 { 0% { transform: translate(0,0); opacity:.3 } 50% { transform: translate(-4px,-6px); opacity:.1 } 100% { transform: translate(-8px,-12px); opacity:0 } }

.scn-poker-games {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 80%, #e0d0b0 0%, transparent 60%);
}
.scn-poker-games .room-walls { position:absolute; inset:0; background: linear-gradient(135deg, #c8b898 0%, #a89070 100%); opacity:.5; }
.scn-poker-games .table { position:absolute; bottom:20%; left:15%; right:15%; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: pg-table 10s ease-in-out infinite; }
.scn-poker-games .cards { position:absolute; bottom:28%; left:38%; width:30px; height:40px; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:8%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pg-cards 8s ease-in-out infinite; }
.scn-poker-games .glass-l { position:absolute; bottom:30%; left:25%; width:12px; height:18px; background: radial-gradient(ellipse at 30% 30%, #e8f0f0 0%, #b0c8c8 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; opacity:.7; animation: pg-glass 6s ease-in-out infinite alternate; }
.scn-poker-games .glass-r { position:absolute; bottom:30%; right:25%; width:12px; height:18px; background: radial-gradient(ellipse at 70% 30%, #e8f0f0 0%, #b0c8c8 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; opacity:.7; animation: pg-glass 6s ease-in-out infinite alternate-reverse; }
.scn-poker-games .figure-gambler { position:absolute; left:20%; bottom:12%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 50% 50% 25% 25%; animation: pg-fig1 7s ease-in-out infinite; }
.scn-poker-games .figure-dealer { position:absolute; right:20%; bottom:12%; width:22px; height:52px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%; animation: pg-fig2 8s ease-in-out infinite; }
.scn-poker-games .window-light { position:absolute; top:5%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: pg-light 12s ease-in-out infinite alternate; }
@keyframes pg-table { 0% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.4) } 50% { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.5) } 100% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.4) } }
@keyframes pg-cards { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pg-glass { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(0.95) } }
@keyframes pg-fig1 { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes pg-fig2 { 0% { transform: translateX(0) } 25% { transform: translateX(-3px) } 50% { transform: translateX(0) } 75% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes pg-light { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.4; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(0.95) } }

.scn-promenade-begins {
  background: linear-gradient(180deg, #b8d8f0 0%, #e8f0e0 40%, #d0d8a0 70%, #a0b080 100%),
              radial-gradient(ellipse at 70% 5%, #ffdd88 0%, transparent 50%);
}
.scn-promenade-begins .sky-wide { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #90c0e0 0%, #d8e8f0 100%); animation: pb-sky 18s ease-in-out infinite; }
.scn-promenade-begins .ground-path { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #b0a070 0%, #807040 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-promenade-begins .sun-source { position:absolute; top:5%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff5c0 0%, #ffdd80 60%, #ffaa44 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,80,.4); animation: pb-sun 20s ease-in-out infinite alternate; }
.scn-promenade-begins .tree-left { position:absolute; left:5%; bottom:35%; width:30px; height:80px; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a10 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: pb-tree-l 30s ease-in-out infinite; }
.scn-promenade-begins .tree-right { position:absolute; right:10%; bottom:35%; width:35px; height:90px; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: pb-tree-r 30s ease-in-out infinite; }
.scn-promenade-begins .figure-leader { position:absolute; left:35%; bottom:25%; width:18px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 40% 40% 20% 20% / 55% 55% 25% 25%; animation: pb-walk 5s ease-in-out infinite; }
.scn-promenade-begins .figure-follower { position:absolute; left:45%; bottom:25%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 50% 50% 25% 25%; animation: pb-walk 5.5s ease-in-out infinite; }
.scn-promenade-begins .figure-follower2 { position:absolute; left:55%; bottom:25%; width:17px; height:42px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%); border-radius: 40% 40% 20% 20% / 52% 52% 25% 25%; animation: pb-walk 6s ease-in-out infinite; }
.scn-promenade-begins .cloud-drift { position:absolute; top:10%; left:0; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius:50%; filter: blur(6px); animation: pb-cloud 40s linear infinite; }
@keyframes pb-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes pb-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,200,80,.3) } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,200,80,.5) } 100% { transform: scale(0.95); box-shadow: 0 0 70px 25px rgba(255,200,80,.4) } }
@keyframes pb-tree-l { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes pb-tree-r { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes pb-walk { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-1px) } 50% { transform: translateX(8px) translateY(0) } 75% { transform: translateX(12px) translateY(-1px) } 100% { transform: translateX(16px) translateY(0) } }
@keyframes pb-cloud { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

/* rouletabille-waiting – tense, dim interior */
.scn-rouletabille-waiting {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2c2c4a 30%, #1e1e2e 60%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 60%);
}
.scn-rouletabille-waiting .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a44 0%, #1c1c2c 100%); }
.scn-rouletabille-waiting .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #2a2a2a 0%, #1a1a1a 100%); }
.scn-rouletabille-waiting .window { position:absolute; top:10%; right:15%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 30%, #4a6a8a 0%, #1a2a3a 70%); border: 2px solid #3a4a5a; border-radius: 4px; animation: rw-window 12s ease-in-out infinite; }
.scn-rouletabille-waiting .lamp { position:absolute; top:25%; left:45%; width:12px; height:20px; background: linear-gradient(180deg, #b09040 0%, #7a5a2a 100%); border-radius: 50% 50% 30% 30%; }
.scn-rouletabille-waiting .table { position:absolute; bottom:25%; left:30%; width:35%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-rouletabille-waiting .figure { position:absolute; bottom:28%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rw-figure 6s ease-in-out infinite; }
.scn-rouletabille-waiting .figure-shadow { position:absolute; bottom:28%; left:35%; width:16px; height:40px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); transform: translateX(12px) scale(1.2); animation: rw-shad 6s ease-in-out infinite; }
.scn-rouletabille-waiting .door { position:absolute; bottom:10%; left:10%; width:25%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-rouletabille-waiting .ajar { transform: perspective(200px) rotateY(12deg); transform-origin: left; animation: rw-door 10s ease-in-out infinite; }
.scn-rouletabille-waiting .motes { position:absolute; top:20%; left:20%; width:60%; height:60%; background: radial-gradient(circle, rgba(200,180,160,0.1) 0%, transparent 70%); filter: blur(8px); animation: rw-motes 15s linear infinite; }

@keyframes rw-window { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.02); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes rw-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rw-shad { 0% { transform: translateX(12px) scale(1.2); opacity:0.3; } 25% { transform: translateX(10px) scale(1.15); opacity:0.25; } 50% { transform: translateX(14px) scale(1.25); opacity:0.35; } 75% { transform: translateX(11px) scale(1.2); opacity:0.3; } 100% { transform: translateX(12px) scale(1.2); opacity:0.3; } }
@keyframes rw-door { 0% { transform: perspective(200px) rotateY(12deg); } 50% { transform: perspective(200px) rotateY(15deg); } 100% { transform: perspective(200px) rotateY(12deg); } }
@keyframes rw-motes { 0% { background-position: 0% 0%; opacity:0.4; } 50% { background-position: 50% 50%; opacity:0.6; } 100% { background-position: 100% 100%; opacity:0.4; } }

/* gounsovski-invitation – tense, dim interior */
.scn-gounsovski-invitation {
  background:
    linear-gradient(180deg, #2c2c1e 0%, #1a1a0e 40%, #0e0e0a 100%),
    radial-gradient(ellipse at 70% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-gounsovski-invitation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1e1e16 0%, #2a2a20 100%); }
.scn-gounsovski-invitation .door { position:absolute; left:5%; top:10%; width:30%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.5); animation: gi-door 8s ease-in-out infinite; }
.scn-gounsovski-invitation .concierge-desk { position:absolute; bottom:22%; left:50%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-gounsovski-invitation .letter { position:absolute; bottom:35%; left:55%; width:20px; height:14px; background: linear-gradient(135deg, #c8b898 0%, #a09070 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: gi-letter 4s ease-in-out infinite; }
.scn-gounsovski-invitation .hand { position:absolute; bottom:32%; left:50%; width:12px; height:18px; background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: gi-hand 4s ease-in-out infinite; }
.scn-gounsovski-invitation .figure-delivery { position:absolute; bottom:22%; left:35%; width:16px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gi-fig 7s ease-in-out infinite; }
.scn-gounsovski-invitation .hat { position:absolute; bottom:60%; left:36%; width:22px; height:10px; background: #1a1a1a; border-radius: 50% 50% 0 0; transform: rotate(-5deg); animation: gi-hat 7s ease-in-out infinite; }
.scn-gounsovski-invitation .coat { position:absolute; bottom:22%; left:32%; width:20px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: scaleX(1.2); filter: blur(1px); animation: gi-coat 7s ease-in-out infinite; }

@keyframes gi-door { 0% { transform: translateX(0); } 25% { transform: translateX(2px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes gi-letter { 0% { transform: rotate(-8deg) translateY(0); } 25% { transform: rotate(-12deg) translateY(-2px); } 50% { transform: rotate(-8deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes gi-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gi-fig { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(0) rotate(-1deg); } 60% { transform: translateX(-2px) rotate(1deg); } 80% { transform: translateX(1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gi-hat { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes gi-coat { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* dinner-invitation-accepted – calm, sunlit */
.scn-dinner-invitation-accepted {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 30%, #b8a080 70%, #908070 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-dinner-invitation-accepted .wall-sunlit { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); }
.scn-dinner-invitation-accepted .window-curtains { position:absolute; top:5%; left:40%; width:50%; height:50%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: dia-curtain 20s ease-in-out infinite; }
.scn-dinner-invitation-accepted .sunbeam-1 { position:absolute; top:10%; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,255,220,0.15) 0%, rgba(255,255,220,0.05) 100%); filter: blur(4px); transform: rotate(10deg); animation: dia-beam1 18s linear infinite; }
.scn-dinner-invitation-accepted .sunbeam-2 { position:absolute; top:10%; left:55%; width:8%; height:50%; background: linear-gradient(180deg, rgba(255,255,220,0.1) 0%, rgba(255,255,220,0.03) 100%); filter: blur(3px); transform: rotate(-5deg); animation: dia-beam2 22s linear infinite reverse; }
.scn-dinner-invitation-accepted .table-dinner { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-dinner-invitation-accepted .chair-left { position:absolute; bottom:18%; left:22%; width:18px; height:28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(-3deg); animation: dia-chair 15s ease-in-out infinite; }
.scn-dinner-invitation-accepted .chair-right { position:absolute; bottom:18%; right:22%; width:18px; height:28px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(3deg); animation: dia-chair2 15s ease-in-out infinite; }
.scn-dinner-invitation-accepted .plate { position:absolute; bottom:30%; left:48%; width:12px; height:4px; background: #f0e0c0; border-radius: 50%; box-shadow: 0 1px 2px rgba(0,0,0,0.1); animation: dia-plate 12s ease-in-out infinite; }
.scn-dinner-invitation-accepted .glass { position:absolute; bottom:32%; left:52%; width:4px; height:8px; background: linear-gradient(180deg, #d0e8f0 0%, #90b8c8 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; transform: rotate(-2deg); animation: dia-glass 16s ease-in-out infinite; }

@keyframes dia-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes dia-beam1 { 0% { opacity:0.3; } 25% { opacity:0.5; } 50% { opacity:0.6; } 75% { opacity:0.4; } 100% { opacity:0.3; } }
@keyframes dia-beam2 { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes dia-chair { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes dia-chair2 { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes dia-plate { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(1px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes dia-glass { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(-2deg) scaleY(1); } }

/* dining-room-confrontation – tense, dim interior */
.scn-dining-room-confrontation {
  background:
    linear-gradient(180deg, #1a1a1e 0%, #0e0e12 40%, #1e1e22 70%, #2a2a2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-dining-room-confrontation .wall-dark { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%); }
.scn-dining-room-confrontation .table-confront { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.8); }
.scn-dining-room-confrontation .candle { position:absolute; bottom:28%; left:50%; width:6px; height:14px; background: linear-gradient(180deg, #a08060 0%, #6a4a2a 100%); border-radius: 2px; transform: translateX(-50%); animation: drc-candle 3s ease-in-out infinite; }
.scn-dining-room-confrontation .glow-candle { position:absolute; bottom:28%; left:50%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, rgba(255,150,50,0.1) 50%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); animation: drc-glow 3s ease-in-out infinite; }
.scn-dining-room-confrontation .figure-fig1 { position:absolute; bottom:18%; left:30%; width:18px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: drc-fig1 8s ease-in-out infinite; }
.scn-dining-room-confrontation .figure-fig2 { position:absolute; bottom:18%; right:30%; width:18px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: drc-fig2 8s ease-in-out infinite alternate; }
.scn-dining-room-confrontation .shadow-fig1 { position:absolute; bottom:18%; left:30%; width:18px; height:42px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); transform: translateX(10px) scale(1.3); animation: drc-shad1 8s ease-in-out infinite; }
.scn-dining-room-confrontation .shadow-fig2 { position:absolute; bottom:18%; right:30%; width:18px; height:42px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); transform: translateX(-10px) scale(1.3); animation: drc-shad2 8s ease-in-out infinite alternate; }

@keyframes drc-candle { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.02); } 50% { transform: translateX(-50%) scaleY(0.98); } 75% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes drc-glow { 0% { opacity:0.7; } 25% { opacity:0.9; } 50% { opacity:0.6; } 75% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes drc-fig1 { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(2deg); } 40% { transform: translateX(0) rotate(-1deg); } 60% { transform: translateX(-1px) rotate(1deg); } 80% { transform: translateX(1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes drc-fig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes drc-shad1 { 0% { transform: translateX(10px) scale(1.3); opacity:0.4; } 50% { transform: translateX(8px) scale(1.25); opacity:0.3; } 100% { transform: translateX(10px) scale(1.3); opacity:0.4; } }
@keyframes drc-shad2 { 0% { transform: translateX(-10px) scale(1.3); opacity:0.4; } 50% { transform: translateX(-8px) scale(1.25); opacity:0.3; } 100% { transform: translateX(-10px) scale(1.3); opacity:0.4; } }

/* Scene: specter-general */
.scn-specter-general { background: linear-gradient(180deg, #2b3452 0%, #3c405c 30%, #4a5468 60%, #5c6672 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 80%); }
.scn-specter-general .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a7a8a33 0%, #b8c4cc22 100%); animation: sg-sky 15s ease-in-out infinite alternate; }
.scn-specter-general .mist-bank { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(0deg, #2e3648cc 0%, transparent 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(12px); animation: sg-mist 20s ease-in-out infinite; }
.scn-specter-general .stair-rail { position:absolute; bottom:32%; left:20%; width:3px; height:40%; background: #3a3e4e; border-radius:1px; box-shadow: inset 0 0 2px #1a1e2e; animation: sg-rail 6s ease-in-out infinite alternate; }
.scn-specter-general .cape-figure { position:absolute; bottom:30%; left:42%; width:80px; height:120px; background: linear-gradient(180deg, #1a1e2e 0%, #0a0e1a 50%, #121626 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 20px 5px #0a0e1a88; animation: sg-figure 8s ease-in-out infinite; }
.scn-specter-general .cape-fold { position:absolute; bottom:30%; left:38%; width:50px; height:100px; background: linear-gradient(180deg, #1a1e2e 0%, #0a0e1a 100%); border-radius: 0 60% 40% 60% / 0 100% 80% 100%; transform: rotate(15deg); transform-origin: bottom left; animation: sg-fold 10s ease-in-out infinite alternate; }
.scn-specter-general .light-ray { position:absolute; top:15%; left:48%; width:4px; height:60%; background: linear-gradient(180deg, #d4e0e8 0%, transparent 100%); transform: rotate(15deg); filter: blur(6px); animation: sg-ray 12s ease-in-out infinite alternate; }
.scn-specter-general .shadow-pool { position:absolute; bottom:25%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse, #0a0e1a66 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: sg-pool 14s ease-in-out infinite; }
@keyframes sg-sky { 0% { opacity:.6; background-position-y:0 } 50% { opacity:.9; background-position-y:5px } 100% { opacity:.7; background-position-y:0 } }
@keyframes sg-mist { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes sg-rail { 0% { opacity:.7; box-shadow: inset 0 0 2px #1a1e2e } 50% { opacity:1; box-shadow: inset 0 0 4px #2a2e3e } 100% { opacity:.8; box-shadow: inset 0 0 2px #1a1e2e } }
@keyframes sg-figure { 0% { transform: translateY(0) rotate(-2deg) scaleY(1) } 33% { transform: translateY(-3px) rotate(2deg) scaleY(1.01) } 66% { transform: translateY(-1px) rotate(-1deg) scaleY(.99) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes sg-fold { 0% { transform: rotate(12deg) scaleX(1) } 33% { transform: rotate(18deg) scaleX(1.05) } 66% { transform: rotate(10deg) scaleX(.95) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes sg-ray { 0% { opacity:.3; transform: rotate(12deg) scaleY(.9) } 50% { opacity:.7; transform: rotate(18deg) scaleY(1.1) } 100% { opacity:.4; transform: rotate(15deg) scaleY(1) } }
@keyframes sg-pool { 0% { opacity:.4; transform: scale(.95) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.5; transform: scale(1) } }

/* Scene: you-assassinate-me */
.scn-you-assassinate-me { background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 40%, #3a3e4e 70%, #4a4e5a 100%), radial-gradient(ellipse at 30% 60%, #202438 0%, transparent 60%); }
.scn-you-assassinate-me .wall-dark { position:absolute; inset:0 60% 0 0; background: linear-gradient(180deg, #0a0e1a 0%, #1a1e2a 100%); box-shadow: inset -8px 0 12px #0a0e1a; animation: ya-wall 12s ease-in-out infinite alternate; }
.scn-you-assassinate-me .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); box-shadow: inset 0 8px 12px #0a0e1a; }
.scn-you-assassinate-me .window-glow { position:absolute; top:15%; right:5%; width:30%; height:45%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5468 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 20px #8a9aa8, 0 0 40px 10px #2a3448; animation: ya-glow 6s ease-in-out infinite alternate; }
.scn-you-assassinate-me .general-figure { position:absolute; bottom:28%; left:10%; width:70px; height:100px; background: linear-gradient(180deg, #0a0e1a 0%, #1a1e2a 50%, #0a0e1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 10px #0a0e1aaa; animation: ya-general 9s ease-in-out infinite; }
.scn-you-assassinate-me .matrena-figure { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 50%, #1a1e2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ya-matrena 10s ease-in-out infinite; }
.scn-you-assassinate-me .natacha-figure { position:absolute; bottom:20%; left:60%; width:55px; height:75px; background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 50%, #1a1e2a 100%); border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ya-natacha 8s ease-in-out infinite alternate; }
.scn-you-assassinate-me .shadow-line { position:absolute; bottom:30%; left:10%; width:80%; height:2px; background: #0a0e1a88; filter: blur(4px); animation: ya-shadow 14s ease-in-out infinite; }
.scn-you-assassinate-me .dust-mote { position:absolute; top:25%; right:20%; width:4px; height:4px; background: #8a9aa8; border-radius:50%; box-shadow: 0 0 6px #8a9aa8; filter: blur(1px); animation: ya-dust 16s linear infinite; }
@keyframes ya-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes ya-glow { 0% { opacity:.5; box-shadow: inset 0 0 20px #8a9aa8, 0 0 40px 10px #2a3448 } 50% { opacity:.8; box-shadow: inset 0 0 30px #aab8c8, 0 0 60px 15px #3a4a5a } 100% { opacity:.6; box-shadow: inset 0 0 20px #8a9aa8, 0 0 40px 10px #2a3448 } }
@keyframes ya-general { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ya-matrena { 0% { transform: translateY(0) skewX(0) } 33% { transform: translateY(2px) skewX(2deg) } 66% { transform: translateY(-1px) skewX(-1deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes ya-natacha { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(3px) scaleY(.98) } 66% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ya-shadow { 0% { opacity:.3; width:80% } 50% { opacity:.6; width:90% } 100% { opacity:.4; width:80% } }
@keyframes ya-dust { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(8px,-4px) scale(1.2) } 50% { transform: translate(16px, -8px) scale(.8) } 75% { transform: translate(24px, -12px) scale(1.1) } 100% { transform: translate(32px, -16px) scale(1) } }

/* Scene: pushed-back-with-stick */
.scn-pushed-back-with-stick { background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 30%, #3a3e4e 60%, #4a5468 100%), radial-gradient(ellipse at 40% 30%, #1a1e2a 0%, transparent 70%); }
.scn-pushed-back-with-stick .ground-dawn { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2a 100%); box-shadow: inset 0 8px 12px #0a0e1a; }
.scn-pushed-back-with-stick .stick { position:absolute; bottom:45%; left:20%; width:60%; height:5px; background: linear-gradient(90deg, #3a3e4e 0%, #5a5e6a 100%); border-radius: 2px; transform: rotate(-10deg); transform-origin: left center; box-shadow: 0 0 4px #0a0e1a; animation: pb-stick 7s ease-in-out infinite alternate; }
.scn-pushed-back-with-stick .matrena-kneeling { position:absolute; bottom:18%; left:30%; width:70px; height:90px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 8px #0a0e1a88; animation: pb-matrena 9s ease-in-out infinite; }
.scn-pushed-back-with-stick .general-arm { position:absolute; bottom:55%; left:15%; width:30px; height:70px; background: linear-gradient(180deg, #0a0e1a 0%, #1a1e2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; transform: rotate(-30deg); animation: pb-arm 6s ease-in-out infinite alternate; }
.scn-pushed-back-with-stick .rouletabille-hand { position:absolute; bottom:22%; left:55%; width:50px; height:40px; background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 0 6px #0a0e1a; animation: pb-hand 11s ease-in-out infinite; }
.scn-pushed-back-with-stick .shadow-hag { position:absolute; bottom:20%; left:35%; width:100px; height:40px; background: radial-gradient(ellipse, #0a0e1a66 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: pb-hag 13s ease-in-out infinite; }
.scn-pushed-back-with-stick .dawn-light-curtain { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a9aa8 0%, transparent 100%); opacity:.15; animation: pb-curtain 18s ease-in-out infinite alternate; }
@keyframes pb-stick { 0% { transform: rotate(-12deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.05) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes pb-matrena { 0% { transform: translateY(0) rotate(2deg) scaleY(1) } 25% { transform: translateY(3px) rotate(-1deg) scaleY(1.01) } 50% { transform: translateY(0) rotate(-3deg) scaleY(.99) } 75% { transform: translateY(-2px) rotate(1deg) scaleY(1) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes pb-arm { 0% { transform: rotate(-32deg) translateX(0) } 33% { transform: rotate(-28deg) translateX(2px) } 66% { transform: rotate(-35deg) translateX(-2px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes pb-hand { 0% { transform: rotate(12deg) translateX(0) } 33% { transform: rotate(18deg) translateX(3px) } 66% { transform: rotate(8deg) translateX(-2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes pb-hag { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes pb-curtain { 0% { opacity:.1; background-position-y:0 } 50% { opacity:.2; background-position-y:10px } 100% { opacity:.15; background-position-y:0 } }

/* Scene: rise-natacha */
.scn-rise-natacha { background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 40%, #3a3e4e 70%, #4a4e5a 100%), radial-gradient(ellipse at 50% 20%, #2a2e3e 0%, transparent 60%); }
.scn-rise-natacha .floor-slab { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2e3e 0%, #1a1e2a 100%); box-shadow: inset 0 8px 12px #0a0e1a; }
.scn-rise-natacha .parent-figure { position:absolute; bottom:20%; left:25%; width:80px; height:120px; background: linear-gradient(180deg, #0a0e1a 0%, #1a1e2a 50%, #0a0e1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: 0 0 12px #0a0e1a88; animation: rn-parent 10s ease-in-out infinite; }
.scn-rise-natacha .child-figure { position:absolute; bottom:10%; left:55%; width:60px; height:80px; background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3e 50%, #1a1e2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 6px #0a0e1a; animation: rn-child 12s ease-in-out infinite alternate; }
.scn-rise-natacha .dawn-shaft { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #8a9aa8 0%, transparent 100%); transform: rotate(10deg); filter: blur(8px); opacity:.2; animation: rn-shaft 15s ease-in-out infinite alternate; }
.scn-rise-natacha .sob-shadow { position:absolute; bottom:12%; left:50%; width:80px; height:30px; background: radial-gradient(ellipse, #0a0e1a88 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: rn-sob 14s ease-in-out infinite; }
.scn-rise-natacha .wall-texture { position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(90deg, transparent 0px, #1a1e2a 1px, transparent 2px); opacity:.08; animation: rn-wall 20s linear infinite; }
.scn-rise-natacha .dust-specks { position:absolute; top:20%; left:30%; width:3px; height:3px; background: #8a9aa8; border-radius:50%; box-shadow: 0 0 4px #8a9aa8; filter: blur(1px); animation: rn-dust 18s linear infinite; }
@keyframes rn-parent { 0% { transform: translateY(0) rotate(-1deg) } 33% { transform: translateY(-2px) rotate(1deg) } 66% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rn-child { 0% { transform: translateY(0) scaleY(1) skewX(0) } 25% { transform: translateY(4px) scaleY(1.02) skewX(2deg) } 50% { transform: translateY(8px) scaleY(.98) skewX(-1deg) } 75% { transform: translateY(12px) scaleY(1.01) skewX(1deg) } 100% { transform: translateY(16px) scaleY(1) skewX(0) } }
@keyframes rn-shaft { 0% { opacity:.15; transform: rotate(8deg) scaleY(.9) } 50% { opacity:.25; transform: rotate(12deg) scaleY(1.1) } 100% { opacity:.2; transform: rotate(10deg) scaleY(1) } }
@keyframes rn-sob { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes rn-wall { 0% { background-position-x:0 } 100% { background-position-x:200px } }
@keyframes rn-dust { 0% { transform: translate(0,0) scale(1) } 33% { transform: translate(10px,-5px) scale(1.3) } 66% { transform: translate(20px,-10px) scale(.8) } 100% { transform: translate(30px,-15px) scale(1) } }

/* ===== Scene: kouprianes-rage ===== */
.scn-kouprianes-rage {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 40%, #8a4a2a 0%, transparent 60%);
}
.scn-kouprianes-rage .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  opacity: 0.9;
}
.scn-kouprianes-rage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 20% 20%;
}
.scn-kouprianes-rage .window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #e8c080 0%, #b08040 60%, transparent 100%);
  border: 4px solid #1a0a00;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px 10px rgba(232,192,128,0.3);
  animation: kr-windowglow 4s ease-in-out infinite alternate;
}
.scn-kouprianes-rage .lamp {
  position: absolute; bottom: 45%; left: 20%; width: 8px; height: 20px;
  background: radial-gradient(ellipse at center, #ffd080 0%, #b06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.5);
  animation: kr-lampflicker 0.5s ease-in-out infinite alternate;
}
.scn-kouprianes-rage .attacker {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kr-attack 1.2s ease-in-out infinite;
}
.scn-kouprianes-rage .victim {
  position: absolute; bottom: 30%; left: 65%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: kr-recoil 1.2s ease-in-out infinite alternate;
}
.scn-kouprianes-rage .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, #0a0000 0%, transparent 100%);
  filter: blur(5px);
  animation: kr-shadowpulse 3s ease-in-out infinite alternate;
}
@keyframes kr-windowglow {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px 5px rgba(232,192,128,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px 15px rgba(232,192,128,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 30px 10px rgba(232,192,128,0.3); }
}
@keyframes kr-lampflicker {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.9; transform: scaleX(0.95); }
}
@keyframes kr-attack {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-10px) rotate(-5deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-15px) rotate(-8deg) scaleY(1.05); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kr-recoil {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(10px) translateY(-5px) rotate(5deg); }
  100% { transform: translateX(20px) translateY(2px) rotate(-3deg); }
}
@keyframes kr-shadowpulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.9); }
}

/* ===== Scene: complain-to-tsar ===== */
.scn-complain-to-tsar {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 70% 50%, #8a6a3a 0%, transparent 70%);
}
.scn-complain-to-tsar .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a2a 50%, #3a2a1a 100%);
  opacity: 0.8;
}
.scn-complain-to-tsar .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 30% 30%;
}
.scn-complain-to-tsar .window {
  position: absolute; top: 15%; right: 15%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at center, #d0b080 0%, #a08050 60%, transparent 100%);
  border: 3px solid #1a0a00;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 40px 15px rgba(200,160,100,0.4);
  animation: ct-windowglow 6s ease-in-out infinite alternate;
}
.scn-complain-to-tsar .door {
  position: absolute; bottom: 25%; left: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  border: 2px solid #1a0a00;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: ct-doorshake 8s ease-in-out infinite;
}
.scn-complain-to-tsar .figure-left {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ct-figureleft 5s ease-in-out infinite alternate;
}
.scn-complain-to-tsar .figure-right {
  position: absolute; bottom: 25%; left: 55%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ct-figureright 7s ease-in-out infinite alternate;
}
.scn-complain-to-tsar .shadow {
  position: absolute; bottom: 23%; left: 30%; width: 50%; height: 8%;
  background: radial-gradient(ellipse, #0a0000 0%, transparent 100%);
  filter: blur(4px);
  animation: ct-shadowdrift 10s ease-in-out infinite alternate;
}
@keyframes ct-windowglow {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px 5px rgba(200,160,100,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 50px 20px rgba(200,160,100,0.6); }
  100% { opacity: 0.8; box-shadow: inset 0 0 30px 10px rgba(200,160,100,0.4); }
}
@keyframes ct-doorshake {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg) translateX(-1px); }
  50% { transform: rotate(2deg) translateX(1px); }
  75% { transform: rotate(-1deg) translateX(-0.5px); }
  100% { transform: rotate(0deg); }
}
@keyframes ct-figureleft {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ct-figureright {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-8px) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ct-shadowdrift {
  0% { opacity: 0.4; transform: scaleX(1) translateX(0); }
  50% { opacity: 0.7; transform: scaleX(1.2) translateX(5px); }
  100% { opacity: 0.5; transform: scaleX(0.9) translateX(-3px); }
}

/* ===== Scene: red-week-moscow ===== */
.scn-red-week-moscow {
  background: 
    linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 60%, #8a5a2a 0%, transparent 70%);
}
.scn-red-week-moscow .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  opacity: 0.9;
}
.scn-red-week-moscow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 20% 20%;
}
.scn-red-week-moscow .window-frame {
  position: absolute; top: 10%; left: 10%; width: 60%; height: 50%;
  background: transparent;
  border: 5px solid #1a0a00;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 0 10px #2a1a0a;
}
.scn-red-week-moscow .sky {
  position: absolute; top: 12%; left: 12%; width: 56%; height: 46%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 3% 3%;
  animation: rw-skydrift 20s linear infinite alternate;
}
.scn-red-week-moscow .cityscape {
  position: absolute; bottom: 22%; left: 12%; width: 56%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  clip-path: polygon(0% 100%, 0% 30%, 10% 30%, 10% 10%, 20% 10%, 20% 30%, 30% 30%, 30% 20%, 40% 20%, 40% 40%, 50% 40%, 50% 15%, 60% 15%, 60% 35%, 70% 35%, 70% 5%, 80% 5%, 80% 25%, 90% 25%, 90% 45%, 100% 45%, 100% 100%);
  animation: rw-citypulse 6s ease-in-out infinite alternate;
}
.scn-red-week-moscow .figure-1 {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rw-figure1 4s ease-in-out infinite alternate;
}
.scn-red-week-moscow .figure-2 {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rw-figure2 5s ease-in-out infinite alternate;
}
@keyframes rw-skydrift {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: -5% -2%; }
}
@keyframes rw-citypulse {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.03); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes rw-figure1 {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes rw-figure2 {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* ===== Scene: trebassofs-door ===== */
.scn-trebassofs-door {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #8a4a2a 0%, transparent 70%);
}
.scn-trebassofs-door .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  opacity: 0.85;
}
.scn-trebassofs-door .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10%;
}
.scn-trebassofs-door .door {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border: 3px solid #1a0a00;
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: td-doorstruggle 2s ease-in-out infinite;
}
.scn-trebassofs-door .door-frame {
  position: absolute; bottom: 25%; left: 32%; width: 36%; height: 65%;
  background: transparent;
  border: 6px solid #2a1a0a;
  border-radius: 8% 8% 5% 5%;
  box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.5);
}
.scn-trebassofs-door .figure-pushed {
  position: absolute; bottom: 25%; left: 40%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: td-pushed 1.5s ease-in-out infinite alternate;
}
.scn-trebassofs-door .figure-guard {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: td-guard 2s ease-in-out infinite;
}
.scn-trebassofs-door .light-spot {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #d0a060 0%, transparent 100%);
  opacity: 0.4;
  mix-blend-mode: overlay;
  animation: td-light 5s ease-in-out infinite alternate;
}
@keyframes td-doorstruggle {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(3px); }
  50% { transform: rotate(-1deg) translateX(-2px); }
  75% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes td-pushed {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(15px) translateY(-5px) rotate(8deg); }
  100% { transform: translateX(30px) translateY(2px) rotate(-5deg); }
}
@keyframes td-guard {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes td-light {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-rouletabille-consoles {
  background: linear-gradient(145deg, #f5e6c8 0%, #e3cba0 30%, #b58a5c 70%, #6b4d2a 100%), radial-gradient(circle at 35% 70%, #ffe5a8 0%, transparent 60%);
}
.scn-rouletabille-consoles .bg-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #eedbba 0%, #d4b991 100%); animation: rc-wall 8s ease-in-out infinite alternate; }
.scn-rouletabille-consoles .window { position:absolute; top:8%; left:55%; width:120px; height:150px; background: linear-gradient(180deg, #d6e0f0 0%, #b0c8e0 100%); border-radius:4px; box-shadow: inset 0 0 20px #8ab0d0, 0 0 30px rgba(200,220,255,0.3); animation: rc-window 12s ease-in-out infinite alternate; }
.scn-rouletabille-consoles .curtain-left { position:absolute; top:6%; left:53%; width:30px; height:160px; background: linear-gradient(90deg, #b2491e 0%, #8a3714 100%); border-radius:0 50% 50% 0; transform-origin: right center; animation: rc-curtain 6s ease-in-out infinite alternate; }
.scn-rouletabille-consoles .curtain-right { position:absolute; top:6%; right:20%; width:30px; height:160px; background: linear-gradient(90deg, #8a3714 0%, #b2491e 100%); border-radius:50% 0 0 50%; transform-origin: left center; animation: rc-curtain 6s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-rouletabille-consoles .sofa { position:absolute; bottom:10%; left:20%; width:180px; height:80px; background: linear-gradient(160deg, #6a4e3a 0%, #4a3221 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,0.4); }
.scn-rouletabille-consoles .figure-madame { position:absolute; bottom:18%; left:35%; width:60px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1108 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc-sit 4s ease-in-out infinite; }
.scn-rouletabille-consoles .figure-rouletabille { position:absolute; bottom:15%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #2a2018 0%, #140e0a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: rc-stand 5s ease-in-out infinite; }
.scn-rouletabille-consoles .lamp { position:absolute; top:20%; left:70%; width:20px; height:30px; background: radial-gradient(circle, #ffd080 0%, #e6a840 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 40px 15px #ffd080; animation: rc-lamp 3s ease-in-out infinite alternate; }
.scn-rouletabille-consoles .table { position:absolute; bottom:18%; left:45%; width:80px; height:15px; background: linear-gradient(90deg, #5c3d1c 0%, #8b6940 50%, #5c3d1c 100%); border-radius:10px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
@keyframes rc-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rc-window { 0% { transform: scaleY(0.95); opacity:0.8; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(0.97); opacity:0.9; } }
@keyframes rc-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes rc-sit { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes rc-stand { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes rc-lamp { 0% { box-shadow: 0 0 20px 8px #ffd080; opacity:0.85; } 50% { box-shadow: 0 0 50px 20px #ffe0a0; opacity:1; } 100% { box-shadow: 0 0 30px 12px #ffc060; opacity:0.9; } }

.scn-rouletabille-swear-help {
  background: linear-gradient(180deg, #e8d4b4 0%, #d4b58a 40%, #b58a5c 70%, #8b6b4a 100%), radial-gradient(ellipse at 30% 50%, #f5e0c0 0%, transparent 60%);
}
.scn-rouletabille-swear-help .bg-room { position:absolute; inset:0; background: linear-gradient(145deg, #eeddbb 0%, #d4b991 100%); }
.scn-rouletabille-swear-help .shoulder-madame { position:absolute; bottom:20%; left:15%; width:100px; height:80px; background: linear-gradient(180deg, #2a1e14 0%, #1a0e06 100%); border-radius: 60% 60% 40% 40% / 70% 70% 50% 50%; transform: skewX(-5deg); animation: rsh-breathe 5s ease-in-out infinite; }
.scn-rouletabille-swear-help .hand-rouletabille { position:absolute; bottom:28%; left:45%; width:30px; height:45px; background: linear-gradient(180deg, #d6a87a 0%, #b88a5e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: rsh-reach 4s ease-in-out infinite; }
.scn-rouletabille-swear-help .tear-drop { position:absolute; bottom:45%; left:23%; width:8px; height:14px; background: radial-gradient(circle at 30% 30%, #ffe8e8 0%, #b8d4e0 100%); border-radius: 50% 50% 60% 60%; animation: rsh-fall 3s ease-in infinite; }
.scn-rouletabille-swear-help .glow-window { position:absolute; top:10%; right:10%; width:100px; height:140px; background: linear-gradient(135deg, #d6e0f0 0%, #b0c8e0 100%); opacity:0.4; border-radius:4px; box-shadow: 0 0 30px rgba(200,220,255,0.2); animation: rsh-light 10s ease-in-out infinite alternate; }
.scn-rouletabille-swear-help .shadow-silhouette { position:absolute; bottom:10%; right:20%; width:50px; height:90px; background: linear-gradient(180deg, #2a1e14 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.3; animation: rsh-shadow 7s ease-in-out infinite; }
@keyframes rsh-breathe { 0%,100% { transform: skewX(-5deg) scaleX(1); } 50% { transform: skewX(-4deg) scaleX(1.02); } }
@keyframes rsh-reach { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes rsh-fall { 0% { transform: translateY(-20px) scaleY(0.5); opacity:1; } 50% { transform: translateY(10px) scaleY(1); opacity:0.8; } 100% { transform: translateY(30px) scaleY(0.3); opacity:0; } }
@keyframes rsh-light { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes rsh-shadow { 0%,100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(0.95) scaleY(0.98); } }

.scn-matrena-accepts-help {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3cba0 50%, #cba87b 100%), radial-gradient(ellipse at 60% 40%, #ffeab8 0%, transparent 70%);
}
.scn-matrena-accepts-help .bg-dining { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #eeddbb 0%, #d4b991 100%); }
.scn-matrena-accepts-help .table-round { position:absolute; bottom:15%; left:50%; width:160px; height:30px; margin-left:-80px; background: radial-gradient(ellipse, #8b6940 0%, #5c3d1c 70%); border-radius:50%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: ma-table 9s ease-in-out infinite alternate; }
.scn-matrena-accepts-help .chair-left { position:absolute; bottom:22%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #4a3221 0%, #2a1a0e 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-5deg); animation: ma-chair 6s ease-in-out infinite alternate; }
.scn-matrena-accepts-help .chair-right { position:absolute; bottom:22%; right:35%; width:40px; height:60px; background: linear-gradient(180deg, #4a3221 0%, #2a1a0e 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); animation: ma-chair 6s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-matrena-accepts-help .teacup-cup { position:absolute; bottom:32%; left:50%; width:20px; height:20px; margin-left:-10px; background: radial-gradient(circle at 30% 30%, #f0e0c0 0%, #c8a87a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-matrena-accepts-help .teacup-saucer { position:absolute; bottom:30%; left:50%; width:36px; height:8px; margin-left:-18px; background: #b89870; border-radius:50%; }
.scn-matrena-accepts-help .smile-glow { position:absolute; bottom:35%; left:48%; width:40px; height:20px; background: radial-gradient(ellipse, #fce4a8 0%, transparent 100%); opacity:0.6; animation: ma-smile 5s ease-in-out infinite; }
.scn-matrena-accepts-help .serviette { position:absolute; bottom:20%; left:52%; width:12px; height:25px; background: #f5f0e0; border-radius: 20% 20% 40% 40%; transform: rotate(15deg); animation: ma-serv 7s ease-in-out infinite; }
@keyframes ma-table { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes ma-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes ma-smile { 0% { opacity:0.4; transform: scaleY(0.5); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.5; transform: scaleY(0.8); } }
@keyframes ma-serv { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } }

.scn-nihists-warning {
  background: linear-gradient(135deg, #4a3a2a 0%, #2e2218 30%, #1e1410 60%, #0e0a08 100%), radial-gradient(circle at 75% 20%, #c8553d 0%, transparent 40%);
}
.scn-nihists-warning .bg-dark-corner { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 80%, #1e1410 0%, #0a0604 100%); animation: nw-bg 12s ease-in-out infinite alternate; }
.scn-nihists-warning .doorway { position:absolute; bottom:10%; left:50%; width:100px; height:160px; margin-left:-50px; background: linear-gradient(180deg, #352618 0%, #1a0e08 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px #0a0604; transform: perspective(300px) rotateX(5deg); }
.scn-nihists-warning .figure-nihist { position:absolute; bottom:15%; left:50%; width:50px; height:120px; margin-left:-25px; background: linear-gradient(180deg, #2e1e12 0%, #0e0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: nw-figure 4s ease-in-out infinite; }
.scn-nihists-warning .hand-pointing { position:absolute; bottom:55%; left:52%; width:14px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(30deg); transform-origin: bottom center; animation: nw-point 2s ease-in-out infinite; }
.scn-nihists-warning .warning-scroll { position:absolute; top:20%; right:15%; width:60px; height:20px; background: #8b6940; border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); transform: rotate(-10deg); animation: nw-scroll 9s ease-in-out infinite alternate; }
.scn-nihists-warning .flicker-shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(200,85,61,0.3) 100%); animation: nw-flicker 0.8s steps(2) infinite; }
@keyframes nw-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nw-figure { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(0.95); } }
@keyframes nw-point { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } }
@keyframes nw-scroll { 0% { transform: rotate(-10deg) scaleY(0.9); } 50% { transform: rotate(-12deg) scaleY(1.1); } 100% { transform: rotate(-8deg) scaleY(0.95); } }
@keyframes nw-flicker { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* Scene 1: item-watch-experiment (tense, dark, shed interior) */
.scn-item-watch-experiment {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2440 40%, #1a1a2a 80%, #0e0e1a 100%),
              radial-gradient(ellipse at 30% 60%, #2a2a4e 0%, transparent 60%);
}
.scn-item-watch-experiment .shed-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 60%, #3a3a4e 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-item-watch-experiment .shed-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 100%);
  border-radius: 0 0 8% 8%;
}
.scn-item-watch-experiment .stool {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: iwe-stool 6s ease-in-out infinite;
}
.scn-item-watch-experiment .rope {
  position: absolute; bottom: 60%; left: 38%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; transform-origin: top center;
  animation: iwe-rope 4s ease-in-out infinite alternate;
}
.scn-item-watch-experiment .figure {
  position: absolute; bottom: 26%; left: 40%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iwe-figure 3s ease-in-out infinite;
}
.scn-item-watch-experiment .lantern {
  position: absolute; bottom: 35%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #e0a040 0%, #b07030 60%, #402010 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4);
  animation: iwe-lantern 5s ease-in-out infinite alternate;
}
.scn-item-watch-experiment .beam {
  position: absolute; top: 10%; left: 15%; width: 70%; height: 10px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,160,100,0.1) 50%, transparent 100%);
  filter: blur(8px); transform: rotate(15deg); animation: iwe-beam 10s ease-in-out infinite alternate;
}
.scn-item-watch-experiment .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: iwe-shadow 4s ease-in-out infinite;
}
@keyframes iwe-stool {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes iwe-rope {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(5deg); }
}
@keyframes iwe-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(15px) translateY(-3px) rotate(2deg); }
  70% { transform: translateX(-10px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes iwe-lantern {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,0.3); }
  100% { opacity: 1; box-shadow: 0 0 25px 8px #d09040, 0 0 50px 15px rgba(208,144,64,0.5); }
}
@keyframes iwe-beam {
  0% { opacity: 0.2; transform: rotate(10deg) translateX(-10px); }
  100% { opacity: 0.6; transform: rotate(20deg) translateX(10px); }
}
@keyframes iwe-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
}

/* Scene 2: experiment-race-against-time (warm, dark, court with chair) */
.scn-experiment-race-against-time {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 40%, #2a2a3e 80%, #3a3a4e 100%),
              radial-gradient(ellipse at 60% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-experiment-race-against-time .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
}
.scn-experiment-race-against-time .court-ground {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(0deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-experiment-race-against-time .chair {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: erc-chair 5s ease-in-out infinite;
}
.scn-experiment-race-against-time .figure-running {
  position: absolute; bottom: 30%; left: 10%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: erc-figure 3s ease-in-out infinite;
}
.scn-experiment-race-against-time .shed-outline {
  position: absolute; bottom: 35%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 4px; box-shadow: 0 0 12px rgba(0,0,0,0.6);
  animation: erc-shed 10s ease-in-out infinite alternate;
}
.scn-experiment-race-against-time .lamp-post {
  position: absolute; bottom: 38%; left: 25%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 3px;
}
.scn-experiment-race-against-time .lamp-post::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0a040 0%, #b07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4);
  animation: erc-lamp 4s ease-in-out infinite alternate;
}
.scn-experiment-race-against-time .dust {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,150,0.1) 0%, transparent 100%);
  filter: blur(10px); animation: erc-dust 6s ease-in-out infinite;
}
@keyframes erc-chair {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes erc-figure {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(60px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(120px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(180px) translateY(-1px) rotate(4deg); }
  100% { transform: translateX(240px) translateY(0) rotate(0); }
}
@keyframes erc-shed {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.9; }
}
@keyframes erc-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,0.3); }
  100% { opacity: 1; box-shadow: 0 0 25px 8px #d09040, 0 0 50px 15px rgba(208,144,64,0.5); }
}
@keyframes erc-dust {
  0% { opacity: 0; transform: translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateY(-10px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-20px) scale(0.8); }
}

/* Scene 3: release-negotiation (warm, dark, room with table and figures) */
.scn-release-negotiation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #4a3a3e 100%),
              radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-release-negotiation .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 60%, #3a3a4e 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-release-negotiation .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-release-negotiation .lamp-glow {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e0a040 0%, #b07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b07030, 0 0 60px 20px rgba(176,112,48,0.4);
  animation: rnl-lamp 5s ease-in-out infinite alternate;
}
.scn-release-negotiation .figure-chief {
  position: absolute; bottom: 38%; left: 30%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rnl-fig1 6s ease-in-out infinite;
}
.scn-release-negotiation .figure-french {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a2a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rnl-fig2 7s ease-in-out infinite alternate;
}
.scn-release-negotiation .figure-guard {
  position: absolute; bottom: 38%; right: 15%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rnl-fig3 8s ease-in-out infinite;
}
.scn-release-negotiation .shadow-cast {
  position: absolute; bottom: 16%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px); animation: rnl-shadow 5s ease-in-out infinite alternate;
}
@keyframes rnl-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #d09040, 0 0 70px 20px rgba(208,144,64,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px #c08040, 0 0 50px 15px rgba(192,128,64,0.4); }
}
@keyframes rnl-fig1 {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes rnl-fig2 {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  100% { transform: translateX(-5px) translateY(-1px) rotate(1deg); }
}
@keyframes rnl-fig3 {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
}
@keyframes rnl-shadow {
  0% { opacity: 0.4; transform: translateX(-5px); }
  100% { opacity: 0.6; transform: translateX(5px); }
}

/* Scene 4: hotel-commotion (tense, dim-interior, hotel room) */
.scn-hotel-commotion {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a3a4e 70%, #2a2a3e 100%),
              radial-gradient(ellipse at 70% 50%, #4a3a3a 0%, transparent 60%);
}
.scn-hotel-commotion .hotel-doorway {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 60%, #3a3a4e 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-hotel-commotion .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hotel-commotion .bed-frame {
  position: absolute; bottom: 20%; left: 55%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: hcm-bed 8s ease-in-out infinite alternate;
}
.scn-hotel-commotion .figure-bursting {
  position: absolute; bottom: 25%; left: 10%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hcm-burst 4s ease-in-out infinite;
}
.scn-hotel-commotion .interpreter {
  position: absolute; bottom: 25%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg); animation: hcm-int 3s ease-in-out infinite alternate;
}
.scn-hotel-commotion .lamp-crash {
  position: absolute; top: 10%; right: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0a040 0%, #b07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.4);
  animation: hcm-lamp 2s ease-in-out infinite;
}
.scn-hotel-commotion .curtain {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 0 0 30%; transform-origin: top left;
  animation: hcm-curtain 6s ease-in-out infinite alternate;
}
@keyframes hcm-bed {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(2px) scale(0.98); }
}
@keyframes hcm-burst {
  0% { transform: translateX(0) translateY(0) rotate(-10deg); }
  30% { transform: translateX(80px) translateY(-2px) rotate(10deg); }
  60% { transform: translateX(160px) translateY(0) rotate(-5deg); }
  100% { transform: translateX(240px) translateY(-1px) rotate(5deg); }
}
@keyframes hcm-int {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-3px); }
}
@keyframes hcm-lamp {
  0% { opacity: 0.9; transform: rotate(0); }
  50% { opacity: 1; transform: rotate(10deg); }
  100% { opacity: 0.8; transform: rotate(-10deg); }
}
@keyframes hcm-curtain {
  0% { transform: rotate(0) scaleX(1); }
  100% { transform: rotate(3deg) scaleX(0.9); }
}

/* hunting-lost – interior cutaway, calm bright */
.scn-hunting-lost { background: linear-gradient(180deg, #d4c9a8 0%, #bfb48f 50%, #a89878 100%), radial-gradient(ellipse at 60% 40%, #fff6dc 0%, transparent 60%); }
.scn-hunting-lost .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8ddc0 0%, #c9b99a 100%); }
.scn-hunting-lost .window-frame { position:absolute; top:10%; left:30%; width:40%; height:60%; border:12px solid #7a6a4a; border-radius:6px; background: transparent; box-shadow: inset 0 0 0 6px #5f4f32; }
.scn-hunting-lost .window-glass { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, #cfe4f0 0%, #edf5f8 100%); opacity:0.7; border-radius:4px; animation: hl-glass 12s ease-in-out infinite alternate; }
.scn-hunting-lost .curtain-left { position:absolute; top:8%; left:28%; width:16%; height:62%; background: linear-gradient(180deg, #8b6f4a 0%, #5a4730 100%); border-radius:0 20% 20% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.2); transform-origin: left center; animation: hl-curtain 8s ease-in-out infinite alternate; }
.scn-hunting-lost .curtain-right { position:absolute; top:8%; right:28%; width:16%; height:62%; background: linear-gradient(180deg, #8b6f4a 0%, #5a4730 100%); border-radius:20% 0 0 20%; box-shadow: -4px 0 12px rgba(0,0,0,0.2); transform-origin: right center; animation: hl-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-hunting-lost .figure { position:absolute; bottom:12%; left:42%; width:28px; height:60px; background: linear-gradient(180deg, #2a2418 0%, #0f0b06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-2deg); animation: hl-figure 6s ease-in-out infinite; }
.scn-hunting-lost .rifle { position:absolute; bottom:14%; left:32%; width:80px; height:6px; background: linear-gradient(180deg, #5a3d20 0%, #3c2812 100%); border-radius:50% 0 0 50%; transform: rotate(25deg); transform-origin: right center; animation: hl-rifle 4s ease-in-out infinite alternate; }
.scn-hunting-lost .table { position:absolute; bottom:6%; left:20%; width:60%; height:8px; background: linear-gradient(180deg, #8b7044 0%, #6a5330 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-hunting-lost .map { position:absolute; bottom:10%; left:36%; width:40px; height:50px; background: linear-gradient(180deg, #d4c978 0%, #b8a85a 100%); border-radius:4px; transform: rotate(-8deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: hl-map 10s ease-in-out infinite alternate; }
@keyframes hl-glass { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes hl-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes hl-figure { 0%,100% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } }
@keyframes hl-rifle { 0%,100% { transform: rotate(25deg); } 50% { transform: rotate(20deg); } }
@keyframes hl-map { 0%,100% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } }

/* champagne-flowing – close-up party, warm bright */
.scn-champagne-flowing { background: linear-gradient(180deg, #f2e0b0 0%, #e6c88a 40%, #cba05a 100%), radial-gradient(ellipse at 50% 30%, #fff3d6 0%, transparent 70%); }
.scn-champagne-flowing .backdrop { position:absolute; inset:0; background: linear-gradient(135deg, #dbb86e 0%, #b59154 100%); }
.scn-champagne-flowing .tablecloth { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #f5efe0 0%, #e0d5c0 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); }
.scn-champagne-flowing .glass-left { position:absolute; bottom:20%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #fdfef5 0%, #d9d4b0 100%); border-radius:0 0 20% 20% / 0 0 30% 30%; clip-path: polygon(15% 0, 85% 0, 100% 70%, 0 70%); box-shadow: 0 6px 12px rgba(0,0,0,0.2); animation: cf-glass 5s ease-in-out infinite alternate; }
.scn-champagne-flowing .glass-right { position:absolute; bottom:22%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #fdfef5 0%, #d9d4b0 100%); border-radius:0 0 20% 20% / 0 0 30% 30%; clip-path: polygon(15% 0, 85% 0, 100% 70%, 0 70%); box-shadow: 0 6px 12px rgba(0,0,0,0.2); transform: scale(0.9); animation: cf-glass 6s ease-in-out infinite alternate-reverse; }
.scn-champagne-flowing .bottle { position:absolute; bottom:28%; left:50%; width:30px; height:90px; margin-left:-15px; background: linear-gradient(180deg, #2e672e 0%, #1e4a1e 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: cf-bottle 4s ease-in-out infinite; }
.scn-champagne-flowing .bubbles { position:absolute; bottom:35%; left:30%; width:30px; height:50px; animation: cf-bubbles 3s linear infinite; }
.scn-champagne-flowing .bubbles::before { content:''; position:absolute; width:6px; height:6px; background: rgba(255,255,240,0.6); border-radius:50%; top:10px; left:8px; filter:blur(1px); box-shadow: 8px 12px 0 2px rgba(255,255,240,0.5), -4px 20px 0 3px rgba(255,255,240,0.4), 6px 30px 0 1px rgba(255,255,240,0.3); }
.scn-champagne-flowing .hand { position:absolute; bottom:25%; left:10%; width:30px; height:50px; background: linear-gradient(180deg, #d4a577 0%, #b88a5e 100%); border-radius:50% 50% 30% 30% / 50% 50% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: cf-hand 5s ease-in-out infinite alternate; }
.scn-champagne-flowing .sparkle { position:absolute; top:20%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #fff8e0 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,248,224,0.6); animation: cf-sparkle 2s ease-in-out infinite; }
@keyframes cf-glass { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes cf-bottle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cf-bubbles { 0% { transform: translateY(0); opacity:1; } 100% { transform: translateY(-40px); opacity:0; } }
@keyframes cf-hand { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(10deg) translateX(2px); } }
@keyframes cf-sparkle { 0% { transform: scale(0.8); opacity:0.5; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:0.5; } }

/* paris-talk – café conversation, warm bright */
.scn-paris-talk { background: linear-gradient(180deg, #e8d6a0 0%, #d4be82 50%, #b89b5e 100%), radial-gradient(ellipse at 50% 60%, #f5edc8 0%, transparent 70%); }
.scn-paris-talk .wall { position:absolute; inset:0; background: linear-gradient(135deg, #cfb684 0%, #ab915c 100%); }
.scn-paris-talk .lamp { position:absolute; top:8%; left:50%; width:50px; height:60px; margin-left:-25px; background: radial-gradient(ellipse at 50% 20%, #fff2c0 0%, #e8c870 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 0 40px 12px rgba(232,200,112,0.4); animation: pt-lamp 6s ease-in-out infinite alternate; }
.scn-paris-talk .table { position:absolute; bottom:10%; left:10%; width:80%; height:12px; background: linear-gradient(180deg, #6a4a28 0%, #4e331c 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-paris-talk .figure-left { position:absolute; bottom:15%; left:20%; width:35px; height:80px; background: linear-gradient(180deg, #2a2018 0%, #0f0a06 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pt-figure 8s ease-in-out infinite; }
.scn-paris-talk .figure-right { position:absolute; bottom:15%; right:20%; width:35px; height:80px; background: linear-gradient(180deg, #2a2018 0%, #0f0a06 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pt-figure 9s ease-in-out infinite -2s; }
.scn-paris-talk .glass-left { position:absolute; bottom:18%; left:32%; width:20px; height:30px; background: linear-gradient(180deg, #fdf9e0 0%, #d4b88a 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; clip-path: polygon(20% 0, 80% 0, 100% 80%, 0 80%); transform: rotate(-5deg); animation: pt-glass 5s ease-in-out infinite alternate; }
.scn-paris-talk .glass-right { position:absolute; bottom:18%; right:32%; width:20px; height:30px; background: linear-gradient(180deg, #fdf9e0 0%, #d4b88a 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; clip-path: polygon(20% 0, 80% 0, 100% 80%, 0 80%); transform: rotate(5deg); animation: pt-glass 6s ease-in-out infinite alternate-reverse; }
.scn-paris-talk .hat-left { position:absolute; bottom:72%; left:22%; width:40px; height:15px; background: linear-gradient(180deg, #3a2e22 0%, #1d150e 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-6deg); animation: pt-hat 12s ease-in-out infinite; }
.scn-paris-talk .hat-right { position:absolute; bottom:70%; right:22%; width:35px; height:12px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(4deg); animation: pt-hat 14s ease-in-out infinite -3s; }
@keyframes pt-lamp { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes pt-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes pt-glass { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } }
@keyframes pt-hat { 0%,100% { transform: rotate(-6deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(3px); } }

/* russia-closed-book – overhead desk, funny bright */
.scn-russia-closed-book { background: linear-gradient(180deg, #e3cd9a 0%, #cfb47d 50%, #b4975a 100%), radial-gradient(ellipse at 50% 40%, #f5e5b8 0%, transparent 70%); }
.scn-russia-closed-book .desk { position:absolute; inset:0; background: linear-gradient(135deg, #c8a879 0%, #a08254 100%); }
.scn-russia-closed-book .book-left { position:absolute; top:20%; left:15%; width:40%; height:55%; background: linear-gradient(180deg, #5f442a 0%, #3d2a1a 100%); border-radius:8% 2% 2% 8%; box-shadow: 4px 4px 12px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: rcb-book 10s ease-in-out infinite alternate; }
.scn-russia-closed-book .book-right { position:absolute; top:20%; right:15%; width:40%; height:55%; background: linear-gradient(180deg, #5f442a 0%, #3d2a1a 100%); border-radius:2% 8% 8% 2%; box-shadow: -4px 4px 12px rgba(0,0,0,0.4); transform: rotate(2deg); animation: rcb-book 10s ease-in-out infinite alternate-reverse; }
.scn-russia-closed-book .page { position:absolute; top:22%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #f5f0d0 0%, #e8dbb0 100%); border-radius:4px; transform: rotate(0deg); animation: rcb-page 8s ease-in-out infinite alternate; }
.scn-russia-closed-book .glass { position:absolute; top:10%; left:42%; width:30px; height:45px; background: linear-gradient(180deg, #fdfbe0 0%, #d4c49a 100%); clip-path: polygon(15% 0, 85% 0, 100% 100%, 0 100%); border-radius:0 0 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); transform: rotate(6deg); animation: rcb-glass 4s ease-in-out infinite; }
.scn-russia-closed-book .bottle { position:absolute; top:2%; left:20%; width:25px; height:70px; background: linear-gradient(180deg, #2e672e 0%, #1e4a1e 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); transform: rotate(-8deg); animation: rcb-bottle 6s ease-in-out infinite alternate; }
.scn-russia-closed-book .hand { position:absolute; top:60%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #d4a577 0%, #b88a5e 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: rcb-hand 3s ease-in-out infinite; }
.scn-russia-closed-book .grin { position:absolute; top:70%; left:48%; width:30px; height:6px; background: linear-gradient(180deg, #d9b88c 0%, #b08a5a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; transform: rotate(2deg); box-shadow: 0 0 0 2px #4a3020; animation: rcb-grin 2s ease-in-out infinite; }
@keyframes rcb-book { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(3px); } }
@keyframes rcb-page { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes rcb-glass { 0%,100% { transform: rotate(6deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } }
@keyframes rcb-bottle { 0%,100% { transform: rotate(-8deg); } 50% { transform: rotate(-12deg); } }
@keyframes rcb-hand { 0%,100% { transform: rotate(10deg); } 50% { transform: rotate(15deg) translateX(3px); } }
@keyframes rcb-grin { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

/* scene: note-against-natacha (tense, dim interior) */
.scn-note-against-natacha {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a3e 40%, #0d0d1a 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a4e 0%, transparent 60%);
}
.scn-note-against-natacha .bg         { position:absolute; inset:0; background:linear-gradient(180deg, #12121a 0%, #0a0a14 100%); animation: ntn-bg 6s ease-in-out infinite alternate; }
.scn-note-against-natacha .desk       { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:4px; box-shadow:0 -2px 8px rgba(0,0,0,.6); }
.scn-note-against-natacha .lamp       { position:absolute; bottom:30%; left:20%; width:12px; height:18px; background:radial-gradient(circle, #f0c060 0%, #b08030 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 24px 6px #c08040; animation: ntn-lamp 2s ease-in-out infinite; }
.scn-note-against-natacha .note       { position:absolute; bottom:12%; left:40%; width:40px; height:50px; background:linear-gradient(180deg, #f0e8d0 0%, #ddd8c0 100%); border-radius:2px; transform:rotate(5deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation: ntn-note 4s ease-in-out infinite; }
.scn-note-against-natacha .hand       { position:absolute; bottom:12%; left:36%; width:16px; height:30px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:50% 100%; animation: ntn-hand 3s ease-in-out infinite; }
.scn-note-against-natacha .shadow     { position:absolute; bottom:10%; left:35%; width:60px; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: ntn-shadow 4s ease-in-out infinite alternate; }
.scn-note-against-natacha .curtain    { position:absolute; top:0; left:0; width:30%; height:100%; background:linear-gradient(90deg, #2a1a2a 0%, transparent 100%); animation: ntn-curtain 8s ease-in-out infinite alternate; }
@keyframes ntn-bg      { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ntn-lamp    { 0% { transform:translateY(0); opacity:.8 } 50% { transform:translateY(-2px); opacity:1 } 100% { transform:translateY(0); opacity:.85 } }
@keyframes ntn-note    { 0% { transform:rotate(5deg) translateX(0) } 50% { transform:rotate(7deg) translateX(2px) } 100% { transform:rotate(5deg) translateX(0) } }
@keyframes ntn-hand    { 0% { transform:rotate(0) } 50% { transform:rotate(4deg) } 100% { transform:rotate(0) } }
@keyframes ntn-shadow  { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.5; transform:scaleX(1.2) } 100% { opacity:.3; transform:scaleX(1) } }
@keyframes ntn-curtain { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

/* scene: morning-after (calm, sunlit) */
.scn-morning-after {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8d0c0 40%, #c0b8a8 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e8 0%, transparent 70%);
}
.scn-morning-after .bg            { position:absolute; inset:0; background:linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%); animation: ma-bg 12s ease-in-out infinite alternate; }
.scn-morning-after .sun           { position:absolute; top:8%; right:15%; width:40px; height:40px; background:radial-gradient(circle, #ffe8a0 0%, #f0c060 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,232,160,.4); animation: ma-sun 15s linear infinite; }
.scn-morning-after .window-frame  { position:absolute; top:10%; left:30%; width:40%; height:50%; border:6px solid #a09888; background:transparent; border-radius:8px; }
.scn-morning-after .curtain-left  { position:absolute; top:8%; left:28%; width:15%; height:54%; background:linear-gradient(180deg, #f0e8d8 0%, #e0d8c8 100%); border-radius:4px; filter:blur(2px); animation: ma-curtain 20s ease-in-out infinite alternate; }
.scn-morning-after .curtain-right { position:absolute; top:8%; right:28%; width:15%; height:54%; background:linear-gradient(180deg, #f0e8d8 0%, #e0d8c8 100%); border-radius:4px; filter:blur(2px); animation: ma-curtain 20s ease-in-out infinite alternate-reverse; }
.scn-morning-after .bed           { position:absolute; bottom:8%; left:30%; right:30%; height:20%; background:linear-gradient(180deg, #f8f0e8 0%, #e8e0d8 100%); border-radius:8px 8px 20px 20px; box-shadow:0 4px 12px rgba(0,0,0,.1); }
.scn-morning-after .pillow        { position:absolute; bottom:20%; left:40%; width:25%; height:8%; background:radial-gradient(ellipse, #f8f0e8 0%, #e8e0d8 100%); border-radius:40% 40% 30% 30%; box-shadow:0 2px 6px rgba(0,0,0,.05); animation: ma-pillow 8s ease-in-out infinite alternate; }
.scn-morning-after .light-rays    { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg, rgba(255,240,200,.15) 0%, rgba(255,240,200,0) 50%); clip-path:polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: ma-rays 10s ease-in-out infinite alternate; }
@keyframes ma-bg        { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ma-sun       { 0% { transform:translateX(-10px) scale(1) } 50% { transform:translateX(0) scale(1.05) } 100% { transform:translateX(10px) scale(1) } }
@keyframes ma-curtain   { 0% { transform:translateX(0); opacity:.7 } 50% { transform:translateX(5px); opacity:.9 } 100% { transform:translateX(0); opacity:.7 } }
@keyframes ma-pillow    { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes ma-rays      { 0% { opacity:.2; transform:rotate(-2deg) } 50% { opacity:.4; transform:rotate(0deg) } 100% { opacity:.2; transform:rotate(2deg) } }

/* scene: pipe-smoking (calm, sunlit) */
.scn-pipe-smoking {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c8b898 100%),
              radial-gradient(ellipse at 70% 70%, #e8d8b8 0%, transparent 60%);
}
.scn-pipe-smoking .bg             { position:absolute; inset:0; background:linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); animation: ps-bg 10s ease-in-out infinite alternate; }
.scn-pipe-smoking .face           { position:absolute; bottom:20%; left:30%; width:24%; height:50%; background:linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; clip-path:inset(0 40% 0 0 round 40% 0 0 40%); transform:scaleX(0.8); animation: ps-face 5s ease-in-out infinite; }
.scn-pipe-smoking .pipe           { position:absolute; bottom:34%; left:28%; width:12%; height:6%; background:linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius:50% 50% 20% 20%; transform:rotate(-15deg); transform-origin:100% 50%; animation: ps-pipe 3s ease-in-out infinite; }
.scn-pipe-smoking .smoke-1        { position:absolute; bottom:40%; left:30%; width:20px; height:20px; background:radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation: ps-smoke 8s linear infinite; }
.scn-pipe-smoking .smoke-2        { position:absolute; bottom:40%; left:36%; width:16px; height:16px; background:radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: ps-smoke 10s linear infinite 2s; }
.scn-pipe-smoking .smoke-3        { position:absolute; bottom:42%; left:33%; width:24px; height:24px; background:radial-gradient(circle, rgba(200,180,160,.2) 0%, transparent 100%); border-radius:50%; filter:blur(5px); animation: ps-smoke 12s linear infinite 4s; }
.scn-pipe-smoking .window-light   { position:absolute; top:0; left:60%; width:40%; height:100%; background:linear-gradient(135deg, rgba(255,240,200,.2) 0%, transparent 60%); animation: ps-light 15s ease-in-out infinite alternate; }
@keyframes ps-bg       { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ps-face     { 0% { transform:scaleX(0.8) translateY(0) } 50% { transform:scaleX(0.85) translateY(-2px) } 100% { transform:scaleX(0.8) translateY(0) } }
@keyframes ps-pipe     { 0% { transform:rotate(-15deg) } 50% { transform:rotate(-13deg) } 100% { transform:rotate(-15deg) } }
@keyframes ps-smoke    { 0% { transform:translateY(0) scale(0.8); opacity:1 } 50% { transform:translateY(-30px) scale(1.2); opacity:.4 } 100% { transform:translateY(-60px) scale(0.6); opacity:0 } }
@keyframes ps-light    { 0% { opacity:.2; transform:translateX(0) } 50% { opacity:.4; transform:translateX(5px) } 100% { opacity:.2; transform:translateX(0) } }

/* scene: motherly-concern (warm, sunlit) */
.scn-motherly-concern {
  background: linear-gradient(180deg, #f8e8d0 0%, #e8d8c0 40%, #d8c8b0 100%),
              radial-gradient(ellipse at 80% 20%, #fff0e0 0%, transparent 60%);
}
.scn-motherly-concern .bg       { position:absolute; inset:0; background:linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 100%); animation: mc-bg 12s ease-in-out infinite alternate; }
.scn-motherly-concern .window   { position:absolute; top:8%; right:10%; width:35%; height:45%; background:linear-gradient(180deg, #c8d8e8 0%, #b0c8d8 100%); border:4px solid #b0a090; border-radius:6px; box-shadow:inset 0 0 20px rgba(200,220,240,.3); }
.scn-motherly-concern .curtain  { position:absolute; top:6%; right:8%; width:12%; height:48%; background:linear-gradient(180deg, #f0d8c0 0%, #e0c8b0 100%); border-radius:4px; filter:blur(2px); animation: mc-curtain 18s ease-in-out infinite alternate; }
.scn-motherly-concern .bed      { position:absolute; bottom:6%; left:20%; right:20%; height:25%; background:linear-gradient(180deg, #f8f0e8 0%, #e8e0d8 100%); border-radius:12px 12px 30px 30px; box-shadow:0 4px 12px rgba(0,0,0,.1); }
.scn-motherly-concern .mother   { position:absolute; bottom:15%; left:15%; width:18%; height:45%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:50% 100%; animation: mc-mother 6s ease-in-out infinite; }
.scn-motherly-concern .tray     { position:absolute; bottom:12%; left:30%; width:15%; height:8%; background:linear-gradient(180deg, #d8c8b0 0%, #c8b8a0 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.scn-motherly-concern .steam    { position:absolute; bottom:20%; left:33%; width:10px; height:20px; background:radial-gradient(ellipse, rgba(255,240,220,.5) 0%, transparent 100%); filter:blur(3px); animation: mc-steam 5s ease-in-out infinite; }
@keyframes mc-bg        { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes mc-curtain   { 0% { transform:translateX(0); opacity:.6 } 50% { transform:translateX(3px); opacity:.8 } 100% { transform:translateX(0); opacity:.6 } }
@keyframes mc-mother    { 0% { transform:rotate(0) } 50% { transform:rotate(3deg) } 100% { transform:rotate(0) } }
@keyframes mc-steam     { 0% { transform:translateY(0) scale(1); opacity:.6 } 50% { transform:translateY(-20px) scale(1.3); opacity:.3 } 100% { transform:translateY(-40px) scale(0.8); opacity:0 } }

/* Scene: gripping-her-wrist */
.scn-gripping-her-wrist {
  background: linear-gradient(180deg, #1e1e3a 0%, #2f2a4a 40%, #6a5a4a 70%, #c9a67a 100%),
              radial-gradient(ellipse at 30% 70%, #8a6a4a 0%, transparent 60%);
}
.scn-gripping-her-wrist .bg { position:absolute; inset:0; background:linear-gradient(180deg, rgba(30,30,58,.5) 0%, transparent 100%); animation: gw-shadow-pulse 4s ease-in-out infinite; }
.scn-gripping-her-wrist .arm-gripped { position:absolute; bottom:20%; left:30%; width:40px; height:180px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 30% 30% / 60% 60% 50% 50%; transform-origin: bottom center; animation: gw-arm-twitch 3s ease-in-out infinite; }
.scn-gripping-her-wrist .hand-grip { position:absolute; bottom:38%; left:40%; width:60px; height:50px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 40% 40% 50% 50%; transform: rotate(-15deg); transform-origin: center left; animation: gw-grip-squeeze 2.5s ease-in-out infinite; }
.scn-gripping-her-wrist .thumb { position:absolute; bottom:44%; left:36%; width:14px; height:30px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30%; transform: rotate(-40deg); animation: gw-thumb-press 2.5s ease-in-out infinite; }
.scn-gripping-her-wrist .finger-index { position:absolute; bottom:44%; left:46%; width:12px; height:28px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; transform: rotate(-10deg); animation: gw-finger-index 2.5s ease-in-out infinite 0.1s; }
.scn-gripping-her-wrist .finger-middle { position:absolute; bottom:44%; left:50%; width:12px; height:26px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; transform: rotate(5deg); animation: gw-finger-middle 2.5s ease-in-out infinite 0.2s; }
.scn-gripping-her-wrist .shadow-cast { position:absolute; bottom:15%; left:20%; width:120px; height:40px; background:rgba(0,0,0,.4); border-radius:50%; filter:blur(8px); animation: gw-shadow-move 4s ease-in-out infinite alternate; }
@keyframes gw-shadow-pulse { 0%{opacity:.3}50%{opacity:.7}100%{opacity:.4} }
@keyframes gw-arm-twitch { 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 gw-grip-squeeze { 0%{transform:rotate(-15deg) scaleX(1)}50%{transform:rotate(-18deg) scaleX(1.08) scaleY(0.95)}100%{transform:rotate(-15deg) scaleX(1)} }
@keyframes gw-thumb-press { 0%{transform:rotate(-40deg) translateY(0)}50%{transform:rotate(-45deg) translateY(-2px)}100%{transform:rotate(-40deg) translateY(0)} }
@keyframes gw-finger-index { 0%{transform:rotate(-10deg)}50%{transform:rotate(-15deg)}100%{transform:rotate(-10deg)} }
@keyframes gw-finger-middle { 0%{transform:rotate(5deg)}50%{transform:rotate(10deg)}100%{transform:rotate(5deg)} }
@keyframes gw-shadow-move { 0%{transform:translateX(0) scale(1)}50%{transform:translateX(10px) scale(1.1)}100%{transform:translateX(0) scale(1)} }

/* Scene: everything-locked-inside */
.scn-everything-locked-inside {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 35%, #3a3a5a 65%, #7a6a5a 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a4a 0%, transparent 70%);
}
.scn-everything-locked-inside .bg { position:absolute; inset:0; background:linear-gradient(180deg, rgba(26,26,62,.6) 0%, transparent 100%); animation: el-bg-flicker 6s ease-in-out infinite; }
.scn-everything-locked-inside .door { position:absolute; bottom:10%; left:30%; width:120px; height:200px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; border:2px solid #2a1a0a; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: el-door-shake 5s ease-in-out infinite; }
.scn-everything-locked-inside .door-frame { position:absolute; bottom:10%; left:28%; width:128px; height:210px; background:transparent; border:4px solid #4a3a2a; border-radius:6% 6% 0 0; animation: el-frame-pulse 6s ease-in-out infinite; }
.scn-everything-locked-inside .handle { position:absolute; bottom:40%; left:40%; width:14px; height:20px; background:linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:30%; transform:rotate(0deg); animation: el-handle-jiggle 3s ease-in-out infinite; }
.scn-everything-locked-inside .figure { position:absolute; bottom:15%; left:45%; width:28px; height:100px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: el-figure-turn 8s ease-in-out infinite; }
.scn-everything-locked-inside .shadow-under-door { position:absolute; bottom:8%; left:30%; width:130px; height:20px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(10px); animation: el-shadow-grow 7s ease-in-out infinite; }
.scn-everything-locked-inside .dawn-light { position:absolute; top:10%; left:60%; width:50px; height:100px; background:linear-gradient(180deg, rgba(200,170,120,.4) 0%, transparent 100%); border-radius:30% 30% 0 0; filter:blur(12px); animation: el-light-fade 10s ease-in-out infinite; }
@keyframes el-bg-flicker { 0%{opacity:.5}50%{opacity:.9}100%{opacity:.6} }
@keyframes el-door-shake { 0%{transform:translateX(0) rotate(0)}30%{transform:translateX(2px) rotate(0.5deg)}60%{transform:translateX(-1px) rotate(-0.3deg)}100%{transform:translateX(0) rotate(0)} }
@keyframes el-frame-pulse { 0%{border-color:#4a3a2a; box-shadow:none}50%{border-color:#5a4a3a; box-shadow:inset 0 0 20px rgba(0,0,0,.3)}100%{border-color:#4a3a2a; box-shadow:none} }
@keyframes el-handle-jiggle { 0%{transform:rotate(0) translateY(0)}25%{transform:rotate(-5deg) translateY(-1px)}75%{transform:rotate(5deg) translateY(1px)}100%{transform:rotate(0) translateY(0)} }
@keyframes el-figure-turn { 0%{transform:translateX(0) rotate(0)}40%{transform:translateX(-8px) rotate(3deg)}80%{transform:translateX(4px) rotate(-2deg)}100%{transform:translateX(0) rotate(0)} }
@keyframes el-shadow-grow { 0%{transform:scaleX(1); opacity:.6}50%{transform:scaleX(1.3); opacity:.3}100%{transform:scaleX(1); opacity:.6} }
@keyframes el-light-fade { 0%{opacity:.3; transform:scaleY(1)}50%{opacity:.7; transform:scaleY(1.1)}100%{opacity:.4; transform:scaleY(1)} }

/* Scene: matrena-dejected */
.scn-matrena-dejected {
  background: linear-gradient(180deg, #1a1a3e 0%, #2e2a4a 30%, #5a4a4a 70%, #b8a080 100%),
              radial-gradient(ellipse at 40% 90%, #7a6050 0%, transparent 60%);
}
.scn-matrena-dejected .bg { position:absolute; inset:0; background:linear-gradient(180deg, rgba(26,26,62,.5) 0%, transparent 100%); animation: md-bg-dim 12s ease-in-out infinite; }
.scn-matrena-dejected .chair { position:absolute; bottom:15%; left:40%; width:60px; height:80px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.4); animation: md-chair-creak 4s ease-in-out infinite; }
.scn-matrena-dejected .figure-body { position:absolute; bottom:22%; left:43%; width:40px; height:90px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: md-body-sag 6s ease-in-out infinite; }
.scn-matrena-dejected .figure-head { position:absolute; bottom:52%; left:46%; width:22px; height:24px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-head-drop 5s ease-in-out infinite; }
.scn-matrena-dejected .shoulder-left { position:absolute; bottom:44%; left:42%; width:20px; height:30px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 20% 20%; transform:rotate(15deg); transform-origin: top right; animation: md-shoulder-left 5s ease-in-out infinite; }
.scn-matrena-dejected .shoulder-right { position:absolute; bottom:44%; left:52%; width:20px; height:30px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 20% 20%; transform:rotate(-15deg); transform-origin: top left; animation: md-shoulder-right 5s ease-in-out infinite 0.3s; }
.scn-matrena-dejected .shadow-floor { position:absolute; bottom:12%; left:30%; width:120px; height:30px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(10px); animation: md-shadow-sway 8s ease-in-out infinite; }
@keyframes md-bg-dim { 0%{opacity:.4}50%{opacity:.8}100%{opacity:.5} }
@keyframes md-chair-creak { 0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-1px) rotate(0.5deg)}70%{transform:translateY(0) rotate(-0.3deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes md-body-sag { 0%{transform:translateY(0) scaleY(1)}50%{transform:translateY(3px) scaleY(0.97)}100%{transform:translateY(0) scaleY(1)} }
@keyframes md-head-drop { 0%{transform:translateY(0) rotate(0)}30%{transform:translateY(2px) rotate(5deg)}70%{transform:translateY(0) rotate(-3deg)}100%{transform:translateY(0) rotate(0)} }
@keyframes md-shoulder-left { 0%{transform:rotate(15deg)}50%{transform:rotate(20deg)}100%{transform:rotate(15deg)} }
@keyframes md-shoulder-right { 0%{transform:rotate(-15deg)}50%{transform:rotate(-20deg)}100%{transform:rotate(-15deg)} }
@keyframes md-shadow-sway { 0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(5px) scaleX(1.1)}100%{transform:translateX(0) scaleX(1)} }

/* Scene: demanding-keys */
.scn-demanding-keys {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #5a4a4a 70%, #b8a080 100%),
              radial-gradient(ellipse at 50% 90%, #7a6050 0%, transparent 70%);
}
.scn-demanding-keys .bg { position:absolute; inset:0; background:linear-gradient(180deg, rgba(26,26,62,.5) 0%, transparent 100%); animation: dk-bg-pulse 5s ease-in-out infinite; }
.scn-demanding-keys .figure-demand { position:absolute; bottom:15%; left:20%; width:30px; height:120px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dk-demand-step 4s ease-in-out infinite; }
.scn-demanding-keys .figure-hesitant { position:absolute; bottom:15%; left:55%; width:28px; height:110px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dk-hesitant-step 4s ease-in-out infinite 0.2s; }
.scn-demanding-keys .hand-out { position:absolute; bottom:45%; left:28%; width:18px; height:24px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30%; transform:rotate(-20deg); transform-origin: bottom left; animation: dk-hand-reach 3s ease-in-out infinite; }
.scn-demanding-keys .keys { position:absolute; bottom:46%; left:48%; width:14px; height:20px; background:linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dk-keys-jingle 3s ease-in-out infinite 0.5s; }
.scn-demanding-keys .door { position:absolute; bottom:10%; left:50%; width:100px; height:180px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; border:2px solid #2a1a0a; box-shadow: -5px 0 15px rgba(0,0,0,.4); animation: dk-door-creak 7s ease-in-out infinite; }
.scn-demanding-keys .corridor-shadow { position:absolute; bottom:8%; left:10%; width:200px; height:20px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(12px); animation: dk-shadow-shift 8s ease-in-out infinite; }
@keyframes dk-bg-pulse { 0%{opacity:.4}50%{opacity:.8}100%{opacity:.5} }
@keyframes dk-demand-step { 0%{transform:translateX(0) rotate(0)}30%{transform:translateX(3px) rotate(2deg)}70%{transform:translateX(-1px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)} }
@keyframes dk-hesitant-step { 0%{transform:translateX(0) rotate(0)}30%{transform:translateX(-2px) rotate(-2deg)}70%{transform:translateX(1px) rotate(1deg)}100%{transform:translateX(0) rotate(0)} }
@keyframes dk-hand-reach { 0%{transform:rotate(-20deg) translateY(0)}50%{transform:rotate(-25deg) translateY(-3px) scaleX(1.1)}100%{transform:rotate(-20deg) translateY(0)} }
@keyframes dk-keys-jingle { 0%{transform:rotate(0) translateY(0)}30%{transform:rotate(20deg) translateY(-1px)}70%{transform:rotate(-15deg) translateY(1px)}100%{transform:rotate(0) translateY(0)} }
@keyframes dk-door-creak { 0%{transform:translateX(0) rotate(0)}30%{transform:translateX(1px) rotate(0.3deg)}70%{transform:translateX(-0.5px) rotate(-0.2deg)}100%{transform:translateX(0) rotate(0)} }
@keyframes dk-shadow-shift { 0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(8px) scaleX(1.15)}100%{transform:translateX(0) scaleX(1)} }

/* matrena-warns-rouletabille */
.scn-matrena-warns-rouletabille { background: linear-gradient(180deg, #e8d5b7 0%, #c4a87c 100%), radial-gradient(ellipse at 70% 40%, #f0d090 0%, transparent 70%); }
.scn-matrena-warns-rouletabille .wall  { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #d4b88a 0%, #b5966a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.15); }
.scn-matrena-warns-rouletabille .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #6b4a28 0%, #8b6338 40%, #a07a4a 100%); border-top: 2px solid #5a3a1a; }
.scn-matrena-warns-rouletabille .table { position:absolute; bottom:20%; left:28%; width:45%; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: mw-table 6s ease-in-out infinite; }
.scn-matrena-warns-rouletabille .lamp  { position:absolute; top:18%; left:68%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #ffd680 0%, #b08030 70%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px 15px rgba(200,150,60,.6), 0 0 80px 30px rgba(200,150,60,.3); animation: mw-lamp 2s ease-in-out infinite alternate; }
.scn-matrena-warns-rouletabille .figure-a { position:absolute; bottom:25%; left:32%; width:24px; height:50px; background: linear-gradient(135deg, #2a2015 0%, #120c06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-fig-a 4s ease-in-out infinite; }
.scn-matrena-warns-rouletabille .figure-b { position:absolute; bottom:25%; left:55%; width:22px; height:48px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-fig-b 4s ease-in-out infinite 0.5s; }
.scn-matrena-warns-rouletabille .shadow { position:absolute; bottom:0; left:30%; width:50%; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: mw-shadow 8s ease-in-out infinite alternate; }
@keyframes mw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mw-lamp { 0% { opacity: .7; box-shadow: 0 0 30px 10px rgba(200,150,60,.5); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(200,150,60,.8); } 100% { opacity: .8; box-shadow: 0 0 35px 12px rgba(200,150,60,.6); } }
@keyframes mw-fig-a { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mw-fig-b { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes mw-shadow { 0% { opacity: .2; transform: scaleX(1); } 100% { opacity: .4; transform: scaleX(1.2); } }

/* matrena-insists-on-assassination */
.scn-matrena-insists-on-assassination { background: linear-gradient(180deg, #d9c8a0 0%, #b09870 100%), radial-gradient(ellipse at 50% 60%, #c8b080 0%, transparent 70%); }
.scn-matrena-insists-on-assassination .wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #c8b088 0%, #a88860 100%); border-radius: 0 0 30% 30%; }
.scn-matrena-insists-on-assassination .window  { position:absolute; top:8%; left:20%; width:25%; height:40%; background: linear-gradient(180deg, #a0c0d0 0%, #7090a0 100%); border: 3px solid #5a3a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: mia-window 10s ease-in-out infinite alternate; }
.scn-matrena-insists-on-assassination .bar     { position:absolute; top:8%; left:20%; width:25%; height:40%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, #3a2a1a 8px, #3a2a1a 10px); border: none; pointer-events: none; }
.scn-matrena-insists-on-assassination .table   { position:absolute; bottom:22%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 8px 15px rgba(0,0,0,.5); }
.scn-matrena-insists-on-assassination .document { position:absolute; bottom:27%; left:38%; width:15%; height:15%; background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-8deg); animation: mia-doc 3s ease-in-out infinite alternate; }
.scn-matrena-insists-on-assassination .hand    { position:absolute; bottom:30%; left:48%; width:18px; height:14px; background: linear-gradient(135deg, #c8a080 0%, #a07050 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: mia-hand 1.5s ease-in-out infinite; }
.scn-matrena-insists-on-assassination .profile { position:absolute; bottom:18%; left:52%; width:20px; height:45px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 40% 40% 50% / 60% 50% 40% 60%; transform-origin: bottom center; animation: mia-profile 4s ease-in-out infinite; }
@keyframes mia-window { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes mia-doc { 0% { transform: rotate(-8deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-8deg); } }
@keyframes mia-hand { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-10deg); } 60% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mia-profile { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* matrena-weeps */
.scn-matrena-weeps { background: linear-gradient(180deg, #d4c0a0 0%, #b09870 100%), radial-gradient(ellipse at 40% 50%, #f0d090 0%, transparent 60%); }
.scn-matrena-weeps .bg        { position:absolute; inset:0; background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%); }
.scn-matrena-weeps .table     { position:absolute; bottom:15%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 6px; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-matrena-weeps .plate     { position:absolute; bottom:22%; left:30%; width:30%; height:10%; background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #d0b890 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-matrena-weeps .slice     { position:absolute; bottom:23%; left:42%; width:8%; height:8%; background: linear-gradient(135deg, #c8a060 0%, #a07840 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin: bottom center; animation: mw-slice 4s ease-in-out infinite; }
.scn-matrena-weeps .hand-knife { position:absolute; bottom:25%; left:50%; width:16px; height:20px; background: linear-gradient(135deg, #c8a080 0%, #a07050 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: mw-handk 2s ease-in-out infinite; }
.scn-matrena-weeps .tear      { position:absolute; top:55%; left:48%; width:6px; height:12px; background: radial-gradient(circle, #b0d0e0 0%, #6090b0 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px rgba(80,120,160,.5); animation: mw-tear 3s ease-in-out infinite; }
.scn-matrena-weeps .rouletabille { position:absolute; bottom:20%; left:15%; width:22px; height:50px; background: linear-gradient(135deg, #2a2015 0%, #120c06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-roulet 6s ease-in-out infinite; opacity: .6; }
@keyframes mw-slice { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes mw-handk { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-5deg); } 60% { transform: translateY(1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mw-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0; } 20% { opacity: 1; } 60% { transform: translateY(40px) scaleY(0.8); opacity: .8; } 100% { transform: translateY(80px) scaleY(0.5); opacity: 0; } }
@keyframes mw-roulet { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* matrena-doubts-koupriane */
.scn-matrena-doubts-koupriane { background: linear-gradient(180deg, #d4c0a0 0%, #b09870 100%), radial-gradient(ellipse at 60% 40%, #f0d090 0%, transparent 60%); }
.scn-matrena-doubts-koupriane .bg        { position:absolute; inset:0; background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%); }
.scn-matrena-doubts-koupriane .wall      { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4c0a0 0%, #b09870 100%); border-radius: 0 0 40% 40%; }
.scn-matrena-doubts-koupriane .window    { position:absolute; top:5%; right:15%; width:20%; height:35%; background: linear-gradient(180deg, #a0c0d0 0%, #7090a0 100%); border: 3px solid #5a3a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: mdk-window 12s ease-in-out infinite alternate; }
.scn-matrena-doubts-koupriane .silhouette { position:absolute; bottom:15%; left:35%; width:30px; height:55px; background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 40% 40% 50% / 60% 50% 40% 60%; transform-origin: bottom center; animation: mdk-sil 4s ease-in-out infinite; }
.scn-matrena-doubts-koupriane .eye       { position:absolute; top:38%; left:40%; width:6px; height:4px; background: radial-gradient(circle, #f0e0c0 0%, #c0a080 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(200,160,100,.6); animation: mdk-eye 2s ease-in-out infinite; }
.scn-matrena-doubts-koupriane .tear      { position:absolute; top:40%; left:41%; width:4px; height:8px; background: radial-gradient(circle, #b0d0e0 0%, #6090b0 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px rgba(80,120,160,.5); animation: mdk-tear 4s ease-in-out infinite; }
.scn-matrena-doubts-koupriane .shadow-k  { position:absolute; bottom:10%; right:20%; width:18px; height:45px; background: linear-gradient(135deg, #2a2015 0%, #120c06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); opacity: .5; animation: mdk-shadowk 8s ease-in-out infinite alternate; }
@keyframes mdk-window { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mdk-sil { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mdk-eye { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.3); } 100% { transform: scaleY(1); } }
@keyframes mdk-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0; } 30% { opacity: .8; } 70% { transform: translateY(20px) scaleY(0.9); opacity: .6; } 100% { transform: translateY(40px) scaleY(0.5); opacity: 0; } }
@keyframes mdk-shadowk { 0% { opacity: .3; transform: scaleX(1); } 100% { opacity: .6; transform: scaleX(1.3); } }

/* rouletabille-feared-backlash */
.scn-rouletabille-feared-backlash { background: linear-gradient(180deg, #f5e6c8 0%, #d9c4a0 60%, #b39470 100%), radial-gradient(ellipse at 30% 70%, #e8d4b0 0%, transparent 60%); }
.scn-rouletabille-feared-backlash .wall { position:absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #e8d8b8 0%, #c8b090 100%); }
.scn-rouletabille-feared-backlash .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #8b7355 0%, #a08868 40%, #c0a888 100%); animation: rfb-floor 12s ease-in-out infinite alternate; }
.scn-rouletabille-feared-backlash .door { position:absolute; bottom:25%; left:15%; width:20%; height:60%; background: linear-gradient(90deg, #6b5a45 0%, #5a4a35 50%, #4a3a25 100%); border-radius: 4% 4% 0 0; box-shadow: inset -6px 0 12px rgba(0,0,0,0.5); animation: rfb-door 6s ease-in-out infinite alternate; }
.scn-rouletabille-feared-backlash .figure-roulet { position:absolute; bottom:28%; right:20%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rfb-fig 4s ease-in-out infinite; }
.scn-rouletabille-feared-backlash .shadow-hand { position:absolute; bottom:30%; right:28%; width:8%; height:10%; background: #1a1a1a; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: rfb-hand 3s ease-in-out infinite; }
.scn-rouletabille-feared-backlash .document { position:absolute; bottom:30%; left:45%; width:14%; height:12%; background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b0 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: rfb-doc 5s ease-in-out infinite alternate; }
.scn-rouletabille-feared-backlash .lamp-glow { position:absolute; top:20%; left:50%; width:30%; height:20%; background: radial-gradient(circle, rgba(255,230,180,0.8) 0%, rgba(255,200,120,0.4) 40%, transparent 70%); animation: rfb-lamp 4s ease-in-out infinite alternate; }
.scn-rouletabille-feared-backlash .dust { position:absolute; top:30%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%); filter: blur(4px); animation: rfb-dust 20s linear infinite; }
@keyframes rfb-floor { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes rfb-door { 0% { transform: scaleX(1); filter: brightness(1); } 50% { transform: scaleX(1.03); filter: brightness(1.1); } 100% { transform: scaleX(0.97); filter: brightness(0.9); } }
@keyframes rfb-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rfb-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-22deg) translateY(1px); } }
@keyframes rfb-doc { 0% { opacity:0.8; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(0deg); } 100% { opacity:0.7; transform: rotate(3deg); } }
@keyframes rfb-lamp { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes rfb-dust { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(10px,-5px) scale(1.1); } 50% { transform: translate(-5px,8px) scale(0.9); } 75% { transform: translate(15px,3px) scale(1.05); } 100% { transform: translate(0,0) scale(1); } }

/* execution-of-boichlikoff */
.scn-execution-of-boichlikoff { background: linear-gradient(180deg, #d9c4a0 0%, #b39470 50%, #8b7355 100%), radial-gradient(ellipse at 70% 30%, #f5e6c8 0%, transparent 70%); }
.scn-execution-of-boichlikoff .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #c8b090 0%, #a08868 100%); }
.scn-execution-of-boichlikoff .family-group { position:absolute; bottom:20%; left:15%; width:25%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 60% 40% 30% 30% / 50% 60% 40% 40%; animation: eob-family 6s ease-in-out infinite; }
.scn-execution-of-boichlikoff .boichlikoff { position:absolute; bottom:22%; left:38%; width:15%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eob-boi 4s ease-in-out infinite alternate; }
.scn-execution-of-boichlikoff .soldier-left { position:absolute; bottom:25%; left:60%; width:12%; height:50%; background: linear-gradient(0deg, #0d0d0d 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; animation: eob-sol 4s ease-in-out infinite; }
.scn-execution-of-boichlikoff .soldier-right { position:absolute; bottom:25%; right:10%; width:12%; height:50%; background: linear-gradient(0deg, #0d0d0d 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%; animation: eob-sol 4s ease-in-out infinite; animation-delay: 2s; }
.scn-execution-of-boichlikoff .window-bar { position:absolute; bottom:50%; left:5%; width:90%; height:2%; background: #3a2a1a; box-shadow: 0 8px 12px rgba(0,0,0,0.5); animation: eob-bar 8s ease-in-out infinite alternate; }
.scn-execution-of-boichlikoff .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
.scn-execution-of-boichlikoff .lamp-light { position:absolute; top:10%; right:20%; width:25%; height:30%; background: radial-gradient(circle, rgba(255,230,180,0.6) 0%, rgba(255,200,120,0.2) 40%, transparent 70%); animation: eob-lamp 4s ease-in-out infinite alternate; }
@keyframes eob-family { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes eob-boi { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(1px); } }
@keyframes eob-sol { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes eob-bar { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(0.97); } 100% { opacity:0.7; transform: scaleX(1.03); } }
@keyframes eob-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.06); } 100% { opacity:0.7; transform: scale(0.95); } }

/* natacha-defends */
.scn-natacha-defends { background: linear-gradient(180deg, #f5e6c8 0%, #d9c4a0 50%, #b39470 100%), radial-gradient(ellipse at 40% 50%, #e8d4b0 0%, transparent 60%); }
.scn-natacha-defends .backdrop { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #c8b090 0%, #a08868 100%); }
.scn-natacha-defends .table { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6b5a45 0%, #4a3a25 100%); border-radius: 4px 4px 10px 10px; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); animation: nd-table 7s ease-in-out infinite alternate; }
.scn-natacha-defends .general { position:absolute; bottom:25%; left:25%; width:15%; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-gen 4s ease-in-out infinite; }
.scn-natacha-defends .natacha { position:absolute; bottom:20%; right:20%; width:12%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nd-nat 3s ease-in-out infinite alternate; }
.scn-natacha-defends .candelabra { position:absolute; bottom:32%; left:48%; width:6%; height:18%; background: linear-gradient(90deg, #8b7355 0%, #6b5a45 50%, #8b7355 100%); border-radius: 2px; box-shadow: 0 0 16px 8px rgba(255,200,120,0.6); animation: nd-cand 4s ease-in-out infinite alternate; }
.scn-natacha-defends .hand-extend { position:absolute; bottom:28%; right:28%; width:8%; height:6%; background: #3a2a1a; border-radius: 50% 50% 20% 20%; transform: rotate(-30deg); animation: nd-hand 3s ease-in-out infinite; }
.scn-natacha-defends .wall-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation: nd-shadow 8s ease-in-out infinite alternate; }
@keyframes nd-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(1px) scale(0.99); } }
@keyframes nd-gen { 0% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(2deg) translateX(2px); } 60% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes nd-nat { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes nd-cand { 0% { opacity:0.7; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.2); } 100% { opacity:0.8; filter: brightness(1); } }
@keyframes nd-hand { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(5px); } 100% { transform: rotate(-35deg) translateX(-2px); } }
@keyframes nd-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }

/* imprudence-of-boichlikoff */
.scn-imprudence-of-boichlikoff { background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 50%, #a08868 100%), radial-gradient(ellipse at 60% 40%, #f5e6c8 0%, transparent 70%); }
.scn-imprudence-of-boichlikoff .study-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #d9c4a0 0%, #b39470 100%); }
.scn-imprudence-of-boichlikoff .fireplace { position:absolute; bottom:20%; left:5%; width:25%; height:50%; background: linear-gradient(180deg, #5a4a35 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.6); animation: iob-fire 8s ease-in-out infinite alternate; }
.scn-imprudence-of-boichlikoff .merchant { position:absolute; bottom:28%; left:35%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iob-merch 5s ease-in-out infinite; }
.scn-imprudence-of-boichlikoff .rouletabille { position:absolute; bottom:28%; right:20%; width:12%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #0d0d0d 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: iob-roul 4s ease-in-out infinite alternate; }
.scn-imprudence-of-boichlikoff .desk { position:absolute; bottom:10%; left:40%; width:30%; height:10%; background: linear-gradient(180deg, #6b5a45 0%, #4a3a25 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: iob-desk 6s ease-in-out infinite; }
.scn-imprudence-of-boichlikoff .paper { position:absolute; bottom:18%; left:48%; width:8%; height:6%; background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b0 100%); border-radius: 1px; transform: rotate(5deg); animation: iob-paper 4s ease-in-out infinite; }
.scn-imprudence-of-boichlikoff .inkwell { position:absolute; bottom:20%; left:44%; width:4%; height:6%; background: #2a1a0a; border-radius: 50% 50% 30% 30%; animation: iob-ink 8s ease-in-out infinite alternate; }
.scn-imprudence-of-boichlikoff .candle-flicker { position:absolute; bottom:30%; left:50%; width:3%; height:10%; background: radial-gradient(ellipse, rgba(255,200,120,0.8) 0%, rgba(255,160,60,0.3) 40%, transparent 70%); animation: iob-candle 3s ease-in-out infinite alternate; }
@keyframes iob-fire { 0% { opacity:0.8; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.7; filter: brightness(0.8); } }
@keyframes iob-merch { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes iob-roul { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes iob-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes iob-paper { 0% { transform: rotate(5deg) translateX(0); opacity:0.8; } 50% { transform: rotate(8deg) translateX(2px); opacity:1; } 100% { transform: rotate(2deg) translateX(-1px); opacity:0.7; } }
@keyframes iob-ink { 0% { transform: scale(1); } 50% { transform: scale(0.9); } 100% { transform: scale(1.1); } }
@keyframes iob-candle { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.7; transform: scaleY(1); } }

.scn-analysis-revelation { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 60%); }
.scn-analysis-revelation .bg     { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a14 0%, #16162a 100%); }
.scn-analysis-revelation .table  { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.6); }
.scn-analysis-revelation .crucible { position:absolute; bottom:28%; width:8%; height:12%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 30% 30% 20% 20%; }
.scn-analysis-revelation .crucible.left  { left:25%; }
.scn-analysis-revelation .crucible.right { right:25%; }
.scn-analysis-revelation .flame-1,
.scn-analysis-revelation .flame-2 { position:absolute; bottom:39%; width:4%; height:10%; background: radial-gradient(ellipse 100% 100%, #40c8ff 0%, #0080ff 40%, transparent 70%); border-radius: 50% 50% 20% 20%; filter:blur(2px); }
.scn-analysis-revelation .flame-1 { left:27%; animation: ar-flame1 2s ease-in-out infinite; }
.scn-analysis-revelation .flame-2 { right:27%; animation: ar-flame2 2.5s ease-in-out infinite reverse; }
.scn-analysis-revelation .figure  { position:absolute; bottom:20%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ar-fig 4s ease-in-out infinite; }
.scn-analysis-revelation .shadow  { position:absolute; bottom:0; left:30%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); animation: ar-shadow 6s ease-in-out infinite; }
@keyframes ar-flame1   { 0% { transform: scale(1,1) translateY(0); opacity:.8 } 50% { transform: scale(1.2,1.5) translateY(-4px); opacity:1 } 100% { transform: scale(1,1) translateY(0); opacity:.8 } }
@keyframes ar-flame2   { 0% { transform: scale(1,1) translateY(0); opacity:.9 } 50% { transform: scale(0.9,1.3) translateY(-3px); opacity:.7 } 100% { transform: scale(1,1) translateY(0); opacity:.9 } }
@keyframes ar-fig      { 0% { transform: rotate(0deg) } 30% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 70% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes ar-shadow   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-gounsovski-house { background: linear-gradient(180deg, #1a1208 0%, #2a1e0e 50%, #1a1208 100%), radial-gradient(ellipse at 50% 50%, #3a2a12 0%, transparent 60%); }
.scn-gounsovski-house .bg      { position:absolute; inset:0; background: linear-gradient(135deg, #1a1208 0%, #2a1e0e 100%); }
.scn-gounsovski-house .lamp    { position:absolute; top:12%; left:50%; width:8%; height:15%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffdfa0 0%, #c89850 50%, #8a6020 100%); border-radius: 0 0 50% 50%; box-shadow: 0 10px 30px #ffdfa0, 0 20px 60px rgba(255,223,160,.3); animation: gh-lamp 5s ease-in-out infinite; }
.scn-gounsovski-house .table   { position:absolute; bottom:30%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 5%; }
.scn-gounsovski-house .board   { position:absolute; bottom:34%; left:35%; right:35%; height:6%; background: repeating-linear-gradient(90deg, #1a1a1a 0%, #1a1a1a 10%, #ccbbaa 10%, #ccbbaa 20%); border: 2px solid #2a1a10; animation: gh-board 10s ease-in-out infinite; }
.scn-gounsovski-house .figure-a,
.scn-gounsovski-house .figure-b { position:absolute; bottom:28%; width:12%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; }
.scn-gounsovski-house .figure-a { left:28%; animation: gh-fig-a 8s ease-in-out infinite; }
.scn-gounsovski-house .figure-b { right:28%; animation: gh-fig-b 9s ease-in-out infinite; }
.scn-gounsovski-house .chair-a,
.scn-gounsovski-house .chair-b { position:absolute; bottom:28%; width:14%; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; }
.scn-gounsovski-house .chair-a { left:25%; animation: gh-chair-a 12s ease-in-out infinite; }
.scn-gounsovski-house .chair-b { right:25%; animation: gh-chair-b 13s ease-in-out infinite; }
@keyframes gh-lamp     { 0% { transform: translateX(-50%) scale(1); opacity:.9 } 50% { transform: translateX(-50%) scale(1.05,1.08); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.9 } }
@keyframes gh-board    { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes gh-fig-a    { 0% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes gh-fig-b    { 0% { transform: rotate(0deg) } 25% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes gh-chair-a  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gh-chair-b  { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-koupriane-encounter-again { background: linear-gradient(180deg, #050510 0%, #10102a 60%, #0a0a1a 100%), radial-gradient(ellipse at 70% 30%, #202050 0%, transparent 50%); }
.scn-koupriane-encounter-again .bg         { position:absolute; inset:0; background: linear-gradient(180deg, #050510 0%, #15152a 100%); }
.scn-koupriane-encounter-again .street    { position:absolute; bottom:15%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0; }
.scn-koupriane-encounter-again .lamp-post { position:absolute; bottom:12%; left:12%; width:2%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-koupriane-encounter-again .lamp-glow { position:absolute; bottom:45%; left:10%; width:6%; height:10%; background: radial-gradient(ellipse, #ffeecc 0%, #ffcc66 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffcc66; animation: ke-lamp 3s ease-in-out infinite; }
.scn-koupriane-encounter-again .carriage { position:absolute; bottom:14%; left:40%; width:18%; height:16%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 5px 0 10px rgba(0,0,0,.5); animation: ke-carriage 8s ease-in-out infinite; }
.scn-koupriane-encounter-again .horse    { position:absolute; bottom:14%; left:30%; width:12%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ke-horse 4s ease-in-out infinite; }
.scn-koupriane-encounter-again .figure-k,
.scn-koupriane-encounter-again .figure-r { position:absolute; bottom:14%; width:8%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-koupriane-encounter-again .figure-k { left:18%; animation: ke-figk 6s ease-in-out infinite; }
.scn-koupriane-encounter-again .figure-r { left:50%; animation: ke-figr 7s ease-in-out infinite; }
@keyframes ke-lamp     { 0% { opacity:.8; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.9) } }
@keyframes ke-carriage { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ke-horse    { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ke-figk     { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ke-figr     { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(0deg) } }

.scn-dash-to-datcha { background: linear-gradient(180deg, #050510 0%, #0a0a20 50%, #0a0a2a 100%), radial-gradient(ellipse at 50% 10%, #15153a 0%, transparent 60%); }
.scn-dash-to-datcha .bg        { position:absolute; inset:0; background: linear-gradient(180deg, #050510 0%, #0a0a20 100%); }
.scn-dash-to-datcha .river     { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 50%, #0a0a2a 100%); animation: dd-river 15s linear infinite; }
.scn-dash-to-datcha .bank-left,
.scn-dash-to-datcha .bank-right { position:absolute; bottom:30%; width:25%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0; }
.scn-dash-to-datcha .bank-left  { left:0; }
.scn-dash-to-datcha .bank-right { right:0; }
.scn-dash-to-datcha .figure-1,
.scn-dash-to-datcha .figure-2   { position:absolute; bottom:30%; width:6%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-dash-to-datcha .figure-1   { left:18%; animation: dd-run1 3s ease-in-out infinite; }
.scn-dash-to-datcha .figure-2   { left:28%; animation: dd-run2 3.2s ease-in-out infinite reverse; }
.scn-dash-to-datcha .datcha    { position:absolute; bottom:25%; right:10%; width:15%; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px #1a0a00; }
.scn-dash-to-datcha .stars     { position:absolute; top:8%; left:0; right:0; height:40%; background: no-repeat center/5px 5px radial-gradient(white 1px, transparent 1px); background-size: 30px 30px; animation: dd-stars 8s ease-in-out infinite; }
@keyframes dd-river   { 0% { background-position: 0 0 } 100% { background-position: -200px 0 } }
@keyframes dd-run1    { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(3deg) translateY(-2px) } 50% { transform: translateX(16px) rotate(-2deg) translateY(0) } 75% { transform: translateX(24px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(32px) rotate(0deg) translateY(0) } }
@keyframes dd-run2    { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(6px) rotate(-2deg) translateY(-1px) } 50% { transform: translateX(12px) rotate(4deg) translateY(0) } 75% { transform: translateX(18px) rotate(-3deg) translateY(-2px) } 100% { transform: translateX(24px) rotate(0deg) translateY(0) } }
@keyframes dd-stars   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }

/* Scenes inspired by tense, dim-interior lighting. All gradients, no pure black. */

/* ===== Scene: rouletabille-seizes-arm ===== */
.scn-rouletabille-seizes-arm {
  background: linear-gradient(180deg, #1c1a1d 0%, #2a2528 40%, #1e1c1f 100%),
              radial-gradient(ellipse at 50% 20%, #3a2e28, transparent 70%);
}
.scn-rouletabille-seizes-arm .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2324 0%, #171314 60%);
  animation: rs-bg 12s ease-in-out infinite alternate;
}
.scn-rouletabille-seizes-arm .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2b211c 0%, #1d1512 100%);
  box-shadow: inset 0 8px 20px #0a0807;
  animation: rs-floor 8s ease-in-out infinite;
}
.scn-rouletabille-seizes-arm .window {
  position: absolute; top: 8%; left: 60%; width: 28%; height: 45%;
  background: linear-gradient(180deg, #2a3440 0%, #1c2028 100%);
  border: 3px solid #3a3028; border-radius: 4px;
  box-shadow: inset 0 0 0 2px #1a1410;
  animation: rs-window 6s ease-in-out infinite alternate;
}
.scn-rouletabille-seizes-arm .lamp-glow {
  position: absolute; top: 18%; left: 25%; width: 12%; height: 18%;
  background: radial-gradient(ellipse, #d49a5a 0%, #8a5c34 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: rs-lamp 3s ease-in-out infinite alternate;
}
.scn-rouletabille-seizes-arm .figure-roule {
  position: absolute; bottom: 20%; left: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #1e1c1a 0%, #0f0d0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-roule 4s ease-in-out infinite;
}
.scn-rouletabille-seizes-arm .figure-matrena {
  position: absolute; bottom: 20%; left: 50%; width: 13%; height: 42%;
  background: linear-gradient(180deg, #2c2320 0%, #1a1210 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rs-matrena 4s ease-in-out infinite;
}
.scn-rouletabille-seizes-arm .arm-grab {
  position: absolute; bottom: 38%; left: 42%; width: 6%; height: 8%;
  background: linear-gradient(90deg, #1e1a17, #2b2220);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-15deg);
  animation: rs-grab 0.8s ease-in-out infinite alternate;
}
.scn-rouletabille-seizes-arm .shadow-line {
  position: absolute; bottom: 20%; left: 30%; width: 50%; height: 2px;
  background: linear-gradient(90deg, transparent, #0e0c0a, transparent);
  filter: blur(1px);
  animation: rs-shadow 5s ease-in-out infinite;
}
@keyframes rs-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rs-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes rs-window { 0% { opacity: 0.6; box-shadow: inset 0 0 0 2px #1a1410; } 100% { opacity: 0.8; box-shadow: inset 0 0 0 2px #2a1e18; } }
@keyframes rs-lamp { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes rs-roule { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rs-matrena { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 20% { transform: translateY(-3px) rotate(-3deg) scaleX(0.98); } 40% { transform: translateY(0) rotate(0deg) scaleX(1); } 60% { transform: translateY(-1px) rotate(2deg) scaleX(1.01); } 80% { transform: translateY(-2px) rotate(-1deg) scaleX(0.99); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes rs-grab { 0% { transform: rotate(-15deg) translateX(0); } 100% { transform: rotate(-10deg) translateX(2px); } }
@keyframes rs-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

/* ===== Scene: matrena-recalls-open-doors ===== */
.scn-matrena-recalls-open-doors {
  background: linear-gradient(90deg, #1c1816 0%, #2a2422 30%, #1a1614 100%),
              radial-gradient(ellipse at 30% 50%, #3a302c 0%, transparent 70%);
}
.scn-matrena-recalls-open-doors .bg-corridor {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e1a17 0%, #100d0b 100%);
  animation: mr-bg 10s ease-in-out infinite alternate;
}
.scn-matrena-recalls-open-doors .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2e2724 0%, transparent 100%);
  box-shadow: inset 0 -8px 20px #0b0908;
  animation: mr-ceiling 15s ease-in-out infinite;
}
.scn-matrena-recalls-open-doors .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2b221e 0%, #1b1411 100%);
  box-shadow: inset 0 6px 12px #0a0706;
  animation: mr-floor 4s ease-in-out infinite alternate;
}
.scn-matrena-recalls-open-doors .door-left {
  position: absolute; bottom: 10%; left: 12%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #3d322a 0%, #221b16 100%);
  border-radius: 3px 3px 0 0;
  transform: rotateY(25deg); transform-origin: left center;
  box-shadow: inset -4px 0 6px rgba(0,0,0,0.6), 2px 0 8px rgba(0,0,0,0.5);
  animation: mr-door-l 6s ease-in-out infinite alternate;
}
.scn-matrena-recalls-open-doors .door-center {
  position: absolute; bottom: 10%; left: 38%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #40352d 0%, #241d18 100%);
  border-radius: 3px 3px 0 0;
  transform: rotateY(-10deg);
  box-shadow: inset 4px 0 6px rgba(0,0,0,0.5), -2px 0 8px rgba(0,0,0,0.4);
  animation: mr-door-c 6s ease-in-out infinite alternate;
}
.scn-matrena-recalls-open-doors .door-right {
  position: absolute; bottom: 10%; right: 12%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #443830 0%, #261e19 100%);
  border-radius: 3px 3px 0 0;
  transform: rotateY(-20deg);
  box-shadow: inset 4px 0 6px rgba(0,0,0,0.5), -2px 0 8px rgba(0,0,0,0.4);
  animation: mr-door-r 6s ease-in-out infinite alternate;
}
.scn-matrena-recalls-open-doors .figure-silhouette {
  position: absolute; bottom: 12%; left: 55%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #1b1816 0%, #0c0a09 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figure 8s ease-in-out infinite;
}
.scn-matrena-recalls-open-doors .shadow-columns {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, rgba(0,0,0,0.08) 8%, rgba(0,0,0,0.08) 10%, transparent 10%);
  pointer-events: none;
  animation: mr-shadow 5s ease-in-out infinite alternate;
}
@keyframes mr-bg { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes mr-ceiling { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes mr-floor { 0% { background-position: 0 0; } 100% { background-position: 0 2px; } }
@keyframes mr-door-l { 0% { transform: rotateY(25deg) scaleX(1); } 100% { transform: rotateY(30deg) scaleX(1.02); } }
@keyframes mr-door-c { 0% { transform: rotateY(-10deg); } 100% { transform: rotateY(-15deg); } }
@keyframes mr-door-r { 0% { transform: rotateY(-20deg); } 100% { transform: rotateY(-25deg); } }
@keyframes mr-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes mr-shadow { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }

/* ===== Scene: servants-stairway-door ===== */
.scn-servants-stairway-door {
  background: linear-gradient(180deg, #191614 0%, #26211e 40%, #100e0c 100%),
              radial-gradient(ellipse at 70% 40%, #3a2e28 0%, transparent 60%);
}
.scn-servants-stairway-door .stair-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1a17 0%, #130f0d 100%);
  animation: ss-bg 8s ease-in-out infinite alternate;
}
.scn-servants-stairway-door .stair-railing {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 100%;
  background: repeating-linear-gradient(0deg, #3a3028 0px, #3a3028 4px, transparent 4px, transparent 20px);
  background-size: 100% 20px;
  animation: ss-rail 12s linear infinite;
}
.scn-servants-stairway-door .door-panel {
  position: absolute; bottom: 5%; left: 35%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #2f2520 0%, #1b1410 100%);
  border: 3px solid #2a201c; border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.7), 0 4px 8px rgba(0,0,0,0.6);
  animation: ss-door 6s ease-in-out infinite alternate;
}
.scn-servants-stairway-door .bolt {
  position: absolute; bottom: 30%; left: 48%; width: 8%; height: 4%;
  background: linear-gradient(90deg, #5a4a3a 0%, #3d3228 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
  animation: ss-bolt 3s ease-in-out infinite alternate;
}
.scn-servants-stairway-door .keyhole {
  position: absolute; bottom: 20%; left: 52%; width: 2%; height: 4%;
  background: #0a0705;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 0 1px #4a3a2e;
  animation: ss-keyhole 2s ease-in-out infinite alternate;
}
.scn-servants-stairway-door .hand-reach {
  position: absolute; bottom: 25%; left: 42%; width: 10%; height: 15%;
  background: linear-gradient(135deg, #1c1612 0%, #0f0b09 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: 80% 100%;
  animation: ss-hand 4s ease-in-out infinite;
}
.scn-servants-stairway-door .shadow-angle {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%);
  pointer-events: none;
  animation: ss-shadow 5s ease-in-out infinite alternate;
}
@keyframes ss-bg { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes ss-rail { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes ss-door { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes ss-bolt { 0% { transform: translateX(0); opacity: 0.7; } 100% { transform: translateX(2px); opacity: 1; } }
@keyframes ss-keyhole { 0% { box-shadow: 0 0 0 1px #4a3a2e; } 100% { box-shadow: 0 0 4px 2px #6a4a34; } }
@keyframes ss-hand { 0%,100% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(-15deg) translate(2px,-2px); } }
@keyframes ss-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

/* ===== Scene: item-hatpin-hole-method ===== */
.scn-item-hatpin-hole-method {
  background: linear-gradient(180deg, #1c1814 0%, #2a2420 40%, #14100c 100%),
              radial-gradient(ellipse at 50% 40%, #3a2e26 0%, transparent 70%);
}
.scn-item-hatpin-hole-method .bg-wood {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2e261f 0%, #1e1813 100%);
  animation: hp-bg 10s ease-in-out infinite alternate;
}
.scn-item-hatpin-hole-method .door-edge {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 80%;
  background: linear-gradient(90deg, #3a2f27 0%, #251e18 50%, #1b1510 100%);
  border: 2px solid #1a1410;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: hp-edge 8s ease-in-out infinite alternate;
}
.scn-item-hatpin-hole-method .pin-hole {
  position: absolute; bottom: 45%; left: 49%; width: 2%; height: 3%;
  background: #0a0705;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #4a3a2a, 0 0 6px 2px rgba(200,160,100,0.3);
  animation: hp-hole 3s ease-in-out infinite alternate;
}
.scn-item-hatpin-hole-method .bolt-close {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 3%;
  background: linear-gradient(90deg, #6a5440 0%, #4d3b2c 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: hp-bolt 4s ease-in-out infinite;
}
.scn-item-hatpin-hole-method .hatpin {
  position: absolute; bottom: 46%; left: 46%; width: 1%; height: 8%;
  background: linear-gradient(180deg, #a08870 0%, #604a38 100%);
  border-radius: 1px;
  transform: rotate(30deg);
  transform-origin: 50% 100%;
  animation: hp-pin 2s ease-in-out infinite alternate;
}
.scn-item-hatpin-hole-method .light-spot {
  position: absolute; bottom: 43%; left: 47%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(220,180,120,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: hp-light 5s ease-in-out infinite alternate;
}
.scn-item-hatpin-hole-method .wood-grain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 6px, rgba(0,0,0,0.03) 6px, rgba(0,0,0,0.03) 7px),
              repeating-linear-gradient(90deg, transparent 0px, transparent 10px, rgba(0,0,0,0.02) 10px, rgba(0,0,0,0.02) 11px);
  pointer-events: none;
  animation: hp-grain 20s linear infinite;
}
@keyframes hp-bg { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes hp-edge { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }
@keyframes hp-hole { 0% { box-shadow: 0 0 0 1px #4a3a2a, 0 0 2px 1px rgba(200,160,100,0.2); } 100% { box-shadow: 0 0 0 1px #6a523a, 0 0 8px 3px rgba(200,160,100,0.5); } }
@keyframes hp-bolt { 0%,100% { transform: translateX(0); } 50% { transform: translateX(1px); } }
@keyframes hp-pin { 0% { transform: rotate(30deg) translateY(0); } 100% { transform: rotate(35deg) translateY(-2px); } }
@keyframes hp-light { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }
@keyframes hp-grain { 0% { background-position: 0 0; } 100% { background-position: 20px 30px; } }

/* Scene: natachas-closed-door (ncd) */
.scn-natachas-closed-door {
  background: 
    linear-gradient(180deg, #1f2540 0%, #3a4660 40%, #6b7b8d 70%, #b8a99a 100%),
    radial-gradient(ellipse at 50% 80%, #b8a99a 0%, transparent 60%);
}
.scn-natachas-closed-door .corridor {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a3447 0%, transparent 100%);
  animation: ncd-corr 10s ease-in-out infinite alternate;
}
.scn-natachas-closed-door .door {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 180px; transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #5a4a3a; border-radius: 4px 4px 8px 8px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6), inset 0 0 30px rgba(0,0,0,0.3);
  animation: ncd-door 6s ease-in-out infinite;
}
.scn-natachas-closed-door .doorknob {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 16px; transform: translateX(-50%);
  background: radial-gradient(circle at 40% 40%, #c0a060, #8a6a30);
  border-radius: 50%; box-shadow: 0 0 8px #b08040;
  animation: ncd-door 6s ease-in-out infinite;
}
.scn-natachas-closed-door .crack-light {
  position: absolute; bottom: 8%; left: 50%; width: 90px; height: 8px; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,200,120,0.9) 0%, rgba(255,180,80,0.3) 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 0 20px 8px rgba(255,180,80,0.5);
  animation: ncd-glow 4s ease-in-out infinite alternate;
}
.scn-natachas-closed-door .figure-wait {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncd-figure 4s ease-in-out infinite;
}
.scn-natachas-closed-door .shadow-floor {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: ncd-shad 6s ease-in-out infinite alternate;
}
@keyframes ncd-corr { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ncd-door { 0% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.002); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ncd-glow { 0% { box-shadow: 0 0 10px 2px rgba(255,180,80,0.3); opacity: 0.6; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,120,0.7); opacity: 1; } 100% { box-shadow: 0 0 15px 4px rgba(255,180,80,0.4); opacity: 0.8; } }
@keyframes ncd-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } 66% { transform: translateX(-2px) translateY(0) rotate(-0.3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ncd-shad { 0% { transform: scaleX(1); opacity: 0.8; } 50% { transform: scaleX(1.05); opacity: 1; } 100% { transform: scaleX(0.95); opacity: 0.7; } }

/* Scene: searching-inside (si) */
.scn-searching-inside {
  background:
    linear-gradient(180deg, #1c2535 0%, #2c3a50 30%, #4a5b70 60%, #7a8a90 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a90 0%, transparent 70%);
}
.scn-searching-inside .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2f3b4f 0%, #3c4a60 100%);
  animation: si-wall 12s ease-in-out infinite alternate;
}
.scn-searching-inside .window-blinds {
  position: absolute; top: 15%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(90deg, #4a5a6a 20%, #7a8a9a 20%, #7a8a9a 40%, #4a5a6a 40%, #4a5a6a 60%, #7a8a9a 60%, #7a8a9a 80%, #4a5a6a 80%);
  border: 2px solid #3a4a5a; border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: si-blind 8s ease-in-out infinite alternate;
}
.scn-searching-inside .iron-bar {
  position: absolute; top: 18%; left: 28%; width: 64px; height: 6px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: si-bar 12s ease-in-out infinite alternate;
}
.scn-searching-inside .staircase {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 50%;
  background: repeating-linear-gradient(0deg, #3a4a5a 0px, #3a4a5a 10px, #4a5a6a 10px, #4a5a6a 20px);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: si-stair 15s linear infinite;
}
.scn-searching-inside .figure-search {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-search 6s ease-in-out infinite;
}
.scn-searching-inside .hand-silent {
  position: absolute; bottom: 70%; left: 52%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-hand 4s ease-in-out infinite alternate;
}
@keyframes si-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes si-blind { 0% { transform: rotateX(0deg) scaleY(1); } 50% { transform: rotateX(2deg) scaleY(1.02); } 100% { transform: rotateX(-1deg) scaleY(0.98); } }
@keyframes si-bar { 0% { transform: translateY(0); } 33% { transform: translateY(1px); } 66% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes si-stair { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }
@keyframes si-search { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes si-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(10deg); } 100% { transform: translateY(0) rotate(-15deg); } }

/* Scene: matrena-demands-where (mdw) */
.scn-matrena-demands-where {
  background:
    linear-gradient(180deg, #1f2a3a 0%, #2a3e54 40%, #4a6078 70%, #7a8a94 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a94 0%, transparent 60%);
}
.scn-matrena-demands-where .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-matrena-demands-where .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: mdw-wall-l 8s ease-in-out infinite alternate;
}
.scn-matrena-demands-where .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: mdw-wall-r 8s ease-in-out infinite alternate;
}
.scn-matrena-demands-where .matrena-silhouette {
  position: absolute; bottom: 22%; right: 25%; width: 25px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdw-matrena 5s ease-in-out infinite;
}
.scn-matrena-demands-where .he-silhouette {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mdw-he 7s ease-in-out infinite alternate;
}
.scn-matrena-demands-where .shadow-merge {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: mdw-shad 4s ease-in-out infinite alternate;
}
@keyframes mdw-wall-l { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mdw-wall-r { 0% { opacity: 0.8; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes mdw-matrena { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-5deg); } 60% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mdw-he { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(4px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mdw-shad { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.9); } }

/* Scene: pointing-at-natacha (pan) */
.scn-pointing-at-natacha {
  background:
    linear-gradient(180deg, #1f2a3a 0%, #2a3e54 40%, #4a6078 70%, #7a8a94 100%),
    radial-gradient(ellipse at 50% 100%, #7a8a94 0%, transparent 60%);
}
.scn-pointing-at-natacha .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a3a4a 0%, #3a4a5a 50%, #2a3a4a 100%);
  animation: pan-wall 10s ease-in-out infinite alternate;
}
.scn-pointing-at-natacha .door {
  position: absolute; bottom: 8%; left: 60%; width: 100px; height: 150px; transform: translateX(-50%);
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #5a4a3a; border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-pointing-at-natacha .matrena-point {
  position: absolute; bottom: 22%; left: 38%; width: 22px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 90%;
  animation: pan-point 4s ease-in-out infinite;
}
.scn-pointing-at-natacha .he-arms {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pan-arms 3s ease-in-out infinite alternate;
}
.scn-pointing-at-natacha .light-under {
  position: absolute; bottom: 6%; left: 55%; width: 60px; height: 6px;
  background: linear-gradient(180deg, rgba(255,200,100,0.8) 0%, rgba(255,180,80,0.2) 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: 0 0 15px 5px rgba(255,180,80,0.4);
  animation: pan-glow 5s ease-in-out infinite alternate;
}
.scn-pointing-at-natacha .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
@keyframes pan-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pan-point { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-5px) rotate(-10deg); } 40% { transform: translateX(0) rotate(0deg); } 70% { transform: translateX(3px) rotate(15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pan-arms { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-8px) scaleX(1.3); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes pan-glow { 0% { opacity: 0.4; box-shadow: 0 0 8px 2px rgba(255,180,80,0.2); } 50% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,200,100,0.6); } 100% { opacity: 0.5; box-shadow: 0 0 12px 3px rgba(255,180,80,0.3); } }

.scn-abominable-procedure {
  background:
    linear-gradient(180deg, #191836 0%, #2a2550 40%, #3a2a5a 100%),
    radial-gradient(ellipse at 30% 80%, #4a3570 0%, transparent 70%);
}
.scn-abominable-procedure .room-wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(135deg, #1e1c30 0%, #2a2540 60%, #3a2a4a 100%);
  border-right: 2px solid #2f2a44;
  animation: ap-wall 20s ease-in-out infinite alternate;
}
.scn-abominable-procedure .desk {
  position: absolute; bottom: 8%; left: 5%; right: 40%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: ap-desk 8s ease-in-out infinite;
}
.scn-abominable-procedure .lamp-glow {
  position: absolute; bottom: 18%; left: 12%; width: 40px; height: 50px;
  background: radial-gradient(circle, #ffe0a0 0%, #d09050 50%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.3), 0 0 60px 20px rgba(255,200,100,0.1);
  animation: ap-lamp 4s ease-in-out infinite alternate;
}
.scn-abominable-procedure .shadow-left {
  position: absolute; bottom: 8%; left: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #1a1830 0%, #0e0c1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ap-shadow-l 6s ease-in-out infinite;
}
.scn-abominable-procedure .shadow-right {
  position: absolute; bottom: 8%; left: 48%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #1e1c34 0%, #121020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ap-shadow-r 7s ease-in-out infinite reverse;
}
.scn-abominable-procedure .papers {
  position: absolute; bottom: 10%; left: 8%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #d8d0c0 0%, #b0a898 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: ap-papers 12s ease-in-out infinite;
}
.scn-abominable-procedure .inkwell {
  position: absolute; bottom: 11%; left: 14%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ap-ink 10s ease-in-out infinite alternate;
}
@keyframes ap-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ap-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ap-lamp { 0% { opacity: 0.7; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes ap-shadow-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ap-shadow-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes ap-papers { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes ap-ink { 0% { transform: translateY(0); } 100% { transform: translateY(-1px); } }

.scn-ask-monsieur {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 30%, #4a4a6a 100%),
    radial-gradient(ellipse at 70% 30%, #6a6a8a 0%, transparent 60%);
}
.scn-ask-monsieur .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a6a 0%, #5a5a7a 40%, #7a7a9a 100%);
  animation: am-sky 15s ease-in-out infinite alternate;
}
.scn-ask-monsieur .group-a {
  position: absolute; bottom: 5%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  animation: am-group 12s ease-in-out infinite;
}
.scn-ask-monsieur .group-b {
  position: absolute; bottom: 5%; right: 5%; width: 35%; height: 65%;
  background: linear-gradient(180deg, #1e1e32 0%, #121222 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  animation: am-group 14s ease-in-out infinite reverse;
}
.scn-ask-monsieur .reporter-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a40 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: am-reporter 6s ease-in-out infinite;
}
.scn-ask-monsieur .light-ray {
  position: absolute; top: -10%; left: 20%; width: 120%; height: 130%;
  background: linear-gradient(135deg, rgba(200,200,220,0.15) 0%, rgba(200,200,220,0) 50%, rgba(200,200,220,0.05) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: am-ray 8s ease-in-out infinite alternate;
}
.scn-ask-monsieur .shadow-dart {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: am-shade 5s ease-in-out infinite;
}
@keyframes am-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes am-group { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes am-reporter { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes am-ray { 0% { opacity: 0.3; transform: skewX(-5deg); } 100% { opacity: 0.7; transform: skewX(5deg); } }
@keyframes am-shade { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-concerns-only-me {
  background:
    linear-gradient(180deg, #1c1b33 0%, #2a2646 40%, #3a3050 100%),
    radial-gradient(ellipse at 60% 40%, #4a3a5a 0%, transparent 70%);
}
.scn-concerns-only-me .room-corner {
  position: absolute; inset: 0 20% 0 0;
  background: linear-gradient(135deg, #22203a 0%, #2e2848 60%, #3a304a 100%);
  border-right: 3px solid #3a3050;
  animation: co-corner 18s ease-in-out infinite alternate;
}
.scn-concerns-only-me .grip-hand {
  position: absolute; top: 30%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: co-hand 4s ease-in-out infinite;
}
.scn-concerns-only-me .wrist-arm {
  position: absolute; top: 38%; left: 40%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: co-wrist 5s ease-in-out infinite alternate;
}
.scn-concerns-only-me .torso-shadow {
  position: absolute; bottom: 10%; left: 45%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1e1c32 0%, #0e0c1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: co-torso 7s ease-in-out infinite;
}
.scn-concerns-only-me .profile-face {
  position: absolute; top: 20%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  animation: co-face 6s ease-in-out infinite;
}
.scn-concerns-only-me .warm-glow {
  position: absolute; top: 35%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: co-glow 8s ease-in-out infinite alternate;
}
.scn-concerns-only-me .breath-condensation {
  position: absolute; top: 22%; left: 48%; width: 20px; height: 10px;
  background: radial-gradient(circle, rgba(200,220,255,0.2) 0%, transparent 100%);
  filter: blur(3px);
  animation: co-breath 3s ease-in-out infinite;
}
@keyframes co-corner { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes co-hand { 0%, 100% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.02); } }
@keyframes co-wrist { 0% { transform: rotate(-10deg); } 100% { transform: rotate(-5deg); } }
@keyframes co-torso { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes co-face { 0% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-50%) rotate(8deg); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes co-glow { 0% { opacity: 0.2; } 100% { opacity: 0.5; } }
@keyframes co-breath { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 0.4; transform: translateY(-3px); } 100% { opacity: 0; transform: translateY(-6px); } }

.scn-ladders-wiped-proofs {
  background:
    linear-gradient(180deg, #2a2640 0%, #3a3050 40%, #4a3a60 100%),
    radial-gradient(ellipse at 40% 90%, #5a4a70 0%, transparent 70%);
}
.scn-ladders-wiped-proofs .polished-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: lw-floor 10s ease-in-out infinite alternate;
}
.scn-ladders-wiped-proofs .ladder-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: lw-ladder-l 8s ease-in-out infinite;
}
.scn-ladders-wiped-proofs .ladder-right {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: lw-ladder-r 9s ease-in-out infinite reverse;
}
.scn-ladders-wiped-proofs .foot-1 {
  position: absolute; bottom: 5%; left: 25%; width: 16px; height: 8px;
  background: #5a4a6a;
  border-radius: 50% 50% 20% 20%;
  opacity: 0.4;
  animation: lw-foot1 6s ease-in-out infinite;
}
.scn-ladders-wiped-proofs .foot-2 {
  position: absolute; bottom: 3%; left: 35%; width: 16px; height: 8px;
  background: #5a4a6a;
  border-radius: 50% 50% 20% 20%;
  opacity: 0.3;
  animation: lw-foot2 7s ease-in-out infinite;
}
.scn-ladders-wiped-proofs .proof-marker {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #b0a888 0%, #8a7a6a 100%);
  border-radius: 2px;
  opacity: 0.6;
  animation: lw-proof 12s ease-in-out infinite;
}
.scn-ladders-wiped-proofs .wipe-motion {
  position: absolute; bottom: 32%; left: 40%; width: 60px; height: 12px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lw-wipe 5s ease-in-out infinite;
}
@keyframes lw-floor { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes lw-ladder-l { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes lw-ladder-r { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes lw-foot1 { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(2px); } 100% { opacity: 0.2; transform: translateX(0); } }
@keyframes lw-foot2 { 0% { opacity: 0.1; transform: translateX(0); } 50% { opacity: 0.4; transform: translateX(-3px); } 100% { opacity: 0.1; transform: translateX(0); } }
@keyframes lw-proof { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(0.9); } }
@keyframes lw-wipe { 0% { transform: translateX(-10px) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.3); } 100% { transform: translateX(-10px) scaleX(1); } }

.scn-gate-soldiers-encounter {
  background: linear-gradient(180deg, #4e5a6b 0%, #3a4555 40%, #2c3645 100%),
              radial-gradient(ellipse at 50% 0%, #6f7d8c 0%, transparent 60%);
}
.scn-gate-soldiers-encounter .sky-gse {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7a8c 0%, #4e5e70 100%);
  animation: gse-sky 15s ease-in-out infinite alternate;
}
.scn-gate-soldiers-encounter .ground-gse {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a453a 0%, #2a352a 100%);
  border-radius: 20% 0 0 0 / 15% 0 0 0;
}
.scn-gate-soldiers-encounter .gate-left {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5c5048 0%, #3a3028 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  transform: skewX(-2deg);
  animation: gse-gate 6s ease-in-out infinite alternate;
}
.scn-gate-soldiers-encounter .gate-right {
  position: absolute; bottom: 30%; right: 25%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5c5048 0%, #3a3028 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  transform: skewX(2deg);
  animation: gse-gate 6s ease-in-out infinite alternate-reverse;
}
.scn-gate-soldiers-encounter .soldier-a {
  position: absolute; bottom: 27%; left: 32%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2e3e4e 0%, #1e2a38 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gse-soldier 4s ease-in-out infinite;
}
.scn-gate-soldiers-encounter .soldier-b {
  position: absolute; bottom: 27%; right: 32%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2e3e4e 0%, #1e2a38 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gse-soldier 4s ease-in-out infinite 2s;
}
.scn-gate-soldiers-encounter .musket-arm {
  position: absolute; bottom: 40%; left: 35%; width: 35px; height: 6px;
  background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 100%);
  border-radius: 50% 40% 40% 50%;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: gse-musket 5s ease-in-out infinite;
}
.scn-gate-soldiers-encounter .wall-hint {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #3a3a45 50%, #2a2a35 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(4px);
  opacity: 0.6;
  animation: gse-wall 12s ease-in-out infinite alternate;
}
@keyframes gse-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gse-gate { 0% { transform: skewX(-2deg) scaleY(1); } 50% { transform: skewX(-2deg) scaleY(1.02); } 100% { transform: skewX(-2deg) scaleY(0.98); } }
@keyframes gse-soldier { 0% { transform: translateX(0) rotate(0deg); } 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 gse-musket { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-18deg) scaleX(1.1); } 100% { transform: rotate(-22deg) scaleX(0.9); } }
@keyframes gse-wall { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.7; transform: translateY(-2px); } 100% { opacity: 0.6; transform: translateY(0); } }

.scn-grand-marshal-encounter {
  background: linear-gradient(180deg, #4a505b 0%, #3a404a 50%, #2c323c 100%),
              radial-gradient(ellipse at 40% 60%, #5a6070 0%, transparent 70%);
}
.scn-grand-marshal-encounter .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a505b 0%, #3a404a 50%, #2c323c 100%);
  animation: gme-wall 20s ease-in-out infinite alternate;
}
.scn-grand-marshal-encounter .window-gme {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #8a9ab0 0%, #6a7a90 100%);
  border: 8px solid #3a3a40;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.1), 0 4px 12px rgba(0,0,0,0.4);
  animation: gme-window 12s ease-in-out infinite alternate;
}
.scn-grand-marshal-encounter .marshal-figure {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2c3a40 0%, #1c2830 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: gme-figure1 8s ease-in-out infinite;
}
.scn-grand-marshal-encounter .rouletabille-figure {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 76px;
  background: linear-gradient(180deg, #2c3840 0%, #1c2830 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gme-figure2 10s ease-in-out infinite;
}
.scn-grand-marshal-encounter .cushion {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #5a4e42 0%, #3a2e22 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: gme-cushion 6s ease-in-out infinite alternate;
}
.scn-grand-marshal-encounter .lamp-glow {
  position: absolute; top: 8%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0c8a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,180,140,0.3);
  animation: gme-lamp 5s ease-in-out infinite alternate;
}
@keyframes gme-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gme-window { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-3px); } 100% { transform: scale(1); } }
@keyframes gme-figure1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gme-figure2 { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(-2deg); } 66% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gme-cushion { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes gme-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }

.scn-tsar-cabinet-audience {
  background: linear-gradient(180deg, #b8a890 0%, #9a8a72 40%, #8a7a62 100%),
              radial-gradient(ellipse at 30% 20%, #d0c0a8 0%, transparent 60%);
}
.scn-tsar-cabinet-audience .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b8a890 0%, #9a8a72 40%, #8a7a62 100%);
  animation: tca-wall 15s ease-in-out infinite alternate;
}
.scn-tsar-cabinet-audience .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #5a4e38 0%, #3a2e1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
  animation: tca-desk 10s ease-in-out infinite alternate;
}
.scn-tsar-cabinet-audience .tsar-figure {
  position: absolute; bottom: 25%; left: 40%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #2c1c1a 0%, #1c0c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tca-tsar 6s ease-in-out infinite;
}
.scn-tsar-cabinet-audience .portrait-frame {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #8a7a62 0%, #6a5a42 50%, #4a3a22 100%);
  border: 6px solid #5a4a32;
  border-radius: 2%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.4);
  animation: tca-portrait 20s ease-in-out infinite alternate;
}
.scn-tsar-cabinet-audience .candle {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: tca-candle 3s ease-in-out infinite alternate;
}
.scn-tsar-cabinet-audience .candle-light {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0e0a0 0%, #e0c080 40%, transparent 80%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  filter: blur(6px);
  animation: tca-light 2s ease-in-out infinite alternate;
}
.scn-tsar-cabinet-audience .shadow-bar {
  position: absolute; top: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  filter: blur(10px);
  animation: tca-shadow 8s ease-in-out infinite alternate;
}
@keyframes tca-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes tca-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tca-tsar { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tca-portrait { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes tca-candle { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.15) rotate(2deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes tca-light { 0% { opacity: 0.7; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes tca-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

.scn-tsar-accusation {
  background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 60% 40%, #d0b890 0%, transparent 70%);
}
.scn-tsar-accusation .cabinet-depth {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 40%, #5a4a3a 100%);
  animation: tsa-depth 12s ease-in-out infinite alternate;
}
.scn-tsar-accusation .tsar-angry {
  position: absolute; bottom: 20%; left: 35%; width: 38px; height: 95px;
  background: linear-gradient(180deg, #2c1c1a 0%, #1c0c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tsa-tsar 4s ease-in-out infinite;
}
.scn-tsar-accusation .rouletabille-back {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2c3038 0%, #1c2028 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tsa-roule 6s ease-in-out infinite;
}
.scn-tsar-accusation .desk-blur {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a3e2a 0%, #2a1e0a 100%);
  border-radius: 10% 10% 0 0;
  filter: blur(8px);
  opacity: 0.8;
  animation: tsa-desk 8s ease-in-out infinite alternate;
}
.scn-tsar-accusation .lamp-spot {
  position: absolute; top: 0; left: 45%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 20%, #e0c8a0 0%, transparent 70%);
  filter: blur(12px);
  opacity: 0.6;
  animation: tsa-lamp 3s ease-in-out infinite alternate;
}
.scn-tsar-accusation .accusation-hand {
  position: absolute; bottom: 45%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3030 0%, #2a2020 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: bottom left;
  animation: tsa-hand 2s ease-in-out infinite alternate;
}
.scn-tsar-accusation .tension-flash {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(200,180,160,0.15) 0%, transparent 50%);
  animation: tsa-flash 4s ease-in-out infinite alternate;
}
@keyframes tsa-depth { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tsa-tsar { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsa-roule { 0% { transform: translateX(0); } 25% { transform: translateX(-4px); } 50% { transform: translateX(0); } 75% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes tsa-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes tsa-lamp { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.9); } }
@keyframes tsa-hand { 0% { transform: rotate(-30deg) translate(0,0); } 100% { transform: rotate(-20deg) translate(5px,-5px); } }
@keyframes tsa-flash { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

.scn-prince-galitch {
  background: linear-gradient(180deg, #1c1410 0%, #2a1d15 30%, #3a2a1d 60%, #1c1410 100%),
              radial-gradient(ellipse at 60% 20%, #c87040 0%, transparent 50%);
}
.scn-prince-galitch .curtain-left {
  position:absolute; inset:0 50% 0 0; background: linear-gradient(90deg, #5e1a1d 0%, #3a0f12 50%, transparent 100%); border-radius:0 30% 30% 0; animation: pg-curtain 12s ease-in-out infinite alternate;
}
.scn-prince-galitch .curtain-right {
  position:absolute; inset:0 0 0 50%; background: linear-gradient(270deg, #5e1a1d 0%, #3a0f12 50%, transparent 100%); border-radius:30% 0 0 30%; animation: pg-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-prince-galitch .stage {
  position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #4a3428 0%, #2a1d15 100%); border-radius:40% 40% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-prince-galitch .figure-prince {
  position:absolute; bottom:18%; left:45%; width:8%; height:24%; background: linear-gradient(180deg, #1a1210 0%, #2a1d15 60%, #1a1210 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-figure 6s ease-in-out infinite;
}
.scn-prince-galitch .figure-shadow {
  position:absolute; bottom:12%; left:40%; width:18%; height:6%; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(6px); animation: pg-shadow 6s ease-in-out infinite;
}
.scn-prince-galitch .gaslamp {
  position:absolute; top:12%; left:50%; transform:translateX(-50%); width:3%; height:8%; background: linear-gradient(180deg, #c87040 0%, #e89850 40%, #f0b060 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 15px rgba(200,112,64,0.5); animation: pg-lamp 2s ease-in-out infinite alternate;
}
.scn-prince-galitch .glow {
  position:absolute; top:8%; left:45%; right:45%; bottom:40%; background: radial-gradient(ellipse at 50% 20%, rgba(240,176,96,0.3) 0%, transparent 70%); pointer-events:none; animation: pg-glow 4s ease-in-out infinite;
}
@keyframes pg-curtain { 0% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(1.02); opacity:1; } 100% { transform:scaleY(0.98); opacity:0.85; } }
@keyframes pg-figure { 0% { transform:rotate(-2deg) scaleY(1); } 50% { transform:rotate(3deg) scaleY(1.03); } 100% { transform:rotate(-1deg) scaleY(0.97); } }
@keyframes pg-shadow { 0% { transform:scale(1); opacity:0.4; } 50% { transform:scale(1.2); opacity:0.6; } 100% { transform:scale(0.9); opacity:0.3; } }
@keyframes pg-lamp { 0% { opacity:0.7; box-shadow: 0 0 10px 10px rgba(200,112,64,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 20px rgba(240,176,96,0.6); } 100% { opacity:0.8; box-shadow: 0 0 15px 12px rgba(200,112,64,0.4); } }
@keyframes pg-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

.scn-ruined-by-women {
  background: linear-gradient(180deg, #1a1412 0%, #2e221d 50%, #3d2c25 100%),
              radial-gradient(ellipse at 50% 30%, #b08040 0%, transparent 60%);
}
.scn-ruined-by-women .bg-ruin {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); animation: rw-bg 8s ease-in-out infinite alternate;
}
.scn-ruined-by-women .prince-falling {
  position:absolute; bottom:30%; left:30%; width:10%; height:30%; background: linear-gradient(180deg, #1c1410 0%, #3a2a1d 50%, #1c1410 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform-origin: bottom center; animation: rw-prince 3s ease-in-out infinite;
}
.scn-ruined-by-women .coin {
  position:absolute; width:4%; height:4%; background: radial-gradient(circle, #e8c868 0%, #b89838 70%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(232,200,104,0.5);
}
.scn-ruined-by-women .coin1 {
  top:20%; left:40%; animation: rw-coin1 4s ease-in-out infinite;
}
.scn-ruined-by-women .coin2 {
  top:50%; left:55%; animation: rw-coin2 5s ease-in-out infinite;
}
.scn-ruined-by-women .fan {
  position:absolute; top:25%; left:60%; width:15%; height:15%; background: radial-gradient(circle at 30% 30%, #c87040 0%, #8a4020 60%, transparent 70%); border-radius:50% 0 50% 0; transform:rotate(-20deg); animation: rw-fan 2s ease-in-out infinite alternate;
}
.scn-ruined-by-women .shadow-bottom {
  position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); border-radius:50% 50% 0 0; animation: rw-shadow 6s ease-in-out infinite;
}
.scn-ruined-by-women .lamp-swing {
  position:absolute; top:8%; left:50%; transform:translateX(-50%); width:3%; height:10%; background: linear-gradient(180deg, #c87040 0%, #e89850 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 15px rgba(200,112,64,0.4); animation: rw-lamp 1.5s ease-in-out infinite alternate;
}
.scn-ruined-by-women .glint {
  position:absolute; top:15%; left:45%; width:2%; height:2%; background:#ffe8a0; border-radius:50%; box-shadow: 0 0 10px 5px #ffd070; animation: rw-glint 3s ease-in-out infinite;
}
@keyframes rw-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rw-prince { 0% { transform: translate(0,0) rotate(0deg) scaleY(1); } 25% { transform: translate(10px,-20px) rotate(15deg) scaleY(0.9); } 50% { transform: translate(20px,0) rotate(-10deg) scaleY(1.1); } 75% { transform: translate(10px,-10px) rotate(5deg) scaleY(0.95); } 100% { transform: translate(0,0) rotate(0deg) scaleY(1); } }
@keyframes rw-coin1 { 0% { transform:translateY(0) rotate(0deg); opacity:0; } 20% { opacity:1; transform:translateY(-30px) rotate(180deg); } 40% { transform:translateY(10px) rotate(360deg); } 60% { opacity:0.5; transform:translateY(-20px) rotate(540deg); } 100% { opacity:0; transform:translateY(40px) rotate(720deg); } }
@keyframes rw-coin2 { 0% { transform:translateY(0) rotate(0deg); opacity:0; } 30% { opacity:1; transform:translateY(-40px) rotate(120deg); } 50% { transform:translateY(15px) rotate(240deg); } 70% { opacity:0.3; transform:translateY(-15px) rotate(360deg); } 100% { opacity:0; transform:translateY(50px) rotate(480deg); } }
@keyframes rw-fan { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(10deg) scale(1.2); } 100% { transform: rotate(-15deg) scale(0.9); } }
@keyframes rw-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes rw-lamp { 0% { opacity:0.6; transform:translateX(-50%) rotate(-5deg); } 50% { opacity:1; transform:translateX(-50%) rotate(0deg); } 100% { opacity:0.8; transform:translateX(-50%) rotate(5deg); } }
@keyframes rw-glint { 0% { opacity:0; } 30% { opacity:1; } 70% { opacity:0.3; } 100% { opacity:0; } }

.scn-glance-between-galitch-natacha {
  background: linear-gradient(180deg, #120e0c 0%, #1e1814 40%, #2c221d 70%, #120e0c 100%),
              radial-gradient(ellipse at 50% 20%, #b07040 0%, transparent 60%);
}
.scn-glance-between-galitch-natacha .bg-glance {
  position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); animation: ggn-bg 10s ease-in-out infinite alternate;
}
.scn-glance-between-galitch-natacha .figure-galitch {
  position:absolute; bottom:20%; left:15%; width:12%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #2a1d15 60%, #1a1210 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform:rotate(10deg); transform-origin: bottom center; animation: ggn-galitch 5s ease-in-out infinite;
}
.scn-glance-between-galitch-natacha .figure-natacha {
  position:absolute; bottom:20%; right:15%; width:12%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #2a1d15 60%, #1a1210 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform:rotate(-10deg); transform-origin: bottom center; animation: ggn-natacha 5s ease-in-out infinite;
}
.scn-glance-between-galitch-natacha .gaze-line {
  position:absolute; top:40%; left:27%; right:27%; height:0.5%; background: linear-gradient(90deg, transparent 0%, rgba(200,120,64,0.6) 50%, transparent 100%); box-shadow: 0 0 8px 4px rgba(200,120,64,0.3); animation: ggn-gaze 3s ease-in-out infinite alternate;
}
.scn-glance-between-galitch-natacha .lamp-center {
  position:absolute; top:8%; left:50%; transform:translateX(-50%); width:2.5%; height:9%; background: linear-gradient(180deg, #c87040 0%, #e89850 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 25px 20px rgba(200,112,64,0.5); animation: ggn-lamp 2s ease-in-out infinite alternate;
}
.scn-glance-between-galitch-natacha .shadow-left {
  position:absolute; bottom:0; left:0; width:30%; height:40%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ggn-shadow 8s ease-in-out infinite;
}
.scn-glance-between-galitch-natacha .shadow-right {
  position:absolute; bottom:0; right:0; width:30%; height:40%; background: linear-gradient(270deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ggn-shadow 8s ease-in-out infinite reverse;
}
.scn-glance-between-galitch-natacha .halo {
  position:absolute; top:35%; left:45%; right:45%; bottom:30%; background: radial-gradient(ellipse, rgba(200,120,64,0.15) 0%, transparent 70%); animation: ggn-halo 4s ease-in-out infinite;
}
@keyframes ggn-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ggn-galitch { 0% { transform:rotate(10deg) scaleY(1); } 50% { transform:rotate(8deg) scaleY(1.02); } 100% { transform:rotate(12deg) scaleY(0.98); } }
@keyframes ggn-natacha { 0% { transform:rotate(-10deg) scaleY(1); } 50% { transform:rotate(-8deg) scaleY(1.02); } 100% { transform:rotate(-12deg) scaleY(0.98); } }
@keyframes ggn-gaze { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }
@keyframes ggn-lamp { 0% { opacity:0.7; transform:translateX(-50%) scaleY(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.1); } 100% { opacity:0.8; transform:translateX(-50%) scaleY(0.9); } }
@keyframes ggn-shadow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ggn-halo { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-natacha-glance {
  background: linear-gradient(180deg, #140e0c 0%, #221813 50%, #140e0c 100%),
              radial-gradient(ellipse at 40% 30%, #b06830 0%, transparent 60%);
}
.scn-natacha-glance .bg-natacha {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); animation: ng-bg 7s ease-in-out infinite alternate;
}
.scn-natacha-glance .profile-natacha {
  position:absolute; bottom:20%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #1c1410 0%, #2a1d15 40%, #1c1410 100%); border-radius:50% 30% 30% 50% / 60% 50% 50% 60%; transform:rotate(-5deg); transform-origin: bottom center; animation: ng-profile 5s ease-in-out infinite;
}
.scn-natacha-glance .eye-natacha {
  position:absolute; bottom:48%; left:48%; width:1.5%; height:2%; background: radial-gradient(circle, #e8b860 0%, #a07030 80%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(232,184,96,0.5); animation: ng-eye 3s ease-in-out infinite alternate;
}
.scn-natacha-glance .hair-natacha {
  position:absolute; bottom:55%; left:42%; width:14%; height:18%; background: linear-gradient(180deg, #0d0a08 0%, #1c1410 100%); border-radius:40% 40% 20% 20% / 70% 70% 30% 30%; transform:rotate(-10deg); animation: ng-hair 6s ease-in-out infinite;
}
.scn-natacha-glance .neck-natacha {
  position:absolute; bottom:22%; left:48%; width:4%; height:12%; background: linear-gradient(180deg, #2a1d15 0%, #1c1410 100%); border-radius:20%; animation: ng-neck 5s ease-in-out infinite;
}
.scn-natacha-glance .shoulder-natacha {
  position:absolute; bottom:10%; left:44%; width:16%; height:14%; background: linear-gradient(180deg, #2a1d15 0%, #1a1210 100%); border-radius:50% 50% 30% 30% / 40% 40% 50% 50%; transform:rotate(5deg); animation: ng-shoulder 4s ease-in-out infinite;
}
.scn-natacha-glance .lamp-edge {
  position:absolute; top:12%; right:15%; width:2%; height:7%; background: linear-gradient(180deg, #c87040 0%, #e89840 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 15px 10px rgba(200,112,64,0.4); animation: ng-lamp 2s ease-in-out infinite alternate;
}
.scn-natacha-glance .flicker {
  position:absolute; top:8%; right:12%; width:4%; height:4%; background: radial-gradient(circle, rgba(240,176,96,0.3) 0%, transparent 70%); animation: ng-flicker 1.5s ease-in-out infinite;
}
@keyframes ng-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ng-profile { 0% { transform:rotate(-5deg) scaleY(1); } 50% { transform:rotate(-3deg) scaleY(1.02); } 100% { transform:rotate(-7deg) scaleY(0.98); } }
@keyframes ng-eye { 0% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.3); opacity:1; } 100% { transform:scale(0.8); opacity:0.6; } }
@keyframes ng-hair { 0% { transform:rotate(-10deg); } 50% { transform:rotate(-8deg); } 100% { transform:rotate(-12deg); } }
@keyframes ng-neck { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes ng-shoulder { 0% { transform:rotate(5deg); } 50% { transform:rotate(7deg); } 100% { transform:rotate(3deg); } }
@keyframes ng-lamp { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.8; transform:scaleY(0.9); } }
@keyframes ng-flicker { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.1; } }

.scn-entering-barracks { 
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b08968 100%), radial-gradient(ellipse at 50% 0%, #fffae8 0%, transparent 60%);
}
.scn-entering-barracks .arch {
  position:absolute; top:10%; left:25%; width:50%; height:40%; background: linear-gradient(135deg, #c8a882, #a07850); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 -10px 20px rgba(80,60,40,.3); animation: eb-arch 12s ease-in-out infinite;
}
.scn-entering-barracks .wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e6d4b8, #f0e0c8, #dcc8a8); 
}
.scn-entering-barracks .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89070, #8a6e50); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: eb-floor 20s ease-in-out infinite alternate;
}
.scn-entering-barracks .door {
  position:absolute; bottom:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #a0805c, #705a40); border: 3px solid #5a4530; border-radius: 6px 6px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-entering-barracks .light {
  position:absolute; top:15%; left:45%; width:10%; height:20%; background: radial-gradient(circle at 50% 100%, #fff6e0 0%, transparent 70%); animation: eb-light 4s ease-in-out infinite alternate;
}
.scn-entering-barracks .figure-left {
  position:absolute; bottom:15%; left:20%; width:12%; height:50%; background: linear-gradient(180deg, #2c2420 0%, #181410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: eb-walk 6s ease-in-out infinite;
}
.scn-entering-barracks .figure-right {
  position:absolute; bottom:10%; right:25%; width:10%; height:40%; background: linear-gradient(180deg, #3a302a 0%, #1e1814 100%); border-radius: 30% 30% 50% 50% / 50% 50% 30% 30%; transform-origin: bottom center; animation: eb-bow 5s ease-in-out infinite;
}
@keyframes eb-arch { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes eb-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes eb-light { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes eb-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5%) rotate(1deg); } 50% { transform: translateX(10%) rotate(0); } 75% { transform: translateX(5%) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes eb-bow { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } }

.scn-inspection-chapel {
  background: linear-gradient(180deg, #e8ddd0 0%, #d6cbb8 40%, #b8a894 100%), radial-gradient(ellipse at 50% 100%, #fff8f0 0%, transparent 60%);
}
.scn-inspection-chapel .backwall {
  position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #cbbca8, #b09e88);
}
.scn-inspection-chapel .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #9e8e7a, #807060);
}
.scn-inspection-chapel .bunk1 {
  position:absolute; bottom:20%; left:15%; width:30%; height:35%; background: linear-gradient(180deg, #8a7a66, #6c5c4a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-inspection-chapel .bunk2 {
  position:absolute; bottom:20%; right:15%; width:30%; height:35%; background: linear-gradient(180deg, #8a7a66, #6c5c4a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-inspection-chapel .guard1 {
  position:absolute; bottom:25%; left:22%; width:8%; height:50%; background: linear-gradient(180deg, #3a3a3a, #1e1e1e); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; animation: ic-stand 8s ease-in-out infinite;
}
.scn-inspection-chapel .guard2 {
  position:absolute; bottom:25%; right:22%; width:8%; height:50%; background: linear-gradient(180deg, #3a3a3a, #1e1e1e); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; animation: ic-stand 8s ease-in-out infinite reverse;
}
.scn-inspection-chapel .inspector {
  position:absolute; bottom:20%; left:40%; width:10%; height:55%; background: linear-gradient(180deg, #2a2a3a, #14141e); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ic-inspect 10s ease-in-out infinite;
}
.scn-inspection-chapel .light {
  position:absolute; top:2%; left:40%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 100%, #fffae0 0%, transparent 70%); animation: ic-light 5s ease-in-out infinite alternate;
}
@keyframes ic-stand { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes ic-inspect { 0% { transform: translateX(0); } 25% { transform: translateX(5%); } 50% { transform: translateX(10%); } 75% { transform: translateX(5%); } 100% { transform: translateX(0); } }
@keyframes ic-light { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-gilded-chapel {
  background: linear-gradient(180deg, #c8a86c 0%, #b89458 40%, #a07840 100%), radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-gilded-chapel .altar {
  position:absolute; bottom:15%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #c8a060, #a88040); border-radius: 40% 40% 10% 10% / 70% 70% 10% 10%; box-shadow: 0 8px 20px rgba(80,50,20,.5);
}
.scn-gilded-chapel .wall-gold {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4b46c, #e0c480, #c8a45c); animation: gc-shimmer 20s ease-in-out infinite alternate;
}
.scn-gilded-chapel .icon-wall {
  position:absolute; top:5%; left:10%; width:80%; height:50%; background: repeating-linear-gradient(45deg, #c8553d 0px, #c8553d 2px, transparent 2px, transparent 6px), repeating-linear-gradient(-45deg, #3a5a8a 0px, #3a5a8a 2px, transparent 2px, transparent 6px); opacity: 0.8; mix-blend-mode: multiply;
}
.scn-gilded-chapel .tsar-portrait {
  position:absolute; top:10%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #e0c080, #c8a45c); border: 4px solid #8a6a2a; border-radius: 8px; box-shadow: 0 0 20px rgba(200,160,60,.6);
}
.scn-gilded-chapel .candle-glow {
  position:absolute; bottom:35%; left:30%; width:4%; height:20%; background: radial-gradient(ellipse at 50% 0%, #ffd680 0%, #b87830 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px #ffd680; animation: gc-candle 3s ease-in-out infinite alternate;
}
.scn-gilded-chapel .worshipper {
  position:absolute; bottom:10%; left:20%; width:10%; height:45%; background: linear-gradient(180deg, #2a1e18, #140e0c); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: gc-pray 6s ease-in-out infinite;
}
@keyframes gc-shimmer { 0% { background-position: 0% 0%; } 50% { background-position: 50% 50%; } 100% { background-position: 100% 100%; } }
@keyframes gc-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.9; } }
@keyframes gc-pray { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }

.scn-report-of-mission {
  background: linear-gradient(180deg, #f0e6d8 0%, #d4c4b0 40%, #b8a490 100%), radial-gradient(ellipse at 30% 70%, #fffae0 0%, transparent 50%);
}
.scn-report-of-mission .window {
  position:absolute; top:10%; right:15%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 50%, #fffae0 0%, #d4c4b0 100%); border: 6px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,180,140,.5);
}
.scn-report-of-mission .wall-shadow {
  position:absolute; inset:0; background: linear-gradient(135deg, rgba(40,30,20,0.3) 0%, transparent 50%, rgba(40,30,20,0.1) 100%); animation: rm-shadow 8s ease-in-out infinite alternate;
}
.scn-report-of-mission .desk {
  position:absolute; bottom:25%; left:10%; width:40%; height:15%; background: linear-gradient(180deg, #8a7a66, #6c5c4a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-report-of-mission .chair {
  position:absolute; bottom:8%; left:15%; width:12%; height:25%; background: linear-gradient(180deg, #4a3e34, #2e241e); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
}
.scn-report-of-mission .figure-reporter {
  position:absolute; bottom:12%; left:25%; width:8%; height:35%; background: linear-gradient(180deg, #2a2622, #14120e); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: rm-reporter 5s ease-in-out infinite;
}
.scn-report-of-mission .figure-official {
  position:absolute; bottom:15%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #3a3028, #1e1814); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: rm-official 7s ease-in-out infinite;
}
.scn-report-of-mission .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #9e8e7a, #807060);
}
.scn-report-of-mission .lamp {
  position:absolute; top:5%; left:10%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 100%, #ffd680 0%, transparent 70%); animation: rm-lamp 4s ease-in-out infinite alternate;
}
@keyframes rm-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rm-reporter { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm-official { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rm-lamp { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(0.95); } }

.scn-natacha-search { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b5 40%, #c9b89a 100%), radial-gradient(ellipse at 50% 80%, #fff8e0 0%, transparent 60%); }

.scn-natacha-search .wall   { position: absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #d4c4a8, #bea88a); border-bottom: 2px solid #9a8264; }
.scn-natacha-search .floor  { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8b6f50, #6b553c); }
.scn-natacha-search .bed    { position: absolute; bottom: 20%; left: 10%; width: 60%; height: 40%; background: linear-gradient(180deg, #7a6348, #5c4832); border-radius: 8px; box-shadow: inset 0 -10px 15px rgba(0,0,0,.3); }
.scn-natacha-search .pillow { position: absolute; bottom: 45%; left: 12%; width: 25%; height: 18%; background: radial-gradient(ellipse, #f0e0c0, #d4bfa0); border-radius: 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: ns-pillow 7s ease-in-out infinite alternate; }
.scn-natacha-search .figure { position: absolute; bottom: 32%; left: 55%; width: 16%; height: 35%; background: linear-gradient(180deg, #3a2e22, #1f1610); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ns-figure 4s ease-in-out infinite; }
.scn-natacha-search .arm    { position: absolute; bottom: 45%; left: 68%; width: 12%; height: 8%; background: #2a1e14; border-radius: 20% 80% 20% 80% / 30% 70% 30% 70%; transform: rotate(-20deg); animation: ns-arm 3s ease-in-out infinite alternate; }
.scn-natacha-search .shadow { position: absolute; bottom: 18%; left: 50%; width: 35%; height: 10%; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(8px); animation: ns-shadow 4s ease-in-out infinite alternate; }

@keyframes ns-pillow { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.95) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ns-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-2deg); } 60% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ns-arm { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-35deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes ns-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-fatalistic-natacha { background: linear-gradient(180deg, #e3d6c0 0%, #c2b094 60%, #9c8870 100%), radial-gradient(ellipse at 30% 70%, #ffe8c0 0%, transparent 60%); }

.scn-fatalistic-natacha .wall-left  { position: absolute; inset: 0 70% 0 0; background: linear-gradient(135deg, #cbb89e, #b39b7e); border-right: 2px solid #8a755a; }
.scn-fatalistic-natacha .wall-right { position: absolute; inset: 0 0 0 30%; background: linear-gradient(225deg, #d4c2a6, #baa488); }
.scn-fatalistic-natacha .floor      { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #6b553c, #4d3b28); }
.scn-fatalistic-natacha .rug        { position: absolute; bottom: 8%; left: 25%; width: 50%; height: 25%; background: radial-gradient(ellipse, #8c3e3e, #5e2222); border-radius: 30%; opacity: 0.6; animation: fn-rug 6s ease-in-out infinite alternate; }
.scn-fatalistic-natacha .figure     { position: absolute; bottom: 30%; left: 45%; width: 18%; height: 40%; background: linear-gradient(180deg, #3d3022, #1f1610); border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fn-figure 5s ease-in-out infinite; }
.scn-fatalistic-natacha .guzla      { position: absolute; bottom: 35%; left: 55%; width: 14%; height: 22%; background: radial-gradient(ellipse, #b8860b, #8b6508); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: fn-guzla 4s ease-in-out infinite alternate; }
.scn-fatalistic-natacha .guzla-neck { position: absolute; bottom: 50%; left: 62%; width: 4%; height: 30%; background: #5c3d0e; transform: rotate(-10deg); border-radius: 10%; }
.scn-fatalistic-natacha .shadow     { position: absolute; bottom: 18%; left: 40%; width: 30%; height: 8%; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(10px); animation: fn-shadow 5s ease-in-out infinite alternate; }

@keyframes fn-rug { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(0.98) translateX(5px); } 100% { transform: scale(1) translateX(0); } }
@keyframes fn-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fn-guzla { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(10deg) scale(0.95); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes fn-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(1); } }

.scn-natacha-morning { background: linear-gradient(180deg, #fdf2e3 0%, #f0dcc0 50%, #d4b88e 100%), radial-gradient(ellipse at 70% 20%, #fff9e0 0%, transparent 60%); }

.scn-natacha-morning .bg              { position: absolute; inset: 0; background: linear-gradient(180deg, #dac8ae, #bea88a); }
.scn-natacha-morning .window          { position: absolute; top: 5%; right: 8%; width: 35%; height: 50%; border: 6px solid #6b553c; background: linear-gradient(180deg, #b8d4e8, #e0f0ff); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: nm-window 10s ease-in-out infinite alternate; }
.scn-natacha-morning .curtain-left    { position: absolute; top: 5%; right: 43%; width: 12%; height: 60%; background: linear-gradient(180deg, #e8d0b0, #c8a882); border-radius: 0 0 20% 0; transform-origin: top right; animation: nm-curtain 8s ease-in-out infinite alternate; }
.scn-natacha-morning .curtain-right   { position: absolute; top: 5%; right: 13%; width: 12%; height: 60%; background: linear-gradient(180deg, #e8d0b0, #c8a882); border-radius: 0 0 0 20%; transform-origin: top left; animation: nm-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-natacha-morning .bed             { position: absolute; bottom: 20%; left: 5%; width: 55%; height: 45%; background: linear-gradient(180deg, #7a6348, #5c4832); border-radius: 12px; box-shadow: inset 0 -8px 12px rgba(0,0,0,.3); }
.scn-natacha-morning .figure-sitting  { position: absolute; bottom: 35%; left: 20%; width: 16%; height: 38%; background: linear-gradient(180deg, #f0dcc0, #d4b88e); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nm-sit 5s ease-in-out infinite; }
.scn-natacha-morning .figure-standing { position: absolute; bottom: 25%; left: 45%; width: 14%; height: 45%; background: linear-gradient(180deg, #c8a882, #a07a5c); border-radius: 40% 40% 30% 30% / 55% 55% 45% 45%; transform-origin: bottom center; animation: nm-stand 6s ease-in-out infinite; }
.scn-natacha-morning .blanket         { position: absolute; bottom: 25%; left: 8%; width: 40%; height: 25%; background: linear-gradient(180deg, #b87333, #9a5a1a); border-radius: 10px 50px 10px 10px; transform-origin: bottom left; animation: nm-blanket 7s ease-in-out infinite alternate; }

@keyframes nm-window { 0% { background: linear-gradient(180deg, #b8d4e8, #e0f0ff); } 50% { background: linear-gradient(180deg, #c0d8f0, #f0f8ff); } 100% { background: linear-gradient(180deg, #b8d4e8, #e0f0ff); } }
@keyframes nm-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes nm-sit { 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 nm-stand { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(3px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nm-blanket { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.95) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-natacha-happy { background: linear-gradient(180deg, #faf0e0 0%, #e8d8c0 50%, #caba9a 100%), radial-gradient(ellipse at 50% 60%, #fff4d0 0%, transparent 60%); }

.scn-natacha-happy .bg           { position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8b0, #b8a88a); }
.scn-natacha-happy .floor        { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8b7558, #66503a); }
.scn-natacha-happy .figure-left  { position: absolute; bottom: 30%; left: 30%; width: 18%; height: 45%; background: linear-gradient(180deg, #d4b88e, #b0906e); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nh-left 5s ease-in-out infinite; }
.scn-natacha-happy .figure-right { position: absolute; bottom: 30%; left: 48%; width: 18%; height: 45%; background: linear-gradient(180deg, #c8a882, #a07a5c); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nh-right 5s ease-in-out infinite; }
.scn-natacha-happy .arms         { position: absolute; bottom: 55%; left: 38%; width: 20%; height: 12%; background: #8a6e50; border-radius: 30% 30% 10% 10%; transform: rotate(-10deg); animation: nh-arms 4s ease-in-out infinite alternate; }
.scn-natacha-happy .light        { position: absolute; bottom: 60%; left: 40%; width: 15%; height: 15%; background: radial-gradient(circle, #fff8c0, rgba(255,248,192,0)); border-radius: 50%; animation: nh-light 6s ease-in-out infinite alternate; }
.scn-natacha-happy .shadow       { position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%; background: rgba(0,0,0,.12); border-radius: 50%; filter: blur(10px); animation: nh-shadow 5s ease-in-out infinite alternate; }

@keyframes nh-left { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(-3px) scaleY(0.98); } 60% { transform: translateX(2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes nh-right { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(3px) scaleY(0.98); } 60% { transform: translateX(-2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes nh-arms { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.05); } 100% { transform: rotate(-10deg) scaleX(1); } }
@keyframes nh-light { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes nh-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.15); } 100% { opacity: 0.3; transform: scaleX(1); } }

/* relief-over-natacha – sunlit, warm */
.scn-relief-over-natacha {
  background: linear-gradient(180deg, #f8d6a0 0%, #e8a85a 40%, #c06030 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 70%);
}
.scn-relief-over-natacha .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9ac8e0 0%, #f8d6a0 100%);
  animation: rel1-sky 12s ease-in-out infinite alternate;
}
.scn-relief-over-natacha .sun {
  position: absolute; top: 18%; left: 62%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #f09040 70%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #f09040;
  animation: rel1-sun 15s ease-in-out infinite alternate;
}
.scn-relief-over-natacha .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  animation: rel1-ground 20s ease-in-out infinite alternate;
}
.scn-relief-over-natacha .figure-left {
  position: absolute; bottom: 35%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rel1-fig-l 4s ease-in-out infinite;
}
.scn-relief-over-natacha .figure-right {
  position: absolute; bottom: 35%; left: 45%; width: 28px; height: 58px;
  background: linear-gradient(135deg, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rel1-fig-r 4.2s ease-in-out infinite;
}
.scn-relief-over-natacha .glow {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,160,80,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: rel1-glow 6s ease-in-out infinite alternate;
}
.scn-relief-over-natacha .petal {
  position: absolute; width: 8px; height: 8px;
  background: #e07050; border-radius: 50%;
  filter: blur(1px);
  animation: rel1-petal 8s ease-in-out infinite;
}
.scn-relief-over-natacha .petal-1 {
  top: 30%; left: 20%;
  animation-delay: 0s;
}
.scn-relief-over-natacha .petal-2 {
  top: 45%; left: 70%;
  animation-delay: -3s;
}
@keyframes rel1-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rel1-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(4px,-2px); } 100% { transform: scale(0.95) translate(-2px,2px); } }
@keyframes rel1-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rel1-fig-l { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(0deg); } }
@keyframes rel1-fig-r { 0%,100% { transform: translateX(0) rotate(0deg) translateY(0); } 25% { transform: translateX(-3px) rotate(-1deg) translateY(-1px); } 50% { transform: translateX(0) rotate(1deg) translateY(0); } 75% { transform: translateX(3px) rotate(0deg) translateY(-1px); } }
@keyframes rel1-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }
@keyframes rel1-petal { 0% { transform: translateY(0) rotate(0deg); opacity: 0.9; } 50% { transform: translateY(-20px) rotate(180deg); opacity: 1; } 100% { transform: translateY(0) rotate(360deg); opacity: 0.8; } }

/* rouletabille-note-on-natacha – tense, dusk */
.scn-rouletabille-note-on-natacha {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #0a0a2e 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a6e 0%, transparent 70%);
}
.scn-rouletabille-note-on-natacha .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: rou2-wall 20s ease-in-out infinite alternate;
}
.scn-rouletabille-note-on-natacha .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: rou2-floor 15s ease-in-out infinite alternate;
}
.scn-rouletabille-note-on-natacha .desk {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rou2-desk 8s ease-in-out infinite;
}
.scn-rouletabille-note-on-natacha .notebook {
  position: absolute; bottom: 32%; left: 36%; width: 40px; height: 28px;
  background: #6a5a4a;
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rou2-note 6s ease-in-out infinite;
}
.scn-rouletabille-note-on-natacha .pen {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 3px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(20deg);
  animation: rou2-pen 4s ease-in-out infinite;
}
.scn-rouletabille-note-on-natacha .lamp {
  position: absolute; bottom: 38%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #f0c860 0%, #d0a040 60%, #402010 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,0.3);
  animation: rou2-lamp 3s ease-in-out infinite alternate;
}
.scn-rouletabille-note-on-natacha .shadow {
  position: absolute; bottom: 18%; left: 28%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: rou2-shadow 10s ease-in-out infinite alternate;
}
@keyframes rou2-wall { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes rou2-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rou2-desk { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } }
@keyframes rou2-note { 0%,100% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-4deg) translate(1px,-1px); } }
@keyframes rou2-pen { 0%,100% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(22deg) translate(1px,0); } }
@keyframes rou2-lamp { 0% { box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 35px 12px #f0a040, 0 0 60px 20px rgba(240,160,64,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #c08030, 0 0 45px 14px rgba(192,128,48,0.25); opacity: 0.95; } }
@keyframes rou2-shadow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.1) scaleY(0.9); } 100% { transform: scaleX(0.95) scaleY(1.05); } }

/* matrena-innocent – tense, dusk */
.scn-matrena-innocent {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #0a0a2e 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a6e 0%, transparent 60%);
}
.scn-matrena-innocent .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: mat3-room 25s ease-in-out infinite alternate;
}
.scn-matrena-innocent .carpet {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(135deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 20% 30% 10% 20% / 40% 30% 40% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: mat3-carpet 18s ease-in-out infinite alternate;
}
.scn-matrena-innocent .table-leg {
  position: absolute; bottom: 35%; left: 35%; width: 8px; height: 50px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: mat3-leg 12s ease-in-out infinite;
}
.scn-matrena-innocent .figure-bent {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mat3-bend 5s ease-in-out infinite;
}
.scn-matrena-innocent .hand {
  position: absolute; bottom: 20%; left: 52%; width: 10px; height: 14px;
  background: #3a2a2a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: mat3-hand 4s ease-in-out infinite;
}
.scn-matrena-innocent .nail {
  position: absolute; bottom: 18%; left: 50%; width: 4px; height: 8px;
  background: #8a7a6a;
  border-radius: 1px;
  box-shadow: 0 0 4px 1px rgba(138,122,106,0.5);
  animation: mat3-nail 6s ease-in-out infinite;
}
.scn-matrena-innocent .spotlight {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,160,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: mat3-spot 8s ease-in-out infinite alternate;
}
@keyframes mat3-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mat3-carpet { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mat3-leg { 0%,100% { transform: translateX(0); } 50% { transform: translateX(1px); } }
@keyframes mat3-bend { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(1px) rotate(0deg); } }
@keyframes mat3-hand { 0%,100% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(12deg) translate(1px,-1px); } }
@keyframes mat3-nail { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mat3-spot { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* looking-for-officers – tense, dusk */
.scn-looking-for-officers {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #0a0a2e 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a4e 0%, transparent 70%);
}
.scn-looking-for-officers .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%);
  animation: loo4-sky 30s ease-in-out infinite alternate;
}
.scn-looking-for-officers .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: loo4-ground 20s ease-in-out infinite alternate;
}
.scn-looking-for-officers .gate {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: loo4-gate 10s ease-in-out infinite;
}
.scn-looking-for-officers .fence-left {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: loo4-fence 15s ease-in-out infinite alternate;
}
.scn-looking-for-officers .fence-right {
  position: absolute; bottom: 15%; right: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: loo4-fence 15s ease-in-out infinite alternate-reverse;
}
.scn-looking-for-officers .figure-o1 {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: loo4-fig1 6s ease-in-out infinite;
}
.scn-looking-for-officers .figure-o2 {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: loo4-fig2 6.5s ease-in-out infinite;
}
.scn-looking-for-officers .figure-o3 {
  position: absolute; bottom: 18%; left: 54%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: loo4-fig3 5.8s ease-in-out infinite;
}
.scn-looking-for-officers .lamp-post {
  position: absolute; bottom: 25%; left: 35%; width: 6px; height: 80px;
  background: #3a2a2a;
  border-radius: 2px;
}
.scn-looking-for-officers .lamp-post::after {
  content: '';
  position: absolute; top: 0; left: -6px; width: 18px; height: 10px;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 60%, #201810 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b09050;
  animation: loo4-lamp 4s ease-in-out infinite alternate;
}
@keyframes loo4-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.95; } }
@keyframes loo4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes loo4-gate { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } }
@keyframes loo4-fence { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes loo4-fig1 { 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 loo4-fig2 { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); } 30% { transform: translateX(-1px) rotate(-0.5deg) scaleY(0.98); } 60% { transform: translateX(1px) rotate(0.5deg) scaleY(1); } }
@keyframes loo4-fig3 { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-2px) rotate(-1deg); } 40% { transform: translateX(0) rotate(0deg); } 60% { transform: translateX(2px) rotate(1deg); } 80% { transform: translateX(0) rotate(0deg); } }
@keyframes loo4-lamp { 0% { box-shadow: 0 0 20px 6px #b09050, 0 0 40px 12px rgba(176,144,80,0.3); } 50% { box-shadow: 0 0 35px 12px #e0c080, 0 0 60px 20px rgba(224,192,128,0.4); } 100% { box-shadow: 0 0 25px 8px #b09050, 0 0 45px 14px rgba(176,144,80,0.35); } }

.scn-self-doubt { background: linear-gradient(180deg, #1a1a2e 0%, #2c2040 40%, #3a2a3e 80%, #1c1820 100%), radial-gradient(ellipse at 50% 70%, #5a4a4a 0%, transparent 70%); }
.scn-self-doubt .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0e0a12 100%); animation: sd-bg 8s ease-in-out infinite alternate; }
.scn-self-doubt .shadow-floor { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: #0a0808; border-radius: 30% 30% 0 0 / 50% 50% 0 0; opacity:.7; animation: sd-floor 12s ease-in-out infinite alternate; }
.scn-self-doubt .door { position:absolute; bottom:20%; left:55%; width:25%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); transform-origin: left center; animation: sd-door 6s ease-in-out infinite alternate; }
.scn-self-doubt .light-slice { position:absolute; bottom:20%; left:56%; width:2%; height:58%; background: linear-gradient(180deg, rgba(200,170,100,0.3) 0%, transparent 80%); box-shadow: 0 0 20px 8px rgba(200,170,100,0.15); animation: sd-light 3s ease-in-out infinite alternate; }
.scn-self-doubt .figure { position:absolute; bottom:22%; left:30%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-figure 4s ease-in-out infinite; }
.scn-self-doubt .dust { position:absolute; top:20%; left:0; right:0; bottom:0; background: radial-gradient(circle at 20% 30%, rgba(255,240,200,0.08) 0%, transparent 30%), radial-gradient(circle at 80% 60%, rgba(255,240,200,0.05) 0%, transparent 50%); filter: blur(2px); animation: sd-dust 20s linear infinite; }
@keyframes sd-bg { 0% { opacity:.9 } 50% { opacity:.6 } 100% { opacity:.8 } }
@keyframes sd-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.02) } }
@keyframes sd-door { 0% { transform: skewX(0deg) rotateY(0deg) } 50% { transform: skewX(-1deg) rotateY(2deg) } 100% { transform: skewX(0.5deg) rotateY(-1deg) } }
@keyframes sd-light { 0% { opacity:.4; box-shadow: 0 0 15px 5px rgba(200,170,100,0.1) } 50% { opacity:.8; box-shadow: 0 0 30px 12px rgba(200,170,100,0.25) } 100% { opacity:.5; box-shadow: 0 0 20px 8px rgba(200,170,100,0.15) } }
@keyframes sd-figure { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(-2px, -1px) rotate(-3deg) } 70% { transform: translate(2px, -2px) rotate(2deg) } 100% { transform: translate(0, -1px) rotate(-1deg) } }
@keyframes sd-dust { 0% { background-position: 0% 0%, 0% 0% } 100% { background-position: 100% 100%, -50% 50% } }

.scn-must-stay { background: linear-gradient(180deg, #121218 0%, #1c1c2a 40%, #2a2a3e 80%, #1a1a22 100%), radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 60%); }
.scn-must-stay .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a22 0%, transparent 100%); animation: ms-bg 10s ease-in-out infinite alternate; }
.scn-must-stay .floor { position:absolute; bottom:0; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: ms-floor 15s ease-in-out infinite alternate; }
.scn-must-stay .door-closed { position:absolute; bottom:20%; left:60%; width:20%; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 4px 8px rgba(0,0,0,.7); transform-origin: right center; animation: ms-door 8s ease-in-out infinite alternate; }
.scn-must-stay .light-crack { position:absolute; bottom:20%; left:58%; width:1.5%; height:55%; background: linear-gradient(180deg, rgba(180,160,100,0.4) 0%, transparent 70%); box-shadow: 0 0 25px 10px rgba(180,160,100,0.2); animation: ms-crack 3s ease-in-out infinite alternate; }
.scn-must-stay .figure { position:absolute; bottom:25%; left:35%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure 6s ease-in-out infinite; }
.scn-must-stay .shadow-creep { position:absolute; bottom:20%; left:30%; width:30%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; animation: ms-creep 8s ease-in-out infinite alternate; }
@keyframes ms-bg { 0% { opacity:.85 } 50% { opacity:.65 } 100% { opacity:.8 } }
@keyframes ms-floor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes ms-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-3deg) } 100% { transform: rotateY(1deg) } }
@keyframes ms-crack { 0% { opacity:.3; box-shadow: 0 0 15px 5px rgba(180,160,100,0.15) } 50% { opacity:.7; box-shadow: 0 0 35px 15px rgba(180,160,100,0.3) } 100% { opacity:.4; box-shadow: 0 0 20px 8px rgba(180,160,100,0.2) } }
@keyframes ms-figure { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(3px, -2px) rotate(2deg) } 75% { transform: translate(-3px, -1px) rotate(-2deg) } 100% { transform: translate(0, -1px) rotate(0deg) } }
@keyframes ms-creep { 0% { transform: scaleX(0.8) translateX(0); opacity:.4 } 50% { transform: scaleX(1.1) translateX(-5%); opacity:.8 } 100% { transform: scaleX(0.9) translateX(3%); opacity:.6 } }

.scn-guest-chamber { background: linear-gradient(180deg, #2a2218 0%, #3a2e20 30%, #4a3a2a 60%, #2e2218 100%), radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 80%); }
.scn-guest-chamber .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a14 0%, transparent 50%, #1e1a14 100%); animation: gc-bg 12s ease-in-out infinite alternate; }
.scn-guest-chamber .bed { position:absolute; bottom:20%; left:10%; width:35%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); animation: gc-bed 9s ease-in-out infinite alternate; }
.scn-guest-chamber .window { position:absolute; top:15%; left:60%; width:25%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a2e1e; border-radius: 6% 6% 10% 10%; animation: gc-window 18s ease-in-out infinite alternate; }
.scn-guest-chamber .drapes { position:absolute; top:15%; left:58%; width:30%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4% 4% 2% 2%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: gc-drapes 6s ease-in-out infinite alternate; }
.scn-guest-chamber .candle { position:absolute; bottom:45%; left:45%; width:4%; height:10%; background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,120,40,0.4); animation: gc-candle 3s ease-in-out infinite alternate; }
.scn-guest-chamber .figure-woman { position:absolute; bottom:25%; left:40%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-woman 5s ease-in-out infinite; }
.scn-guest-chamber .shadow-wall { position:absolute; bottom:20%; left:35%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: gc-shadow 5s ease-in-out infinite alternate; }
@keyframes gc-bg { 0% { opacity:.9 } 50% { opacity:.7 } 100% { opacity:.85 } }
@keyframes gc-bed { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes gc-window { 0% { opacity:.8 } 50% { opacity:.6; transform: scaleY(1.02) } 100% { opacity:.9; transform: scaleY(0.98) } }
@keyframes gc-drapes { 0% { transform: skewX(0deg) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(1deg) } }
@keyframes gc-candle { 0% { opacity:.8; box-shadow: 0 0 15px 4px rgba(200,120,40,0.3) } 50% { opacity:1; box-shadow: 0 0 28px 10px rgba(200,120,40,0.5) } 100% { opacity:.85; box-shadow: 0 0 20px 6px rgba(200,120,40,0.4) } }
@keyframes gc-woman { 0% { transform: translate(0,0) rotate(0deg) } 20% { transform: translate(2px, -3px) rotate(3deg) } 60% { transform: translate(-3px, -1px) rotate(-2deg) } 100% { transform: translate(0, -2px) rotate(1deg) } }
@keyframes gc-shadow { 0% { transform: scaleY(1) opacity(.3) } 50% { transform: scaleY(1.1) opacity(.5) } 100% { transform: scaleY(0.95) opacity(.4) } }

.scn-matrena-weeps { background: linear-gradient(180deg, #1e1a1a 0%, #2e2424 40%, #3a2e2e 80%, #1e1a1a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%); }
.scn-matrena-weeps .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2222 0%, transparent 100%); animation: mw-bg 14s ease-in-out infinite alternate; }
.scn-matrena-weeps .desk { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 6px 10px rgba(0,0,0,.6); animation: mw-desk 10s ease-in-out infinite alternate; }
.scn-matrena-weeps .paper { position:absolute; bottom:28%; left:30%; width:20%; height:15%; background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%); border-radius: 2% 2% 4% 4%; transform-origin: bottom left; animation: mw-paper 8s ease-in-out infinite alternate; }
.scn-matrena-weeps .candle { position:absolute; bottom:38%; left:50%; width:3%; height:8%; background: linear-gradient(180deg, #6a4a1a 0%, #4a2a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 8px rgba(200,120,40,0.5); animation: mw-candle 3s ease-in-out infinite alternate; }
.scn-matrena-weeps .chair { position:absolute; bottom:18%; left:35%; width:15%; height:12%; background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius: 10% 10% 4% 4%; transform-origin: bottom center; animation: mw-chair 7s ease-in-out infinite alternate; }
.scn-matrena-weeps .figure-weeping { position:absolute; bottom:25%; left:42%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-weep 5s ease-in-out infinite; }
@keyframes mw-bg { 0% { opacity:.8 } 50% { opacity:.6 } 100% { opacity:.75 } }
@keyframes mw-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.01) } }
@keyframes mw-paper { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes mw-candle { 0% { opacity:.7; box-shadow: 0 0 12px 4px rgba(200,120,40,0.35) } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(200,120,40,0.5) } 100% { opacity:.8; box-shadow: 0 0 18px 6px rgba(200,120,40,0.4) } }
@keyframes mw-chair { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes mw-weep { 0% { transform: translate(0,0) scaleY(1) } 30% { transform: translate(0, -2px) scaleY(0.95) } 60% { transform: translate(2px, -1px) scaleY(1) } 100% { transform: translate(-1px, -2px) scaleY(0.97) } }

/* between-us-natacha */
.scn-between-us-natacha {
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 40%, #8a6e3a 100%), radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-between-us-natacha .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fadc96 0%, #e8b86a 100%);
  animation: ban1-sky 10s ease-in-out infinite alternate;
}
.scn-between-us-natacha .garden-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a5e32 0%, #4a3a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.4);
  animation: ban1-wall 18s ease-in-out infinite alternate;
}
.scn-between-us-natacha .tree-left {
  position: absolute; bottom: 34%; left: 8%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #4a6a2a 0%, #2a4a12 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: ban1-tree-l 8s ease-in-out infinite alternate;
}
.scn-between-us-natacha .tree-right {
  position: absolute; bottom: 36%; right: 12%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a5a1a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: ban1-tree-r 10s ease-in-out infinite alternate;
}
.scn-between-us-natacha .figure-a {
  position: absolute; bottom: 32%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ban1-fig-a 6s ease-in-out infinite;
}
.scn-between-us-natacha .figure-b {
  position: absolute; bottom: 32%; left: 50%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ban1-fig-b 6s ease-in-out infinite 3s;
}
.scn-between-us-natacha .shadow-whisper {
  position: absolute; bottom: 31%; left: 34%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ban1-shadow 4s ease-in-out infinite;
}
@keyframes ban1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ban1-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ban1-tree-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scale(1.01); } 100% { transform: rotate(-2deg); } }
@keyframes ban1-tree-r { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-4deg) scale(1.02); } 100% { transform: rotate(2deg); } }
@keyframes ban1-fig-a { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -1px) rotate(-2deg); } 50% { transform: translate(0, 0) rotate(0deg); } 75% { transform: translate(-2px, -1px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ban1-fig-b { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 25% { transform: translate(-2px, -1px) rotate(1deg); } 50% { transform: translate(0, 0) rotate(0deg) scale(1.01); } 75% { transform: translate(2px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ban1-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.55; transform: scale(1.2); } 100% { opacity: 0.35; transform: scale(0.9); } }

/* charming-picture-lunch */
.scn-charming-picture-lunch {
  background: linear-gradient(180deg, #87ceeb 0%, #c8e6c9 50%, #a5d6a7 100%), radial-gradient(ellipse at 50% 10%, #fff9c4 0%, transparent 70%);
}
.scn-charming-picture-lunch .summer-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #64b5f6 0%, #90caf9 40%, transparent 100%);
  animation: cpl2-sky 15s ease-in-out infinite alternate;
}
.scn-charming-picture-lunch .garden-green {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #66bb6a 0%, #388e3c 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: cpl2-green 20s ease-in-out infinite alternate;
}
.scn-charming-picture-lunch .table-cloth {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(135deg, #f5f5dc 0%, #edcba0 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cpl2-table 6s ease-in-out infinite;
}
.scn-charming-picture-lunch .chair-left {
  position: absolute; bottom: 26%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #795548 0%, #5d4037 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: cpl2-chair-l 5s ease-in-out infinite alternate;
}
.scn-charming-picture-lunch .chair-right {
  position: absolute; bottom: 26%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #795548 0%, #5d4037 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: cpl2-chair-r 5s ease-in-out infinite alternate 2.5s;
}
.scn-charming-picture-lunch .figure-sit {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cpl2-fig 4s ease-in-out infinite;
}
.scn-charming-picture-lunch .sun-rays {
  position: absolute; top: 8%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff9c4 0%, rgba(255,249,196,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cpl2-sun 12s ease-in-out infinite alternate;
}
@keyframes cpl2-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cpl2-green { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes cpl2-table { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes cpl2-chair-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) scale(1.01); } 100% { transform: rotate(1deg); } }
@keyframes cpl2-chair-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg); } }
@keyframes cpl2-fig { 0% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(2px, -2px) rotate(2deg); } 50% { transform: translate(0, -1px) rotate(0deg); } 75% { transform: translate(-2px, -1px) rotate(-2deg); } 100% { transform: translate(0, 0) rotate(1deg); } }
@keyframes cpl2-sun { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* matrena-in-lodge */
.scn-matrena-in-lodge {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 30% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-matrena-in-lodge .lodge-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: mil3-wall 20s ease-in-out infinite alternate;
}
.scn-matrena-in-lodge .window-light {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fff9c4 0%, #ffe082 50%, #ffb300 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 0 40px 10px #ffd54f, 0 0 80px 20px rgba(255,213,79,0.3);
  animation: mil3-window 4s ease-in-out infinite alternate;
}
.scn-matrena-in-lodge .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 10px, #3a2a1a 10px, #3a2a1a 20px);
  animation: mil3-floor 5s ease-in-out infinite;
}
.scn-matrena-in-lodge .figure-matrena {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mil3-matrena 6s ease-in-out infinite;
}
.scn-matrena-in-lodge .figure-roule {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #120a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mil3-roule 6s ease-in-out infinite 3s;
}
.scn-matrena-in-lodge .door-arch {
  position: absolute; bottom: 15%; right: 15%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: mil3-door 8s ease-in-out infinite alternate;
}
.scn-matrena-in-lodge .shadow-tense {
  position: absolute; bottom: 18%; left: 25%; width: 90px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mil3-shadow 4s ease-in-out infinite;
}
@keyframes mil3-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mil3-window { 0% { box-shadow: 0 0 30px 8px #ffd54f, 0 0 60px 15px rgba(255,213,79,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 50px 15px #ffe082, 0 0 100px 30px rgba(255,224,130,0.4); opacity: 1; } 100% { box-shadow: 0 0 35px 10px #ffb300, 0 0 70px 20px rgba(255,179,0,0.25); opacity: 0.85; } }
@keyframes mil3-floor { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes mil3-matrena { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -1px) rotate(1deg); } 50% { transform: translate(0, 0) rotate(-1deg); } 75% { transform: translate(-1px, -1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes mil3-roule { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 25% { transform: translate(-2px, -1px) rotate(-2deg); } 50% { transform: translate(0, 0) rotate(0deg) scale(1.01); } 75% { transform: translate(2px, -1px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes mil3-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg); } }
@keyframes mil3-shadow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.3); } 100% { opacity: 0.5; transform: scale(0.9); } }

/* item-key-to-veranda */
.scn-item-key-to-veranda {
  background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 40%, #8d6e63 100%), radial-gradient(ellipse at 50% 70%, #ffcc80 0%, transparent 60%);
}
.scn-item-key-to-veranda .veranda-door {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #a1887f 0%, #6d4c41 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.4);
  animation: ikv4-door 12s ease-in-out infinite alternate;
}
.scn-item-key-to-veranda .door-frame {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 160px;
  border: 6px solid #4e342e;
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-sizing: border-box;
  animation: ikv4-frame 8s ease-in-out infinite alternate;
}
.scn-item-key-to-veranda .key-glow {
  position: absolute; top: 55%; left: 48%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #ffd54f 0%, #ffb300 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffca28, 0 0 40px 12px rgba(255,202,40,0.4);
  animation: ikv4-keyglow 2s ease-in-out infinite alternate;
}
.scn-item-key-to-veranda .hand-reach {
  position: absolute; top: 52%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 40% 60% 30% 30% / 50% 50% 30% 30%;
  transform-origin: right center;
  animation: ikv4-hand 3s ease-in-out infinite;
}
.scn-item-key-to-veranda .shadow-key {
  position: absolute; top: 70%; left: 38%; width: 50px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ikv4-shadow 2.5s ease-in-out infinite;
}
.scn-item-key-to-veranda .floor-veranda {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ikv4-floor 15s ease-in-out infinite alternate;
}
@keyframes ikv4-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes ikv4-frame { 0% { border-color: #4e342e; } 50% { border-color: #3e2723; } 100% { border-color: #5d4037; } }
@keyframes ikv4-keyglow { 0% { box-shadow: 0 0 15px 4px #ffca28, 0 0 30px 8px rgba(255,202,40,0.3); } 50% { box-shadow: 0 0 25px 8px #ffd54f, 0 0 50px 16px rgba(255,213,79,0.5); } 100% { box-shadow: 0 0 18px 5px #ffb300, 0 0 35px 10px rgba(255,179,0,0.4); } }
@keyframes ikv4-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ikv4-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.3); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes ikv4-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

/* ---- cannon-against-house ---- */
.scn-cannon-against-house {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1a 70%, #1a1008 100%), radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-cannon-against-house .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2018 0%, #4a3428 100%);
  animation: cn-sky 12s ease-in-out infinite alternate;
}
.scn-cannon-against-house .moon {
  position:absolute; top:8%; right:18%; width:40px; height:40px;
  background: radial-gradient(circle, #e8d8b0 0%, #c8b080 60%, transparent 100%);
  border-radius:50%;
  filter: blur(2px);
  box-shadow: 0 0 30px 10px #c8b080, 0 0 80px 30px rgba(200,176,128,.3);
  animation: cn-moon 20s ease-in-out infinite alternate;
}
.scn-cannon-against-house .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 20% 30% 0 0 / 10% 20% 0 0;
}
.scn-cannon-against-house .house {
  position:absolute; bottom:30%; left:10%; width:120px; height:90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: cn-house 6s ease-in-out infinite;
}
.scn-cannon-against-house .window-glow {
  position:absolute; bottom:40%; left:18%; width:20px; height:26px;
  background: radial-gradient(circle, #f0c060 0%, #d0a040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a040, 0 0 50px 15px rgba(208,160,64,.5);
  animation: cn-glow 3s ease-in-out infinite alternate;
}
.scn-cannon-against-house .cannon {
  position:absolute; bottom:38%; right:20%; width:80px; height:16px;
  background: linear-gradient(90deg, #2a2018 0%, #4a3a2a 50%, #2a2018 100%);
  border-radius: 50% 30% 30% 50% / 100% 100% 100% 100%;
  transform: rotate(-8deg);
  transform-origin: right center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-cannon-against-house .cannonwheel {
  position:absolute; bottom:34%; right:30%; width:30px; height:30px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1e14 70%);
  border-radius:50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: cn-wheel 4s ease-in-out infinite alternate;
}
.scn-cannon-against-house .soldier {
  position:absolute; bottom:33%; right:10%; width:16px; height:36px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cn-soldier 5s ease-in-out infinite;
}
.scn-cannon-against-house .lantern {
  position:absolute; bottom:50%; right:14%; width:8px; height:12px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 16px 4px #d0b060, 0 0 40px 12px rgba(208,176,96,.4);
  animation: cn-lantern 2s ease-in-out infinite alternate;
}
@keyframes cn-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes cn-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-5px) scale(1.02) } 100% { transform: translateX(3px) scale(.98) } }
@keyframes cn-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cn-glow { 0% { opacity:.7; box-shadow: 0 0 15px 4px #b09040 } 50% { opacity:1; box-shadow: 0 0 30px 10px #e0c060 } 100% { opacity:.8; box-shadow: 0 0 20px 6px #b09040 } }
@keyframes cn-wheel { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes cn-soldier { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(-3px) rotate(0deg) } }
@keyframes cn-lantern { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* ---- hundred-roubles-present ---- */
.scn-hundred-roubles-present {
  background: linear-gradient(180deg, #1c1612 0%, #2a1e18 40%, #3a2a20 70%, #1a0e0a 100%), radial-gradient(ellipse at 70% 80%, #4a3428 0%, transparent 70%);
}
.scn-hundred-roubles-present .bkg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a221c 0%, #4a3628 100%);
  animation: hr-bkg 15s ease-in-out infinite alternate;
}
.scn-hundred-roubles-present .street {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%);
  border-radius: 30% 20% 0 0 / 15% 10% 0 0;
}
.scn-hundred-roubles-present .drojki {
  position:absolute; bottom:25%; left:40%; width:100px; height:40px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  transform: rotate(-3deg);
  animation: hr-drojki 4s ease-in-out infinite;
}
.scn-hundred-roubles-present .figure {
  position:absolute; bottom:28%; left:48%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure 3s ease-in-out infinite;
}
.scn-hundred-roubles-present .bag {
  position:absolute; bottom:38%; left:52%; width:22px; height:16px;
  background: radial-gradient(ellipse, #b09060 0%, #806040 70%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hr-bag 2s ease-in-out infinite alternate;
}
.scn-hundred-roubles-present .coin1 {
  position:absolute; bottom:44%; left:55%; width:8px; height:8px;
  background: radial-gradient(circle, #e0c080 0%, #b09050 70%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px #b09050;
  animation: hr-coin1 2.5s ease-in-out infinite;
}
.scn-hundred-roubles-present .coin2 {
  position:absolute; bottom:46%; left:58%; width:6px; height:6px;
  background: radial-gradient(circle, #e0c080 0%, #b09050 70%);
  border-radius:50%;
  box-shadow: 0 0 4px 1px #b09050;
  animation: hr-coin2 3.2s ease-in-out infinite 0.5s;
}
.scn-hundred-roubles-present .lamp {
  position:absolute; top:30%; right:20%; width:10px; height:16px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 70%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 20px 6px #d0b060, 0 0 50px 18px rgba(208,176,96,.4);
  animation: hr-lamp 3s ease-in-out infinite alternate;
}
@keyframes hr-bkg { 0% { opacity:.7 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes hr-drojki { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes hr-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hr-bag { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-8px) rotate(5deg) } 100% { transform: translateY(-3px) rotate(0deg) } }
@keyframes hr-coin1 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-12px) scale(1.2) } 100% { transform: translate(20px,-6px) scale(.9) } }
@keyframes hr-coin2 { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(-8px,-10px) scale(1.1) } 100% { transform: translate(-15px,-4px) scale(.8) } }
@keyframes hr-lamp { 0% { opacity:.8; box-shadow: 0 0 15px 4px #b09040 } 50% { opacity:1; box-shadow: 0 0 30px 10px #e0c060 } 100% { opacity:.85; box-shadow: 0 0 20px 6px #b09040 } }

/* ---- prince-galitch-opinions ---- */
.scn-prince-galitch-opinions {
  background: linear-gradient(180deg, #1a1614 0%, #2a221e 40%, #3a2e24 70%, #1a120e 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-prince-galitch-opinions .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a2e24 0%, #2a221e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-prince-galitch-opinions .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1614 100%);
  border-radius: 10% 20% 0 0 / 5% 10% 0 0;
}
.scn-prince-galitch-opinions .table {
  position:absolute; bottom:20%; left:50%; width:100px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-prince-galitch-opinions .chair1 {
  position:absolute; bottom:22%; left:30%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform: perspective(100px) rotateY(10deg);
  animation: pg-chair1 6s ease-in-out infinite alternate;
}
.scn-prince-galitch-opinions .chair2 {
  position:absolute; bottom:22%; right:30%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e14 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform: perspective(100px) rotateY(-10deg);
  animation: pg-chair2 6s ease-in-out infinite alternate;
}
.scn-prince-galitch-opinions .figure1 {
  position:absolute; bottom:28%; left:35%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-fig1 5s ease-in-out infinite;
}
.scn-prince-galitch-opinions .figure2 {
  position:absolute; bottom:28%; right:35%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-fig2 5s ease-in-out infinite 0.3s;
}
.scn-prince-galitch-opinions .lamp {
  position:absolute; top:25%; left:50%; width:20px; height:28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0d080 0%, #d0b060 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px #d0b060, 0 0 80px 30px rgba(208,176,96,.4);
  animation: pg-lamp 4s ease-in-out infinite alternate;
}
@keyframes pg-chair1 { 0% { transform: perspective(100px) rotateY(10deg) translateY(0) } 50% { transform: perspective(100px) rotateY(15deg) translateY(-2px) } 100% { transform: perspective(100px) rotateY(10deg) translateY(0) } }
@keyframes pg-chair2 { 0% { transform: perspective(100px) rotateY(-10deg) translateY(0) } 50% { transform: perspective(100px) rotateY(-15deg) translateY(-2px) } 100% { transform: perspective(100px) rotateY(-10deg) translateY(0) } }
@keyframes pg-fig1 { 0% { transform: rotate(-1deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes pg-fig2 { 0% { transform: rotate(1deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(1deg) } }
@keyframes pg-lamp { 0% { opacity:.75; box-shadow: 0 0 20px 6px #b09040 } 50% { opacity:1; box-shadow: 0 0 40px 15px #e0c060 } 100% { opacity:.8; box-shadow: 0 0 25px 8px #b09040 } }

/* ---- great-scandal ---- */
.scn-great-scandal {
  background: linear-gradient(180deg, #0c0808 0%, #1c1410 40%, #2a2018 70%, #0e0a08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-great-scandal .bg-curtain {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #2a1a14 0%, #4a2a20 20%, #5a3a2a 50%, #4a2a20 80%, #2a1a14 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%);
  animation: gs-curtain 20s ease-in-out infinite alternate;
}
.scn-great-scandal .throne {
  position:absolute; bottom:10%; left:50%; width:80px; height:120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1e14 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.8);
}
.scn-great-scandal .figure-a {
  position:absolute; bottom:20%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gs-figa 4s ease-in-out infinite;
}
.scn-great-scandal .figure-b {
  position:absolute; bottom:18%; left:45%; width:20px; height:46px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gs-figb 4s ease-in-out infinite 0.2s;
}
.scn-great-scandal .whisper {
  position:absolute; bottom:38%; left:40%; width:10px; height:6px;
  background: radial-gradient(circle, rgba(255,255,200,.4) 0%, transparent 80%);
  border-radius:50%;
  filter: blur(3px);
  animation: gs-whisper 3s ease-in-out infinite alternate;
}
.scn-great-scandal .candle {
  position:absolute; top:30%; right:20%; width:6px; height:20px;
  background: linear-gradient(180deg, #d0b060 0%, #8a7a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #e0c060, 0 0 30px 10px rgba(224,192,96,.3);
  animation: gs-candle 3s ease-in-out infinite alternate;
}
.scn-great-scandal .shadow {
  position:absolute; bottom:10%; left:30%; width:40%; height:20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 70%);
  filter: blur(10px);
  animation: gs-shadow 6s ease-in-out infinite alternate;
}
@keyframes gs-curtain { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gs-figa { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(-4px) rotate(0deg) } }
@keyframes gs-figb { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-6px) rotate(-3deg) } 100% { transform: translateX(3px) rotate(0deg) } }
@keyframes gs-whisper { 0% { opacity:.2; transform: scale(.8) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }
@keyframes gs-candle { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(.95) } }
@keyframes gs-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(1.1) } 100% { opacity:.6; transform: scaleX(.9) } }

.scn-matrena-glance { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%), radial-gradient(ellipse at 30% 70%, #e8d4b4 0%, transparent 60%); }
.scn-matrena-glance .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b4 0%, #c4a882 100%); }
.scn-matrena-glance .window { position:absolute; top:20%; left:30%; width:30%; height:50%; background: linear-gradient(180deg, #b0d4f0 0%, #fff8e0 100%); border: 6px solid #9a7b5a; border-radius:4px; }
.scn-matrena-glance .light { position:absolute; top:40%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%); transform: skewX(-10deg); animation: mg-light 4s ease-in-out infinite; }
.scn-matrena-glance .silhouette.matrena { position:absolute; bottom:20%; left:45%; width:12%; height:40%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mg-figure 3s ease-in-out infinite; }
.scn-matrena-glance .shadow-floor { position:absolute; bottom:20%; left:40%; width:20%; height:5%; background:rgba(0,0,0,0.2); border-radius:50%; filter:blur(4px); animation: mg-shadow 3s ease-in-out infinite; }
.scn-matrena-glance .curtain { position:absolute; top:20%; left:28%; width:4%; height:50%; background:#7a5a3a; border-radius:2px; animation: mg-curtain 6s ease-in-out infinite; }
@keyframes mg-light { 0% { opacity:0.7; } 25% { opacity:1; } 50% { opacity:0.8; } 75% { opacity:1; } 100% { opacity:0.7; } }
@keyframes mg-figure { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(1deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(-1px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes mg-shadow { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.1); } 100% { transform:scaleX(1); } }
@keyframes mg-curtain { 0% { transform:translateX(0); } 50% { transform:translateX(5px); } 100% { transform:translateX(0); } }

.scn-nothing-at-all { background: linear-gradient(180deg, #f0e0c8 0%, #c8b898 100%), radial-gradient(ellipse at 40% 50%, #e0d0b0 0%, transparent 50%); }
.scn-nothing-at-all .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b8 0%, #c0a888 100%); }
.scn-nothing-at-all .window { position:absolute; top:15%; right:20%; width:25%; height:55%; background: linear-gradient(180deg, #b8d8f0 0%, #fff0d0 100%); border: 5px solid #8a6a4a; border-radius:3px; }
.scn-nothing-at-all .figure { position:absolute; bottom:15%; left:35%; width:10%; height:45%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: na-figure 4s ease-in-out infinite; }
.scn-nothing-at-all .passport { position:absolute; bottom:40%; left:38%; width:6%; height:8%; background:#8a6a4a; border-radius:2px; transform:rotate(-15deg); animation: na-passport 4s ease-in-out infinite; }
.scn-nothing-at-all .shadow-figure { position:absolute; bottom:15%; left:32%; width:16%; height:4%; background:rgba(0,0,0,0.15); border-radius:50%; filter:blur(3px); animation: na-shadow 4s ease-in-out infinite; }
.scn-nothing-at-all .desk { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius:5% 5% 0 0; box-shadow:inset 0 4px 8px rgba(0,0,0,0.3); }
@keyframes na-figure { 0% { transform:translateY(0) rotate(0deg); } 20% { transform:translateY(-2px) rotate(1deg); } 40% { transform:translateY(0) rotate(-1deg); } 60% { transform:translateY(-1px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes na-passport { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-10deg) translateY(-2px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes na-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-koupriane-weakens { background: linear-gradient(180deg, #e8d8b8 0%, #c0a888 100%), radial-gradient(ellipse at 60% 40%, #f0e0c8 0%, transparent 70%); }
.scn-koupriane-weakens .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #dcc8a8 0%, #b09878 100%); }
.scn-koupriane-weakens .figure-k { position:absolute; bottom:10%; left:30%; width:14%; height:50%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: kw-figure 2.5s ease-in-out infinite; }
.scn-koupriane-weakens .hand-k { position:absolute; bottom:30%; left:38%; width:6%; height:10%; background:#1a1a1a; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:top; animation: kw-hand 2s ease-in-out infinite; }
.scn-koupriane-weakens .table { position:absolute; bottom:0; left:25%; right:10%; height:10%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius:3% 3% 0 0; }
.scn-koupriane-weakens .bottle { position:absolute; bottom:8%; left:55%; width:3%; height:12%; background:#5a3a2a; border-radius:0 0 50% 50%; transform:rotate(-5deg); animation: kw-bottle 4s ease-in-out infinite; }
.scn-koupriane-weakens .shadow-k { position:absolute; bottom:10%; left:28%; width:18%; height:4%; background:rgba(0,0,0,0.2); border-radius:50%; filter:blur(4px); animation: kw-shadow 2.5s ease-in-out infinite; }
@keyframes kw-figure { 0% { transform:translateY(0) rotate(0deg); } 15% { transform:translateY(-3px) rotate(1.5deg); } 30% { transform:translateY(0) rotate(-1deg); } 45% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes kw-hand { 0% { transform:translateY(0) rotate(0deg); } 20% { transform:translateY(-5px) rotate(-10deg); } 40% { transform:translateY(0) rotate(0deg); } 60% { transform:translateY(-3px) rotate(-5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes kw-bottle { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-1px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes kw-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

.scn-note-book-secret { background: linear-gradient(180deg, #d4c0a8 0%, #a08870 100%), radial-gradient(ellipse at 50% 60%, #e8dcc0 0%, transparent 60%); }
.scn-note-book-secret .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #c8b498 0%, #a08870 100%); }
.scn-note-book-secret .notebook { position:absolute; bottom:20%; left:30%; width:40%; height:40%; background:#f0e8d0; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: ns-notebook 6s ease-in-out infinite; }
.scn-note-book-secret .page { position:absolute; bottom:22%; left:32%; width:36%; height:36%; background:#fff8e0; border-radius:2px; box-shadow:inset 0 0 0 1px #c0b090; animation: ns-page 6s ease-in-out infinite; }
.scn-note-book-secret .hand-n { position:absolute; bottom:35%; left:20%; width:8%; height:18%; background:#1a1a1a; border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:top; animation: ns-hand 2s ease-in-out infinite; }
.scn-note-book-secret .pen { position:absolute; bottom:40%; left:22%; width:2%; height:20%; background:#3a2a1a; border-radius:1px; transform:rotate(30deg); transform-origin:bottom; animation: ns-pen 2s ease-in-out infinite; }
.scn-note-book-secret .shadow-n { position:absolute; bottom:20%; left:40%; width:30%; height:4%; background:rgba(0,0,0,0.15); border-radius:50%; filter:blur(4px); animation: ns-shadow 6s ease-in-out infinite; }
@keyframes ns-notebook { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.02) rotate(1deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes ns-page { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.01) rotate(0.5deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes ns-hand { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-4px) rotate(5deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-2px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ns-pen { 0% { transform:rotate(30deg) translateY(0); } 25% { transform:rotate(35deg) translateY(-3px); } 50% { transform:rotate(30deg) translateY(0); } 75% { transform:rotate(25deg) translateY(-2px); } 100% { transform:rotate(30deg) translateY(0); } }
@keyframes ns-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-from-krestowsky-villa {
  background: linear-gradient(180deg, #5b6d8a 0%, #8a9bb8 30%, #b8c6d4 70%, #d4dce8 100%), radial-gradient(ellipse at 50% 100%, #4a5a70 0%, transparent 60%);
}
.scn-from-krestowsky-villa .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8aa3 0%, #a3b5cc 100%);
  animation: fkv-sky 16s ease-in-out infinite alternate;
}
.scn-from-krestowsky-villa .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  animation: fkv-water 8s ease-in-out infinite alternate;
}
.scn-from-krestowsky-villa .villa-sil {
  position: absolute; bottom: 40%; left: 55%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: fkv-sway 20s ease-in-out infinite;
}
.scn-from-krestowsky-villa .reeds {
  position: absolute; bottom: 35%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: fkv-reeds 3s ease-in-out infinite;
}
.scn-from-krestowsky-villa .reeds-a { left: 20%; animation-delay: 0s; }
.scn-from-krestowsky-villa .reeds-b { left: 25%; animation-delay: 1.5s; }
.scn-from-krestowsky-villa .boat {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 14px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  animation: fkv-boat 6s ease-in-out infinite alternate;
}
.scn-from-krestowsky-villa .mist {
  position: absolute; top: 40%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,210,220,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: fkv-mist 20s linear infinite;
}
@keyframes fkv-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes fkv-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fkv-sway { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fkv-reeds { 0% { transform: rotate(0deg) scaleY(1); } 30% { transform: rotate(2deg) scaleY(1.05); } 70% { transform: rotate(-2deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes fkv-boat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fkv-mist { 0% { transform: translateX(-20px) scale(0.95); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-20px) scale(0.95); } }

.scn-window-locked-explanation {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-window-locked-explanation .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  animation: wle-wall 15s ease-in-out infinite alternate;
}
.scn-window-locked-explanation .window-frame {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #4a4a5a;
  border-radius: 6px;
  animation: wle-frame 4s ease-in-out infinite;
}
.scn-window-locked-explanation .window-pane {
  position: absolute; top: 18%; left: 33%; width: 108px; height: 140px;
  background: radial-gradient(circle at 50% 30%, #8090a0 0%, #6a7a8a 40%, #4a5a6a 100%);
  box-shadow: inset 0 0 30px rgba(100,120,140,0.5);
  animation: wle-pane 3s ease-in-out infinite alternate;
}
.scn-window-locked-explanation .door {
  position: absolute; top: 15%; right: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 5% 5%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.6);
  animation: wle-door 10s ease-in-out infinite;
}
.scn-window-locked-explanation .figure {
  position: absolute; bottom: 10%; left: 45%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wle-figure 5s ease-in-out infinite;
}
.scn-window-locked-explanation .lock {
  position: absolute; top: 55%; left: 36%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c8a850 0%, #a08830 70%);
  border-radius: 20%;
  box-shadow: 0 0 10px 2px rgba(200,168,80,0.6);
  animation: wle-lock 2s ease-in-out infinite alternate;
}
.scn-window-locked-explanation .shadow {
  position: absolute; bottom: 5%; left: 20%; right: 10%; height: 40px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: wle-shadow 7s ease-in-out infinite alternate;
}
@keyframes wle-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wle-frame { 0% { transform: translateX(0); } 50% { transform: translateX(2px) rotate(0.2deg); } 100% { transform: translateX(0); } }
@keyframes wle-pane { 0% { box-shadow: inset 0 0 20px rgba(100,120,140,0.3); } 50% { box-shadow: inset 0 0 40px rgba(100,120,140,0.7); } 100% { box-shadow: inset 0 0 25px rgba(100,120,140,0.4); } }
@keyframes wle-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes wle-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wle-lock { 0% { box-shadow: 0 0 8px 1px rgba(200,168,80,0.4); } 50% { box-shadow: 0 0 16px 4px rgba(200,168,80,0.8); } 100% { box-shadow: 0 0 10px 2px rgba(200,168,80,0.5); } }
@keyframes wle-shadow { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(3px); } 100% { opacity: 0.4; transform: translateY(0); } }

.scn-warned-and-escaped {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 80%);
}
.scn-warned-and-escaped .stairs-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: wae-stairs-bg 12s ease-in-out infinite alternate;
}
.scn-warned-and-escaped .railing {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 100px;
  background: #4a4a5a;
  border-radius: 2px;
  box-shadow: 10px 0 0 #4a4a5a, 20px 0 0 #4a4a5a, 30px 0 0 #4a4a5a, 40px 0 0 #4a4a5a, 50px 0 0 #4a4a5a;
  animation: wae-railing 5s ease-in-out infinite;
}
.scn-warned-and-escaped .figure-down {
  position: absolute; bottom: 10%; left: 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: wae-fdown 4s ease-in-out infinite;
}
.scn-warned-and-escaped .figure-up {
  position: absolute; top: 8%; left: 55%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wae-fup 6s ease-in-out infinite;
}
.scn-warned-and-escaped .shadow-stripe {
  position: absolute; top: 25%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 20%, rgba(0,0,0,0.5) 80%, transparent 100%);
  filter: blur(2px);
  animation: wae-stripe 10s linear infinite;
}
.scn-warned-and-escaped .wall {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: wae-wall 8s ease-in-out infinite alternate;
}
.scn-warned-and-escaped .landing {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15px;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0;
  animation: wae-landing 7s ease-in-out infinite alternate;
}
@keyframes wae-stairs-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wae-railing { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wae-fdown { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wae-fup { 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 wae-stripe { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes wae-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes wae-landing { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-if-it-was-only-that {
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%), radial-gradient(ellipse at 50% 0%, #4a4a3a 0%, transparent 70%);
}
.scn-if-it-was-only-that .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%);
  animation: iiw-backdrop 14s ease-in-out infinite alternate;
}
.scn-if-it-was-only-that .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: iiw-table 8s ease-in-out infinite;
}
.scn-if-it-was-only-that .glass {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8090a0 0%, #6a7a8a 100%);
  border-radius: 0 0 15% 15% / 0 0 20% 20%;
  clip-path: polygon(0 20%, 100% 20%, 100% 100%, 0 100%);
  animation: iiw-glass 3s ease-in-out infinite alternate;
}
.scn-if-it-was-only-that .glass-glow {
  position: absolute; bottom: 27%; left: 44%; width: 36px; height: 44px;
  background: radial-gradient(circle at 50% 40%, rgba(180,200,220,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: iiw-glow 2s ease-in-out infinite alternate;
}
.scn-if-it-was-only-that .rouletabille-sil {
  position: absolute; bottom: 10%; left: 35%; width: 22px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iiw-sil 5s ease-in-out infinite;
}
.scn-if-it-was-only-that .chair {
  position: absolute; bottom: 12%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  animation: iiw-chair 12s ease-in-out infinite alternate;
}
.scn-if-it-was-only-that .lamp {
  position: absolute; top: 5%; left: 60%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #c8a050 0%, #a08030 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.5);
  animation: iiw-lamp 6s ease-in-out infinite;
}
@keyframes iiw-backdrop { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes iiw-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(1px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes iiw-glass { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes iiw-glow { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes iiw-sil { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(0.5deg); } 70% { transform: translateY(1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iiw-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes iiw-lamp { 0% { transform: rotate(0deg); } 30% { transform: rotate(2deg); } 70% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }

/* Scene: item-replacing-potion */
.scn-item-replacing-potion {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a7a8a 60%, #c8b080 100%),
    radial-gradient(ellipse at 60% 20%, #d4a050 0%, transparent 40%);
}
.scn-item-replacing-potion .back-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  animation: irp-wall 12s ease-in-out infinite alternate;
}
.scn-item-replacing-potion .window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px #ffd080;
  animation: irp-window 8s ease-in-out infinite alternate;
}
.scn-item-replacing-potion .dawn-light {
  position: absolute; top: 8%; left: 55%; width: 120px; height: 120px;
  background: radial-gradient(ellipse, #ffd080 0%, rgba(255,208,128,0) 100%);
  opacity: 0.6; filter: blur(10px);
  animation: irp-dawnlight 6s ease-in-out infinite alternate;
}
.scn-item-replacing-potion .table {
  position: absolute; bottom: 10%; left: 20%; width: 160px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: irp-table 20s ease-in-out infinite;
}
.scn-item-replacing-potion .phial {
  position: absolute; bottom: 28%; left: 32%; width: 14px; height: 40px;
  background: linear-gradient(90deg, #b8d8c0 0%, #e8f8e0 50%, #b8d8c0 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 0 12px #80d0a0;
  animation: irp-phial 3s ease-in-out infinite alternate;
}
.scn-item-replacing-potion .hand {
  position: absolute; bottom: 22%; left: 26%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c0a080 0%, #806050 100%);
  border-radius: 40% 30% 30% 40% / 30% 40% 40% 30%;
  transform-origin: bottom center;
  animation: irp-hand 4s ease-in-out infinite;
}
.scn-item-replacing-potion .shadow {
  position: absolute; bottom: 6%; left: 15%; width: 200px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(5px);
  animation: irp-shadow 10s ease-in-out infinite alternate;
}
@keyframes irp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes irp-window { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes irp-dawnlight { 0% { opacity: 0.4; transform: scale(0.95) } 50% { opacity: 0.7; transform: scale(1.05) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes irp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes irp-phial { 0% { opacity: 0.8; box-shadow: 0 0 8px #80d0a0 } 50% { opacity: 1; box-shadow: 0 0 20px #a0e8c0 } 100% { opacity: 0.85; box-shadow: 0 0 10px #80d0a0 } }
@keyframes irp-hand { 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 irp-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }

/* Scene: forbidding-narcotic */
.scn-forbidding-narcotic {
  background:
    linear-gradient(0deg, #0a0a1a 0%, #1a1a3a 50%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 60%);
}
.scn-forbidding-narcotic .darkness {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  animation: fn-dark 15s ease-in-out infinite alternate;
}
.scn-forbidding-narcotic .general-bed {
  position: absolute; bottom: 10%; left: 10%; width: 180px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 30px 30px 10px 10px; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: fn-bed 20s ease-in-out infinite;
}
.scn-forbidding-narcotic .figure-arm {
  position: absolute; bottom: 30%; left: 30%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fn-arm 5s ease-in-out infinite;
}
.scn-forbidding-narcotic .potion-glass {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c8d8c8 0%, #a0b8a0 100%);
  border-radius: 2px 2px 6px 6px; box-shadow: 0 0 8px #80b08a;
  animation: fn-glass 4s ease-in-out infinite alternate;
}
.scn-forbidding-narcotic .candle {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b080 100%);
  border-radius: 4px 4px 2px 2px;
  animation: fn-candle 3s ease-in-out infinite alternate;
}
.scn-forbidding-narcotic .candle-glow {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 100%);
  filter: blur(12px); opacity: 0.6;
  animation: fn-glow 2s ease-in-out infinite alternate;
}
@keyframes fn-dark { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes fn-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fn-arm { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-4px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes fn-glass { 0% { opacity: 0.7; box-shadow: 0 0 6px #80b08a } 50% { opacity: 0.9; box-shadow: 0 0 16px #a0d8b0 } 100% { opacity: 0.75; box-shadow: 0 0 8px #80b08a } }
@keyframes fn-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }
@keyframes fn-glow { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(1) } }

/* Scene: care-free-moment */
.scn-care-free-moment {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 50%, #c0a080 100%),
    radial-gradient(ellipse at 80% 20%, #ffe0b0 0%, transparent 50%);
}
.scn-care-free-moment .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  animation: cfm-wall 20s ease-in-out infinite alternate;
}
.scn-care-free-moment .bed {
  position: absolute; bottom: 8%; left: 15%; width: 200px; height: 90px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 20px 20px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: cfm-bed 15s ease-in-out infinite;
}
.scn-care-free-moment .sleeping-figure {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8b0a0 0%, #a09080 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: cfm-sleep 5s ease-in-out infinite;
}
.scn-care-free-moment .table {
  position: absolute; bottom: 10%; left: 55%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #b8a890 0%, #988070 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-care-free-moment .glass {
  position: absolute; bottom: 18%; left: 60%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #e0f0e0 0%, #c0d8c0 100%);
  border-radius: 2px 2px 6px 6px; box-shadow: 0 0 6px #a0c0a0;
  animation: cfm-glass 6s ease-in-out infinite alternate;
}
.scn-care-free-moment .dawn-window {
  position: absolute; top: 5%; right: 10%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #ffd8a0 0%, #e0c080 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px #ffd080;
  animation: cfm-window 12s ease-in-out infinite alternate;
}
.scn-care-free-moment .gentle-light {
  position: absolute; top: 2%; right: 5%; width: 200px; height: 200px;
  background: radial-gradient(ellipse, #ffe0b0 0%, rgba(255,224,176,0) 100%);
  opacity: 0.4; filter: blur(20px);
  animation: cfm-light 8s ease-in-out infinite alternate;
}
@keyframes cfm-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cfm-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cfm-sleep { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes cfm-glass { 0% { opacity: 0.7; box-shadow: 0 0 4px #a0c0a0 } 50% { opacity: 0.9; box-shadow: 0 0 14px #c0e0c0 } 100% { opacity: 0.75; box-shadow: 0 0 6px #a0c0a0 } }
@keyframes cfm-window { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cfm-light { 0% { opacity: 0.3; transform: scale(0.95) } 50% { opacity: 0.5; transform: scale(1.05) } 100% { opacity: 0.35; transform: scale(1) } }

/* Scene: watch-her-only */
.scn-watch-her-only {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 40% 20%, #d4b060 0%, transparent 50%);
}
.scn-watch-her-only .corridor {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a0a1a 0%, #2a2a3a 50%, #0a0a1a 100%);
  animation: who-corridor 15s ease-in-out infinite alternate;
}
.scn-watch-her-only .doorway {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px #b0a060;
  animation: who-doorway 10s ease-in-out infinite alternate;
}
.scn-watch-her-only .watcher {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: who-watcher 4s ease-in-out infinite;
}
.scn-watch-her-only .her-silhouette {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: who-her 6s ease-in-out infinite;
}
.scn-watch-her-only .lamp {
  position: absolute; top: 8%; left: 30%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 50%, #d0b060 0%, #b09040 100%);
  border-radius: 4px 4px 2px 2px;
  animation: who-lamp 3s ease-in-out infinite alternate;
}
.scn-watch-her-only .lamp-glow {
  position: absolute; top: 4%; left: 26%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0b060 0%, rgba(208,176,96,0) 100%);
  filter: blur(6px); opacity: 0.7;
  animation: who-glow 2.5s ease-in-out infinite alternate;
}
.scn-watch-her-only .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: who-floor 20s ease-in-out infinite;
}
@keyframes who-corridor { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes who-doorway { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes who-watcher { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes who-her { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes who-lamp { 0% { transform: scaleY(1); opacity: 0.8 } 50% { transform: scaleY(1.1); opacity: 1 } 100% { transform: scaleY(0.95); opacity: 0.85 } }
@keyframes who-glow { 0% { opacity: 0.5; transform: scale(0.9) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(1) } }
@keyframes who-floor { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }

.scn-i-do-not-know-her {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a1f1a 50%, #1d1510 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-i-do-not-know-her .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1612 20%, #2d241e 50%, #1a1612 80%);
  animation: idk-wall 10s ease-in-out infinite alternate;
}
.scn-i-do-not-know-her .gaslamp {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px; background: radial-gradient(ellipse at 50% 100%, #f0c068 0%, #a07030 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 30px rgba(240,192,104,0.25), 0 0 120px 60px rgba(160,112,48,0.1);
  animation: idk-lamp 4s ease-in-out infinite alternate;
}
.scn-i-do-not-know-her .table {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #4a3520 0%, #2d1e10 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: idk-table 12s ease-in-out infinite;
}
.scn-i-do-not-know-her .figure-left {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1f1a15 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: idk-figure-l 6s ease-in-out infinite;
}
.scn-i-do-not-know-her .figure-right {
  position: absolute; bottom: 30%; right: 28%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1d1a15 0%, #100c08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: idk-figure-r 7s ease-in-out infinite;
}
.scn-i-do-not-know-her .chair {
  position: absolute; bottom: 28%; left: 38%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #4a3520 0%, #2d1e10 100%); border-radius: 4px 4px 2px 2px;
  animation: idk-chair 8s ease-in-out infinite;
}
.scn-i-do-not-know-her .curtain {
  position: absolute; left: 0; top: 0; bottom: 40%; width: 40px;
  background: linear-gradient(90deg, #2a1f1a 0%, #1a1410 100%);
  border-radius: 0 20% 0 0; filter: blur(2px); animation: idk-curtain 20s linear infinite;
}
@keyframes idk-wall { 0%{ opacity: 0.7 } 50%{ opacity: 0.85 } 100%{ opacity: 0.75 } }
@keyframes idk-lamp { 0%{ box-shadow: 0 0 40px 20px rgba(240,192,104,0.2), 0 0 80px 40px rgba(160,112,48,0.08); transform: translateX(-50%) scaleY(1); } 50%{ box-shadow: 0 0 70px 35px rgba(240,192,104,0.35), 0 0 140px 70px rgba(160,112,48,0.15); transform: translateX(-50%) scaleY(1.02); } 100%{ box-shadow: 0 0 45px 22px rgba(240,192,104,0.22), 0 0 90px 45px rgba(160,112,48,0.1); transform: translateX(-50%) scaleY(0.98); } }
@keyframes idk-table { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } }
@keyframes idk-figure-l { 0%{ transform: rotate(0deg) translateY(0) } 25%{ transform: rotate(2deg) translateY(-1px) } 50%{ transform: rotate(0deg) translateY(0) } 75%{ transform: rotate(-2deg) translateY(-1px) } 100%{ transform: rotate(0deg) translateY(0) } }
@keyframes idk-figure-r { 0%{ transform: rotate(0deg) translateY(0) } 30%{ transform: rotate(-1deg) translateY(-1px) } 60%{ transform: rotate(1deg) translateY(-1px) } 100%{ transform: rotate(0deg) translateY(0) } }
@keyframes idk-chair { 0%,100%{ transform: scale(1) } 50%{ transform: scale(0.95) } }
@keyframes idk-curtain { 0%{ transform: translateX(0) } 100%{ transform: translateX(-5px) } }

.scn-useful-to-revolutionaries {
  background:
    linear-gradient(180deg, #1c1713 0%, #281e1a 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-useful-to-revolutionaries .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1c1713 0%, #2a221c 50%, #1c1713 100%);
  animation: urv-bg 14s ease-in-out infinite alternate;
}
.scn-useful-to-revolutionaries .desk {
  position: absolute; bottom: 22%; left: 25%; right: 25%; height: 14px;
  background: linear-gradient(180deg, #4a3520 0%, #2d1e10 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-useful-to-revolutionaries .papers {
  position: absolute; bottom: 27%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8b89a 0%, #a88a6a 100%); border-radius: 1px; box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: urv-papers 18s ease-in-out infinite;
}
.scn-useful-to-revolutionaries .inkwell {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: urv-ink 5s ease-in-out infinite alternate;
}
.scn-useful-to-revolutionaries .figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: urv-figure 8s ease-in-out infinite;
}
.scn-useful-to-revolutionaries .lamp {
  position: absolute; top: 10%; left: 60%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #e0b050 0%, #a08030 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(224,176,80,0.3), 0 0 100px 50px rgba(160,128,48,0.1);
  animation: urv-lamp 3s ease-in-out infinite alternate;
}
@keyframes urv-bg { 0%{ opacity: 0.8 } 50%{ opacity: 1 } 100%{ opacity: 0.85 } }
@keyframes urv-papers { 0%,100%{ transform: translateY(0) rotate(0deg) } 25%{ transform: translateY(-2px) rotate(1deg) } 50%{ transform: translateY(-1px) rotate(-1deg) } 75%{ transform: translateY(-3px) rotate(2deg) } }
@keyframes urv-ink { 0%{ transform: scale(1) } 100%{ transform: scale(0.9) } }
@keyframes urv-figure { 0%{ transform: translateX(-50%) rotate(0deg) } 30%{ transform: translateX(-50%) rotate(-2deg) translateY(-2px) } 60%{ transform: translateX(-50%) rotate(2deg) translateY(-1px) } 100%{ transform: translateX(-50%) rotate(0deg) } }
@keyframes urv-lamp { 0%{ box-shadow: 0 0 30px 15px rgba(224,176,80,0.2), 0 0 80px 40px rgba(160,128,48,0.08); transform: scaleY(1); } 50%{ box-shadow: 0 0 50px 25px rgba(224,176,80,0.4), 0 0 120px 60px rgba(160,128,48,0.15); transform: scaleY(1.03); } 100%{ box-shadow: 0 0 35px 18px rgba(224,176,80,0.25), 0 0 90px 45px rgba(160,128,48,0.1); transform: scaleY(0.97); } }

.scn-hooligans-stories {
  background:
    linear-gradient(180deg, #2a2018 0%, #3a2c24 50%, #1e1612 100%),
    radial-gradient(ellipse at 50% 60%, #4a3828 0%, transparent 70%);
}
.scn-hooligans-stories .room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a2018 0%, #3a3028 50%, #2a2018 100%);
  animation: hol-room 12s ease-in-out infinite alternate;
}
.scn-hooligans-stories .table-top {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 8px;
  background: linear-gradient(180deg, #5a4028 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-hooligans-stories .toast {
  position: absolute; bottom: 35%; left: 40%; width: 18px; height: 16px;
  background: linear-gradient(135deg, #d8b870 0%, #b89050 100%); border-radius: 30% 30% 20% 20%;
  animation: hol-toast 2s ease-in-out infinite;
}
.scn-hooligans-stories .figure-a {
  position: absolute; bottom: 25%; left: 22%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1e1a15 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hol-fig-a 7s ease-in-out infinite;
}
.scn-hooligans-stories .figure-b {
  position: absolute; bottom: 25%; right: 20%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1c1813 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hol-fig-b 6s ease-in-out infinite;
}
.scn-hooligans-stories .gason {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #c09830 60%, transparent 80%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 50px 25px rgba(240,192,96,0.3), 0 0 100px 50px rgba(192,152,48,0.1);
  animation: hol-gas 4s ease-in-out infinite alternate;
}
@keyframes hol-room { 0%{ opacity: 0.85 } 50%{ opacity: 1 } 100%{ opacity: 0.9 } }
@keyframes hol-toast { 0%,100%{ transform: translateY(0) rotate(0deg) } 25%{ transform: translateY(-12px) rotate(-10deg) } 50%{ transform: translateY(-5px) rotate(5deg) } 75%{ transform: translateY(-18px) rotate(-5deg) } }
@keyframes hol-fig-a { 0%{ transform: rotate(0deg) } 20%{ transform: rotate(-5deg) } 40%{ transform: rotate(3deg) } 60%{ transform: rotate(-2deg) } 80%{ transform: rotate(4deg) } 100%{ transform: rotate(0deg) } }
@keyframes hol-fig-b { 0%{ transform: translateY(0) } 30%{ transform: translateY(-3px) } 60%{ transform: translateY(-1px) } 100%{ transform: translateY(0) } }
@keyframes hol-gas { 0%{ box-shadow: 0 0 35px 18px rgba(240,192,96,0.2), 0 0 80px 40px rgba(192,152,48,0.08); transform: translateX(-50%) scaleY(1); } 50%{ box-shadow: 0 0 60px 30px rgba(240,192,96,0.4), 0 0 130px 65px rgba(192,152,48,0.15); transform: translateX(-50%) scaleY(1.04); } 100%{ box-shadow: 0 0 40px 20px rgba(240,192,96,0.25), 0 0 100px 50px rgba(192,152,48,0.1); transform: translateX(-50%) scaleY(0.96); } }

.scn-belle-onoto-hooligan {
  background:
    linear-gradient(180deg, #1c1814 0%, #2a1e14 40%, #1e1610 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-belle-onoto-hooligan .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1c1814 0%, #2a1e14 100%);
  animation: ono-sky 15s ease-in-out infinite alternate;
}
.scn-belle-onoto-hooligan .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-belle-onoto-hooligan .lamppost {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 2px;
}
.scn-belle-onoto-hooligan .woman {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a15 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ono-woman 8s ease-in-out infinite;
}
.scn-belle-onoto-hooligan .hooligan {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ono-hooligan 6s ease-in-out infinite;
}
.scn-belle-onoto-hooligan .purse {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(135deg, #6a5038 0%, #4a3020 100%);
  border-radius: 20% 20% 30% 30%; transform-origin: top center;
  animation: ono-purse 3s ease-in-out infinite;
}
.scn-belle-onoto-hooligan .lampglow {
  position: absolute; top: 10%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,192,96,0.4) 0%, rgba(192,152,48,0.1) 60%, transparent 100%);
  border-radius: 50%; animation: ono-glow 4s ease-in-out infinite alternate;
}
@keyframes ono-sky { 0%{ opacity: 0.7 } 50%{ opacity: 0.9 } 100%{ opacity: 0.75 } }
@keyframes ono-woman { 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 ono-hooligan { 0%{ transform: translateX(0) } 30%{ transform: translateX(-3px) } 60%{ transform: translateX(2px) } 100%{ transform: translateX(0) } }
@keyframes ono-purse { 0%,100%{ transform: rotate(0deg) scaleY(1) } 25%{ transform: rotate(-15deg) scaleY(0.9) } 50%{ transform: rotate(0deg) scaleY(1) } 75%{ transform: rotate(10deg) scaleY(0.9) } }
@keyframes ono-glow { 0%{ opacity: 0.6; transform: scale(1) } 50%{ opacity: 1; transform: scale(1.2) } 100%{ opacity: 0.7; transform: scale(0.9) } }

.scn-mannikin-in-fat {
  background: linear-gradient(180deg, #2a1f0e 0%, #3a2815 50%, #4a3520 100%), radial-gradient(ellipse at 30% 80%, #c8913a 0%, transparent 60%);
}
.scn-mannikin-in-fat .back-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1e140a 0%, #2a1f0e 50%, #1e140a 100%); z-index: 0;
}
.scn-mannikin-in-fat .glow {
  position: absolute; top: 10%; left: 25%; width: 120px; height: 120px; background: radial-gradient(circle, #ffd080 0%, transparent 80%); animation: mi-glow 3s ease-in-out infinite alternate; z-index: 1;
}
@keyframes mi-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
.scn-mannikin-in-fat .figure-body {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 160px; background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-body 4s ease-in-out infinite; z-index: 2;
}
@keyframes mi-body {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
.scn-mannikin-in-fat .figure-head {
  position: absolute; bottom: 56%; left: 35%; width: 80px; height: 70px; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom center; animation: mi-head 4s ease-in-out infinite; z-index: 3;
}
@keyframes mi-head {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-mannikin-in-fat .glasses {
  position: absolute; bottom: 68%; left: 42%; width: 36px; height: 20px; background: radial-gradient(ellipse at 25% 50%, #4a7a9a 0%, transparent 70%), radial-gradient(ellipse at 75% 50%, #4a7a9a 0%, transparent 70%); border-radius: 10%; animation: mi-glass 2s ease-in-out infinite alternate; z-index: 4;
}
@keyframes mi-glass {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
.scn-mannikin-in-fat .chair {
  position: absolute; bottom: 10%; left: 30%; width: 180px; height: 40px; background: linear-gradient(180deg, #4a3520 0%, #2a1f0e 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); z-index: 1;
}
.scn-mannikin-in-fat .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 200px; height: 40px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: mi-shadow 6s ease-in-out infinite; z-index: 0;
}
@keyframes mi-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(0.9) scaleY(1.2); opacity: 0.6; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
}

.scn-annouchka-lounged {
  background: linear-gradient(180deg, #1e1a14 0%, #2a2218 40%, #3a2a1a 100%), radial-gradient(ellipse at 60% 40%, #c87a2a 0%, transparent 50%);
}
.scn-annouchka-lounged .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #14100a 0%, #1e1a14 50%, #14100a 100%); z-index: 0;
}
.scn-annouchka-lounged .divan {
  position: absolute; bottom: 10%; left: 10%; width: 240px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f0e 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,0.7); z-index: 1;
}
.scn-annouchka-lounged .figure-lounging {
  position: absolute; bottom: 18%; left: 20%; width: 100px; height: 140px; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1f12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-lounge 5s ease-in-out infinite; z-index: 2;
}
@keyframes al-lounge {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(2deg); }
  66% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-annouchka-lounged .figure-watcher {
  position: absolute; bottom: 12%; right: 15%; width: 70px; height: 160px; background: radial-gradient(ellipse at 50% 30%, #2a2218 0%, #0f0a05 100%); border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%; animation: al-watch 4s ease-in-out infinite; z-index: 3;
}
@keyframes al-watch {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
.scn-annouchka-lounged .watcher-shadow {
  position: absolute; bottom: 8%; right: 10%; width: 140px; height: 80px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: al-shadow 6s ease-in-out infinite; z-index: 0;
}
@keyframes al-shadow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.5; }
}
.scn-annouchka-lounged .gaslight {
  position: absolute; top: 5%; right: 45%; width: 20px; height: 30px; background: radial-gradient(circle, #ffc060 0%, transparent 60%); border-radius: 50%; animation: al-light 2s ease-in-out infinite alternate; z-index: 5;
}
@keyframes al-light {
  0% { transform: scale(0.9); opacity: 0.6; }
  100% { transform: scale(1.2); opacity: 1; }
}
.scn-annouchka-lounged .glow {
  position: absolute; top: 0; left: 40%; width: 200px; height: 200px; background: radial-gradient(circle at 50% 30%, rgba(200,122,42,0.3) 0%, transparent 70%); animation: al-glow 5s ease-in-out infinite alternate; z-index: 4;
}
@keyframes al-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-worst-enemies-supper {
  background: linear-gradient(180deg, #1a140e 0%, #2a1f14 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #b07030 0%, transparent 60%);
}
.scn-worst-enemies-supper .table-top {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 20px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); z-index: 1;
}
.scn-worst-enemies-supper .figure-left {
  position: absolute; bottom: 25%; left: 15%; width: 80px; height: 140px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-left 5s ease-in-out infinite; z-index: 2;
}
@keyframes we-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-worst-enemies-supper .figure-right {
  position: absolute; bottom: 25%; right: 15%; width: 80px; height: 140px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: we-right 5s ease-in-out infinite 1s; z-index: 2;
}
@keyframes we-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-worst-enemies-supper .wine-glasses {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 30px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, transparent 70%); border-radius: 50%; box-shadow: 6px 0 4px rgba(0,0,0,0.3); z-index: 3;
}
.scn-worst-enemies-supper .candle {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 40px; background: linear-gradient(180deg, #ffd080 0%, #c88030 100%); border-radius: 10%; box-shadow: 0 0 20px #ffc060; animation: we-candle 2s ease-in-out infinite alternate; z-index: 4;
}
@keyframes we-candle {
  0% { transform: scaleY(0.9); opacity: 0.7; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.8; }
}
.scn-worst-enemies-supper .shadow-divider {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); z-index: 1;
}
.scn-worst-enemies-supper .glow {
  position: absolute; bottom: 25%; left: 30%; width: 200px; height: 100px; background: radial-gradient(ellipse at 50% 0%, rgba(200,120,40,0.4) 0%, transparent 70%); animation: we-glow 4s ease-in-out infinite alternate; z-index: 0;
}
@keyframes we-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-quit-this-country {
  background: linear-gradient(180deg, #1e1814 0%, #2a201a 50%, #3a2a1a 100%), radial-gradient(ellipse at 70% 30%, #a06830 0%, transparent 60%);
}
.scn-quit-this-country .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a120e 0%, #2a1f14 50%, #1a120e 100%); z-index: 0;
}
.scn-quit-this-country .door {
  position: absolute; bottom: 0; left: 60%; width: 100px; height: 180px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: qc-door 8s ease-in-out infinite alternate; z-index: 1;
}
@keyframes qc-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
.scn-quit-this-country .figure-boy {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 120px; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qc-boy 5s ease-in-out infinite; z-index: 2;
}
@keyframes qc-boy {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-quit-this-country .figure-lord {
  position: absolute; bottom: 15%; right: 25%; width: 80px; height: 160px; background: radial-gradient(ellipse at 50% 30%, #2a1f14 0%, #0f0a05 100%); border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: qc-lord 6s ease-in-out infinite 1s; z-index: 2;
}
@keyframes qc-lord {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
.scn-quit-this-country .lord-hand {
  position: absolute; bottom: 40%; right: 20%; width: 30px; height: 10px; background: #2a1f14; border-radius: 50% 50% 30% 30%; transform-origin: bottom left; animation: qc-hand 4s ease-in-out infinite alternate; z-index: 3;
}
@keyframes qc-hand {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(0deg); }
}
.scn-quit-this-country .gas-sconce {
  position: absolute; top: 10%; right: 10%; width: 16px; height: 24px; background: radial-gradient(circle at 50% 60%, #ffc060 0%, transparent 60%); border-radius: 20%; box-shadow: 0 0 20px rgba(255,192,96,0.5); animation: qc-sconce 3s ease-in-out infinite alternate; z-index: 5;
}
@keyframes qc-sconce {
  0% { opacity: 0.7; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}
.scn-quit-this-country .glow {
  position: absolute; top: 5%; right: 5%; width: 200px; height: 200px; background: radial-gradient(circle at 50% 30%, rgba(160,104,48,0.4) 0%, transparent 70%); animation: qc-glow 6s ease-in-out infinite alternate; z-index: 4;
}
@keyframes qc-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* annouchkas-courage */
.scn-annouchkas-courage {
  background:
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a0e08 60%, #0d0705 100%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-annouchkas-courage .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0e08 0%, #0d0705 100%);
  animation: an1-bg 12s ease-in-out infinite alternate;
}
.scn-annouchkas-courage .stage-floor {
  position:absolute; bottom:0; left:10%; right:10%; height:20%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(60,30,10,0.6);
}
.scn-annouchkas-courage .curtain-l {
  position:absolute; top:0; left:0; width:25%; height:100%;
  background: linear-gradient(90deg, #4a2a1a 0%, #3a1a0a 40%, transparent 100%);
  border-radius: 0 40% 60% 0; animation: an1-curtain 8s ease-in-out infinite alternate;
}
.scn-annouchkas-courage .curtain-r {
  position:absolute; top:0; right:0; width:25%; height:100%;
  background: linear-gradient(270deg, #4a2a1a 0%, #3a1a0a 40%, transparent 100%);
  border-radius: 40% 0 0 60%; animation: an1-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-annouchkas-courage .spotlight {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,200,120,0.3) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: an1-spotlight 3s ease-in-out infinite alternate;
}
.scn-annouchkas-courage .singer {
  position:absolute; bottom:15%; left:40%; width:12%; height:50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: an1-singer 4s ease-in-out infinite;
}
.scn-annouchkas-courage .microphone {
  position:absolute; bottom:18%; left:46%; width:1.5%; height:12%;
  background: linear-gradient(180deg, #a08060 0%, #6a4a30 100%);
  border-radius: 20%; box-shadow: 0 0 8px 2px rgba(200,160,100,0.4);
  animation: an1-mic 2s ease-in-out infinite alternate;
}
@keyframes an1-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes an1-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1.02) } }
@keyframes an1-spotlight { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.8; transform: scaleY(0.98) } }
@keyframes an1-singer { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes an1-mic { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* bomb-burst-ten-feet */
.scn-bomb-burst-ten-feet {
  background:
    radial-gradient(ellipse at 50% 50%, #5a2a0a 0%, #1a0a05 70%, #0a0502 100%),
    linear-gradient(180deg, #0a0502 0%, #1a0a05 100%);
}
.scn-bomb-burst-ten-feet .bg-night {
  position:absolute; inset:0; background: linear-gradient(180deg, #0a0502 0%, #1a0a05 100%);
  animation: bb2-bg 10s ease-in-out infinite alternate;
}
.scn-bomb-burst-ten-feet .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-bomb-burst-ten-feet .figure-left {
  position:absolute; bottom:20%; left:20%; width:10%; height:45%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb2-fall 1.5s ease-in infinite;
}
.scn-bomb-burst-ten-feet .figure-right {
  position:absolute; bottom:25%; right:25%; width:10%; height:40%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb2-recoil 0.8s ease-out infinite;
}
.scn-bomb-burst-ten-feet .explosion-core {
  position:absolute; top:30%; left:45%; width:12%; height:12%;
  background: radial-gradient(circle, #ffa060 0%, #d08040 40%, #8a4020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffa060, 0 0 80px 40px rgba(200,100,30,0.5);
  animation: bb2-core 0.4s ease-in-out infinite alternate;
}
.scn-bomb-burst-ten-feet .explosion-flash {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,180,100,0.6) 0%, transparent 60%);
  animation: bb2-flash 0.2s ease-in-out infinite;
}
.scn-bomb-burst-ten-feet .debris-a {
  position:absolute; top:35%; left:30%; width:3%; height:3%;
  background: #4a2a1a; border-radius: 30%;
  animation: bb2-debris 1.2s linear infinite;
}
.scn-bomb-burst-ten-feet .debris-b {
  position:absolute; top:38%; right:32%; width:2.5%; height:2.5%;
  background: #3a1a0a; border-radius: 50%;
  animation: bb2-debris 1.5s linear infinite reverse;
}
@keyframes bb2-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bb2-fall { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(10px) rotate(15deg) } 100% { transform: translateY(20px) rotate(30deg) } }
@keyframes bb2-recoil { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-15px) scaleX(0.8) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes bb2-core { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.8); opacity:0.7 } }
@keyframes bb2-flash { 0% { opacity:0 } 20% { opacity:0.8 } 40% { opacity:0.2 } 100% { opacity:0 } }
@keyframes bb2-debris { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(30px, -20px) rotate(180deg) } 100% { transform: translate(60px, -40px) rotate(360deg) } }

/* enfant-terrible */
.scn-enfant-terrible {
  background:
    radial-gradient(ellipse at 50% 100%, #1a0a05 0%, #0a0502 60%, transparent 100%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
}
.scn-enfant-terrible .bg-room {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  animation: et3-bg 15s ease-in-out infinite alternate;
}
.scn-enfant-terrible .panel-left {
  position:absolute; top:0; left:5%; width:15%; height:100%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 0 0 10%; box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: et3-panel 20s ease-in-out infinite alternate;
}
.scn-enfant-terrible .panel-right {
  position:absolute; top:0; right:5%; width:15%; height:100%;
  background: linear-gradient(270deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 10% 10% 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: et3-panel 20s ease-in-out infinite alternate-reverse;
}
.scn-enfant-terrible .table {
  position:absolute; bottom:10%; left:25%; width:50%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-enfant-terrible .candle {
  position:absolute; bottom:27%; left:48%; width:2%; height:20%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(200,150,60,0.4);
  animation: et3-candle 3s ease-in-out infinite alternate;
}
.scn-enfant-terrible .figure-host {
  position:absolute; bottom:12%; left:35%; width:12%; height:55%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: et3-figure 6s ease-in-out infinite;
}
.scn-enfant-terrible .glass {
  position:absolute; bottom:12%; right:35%; width:3%; height:12%;
  background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, rgba(100,80,60,0.2) 100%);
  border-radius: 0 0 30% 30%; box-shadow: 0 0 6px 1px rgba(200,180,160,0.3);
  animation: et3-glass 4s ease-in-out infinite alternate;
}
@keyframes et3-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes et3-panel { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1.01) } }
@keyframes et3-candle { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } 100% { opacity:0.85; transform: scaleY(0.97) } }
@keyframes et3-figure { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes et3-glass { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

/* volkousky-engineer */
.scn-volkousky-engineer {
  background:
    radial-gradient(ellipse at 50% 0%, #1a0a05 0%, #0a0502 60%, transparent 100%),
    linear-gradient(180deg, #0a0502 0%, #1a0a05 100%);
}
.scn-volkousky-engineer .bg-mine {
  position:absolute; inset:0; background: linear-gradient(180deg, #0a0502 0%, #1a0a05 100%);
  animation: ve4-bg 20s ease-in-out infinite alternate;
}
.scn-volkousky-engineer .wall-cave {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 30% 30% 0 0; clip-path: polygon(0 40%, 20% 20%, 40% 35%, 60% 10%, 80% 25%, 100% 15%, 100% 100%, 0 100%);
}
.scn-volkousky-engineer .rail {
  position:absolute; bottom:22%; left:0; right:0; height:4%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-volkousky-engineer .lantern {
  position:absolute; top:15%; left:35%; width:5%; height:12%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(200,150,60,0.3);
  animation: ve4-lantern 4s ease-in-out infinite alternate;
}
.scn-volkousky-engineer .figure-worker {
  position:absolute; bottom:20%; left:40%; width:12%; height:55%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ve4-worker 3s ease-in-out infinite;
}
.scn-volkousky-engineer .tool {
  position:absolute; bottom:22%; left:48%; width:2%; height:20%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%);
  border-radius: 10% 10% 50% 50%;
  transform-origin: bottom center;
  animation: ve4-tool 3s ease-in-out infinite alternate;
}
.scn-volkousky-engineer .cart {
  position:absolute; bottom:20%; right:15%; width:15%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ve4-cart 6s ease-in-out infinite;
}
@keyframes ve4-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ve4-lantern { 0% { transform: scale(1) rotate(-2deg); opacity:0.9 } 50% { transform: scale(1.05) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.85 } }
@keyframes ve4-worker { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes ve4-tool { 0% { transform: rotate(0) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(0) } }
@keyframes ve4-cart { 0% { transform: translateX(0) } 25% { transform: translateX(-5px) } 50% { transform: translateX(0) } 75% { transform: translateX(3px) } 100% { transform: translateX(0) } }

/* scene: item-pocket-book-souvenir */
.scn-item-pocket-book-souvenir {
  background: 
    radial-gradient(ellipse at 20% 30%, #b87333 0%, transparent 60%),
    linear-gradient(180deg, #3c1f1a 0%, #6b3a2a 30%, #4a2a1a 80%, #1a0f0a 100%);
}
.scn-item-pocket-book-souvenir .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); opacity:0.6; }
.scn-item-pocket-book-souvenir .lamp-glow {
  position:absolute; top:5%; left:15%; width:60px; height:60px;
  border-radius:50%;
  background: radial-gradient(circle at center, #ffcc80 0%, #b87333 40%, transparent 70%);
  box-shadow: 0 0 40px 20px #b87333, 0 0 80px 40px rgba(184,115,51,0.3);
  animation: pbs-glow 4s ease-in-out infinite alternate;
}
.scn-item-pocket-book-souvenir .table {
  position:absolute; bottom:20%; left:25%; right:25%; height:8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1f10 100%);
  border-radius: 8%/20%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: pbs-float-table 6s ease-in-out infinite;
}
.scn-item-pocket-book-souvenir .book {
  position:absolute; bottom:25%; left:38%; width:30px; height:20px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: pbs-book 8s ease-in-out infinite alternate;
}
.scn-item-pocket-book-souvenir .coin {
  position:absolute; bottom:26%; left:48%; width:12px; height:12px;
  background: radial-gradient(circle at 30% 30%, #e8c840 0%, #b89830 70%);
  border-radius:50%;
  box-shadow: 0 0 6px #c8a030;
  animation: pbs-coin 3s ease-in-out infinite;
}
.scn-item-pocket-book-souvenir .performer {
  position:absolute; bottom:22%; left:30%; width:30px; height:70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbs-performer 4s ease-in-out infinite;
}
.scn-item-pocket-book-souvenir .listener {
  position:absolute; bottom:22%; right:25%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: pbs-listener 6s ease-in-out infinite alternate;
}
.scn-item-pocket-book-souvenir .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes pbs-glow { 0%{ opacity:0.8; transform:scale(0.9); } 50%{ opacity:1; transform:scale(1.1); } 100%{ opacity:0.85; transform:scale(0.95); } }
@keyframes pbs-float-table { 0%{ transform:translateY(0); } 50%{ transform:translateY(-2px); } 100%{ transform:translateY(0); } }
@keyframes pbs-book { 0%{ transform:rotate(-5deg) translateY(0); } 50%{ transform:rotate(-3deg) translateY(-1px); } 100%{ transform:rotate(-5deg) translateY(0); } }
@keyframes pbs-coin { 0%{ transform:scale(1) rotate(0deg); } 50%{ transform:scale(1.15) rotate(10deg); } 100%{ transform:scale(1) rotate(0deg); } }
@keyframes pbs-performer { 0%{ transform:translateX(0) rotate(-2deg); } 25%{ transform:translateX(4px) rotate(2deg); } 50%{ transform:translateX(0) rotate(-1deg); } 75%{ transform:translateX(-4px) rotate(1deg); } 100%{ transform:translateX(0) rotate(-2deg); } }
@keyframes pbs-listener { 0%{ transform:scale(0.9) translateY(0); } 50%{ transform:scale(0.92) translateY(-1px); } 100%{ transform:scale(0.9) translateY(0); } }

/* scene: annouchka-spits */
.scn-annouchka-spits {
  background: 
    radial-gradient(ellipse at 50% 30%, #6b3a2a 0%, transparent 60%),
    linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #0a0505 100%);
}
.scn-annouchka-spits .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0f0505 0%, #0a0303 100%); opacity:0.5; }
.scn-annouchka-spits .lamp-small {
  position:absolute; top:25%; left:50%; width:30px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #ffcc80 0%, #b87333 50%, transparent 80%);
  border-radius: 30%;
  box-shadow: 0 0 30px 15px #b87333, 0 0 60px 30px rgba(184,115,51,0.2);
  animation: asp-lamp 3s ease-in-out infinite alternate;
}
.scn-annouchka-spits .figure-left {
  position:absolute; bottom:15%; left:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: asp-figure-left 5s ease-in-out infinite;
}
.scn-annouchka-spits .figure-right {
  position:absolute; bottom:15%; right:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scaleX(-1);
  animation: asp-figure-right 5s ease-in-out infinite reverse;
}
.scn-annouchka-spits .table {
  position:absolute; bottom:18%; left:30%; right:30%; height:6%;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: asp-table 8s ease-in-out infinite;
}
.scn-annouchka-spits .shadow-bar {
  position:absolute; top:0; bottom:0; left:50%; width:2%;
  background: rgba(0,0,0,0.6);
  transform:translateX(-50%);
  filter: blur(4px);
  animation: asp-shadow 6s ease-in-out infinite alternate;
}
.scn-annouchka-spits .chair-left {
  position:absolute; bottom:8%; left:8%; width:20px; height:30px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  transform: rotate(10deg);
  animation: asp-chair 7s ease-in-out infinite;
}
@keyframes asp-lamp { 0%{ opacity:0.8; } 50%{ opacity:1; transform:translateX(-50%) scale(1.05); } 100%{ opacity:0.9; } }
@keyframes asp-figure-left { 0%{ transform:rotate(5deg) translateY(0); } 50%{ transform:rotate(8deg) translateY(-2px); } 100%{ transform:rotate(5deg) translateY(0); } }
@keyframes asp-figure-right { 0%{ transform:rotate(-5deg) translateY(0) scaleX(-1); } 50%{ transform:rotate(-8deg) translateY(-2px) scaleX(-1); } 100%{ transform:rotate(-5deg) translateY(0) scaleX(-1); } }
@keyframes asp-table { 0%{ transform:translateY(0); } 50%{ transform:translateY(-1px); } 100%{ transform:translateY(0); } }
@keyframes asp-shadow { 0%{ opacity:0.4; transform:translateX(-50%) scaleY(0.95); } 50%{ opacity:0.7; transform:translateX(-50%) scaleY(1.05); } 100%{ opacity:0.5; } }
@keyframes asp-chair { 0%{ transform:rotate(10deg) translateY(0); } 50%{ transform:rotate(12deg) translateY(-1px); } 100%{ transform:rotate(10deg) translateY(0); } }

/* scene: condemned-to-death */
.scn-condemned-to-death {
  background: 
    linear-gradient(180deg, #0f050a 0%, #1a0a0a 40%, #0a0303 100%),
    radial-gradient(ellipse at 70% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-condemned-to-death .bg-dungeon { position:absolute; inset:0; background: linear-gradient(135deg, #0f0508 0%, #1a0a0a 70%, #050202 100%); opacity:0.8; }
.scn-condemned-to-death .light-beam {
  position:absolute; top:5%; left:25%; right:30%; bottom:30%;
  background: linear-gradient(135deg, rgba(200,170,100,0.15) 0%, rgba(200,170,100,0.05) 30%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  animation: ctd-beam 6s ease-in-out infinite alternate;
}
.scn-condemned-to-death .window-bars {
  position:absolute; top:2%; left:22%; width:40px; height:60px;
  border: 4px solid #3a2a1a;
  background: rgba(20,15,10,0.4);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: ctd-bars 10s ease-in-out infinite;
}
.scn-condemned-to-death .figure-crouch {
  position:absolute; bottom:20%; left:60%; width:35px; height:50px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: scale(0.8) rotate(-10deg);
  animation: ctd-crouch 4s ease-in-out infinite;
}
.scn-condemned-to-death .wall-shadow {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  pointer-events: none;
}
.scn-condemned-to-death .floor-stone {
  position:absolute; bottom:0; left:0; right:0; height:8%;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #1a0a0a 20px, #2a1a1a 40px);
  background-size: 40px 100%;
  opacity:0.3;
}
@keyframes ctd-beam { 0%{ opacity:0.3; } 50%{ opacity:0.7; } 100%{ opacity:0.4; } }
@keyframes ctd-bars { 0%{ transform:translateY(0); } 50%{ transform:translateY(-2px); } 100%{ transform:translateY(0); } }
@keyframes ctd-crouch { 0%{ transform:scale(0.8) rotate(-10deg) translateY(0); } 50%{ transform:scale(0.85) rotate(-8deg) translateY(-3px); } 100%{ transform:scale(0.8) rotate(-10deg) translateY(0); } }

/* scene: vlassof-engineer */
.scn-vlassof-engineer {
  background: 
    radial-gradient(ellipse at 30% 40%, #5a3020 0%, transparent 60%),
    linear-gradient(180deg, #1a0a0a 0%, #2a1515 40%, #0a0505 100%);
}
.scn-vlassof-engineer .bg-study { position:absolute; inset:0; background: linear-gradient(180deg, #0f0505 0%, #140a0a 100%); opacity:0.6; }
.scn-vlassof-engineer .desk-lamp {
  position:absolute; top:20%; left:25%; width:40px; height:50px;
  background: radial-gradient(circle at 50% 80%, #b87333 0%, #6b3a2a 40%, transparent 70%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 40px 20px #6b3a2a, 0 0 80px 40px rgba(107,58,42,0.3);
  animation: vle-lamp 4s ease-in-out infinite alternate;
}
.scn-vlassof-engineer .desk {
  position:absolute; bottom:20%; left:10%; right:10%; height:8%;
  background: linear-gradient(180deg, #3a1f10 0%, #2a1005 100%);
  border-radius: 4%/12%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: vle-desk 8s ease-in-out infinite;
}
.scn-vlassof-engineer .papers {
  position:absolute; bottom:24%; left:20%; width:40px; height:25px;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: vle-papers 9s ease-in-out infinite alternate;
}
.scn-vlassof-engineer .figure-anna {
  position:absolute; bottom:15%; left:40%; width:35px; height:80px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: vle-anna 5s ease-in-out infinite;
}
.scn-vlassof-engineer .figure-onoto {
  position:absolute; bottom:15%; right:40%; width:35px; height:80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-3deg) scaleX(-1);
  animation: vle-onoto 5s ease-in-out infinite reverse;
}
.scn-vlassof-engineer .chair-back {
  position:absolute; bottom:5%; left:38%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0505 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  transform: rotate(5deg);
  animation: vle-chair 7s ease-in-out infinite;
}
@keyframes vle-lamp { 0%{ opacity:0.8; transform:scale(0.95); } 50%{ opacity:1; transform:scale(1.05); } 100%{ opacity:0.9; } }
@keyframes vle-desk { 0%{ transform:translateY(0); } 50%{ transform:translateY(-1px); } 100%{ transform:translateY(0); } }
@keyframes vle-papers { 0%{ transform:rotate(5deg) translateY(0); } 50%{ transform:rotate(7deg) translateY(-1px); } 100%{ transform:rotate(5deg) translateY(0); } }
@keyframes vle-anna { 0%{ transform:rotate(3deg) translateY(0); } 50%{ transform:rotate(5deg) translateY(-2px); } 100%{ transform:rotate(3deg) translateY(0); } }
@keyframes vle-onoto { 0%{ transform:rotate(-3deg) translateY(0) scaleX(-1); } 50%{ transform:rotate(-5deg) translateY(-2px) scaleX(-1); } 100%{ transform:rotate(-3deg) translateY(0) scaleX(-1); } }
@keyframes vle-chair { 0%{ transform:rotate(5deg) translateY(0); } 50%{ transform:rotate(7deg) translateY(-1px); } 100%{ transform:rotate(5deg) translateY(0); } }

.scn-rouletabille-apologizes {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4b0 30%, #d4b88a 60%, #c8a87a 100%),
    radial-gradient(ellipse at 80% 20%, #fff7e6 0%, transparent 70%);
}
.scn-rouletabille-apologizes .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0debc 0%, #dccba8 100%);
  animation: ra-wall 12s ease-in-out infinite alternate;
}
.scn-rouletabille-apologizes .window {
  position: absolute; top: 8%; left: 15%; width: 35%; height: 45%; background: linear-gradient(180deg, #c8d8e8 0%, #a8c0d8 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px rgba(180,140,90,0.3);
  animation: ra-window 8s ease-in-out infinite alternate;
}
.scn-rouletabille-apologizes .table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 18%; background: linear-gradient(180deg, #a07a5a 0%, #7a5a3a 100%);
  border-radius: 8% 8% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ra-table 6s ease-in-out infinite;
}
.scn-rouletabille-apologizes .plate {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 10%; background: radial-gradient(circle, #f0e0c8 0%, #d4b88a 50%, #c8a070 100%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ra-plate 4s ease-in-out infinite;
}
.scn-rouletabille-apologizes .figure {
  position: absolute; bottom: 10%; left: 42%; width: 12%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-figure 5s ease-in-out infinite;
}
.scn-rouletabille-apologizes .chair {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; transform: rotate(-5deg);
  animation: ra-chair 7s ease-in-out infinite alternate;
}
.scn-rouletabille-apologizes .glow {
  position: absolute; top: 12%; left: 18%; width: 30%; height: 40%; background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: ra-glow 3s ease-in-out infinite alternate;
}
@keyframes ra-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes ra-window {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); }
}
@keyframes ra-table {
  0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.3deg); }
}
@keyframes ra-plate {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ra-figure {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ra-chair {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(-6deg) translateY(1px); }
}
@keyframes ra-glow {
  0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-matrena-queries-rouletabille {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d4b0 30%, #d4b88a 60%, #c8a87a 100%),
    radial-gradient(ellipse at 50% 30%, #fff7e6 0%, transparent 60%);
}
.scn-matrena-queries-rouletabille .bg-room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #e8d4b0 0%, #f0debc 50%, #dccba8 100%);
  animation: mq-bg 14s ease-in-out infinite alternate;
}
.scn-matrena-queries-rouletabille .lamp {
  position: absolute; top: 10%; left: 50%; width: 8%; height: 12%; background: radial-gradient(circle at 50% 30%, #ffd680 0%, #b08040 50%, #5a3a1a 100%);
  border-radius: 50% 50% 20% 20%; transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(255,214,128,0.4);
  animation: mq-lamp 4s ease-in-out infinite alternate;
}
.scn-matrena-queries-rouletabille .figure-matrena {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mq-fig-m 8s ease-in-out infinite;
}
.scn-matrena-queries-rouletabille .figure-rouletabille {
  position: absolute; bottom: 10%; right: 20%; width: 10%; height: 35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mq-fig-r 6s ease-in-out infinite;
}
.scn-matrena-queries-rouletabille .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 14%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: mq-table 10s ease-in-out infinite alternate;
}
.scn-matrena-queries-rouletabille .chair-left {
  position: absolute; bottom: 10%; left: 22%; width: 8%; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; transform: rotate(3deg);
  animation: mq-chair 9s ease-in-out infinite alternate;
}
.scn-matrena-queries-rouletabille .chair-right {
  position: absolute; bottom: 10%; right: 22%; width: 8%; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%; transform: rotate(-3deg);
  animation: mq-chair 9s ease-in-out infinite alternate-reverse;
}
.scn-matrena-queries-rouletabille .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: mq-shadow 12s ease-in-out infinite alternate;
}
@keyframes mq-bg {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes mq-lamp {
  0% { transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); } 100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); }
}
@keyframes mq-fig-m {
  0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mq-fig-r {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mq-table {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(0.99); }
}
@keyframes mq-chair {
  0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(1px); }
}
@keyframes mq-shadow {
  0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; }
}

.scn-emperors-message {
  background: 
    linear-gradient(180deg, #f0debc 0%, #dccba8 30%, #c8b08a 60%, #b89a70 100%),
    radial-gradient(ellipse at 50% 10%, #fff7e6 0%, transparent 50%);
}
.scn-emperors-message .bg-palace {
  position: absolute; inset: 0; background: linear-gradient(90deg, #d4b88a 0%, #e8d4b0 50%, #c8a87a 100%);
  animation: em-bg 16s ease-in-out infinite alternate;
}
.scn-emperors-message .column-left {
  position: absolute; top: 0; left: 15%; width: 6%; height: 100%; background: linear-gradient(90deg, #b89a70 0%, #d4b88a 30%, #c8a87a 60%, #a08050 100%);
  border-radius: 5% 5% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  animation: em-column 20s ease-in-out infinite alternate;
}
.scn-emperors-message .column-right {
  position: absolute; top: 0; right: 15%; width: 6%; height: 100%; background: linear-gradient(270deg, #b89a70 0%, #d4b88a 30%, #c8a87a 60%, #a08050 100%);
  border-radius: 5% 5% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: em-column 20s ease-in-out infinite alternate-reverse;
}
.scn-emperors-message .throne {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 30%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: em-throne 8s ease-in-out infinite;
}
.scn-emperors-message .figure-emperor {
  position: absolute; bottom: 18%; left: 42%; width: 16%; 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: em-fig-e 6s ease-in-out infinite;
}
.scn-emperors-message .figure-messenger {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-fig-m 5s ease-in-out infinite alternate;
}
.scn-emperors-message .light-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%; background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: em-beam 4s ease-in-out infinite alternate;
}
@keyframes em-bg {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes em-column {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); }
}
@keyframes em-throne {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(0.99); }
}
@keyframes em-fig-e {
  0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(1px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes em-fig-m {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes em-beam {
  0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(0.9); }
}

.scn-matrena-reacts {
  background: 
    linear-gradient(180deg, #e8d4b0 0%, #d4b88a 30%, #c8a87a 60%, #b89a70 100%),
    radial-gradient(ellipse at 50% 40%, #fff7e6 0%, transparent 60%);
}
.scn-matrena-reacts .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #dccba8 0%, #e8d4b0 50%, #d4b88a 100%);
  animation: mr-bg 18s ease-in-out infinite alternate;
}
.scn-matrena-reacts .chair {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 35%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: mr-chair 4s ease-in-out infinite;
}
.scn-matrena-reacts .hand {
  position: absolute; bottom: 22%; left: 32%; width: 8%; height: 15%; background: linear-gradient(180deg, #f0dcb8 0%, #d4b88a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: mr-hand 0.8s ease-in-out infinite;
}
.scn-matrena-reacts .face {
  position: absolute; bottom: 40%; left: 25%; width: 20%; height: 28%; background: linear-gradient(180deg, #f0dcb8 0%, #d4b88a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mr-face 2s ease-in-out infinite alternate;
}
.scn-matrena-reacts .shoulder {
  position: absolute; bottom: 10%; left: 18%; width: 25%; height: 20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%;
  animation: mr-shoulder 3s ease-in-out infinite;
}
.scn-matrena-reacts .shadow-sharp {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: mr-shadow 5s ease-in-out infinite alternate;
}
.scn-matrena-reacts .ripple {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse, rgba(200,100,60,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: mr-ripple 1.5s ease-in-out infinite;
}
@keyframes mr-bg {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes mr-chair {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mr-hand {
  0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mr-face {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(0) scale(0.98); }
}
@keyframes mr-shoulder {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mr-shadow {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; }
}
@keyframes mr-ripple {
  0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.2); } 100% { opacity: 0.1; transform: scale(0.9); }
}

/* scene: two-guilty-revealed */
.scn-two-guilty-revealed {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e4cd9a 40%, #c8ad80 100%),
    radial-gradient(ellipse at 50% 20%, #fff3d6 0%, transparent 70%);
}
.scn-two-guilty-revealed .room-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8a87a 0%, #e0c89a 50%, #c8a87a 100%); z-index: 0;
}
.scn-two-guilty-revealed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #a07a50 0%, #7a5a30 100%); z-index: 1;
}
.scn-two-guilty-revealed .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 14px; transform: translateX(-50%); background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); z-index: 2; animation: tgr-table 6s ease-in-out infinite alternate;
}
.scn-two-guilty-revealed .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 18px; height: 24px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.4); z-index: 3; animation: tgr-lamp 3s ease-in-out infinite alternate;
}
.scn-two-guilty-revealed .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 86px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; z-index: 4; animation: tgr-fig-l 4s ease-in-out infinite alternate;
}
.scn-two-guilty-revealed .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 40px; height: 86px; background: linear-gradient(180deg, #1a1a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; z-index: 5; animation: tgr-fig-r 4.5s ease-in-out infinite alternate;
}
.scn-two-guilty-revealed .shadow-cast {
  position: absolute; bottom: 10%; left: 25%; width: 60%; height: 20px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%); z-index: 0; animation: tgr-shadow 6s ease-in-out infinite alternate;
}
@keyframes tgr-table {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes tgr-lamp {
  0% { box-shadow: 0 0 20px 4px #ffd080, 0 0 40px 10px rgba(255,208,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 20px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 4px #ffd080, 0 0 40px 10px rgba(255,208,128,0.3); opacity: 0.9; }
}
@keyframes tgr-fig-l {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes tgr-fig-r {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tgr-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}

/* scene: emperor-declares-innocence */
.scn-emperor-declares-innocence {
  background:
    linear-gradient(180deg, #f5d98a 0%, #e8c170 40%, #d4a35a 100%),
    radial-gradient(ellipse at 50% 30%, #ffedb8 0%, transparent 60%);
}
.scn-emperor-declares-innocence .bg-throne {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b08050 0%, #d4b080 40%, #c09868 100%); z-index: 0;
}
.scn-emperor-declares-innocence .floor-gold {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #a08050 0%, #806030 100%); z-index: 1;
}
.scn-emperor-declares-innocence .window-arch {
  position: absolute; top: 5%; left: 50%; width: 160px; height: 200px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ffedb0 0%, #d4b070 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: inset 0 0 40px rgba(255,200,100,0.3); z-index: 1; animation: edi-window 8s ease-in-out infinite alternate;
}
.scn-emperor-declares-innocence .emperor-fig {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 3; animation: edi-emperor 4s ease-in-out infinite alternate;
}
.scn-emperor-declares-innocence .cape-flow {
  position: absolute; bottom: 18%; left: 45%; width: 80px; height: 90px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 70% 20% 60% 40% / 80% 30% 70% 20%; transform-origin: top left; z-index: 2; animation: edi-cape 6s ease-in-out infinite alternate;
}
.scn-emperor-declares-innocence .ornament-left {
  position: absolute; bottom: 25%; left: 18%; width: 20px; height: 40px; background: linear-gradient(180deg, #c8a040 0%, #806020 100%); border-radius: 30% 30% 10% 10%; z-index: 2; animation: edi-ornament 7s ease-in-out infinite alternate;
}
.scn-emperor-declares-innocence .ornament-right {
  position: absolute; bottom: 25%; right: 18%; width: 20px; height: 40px; background: linear-gradient(180deg, #c8a040 0%, #806020 100%); border-radius: 30% 30% 10% 10%; z-index: 2; animation: edi-ornament 7s ease-in-out infinite alternate-reverse;
}
@keyframes edi-window {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.98); }
  50% { opacity: 1; transform: translateX(-50%) scale(1); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.98); }
}
@keyframes edi-emperor {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes edi-cape {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes edi-ornament {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.8; }
}

/* scene: departure-station */
.scn-departure-station {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 40%, #b8a080 100%),
    radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 60%);
}
.scn-departure-station .station-arcade {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%; background: linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; z-index: 0; animation: dst-arcade 10s ease-in-out infinite alternate;
}
.scn-departure-station .platform {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #907050 0%, #705030 100%); z-index: 1;
}
.scn-departure-station .train-front {
  position: absolute; bottom: 10%; left: 20%; width: 180px; height: 100px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5); z-index: 2; animation: dst-train 6s ease-in-out infinite;
}
.scn-departure-station .steam-left {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%); z-index: 3; animation: dst-steam-l 8s ease-in-out infinite;
}
.scn-departure-station .steam-right {
  position: absolute; bottom: 30%; right: 30%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, transparent 70%); z-index: 3; animation: dst-steam-r 10s ease-in-out infinite reverse;
}
.scn-departure-station .crowd-silhouettes {
  position: absolute; bottom: 8%; left: 30%; width: 140px; height: 60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; z-index: 4; animation: dst-crowd 4s ease-in-out infinite alternate;
}
.scn-departure-station .reporter-fig {
  position: absolute; bottom: 12%; left: 55%; width: 24px; height: 60px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; z-index: 5; animation: dst-reporter 3s ease-in-out infinite alternate;
}
.scn-departure-station .lantern-bracket {
  position: absolute; bottom: 50%; right: 15%; width: 12px; height: 30px; background: #5a3a1a; border-radius: 20% 20% 5% 5%; box-shadow: 0 0 20px 4px #ffd080; z-index: 3; animation: dst-lantern 5s ease-in-out infinite alternate;
}
@keyframes dst-arcade {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}
@keyframes dst-train {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes dst-steam-l {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.3); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.6; }
}
@keyframes dst-steam-r {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(0) scale(1); opacity: 0.5; }
}
@keyframes dst-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes dst-reporter {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dst-lantern {
  0% { box-shadow: 0 0 15px 2px #ffd080; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px #ffd080; opacity: 1; }
  100% { box-shadow: 0 0 15px 2px #ffd080; opacity: 0.8; }
}

/* scene: item-eider-downs-explanation */
.scn-item-eider-downs-explanation {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d0b890 40%, #b89a70 100%),
    radial-gradient(ellipse at 50% 40%, #fff0c8 0%, transparent 70%);
}
.scn-item-eider-downs-explanation .corridor-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #a08060 0%, #c0a080 40%, #a08060 100%); z-index: 0;
}
.scn-item-eider-downs-explanation .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #705030 0%, #503020 100%); z-index: 1;
}
.scn-item-eider-downs-explanation .door-closed {
  position: absolute; bottom: 5%; right: 15%; width: 60px; height: 100px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 2px 0 8px rgba(0,0,0,0.3); z-index: 2; animation: ied-door 5s ease-in-out infinite alternate;
}
.scn-item-eider-downs-explanation .lamp-corridor {
  position: absolute; bottom: 70%; left: 50%; width: 16px; height: 20px; transform: translateX(-50%); background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #ffd080; z-index: 2; animation: ied-lamp 3s ease-in-out infinite alternate;
}
.scn-item-eider-downs-explanation .marechal-fig {
  position: absolute; bottom: 6%; left: 25%; width: 50px; height: 80px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; z-index: 3; animation: ied-marechal 4.5s ease-in-out infinite;
}
.scn-item-eider-downs-explanation .reporter-fig {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; z-index: 4; animation: ied-reporter 3.5s ease-in-out infinite alternate;
}
.scn-item-eider-downs-explanation .funny-shadow {
  position: absolute; bottom: 0; left: 22%; width: 120px; height: 30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 80%); z-index: 0; animation: ied-shadow 5s ease-in-out infinite alternate;
}
@keyframes ied-door {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(-1px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes ied-lamp {
  0% { box-shadow: 0 0 15px 2px #ffd080; opacity: 0.8; transform: translateX(-50%) rotate(-2deg); }
  50% { box-shadow: 0 0 35px 10px #ffd080; opacity: 1; transform: translateX(-50%) rotate(2deg); }
  100% { box-shadow: 0 0 15px 2px #ffd080; opacity: 0.9; transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ied-marechal {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(4px) rotate(-3deg) scaleY(1.02); }
  50% { transform: translateX(0) rotate(0deg) scaleY(1); }
  75% { transform: translateX(-3px) rotate(2deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes ied-reporter {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ied-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-hotel-rat-theory {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2440 50%, #3a3050 100%),
              radial-gradient(ellipse at 40% 20%, #4a4060 0%, transparent 50%);
}
.scn-hotel-rat-theory .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 20%, rgba(255,200,150,0.08) 0%, transparent 70%);
}
.scn-hotel-rat-theory .window {
  position: absolute; top: 8%; left: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a6a8a 0%, #3a3a5a 100%);
  border: 2px solid #2a2a4e; border-radius: 4px;
}
.scn-hotel-rat-theory .window-light {
  position: absolute; top: 8%; left: 5%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.4) 0%, transparent 60%);
  animation: hr-window 8s ease-in-out infinite;
}
.scn-hotel-rat-theory .door {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-hotel-rat-theory .madame {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-madame 6s ease-in-out infinite;
}
.scn-hotel-rat-theory .rat {
  position: absolute; bottom: 20%; left: 60%; width: 12px; height: 8px;
  background: #2a2a3e; border-radius: 50% 50% 40% 40%;
  animation: hr-rat 4s ease-in-out infinite;
}
.scn-hotel-rat-theory .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
@keyframes hr-window {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes hr-madame {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes hr-rat {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(-1); }
  100% { transform: translateX(0) scaleX(1); }
}

.scn-revolutionaries-versus-hotel-rat {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2440 50%, #3a3050 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-revolutionaries-versus-hotel-rat .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.05) 0%, transparent 60%);
}
.scn-revolutionaries-versus-hotel-rat .hallway {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 70%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  transform: perspective(500px) rotateX(10deg);
  border-radius: 0 0 20% 20%;
}
.scn-revolutionaries-versus-hotel-rat .door {
  position: absolute; bottom: 30%; left: 40%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 4px 0 10px rgba(0,0,0,0.5);
}
.scn-revolutionaries-versus-hotel-rat .cavity {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 10px;
  background: #1a1a2e;
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.8);
}
.scn-revolutionaries-versus-hotel-rat .bomb {
  position: absolute; bottom: 32%; left: 48%; width: 20px; height: 16px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  animation: rv-bomb 3s ease-in-out infinite alternate;
}
.scn-revolutionaries-versus-hotel-rat .revolutionary {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv-rev 8s ease-in-out infinite;
}
.scn-revolutionaries-versus-hotel-rat .rat {
  position: absolute; bottom: 30%; right: 25%; width: 14px; height: 10px;
  background: #2a2a3e;
  border-radius: 50% 50% 40% 40%;
  animation: rv-rat 5s ease-in-out infinite alternate;
}
@keyframes rv-bomb {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes rv-rev {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rv-rat {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(-15px) scaleX(-1); }
}

.scn-bomb-outright {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2440 50%, #3a3050 100%),
              radial-gradient(ellipse at 50% 60%, #ffaa40 0%, transparent 40%);
}
.scn-bomb-outright .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,170,64,0.1) 0%, transparent 60%);
}
.scn-bomb-outright .bomb-body {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 40%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
}
.scn-bomb-outright .fuse {
  position: absolute; bottom: 55%; left: 50%; width: 4px; height: 40px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bo-fuse 10s linear infinite;
}
.scn-bomb-outright .spark {
  position: absolute; bottom: 63%; left: 50%; width: 10px; height: 10px;
  transform: translateX(-50%) translateY(-20px);
  background: radial-gradient(circle, #ffd680 0%, #ffaa40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffaa40, 0 0 40px 16px rgba(255,170,64,0.4);
  animation: bo-spark 0.8s ease-in-out infinite alternate;
}
.scn-bomb-outright .explosion-ring {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%) scale(0);
  border-radius: 50%;
  border: 2px solid rgba(255,170,64,0.3);
  background: transparent;
  animation: bo-explosion 5s ease-out infinite;
  opacity: 0;
}
.scn-bomb-outright .hand {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: bo-hand 6s ease-in-out infinite;
}
@keyframes bo-fuse {
  0% { transform: translateX(-50%) rotate(-15deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(-10deg) scaleY(0.95); }
  100% { transform: translateX(-50%) rotate(-15deg) scaleY(1); }
}
@keyframes bo-spark {
  0% { opacity: 0.6; transform: translateX(-50%) translateY(-20px) scale(0.8); }
  50% { opacity: 1; transform: translateX(-50%) translateY(-18px) scale(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) translateY(-20px) scale(0.9); }
}
@keyframes bo-explosion {
  0% { transform: translateX(-50%) scale(0); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.5); opacity: 0.4; }
  100% { transform: translateX(-50%) scale(2); opacity: 0; }
}
@keyframes bo-hand {
  0% { transform: rotate(20deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(-2px); }
  50% { transform: rotate(20deg) translateY(0); }
  75% { transform: rotate(25deg) translateY(-1px); }
  100% { transform: rotate(20deg) translateY(0); }
}

.scn-object-beyond-act {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2440 50%, #3a3050 100%),
              radial-gradient(ellipse at 50% 70%, #4a4060 0%, transparent 50%);
}
.scn-object-beyond-act .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(200,180,220,0.08) 0%, transparent 60%);
}
.scn-object-beyond-act .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-object-beyond-act .bomb {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 32px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ob-bomb 10s ease-in-out infinite alternate;
}
.scn-object-beyond-act .timer {
  position: absolute; bottom: 40%; left: 46%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 6px #2a1a0a;
  animation: ob-timer 60s linear infinite;
}
.scn-object-beyond-act .timer::after {
  content: '';
  position: absolute; top: 5px; left: 9px; width: 2px; height: 6px;
  background: #8a6a4a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ob-hand 60s linear infinite;
}
.scn-object-beyond-act .hand {
  position: absolute; bottom: 50%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: ob-hand-point 8s ease-in-out infinite;
}
.scn-object-beyond-act .shadow {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: ob-shadow 10s ease-in-out infinite alternate;
}
@keyframes ob-bomb {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.03); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.9; }
}
@keyframes ob-timer {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ob-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ob-hand-point {
  0% { transform: rotate(-30deg) translateY(0); }
  25% { transform: rotate(-25deg) translateY(-3px); }
  50% { transform: rotate(-30deg) translateY(0); }
  75% { transform: rotate(-35deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes ob-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}

/* stool-pigeon — dark mood, gaslit */
.scn-stool-pigeon {
  background:
    linear-gradient(135deg, #1a1410 0%, #2a1e1a 30%, #1a1410 60%, #0e0a08 100%),
    radial-gradient(ellipse at 60% 70%, #c07030 0%, transparent 60%);
}
.scn-stool-pigeon .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a08 0%, #1a1410 40%, #0e0a08 100%); animation: spig-breathe 10s ease-in-out infinite alternate; }
.scn-stool-pigeon .gaslight-halo { position:absolute; bottom:25%; left:55%; width:60%; height:60%; background: radial-gradient(ellipse at center, rgba(200,120,40,.45) 0%, rgba(200,120,40,.1) 40%, transparent 70%); transform: translate(-50%, 0); animation: spig-pulse 4s ease-in-out infinite alternate; }
.scn-stool-pigeon .doorway { position:absolute; bottom:15%; left:45%; width:30%; height:70%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 50%, #0e0a08 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7), 0 0 30px rgba(200,120,40,.15); animation: spig-door 12s ease-in-out infinite alternate; }
.scn-stool-pigeon .figure { position:absolute; bottom:18%; left:50%; width:14%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 50%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; filter: drop-shadow(0 0 8px rgba(200,120,40,.2)); animation: spig-appear 14s ease-in-out infinite; }
.scn-stool-pigeon .floor-reflect { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(180deg, rgba(200,120,40,.08) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: spig-flicker 5s ease-in-out infinite alternate; }
.scn-stool-pigeon .moth { position:absolute; top:20%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #c07030 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(200,120,40,.3); animation: spig-moth 12s ease-in-out infinite; }
@keyframes spig-breathe { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes spig-pulse { 0% { opacity:.6; transform: translate(-50%,0) scale(1) } 50% { opacity:1; transform: translate(-50%,0) scale(1.05) } 100% { opacity:.7; transform: translate(-50%,0) scale(.98) } }
@keyframes spig-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes spig-appear { 0% { opacity:.7; transform: translateX(-10%) translateY(5%) scaleX(.9) } 30% { opacity:1; transform: translateX(2%) translateY(0) scaleX(1) } 70% { opacity:1; transform: translateX(-3%) translateY(-2%) scaleX(1.02) } 100% { opacity:.8; transform: translateX(8%) translateY(3%) scaleX(.95) } }
@keyframes spig-flicker { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes spig-moth { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(15px,-20px) rotate(30deg) } 50% { transform: translate(35px,-5px) rotate(70deg) } 75% { transform: translate(15px,10px) rotate(120deg) } 100% { transform: translate(-5px,-15px) rotate(180deg) } }

/* jolly-advocate — calm mood, gaslit */
.scn-jolly-advocate {
  background:
    linear-gradient(180deg, #2a241e 0%, #3a302a 40%, #2a241e 100%),
    radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 65%);
}
.scn-jolly-advocate .theatre-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #2a241e 50%, #1e1814 100%); animation: jadv-dim 18s ease-in-out infinite alternate; }
.scn-jolly-advocate .stage-glow { position:absolute; bottom:20%; left:15%; width:70%; height:50%; background: radial-gradient(ellipse at 50% 40%, rgba(200,140,60,.5) 0%, rgba(200,140,60,.1) 50%, transparent 80%); animation: jadv-pulse 6s ease-in-out infinite alternate; }
.scn-jolly-advocate .box-rail { position:absolute; bottom:30%; left:5%; width:90%; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6040 50%, #5a4a3a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: jadv-rail 14s ease-in-out infinite alternate; }
.scn-jolly-advocate .figure-watch { position:absolute; bottom:32%; left:15%; width:12%; height:35%; background: linear-gradient(180deg, #3a2e28 0%, #1e1814 60%, #0e0a08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: jadv-tiptoe 8s ease-in-out infinite; }
.scn-jolly-advocate .curtain-left { position:absolute; top:0; left:0; width:8%; height:100%; background: linear-gradient(180deg, #5a1a1a 0%, #3a1010 50%, #2a0a0a 100%); border-radius: 0 30% 30% 0; box-shadow: 4px 0 12px rgba(0,0,0,.4); animation: jadv-curtain-l 20s ease-in-out infinite alternate; }
.scn-jolly-advocate .curtain-right { position:absolute; top:0; right:0; width:8%; height:100%; background: linear-gradient(180deg, #5a1a1a 0%, #3a1010 50%, #2a0a0a 100%); border-radius: 30% 0 0 30%; box-shadow: -4px 0 12px rgba(0,0,0,.4); animation: jadv-curtain-r 20s ease-in-out infinite alternate; }
.scn-jolly-advocate .stage-edge { position:absolute; bottom:18%; left:8%; width:84%; height:2px; background: linear-gradient(90deg, transparent 0%, #c08040 20%, #c08040 80%, transparent 100%); filter: blur(1px); animation: jadv-edge 9s ease-in-out infinite alternate; }
@keyframes jadv-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes jadv-pulse { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.04) } 100% { opacity:.7; transform: scale(.98) } }
@keyframes jadv-rail { 0% { opacity:.7; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.8; transform: translateY(1px) } }
@keyframes jadv-tiptoe { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-4px) rotate(-1deg) } 100% { transform: translateX(2px) translateY(0) rotate(0deg) } }
@keyframes jadv-curtain-l { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes jadv-curtain-r { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(2px) } }
@keyframes jadv-edge { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.5) } 100% { opacity:.5; transform: scaleY(1) } }

/* thaddeus-announces-gounsovski — warm mood, gaslit */
.scn-thaddeus-announces-gounsovski {
  background:
    linear-gradient(135deg, #3a2820 0%, #5a3a2a 40%, #3a2820 80%, #2a1a14 100%),
    radial-gradient(ellipse at 50% 50%, #d09050 0%, transparent 70%);
}
.scn-thaddeus-announces-gounsovski .box-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a14 0%, #4a3020 50%, #2a1a14 100%); animation: thadv-breathe 15s ease-in-out infinite alternate; }
.scn-thaddeus-announces-gounsovski .stage-arch { position:absolute; bottom:20%; left:10%; width:80%; height:55%; background: linear-gradient(135deg, #5a3a2a 0%, #7a5040 30%, #5a3a2a 70%, #3a2820 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,.5), 0 10px 30px rgba(0,0,0,.4); animation: thadv-arch 22s ease-in-out infinite alternate; }
.scn-thaddeus-announces-gounsovski .box-seat { position:absolute; bottom:18%; left:5%; width:25%; height:15%; background: linear-gradient(180deg, #4a3020 0%, #2a1a14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: thadv-seat 10s ease-in-out infinite alternate; }
.scn-thaddeus-announces-gounsovski .figure-rouletabille { position:absolute; bottom:22%; left:10%; width:10%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a14 60%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: thadv-roule 6s ease-in-out infinite; }
.scn-thaddeus-announces-gounsovski .figure-thaddeus { position:absolute; bottom:20%; left:28%; width:12%; height:32%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2820 50%, #1a1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: thadv-thad 8s ease-in-out infinite; }
.scn-thaddeus-announces-gounsovski .public-shapes { position:absolute; bottom:25%; left:50%; width:40%; height:18%; background: radial-gradient(ellipse at 30% 50%, rgba(180,140,80,.15) 0%, transparent 60%), radial-gradient(ellipse at 70% 50%, rgba(180,140,80,.1) 0%, transparent 50%); border-radius: 40%; filter: blur(8px); animation: thadv-public 20s ease-in-out infinite alternate; }
.scn-thaddeus-announces-gounsovski .curtain-top { position:absolute; top:0; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #5a2018 0%, #3a1410 50%, #2a0a08 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: thadv-curtain 25s ease-in-out infinite alternate; }
@keyframes thadv-breathe { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes thadv-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes thadv-seat { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes thadv-roule { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(2px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes thadv-thad { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(5px) translateY(-3px) rotate(3deg) } 66% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(3px) translateY(0) rotate(1deg) } }
@keyframes thadv-public { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.03) } 100% { opacity:.5; transform: scale(.98) } }
@keyframes thadv-curtain { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }

/* gounsovski-in-onoto-dressing-room — funny mood, gaslit */
.scn-gounsovski-in-onoto-dressing-room {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a3020 70%, #2a1a10 100%),
    radial-gradient(ellipse at 60% 40%, #d09040 0%, transparent 60%);
}
.scn-gounsovski-in-onoto-dressing-room .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #4a3020 50%, #2a1a10 100%); animation: gono-swim 20s ease-in-out infinite alternate; }
.scn-gounsovski-in-onoto-dressing-room .mirror-frame { position:absolute; top:8%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #6a4a30 0%, #3a2818 50%, #2a1a10 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 8px 20px rgba(0,0,0,.3); animation: gono-frame 12s ease-in-out infinite alternate; }
.scn-gounsovski-in-onoto-dressing-room .mirror-glass { position:absolute; top:12%; left:33%; width:34%; height:37%; background: linear-gradient(135deg, rgba(180,160,120,.3) 0%, rgba(200,180,140,.1) 50%, rgba(160,140,100,.2) 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(255,200,100,.05); filter: blur(1px); animation: gono-mirror 8s ease-in-out infinite alternate; }
.scn-gounsovski-in-onoto-dressing-room .dressing-table { position:absolute; bottom:25%; left:28%; width:44%; height:8%; background: linear-gradient(180deg, #5a3a28 0%, #3a2818 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: gono-table 14s ease-in-out infinite alternate; }
.scn-gounsovski-in-onoto-dressing-room .figure-gounsovski { position:absolute; bottom:2%; left:20%; width:22%; height:55%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 50%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%; transform-origin: bottom center; animation: gono-goun 5s ease-in-out infinite; }
.scn-gounsovski-in-onoto-dressing-room .figure-onoto { position:absolute; bottom:4%; right:18%; width:18%; height:48%; background: linear-gradient(180deg, #5a3828 0%, #3a2018 50%, #1a1008 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: gono-ono 6s ease-in-out infinite; }
.scn-gounsovski-in-onoto-dressing-room .lamp-glow { position:absolute; top:5%; right:15%; width:10%; height:10%; background: radial-gradient(circle, #e0b060 0%, #c08040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,140,60,.5), 0 0 80px 20px rgba(200,140,60,.2); animation: gono-lamp 4s ease-in-out infinite alternate; }
.scn-gounsovski-in-onoto-dressing-room .chair-tilt { position:absolute; bottom:14%; left:45%; width:14%; height:18%; background: linear-gradient(135deg, #5a4030 0%, #3a2820 50%, #2a1a14 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: gono-chair 7s ease-in-out infinite; }
@keyframes gono-swim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gono-frame { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(2px) scale(.99) } }
@keyframes gono-mirror { 0% { opacity:.6; transform: scale(1) rotate(0deg) } 50% { opacity:.8; transform: scale(1.02) rotate(1deg) } 100% { opacity:.7; transform: scale(.99) rotate(-1deg) } }
@keyframes gono-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes gono-goun { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1) } 20% { transform: translateX(8px) translateY(-4px) rotate(4deg) scale(1.03) } 40% { transform: translateX(-4px) translateY(-2px) rotate(-3deg) scale(.98) } 60% { transform: translateX(12px) translateY(2px) rotate(2deg) scale(1.02) } 80% { transform: translateX(-6px) translateY(0) rotate(-2deg) scale(1) } 100% { transform: translateX(4px) translateY(-1px) rotate(1deg) scale(1.01) } }
@keyframes gono-ono { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-6px) translateY(-3px) rotate(-3deg) } 50% { transform: translateX(4px) translateY(0) rotate(2deg) } 75% { transform: translateX(-8px) translateY(-2px) rotate(-4deg) } 100% { transform: translateX(2px) translateY(0) rotate(0deg) } }
@keyframes gono-lamp { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.06) } 100% { opacity:.7; transform: scale(.96) } }
@keyframes gono-chair { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(-3px) rotate(-3deg) } 75% { transform: translateX(8px) rotate(7deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-horses-and-champagne { background: linear-gradient(180deg, #feedb0 0%, #fad67a 40%, #e8a84a 100%), radial-gradient(ellipse at 30% 70%, #fcedb5 0%, transparent 60%); }
.scn-horses-and-champagne .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fff2c8 0%, #fbd67a 40%, #e8a84a 100%); animation: hac-drift1 25s ease-in-out infinite alternate; }
.scn-horses-and-champagne .window { position:absolute; top:8%; left:60%; width:35%; height:45%; background: linear-gradient(135deg, rgba(255,255,220,.9) 0%, rgba(200,160,120,.5) 100%); border: 4px solid #ac7a4a; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,200,100,.3); animation: hac-pulse 4s ease-in-out infinite; }
.scn-horses-and-champagne .table { position:absolute; bottom:15%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #cc9966 0%, #b08050 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.15); }
.scn-horses-and-champagne .bottle1 { position:absolute; bottom:26%; left:20%; width:20px; height:60px; background: linear-gradient(180deg, #6d4c2e 0%, #4a3220 100%); border-radius: 4px 4px 8px 8px; transform: rotate(-8deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: hac-sway 5s ease-in-out infinite; }
.scn-horses-and-champagne .bottle2 { position:absolute; bottom:28%; left:70%; width:18px; height:50px; background: linear-gradient(180deg, #6d4c2e 0%, #4a3220 100%); border-radius: 4px 4px 8px 8px; transform: rotate(12deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: hac-sway 6s ease-in-out infinite -1s; }
.scn-horses-and-champagne .glass1 { position:absolute; bottom:30%; left:40%; width:16px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,.7) 0%, rgba(220,200,180,.5) 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 0 12px 4px #fce8a0; animation: hac-glow 3s ease-in-out infinite; }
.scn-horses-and-champagne .glass2 { position:absolute; bottom:30%; left:55%; width:16px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,.7) 0%, rgba(220,200,180,.5) 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 0 12px 4px #fce8a0; animation: hac-glow 3s ease-in-out infinite -1.5s; }
.scn-horses-and-champagne .horse-head { position:absolute; bottom:40%; left:5%; width:60px; height:70px; background: linear-gradient(180deg, #8c6e4e 0%, #5e442e 100%); border-radius: 50% 60% 30% 40% / 60% 50% 40% 50%; transform: rotate(10deg); box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: hac-nod 2.5s ease-in-out infinite; }
.scn-horses-and-champagne .horse-head::after { content:""; position:absolute; top:20%; left:65%; width:12px; height:12px; background: #3a281a; border-radius: 50%; }
.scn-horses-and-champagne .confetti { position:absolute; top:20%; left:30%; width:100%; height:100%; background: repeating-linear-gradient(45deg, #f5c842 0px, #f5c842 4px, transparent 4px, transparent 8px, #c8553d 8px, #c8553d 12px, transparent 12px, transparent 16px); animation: hac-confetti 12s linear infinite; opacity: .6; }
@keyframes hac-drift1 { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes hac-pulse { 0% { box-shadow: inset 0 0 30px rgba(255,200,100,.3); } 50% { box-shadow: inset 0 0 50px rgba(255,200,100,.6); } 100% { box-shadow: inset 0 0 30px rgba(255,200,100,.3); } }
@keyframes hac-sway { 0% { transform: rotate(-8deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-8deg); } }
@keyframes hac-glow { 0% { box-shadow: 0 0 12px 4px #fce8a0; } 50% { box-shadow: 0 0 24px 8px #ffd780; } 100% { box-shadow: 0 0 12px 4px #fce8a0; } }
@keyframes hac-nod { 0% { transform: rotate(10deg); } 25% { transform: rotate(14deg) translateY(-2px); } 50% { transform: rotate(6deg) translateY(2px); } 75% { transform: rotate(12deg) translateY(-1px); } 100% { transform: rotate(10deg); } }
@keyframes hac-confetti { 0% { background-position: 0 0; } 100% { background-position: 64px 64px; } }

.scn-horses-drink-toast { background: linear-gradient(180deg, #fce7b2 0%, #f5ce7a 50%, #dca550 100%), radial-gradient(ellipse at 80% 60%, #fcf0d0 0%, transparent 50%); }
.scn-horses-drink-toast .dawn-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fff5d6 0%, #fad480 60%, #e2a84a 100%); animation: hdt-drift 30s linear infinite alternate; }
.scn-horses-drink-toast .pail { position:absolute; bottom:20%; left:40%; width:80px; height:70px; background: linear-gradient(90deg, #9a8060 0%, #b8a080 50%, #8a6040 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; box-shadow: 0 12px 20px rgba(0,0,0,.3); animation: hdt-sway 4s ease-in-out infinite; }
.scn-horses-drink-toast .pail::before { content:""; position:absolute; top:-8px; left:50%; width:60px; height:12px; transform:translateX(-50%); background: #8a6040; border-radius: 6px; }
.scn-horses-drink-toast .hoof { position:absolute; bottom:32%; left:20%; width:24px; height:18px; background: #5a4030; border-radius: 40% 40% 20% 20%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hdt-hoof-lift 1.8s ease-in-out infinite; }
.scn-horses-drink-toast .glass { position:absolute; bottom:38%; left:18%; width:14px; height:22px; background: linear-gradient(180deg, rgba(255,255,240,.8) 0%, rgba(210,190,160,.6) 100%); border-radius: 2px 2px 6px 6px; box-shadow: 0 0 14px 6px #fce8a0; animation: hdt-glow 2.5s ease-in-out infinite; }
.scn-horses-drink-toast .bubbles-a { position:absolute; bottom:42%; left:18%; width:12px; height:30px; background: radial-gradient(circle at 50% 100%, rgba(255,255,255,.6) 2px, transparent 2px); background-size: 6px 6px; animation: hdt-rise 3s linear infinite; }
.scn-horses-drink-toast .bubbles-b { position:absolute; bottom:42%; left:24%; width:12px; height:30px; background: radial-gradient(circle at 50% 100%, rgba(255,255,255,.4) 2px, transparent 2px); background-size: 6px 6px; animation: hdt-rise 3.5s linear infinite -1s; }
.scn-horses-drink-toast .sparkle { position:absolute; top:25%; left:70%; width:8px; height:8px; background: radial-gradient(circle, #fff9e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 16px 4px #ffeb80; animation: hdt-pulse 1.5s ease-in-out infinite; }
@keyframes hdt-drift { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes hdt-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes hdt-hoof-lift { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-4px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes hdt-glow { 0% { box-shadow: 0 0 14px 6px #fce8a0; } 50% { box-shadow: 0 0 28px 12px #ffd780; } 100% { box-shadow: 0 0 14px 6px #fce8a0; } }
@keyframes hdt-rise { 0% { background-position: 0 0; } 100% { background-position: 0 -30px; } }
@keyframes hdt-pulse { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(1.8); opacity:1; } 100% { transform: scale(1); opacity:.6; } }

.scn-horses-dance { background: linear-gradient(180deg, #fad998 0%, #e8b460 40%, #c89040 100%), radial-gradient(ellipse at 60% 50%, #fff3d0 0%, transparent 70%); }
.scn-horses-dance .dawn-room { position:absolute; inset:0; background: linear-gradient(180deg, #f1d9a0 0%, #cc9a50 100%); box-shadow: inset 0 0 150px #f5e0b0; animation: hd-fade 8s ease-in-out infinite alternate; }
.scn-horses-dance .window { position:absolute; top:12%; right:8%; width:30%; height:50%; background: linear-gradient(180deg, #fff8e0 0%, #fce0a0 100%); border: 6px solid #a07840; border-radius: 8px; box-shadow: inset 0 0 40px #ffe088; }
.scn-horses-dance .horse-body { position:absolute; bottom:20%; left:30%; width:80px; height:70px; background: linear-gradient(180deg, #7a5e40 0%, #4d3824 100%); border-radius: 50% 50% 30% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-dance 1.2s ease-in-out infinite; }
.scn-horses-dance .horse-leg-f { position:absolute; bottom:15%; left:35%; width:10px; height:40px; background: #4d3824; border-radius: 4px 4px 10px 10px; transform-origin: top; animation: hd-kick-f .8s ease-in-out infinite; }
.scn-horses-dance .horse-leg-b { position:absolute; bottom:15%; left:55%; width:10px; height:40px; background: #4d3824; border-radius: 4px 4px 10px 10px; transform-origin: top; animation: hd-kick-b .8s ease-in-out infinite -.4s; }
.scn-horses-dance .rider { position:absolute; bottom:54%; left:36%; width:20px; height:30px; background: linear-gradient(180deg, #1a1820 0%, #0a0e14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: hd-bob 1.2s ease-in-out infinite; }
.scn-horses-dance .dust { position:absolute; bottom:10%; left:0; right:0; height:8px; background: radial-gradient(ellipse at 30% 100%, rgba(180,140,80,.5) 0%, transparent 50%); animation: hd-dust 2s ease-in-out infinite; }
.scn-horses-dance .star-a { position:absolute; top:25%; left:15%; width:6px; height:6px; background:rgba(255,240,180,.8); border-radius:50%; box-shadow: 0 0 10px 2px #fff0b0; animation: hd-twinkle 3s ease-in-out infinite; }
.scn-horses-dance .star-b { position:absolute; top:35%; left:70%; width:4px; height:4px; background:rgba(255,240,180,.6); border-radius:50%; box-shadow: 0 0 8px 2px #fff0b0; animation: hd-twinkle 4s ease-in-out infinite alternate; }
@keyframes hd-fade { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes hd-dance { 0% { transform: rotate(-4deg); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(-2deg) translateY(2px); } 75% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(-4deg); } }
@keyframes hd-kick-f { 0% { transform: rotate(-10deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-10deg); } }
@keyframes hd-kick-b { 0% { transform: rotate(10deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(10deg); } }
@keyframes hd-bob { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hd-dust { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(2); } 100% { opacity:.3; transform: scaleY(1); } }
@keyframes hd-twinkle { 0% { opacity:.2; } 50% { opacity:1; } 100% { opacity:.2; } }

.scn-matrena-scolds-ivan { background: linear-gradient(180deg, #e8e4d8 0%, #c8c0b0 50%, #a8a090 100%), radial-gradient(ellipse at 40% 20%, #fff8f0 0%, transparent 60%); }
.scn-matrena-scolds-ivan .interior-wall { position:absolute; inset:0; background: linear-gradient(90deg, #d4ccc0 0%, #c4bbad 100%); box-shadow: inset 0 0 120px #bfb6a6; }
.scn-matrena-scolds-ivan .light-beam { position:absolute; top:5%; left:15%; width:70%; height:70%; background: linear-gradient(135deg, rgba(255,255,245,.25) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: mi-sweep 6s ease-in-out infinite alternate; }
.scn-matrena-scolds-ivan .silhouette-madame { position:absolute; bottom:20%; left:25%; width:40px; height:80px; background: #2a2630; border-radius: 45% 45% 20% 20% / 55% 55% 25% 25%; transform: rotate(-2deg); box-shadow: -6px 0 12px rgba(0,0,0,.3); animation: mi-tremble .8s ease-in-out infinite; }
.scn-matrena-scolds-ivan .silhouette-madame::before { content:""; position:absolute; top:-20px; left:50%; width:24px; height:24px; transform:translateX(-50%); background: #2a2630; border-radius: 50%; }
.scn-matrena-scolds-ivan .silhouette-general { position:absolute; bottom:20%; right:25%; width:50px; height:85px; background: #1e1c24; border-radius: 40% 40% 10% 10% / 50% 50% 15% 15%; transform: rotate(3deg); box-shadow: 6px 0 12px rgba(0,0,0,.3); animation: mi-tremble .7s ease-in-out infinite .2s; }
.scn-matrena-scolds-ivan .silhouette-general::before { content:""; position:absolute; top:-22px; left:50%; width:22px; height:22px; transform:translateX(-50%); background: #1e1c24; border-radius: 50%; }
.scn-matrena-scolds-ivan .hand-point { position:absolute; bottom:42%; left:38%; width:16px; height:20px; background: #3a3440; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-30deg); transform-origin: bottom center; animation: mi-point 2s ease-in-out infinite; }
.scn-matrena-scolds-ivan .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.25) 100%); }
.scn-matrena-scolds-ivan .frame { position:absolute; inset:0; border: 12px solid #9a9284; pointer-events:none; box-shadow: inset 0 0 40px rgba(0,0,0,.3); animation: mi-vignette 5s ease-in-out infinite alternate; }
@keyframes mi-sweep { 0% { opacity:.4; transform: translateX(-5%); } 50% { opacity:.7; transform: translateX(5%); } 100% { opacity:.4; transform: translateX(-5%); } }
@keyframes mi-tremble { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(-3deg); } 50% { transform: translateY(1px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mi-point { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-50deg); } 100% { transform: rotate(-30deg); } }
@keyframes mi-vignette { 0% { box-shadow: inset 0 0 40px rgba(0,0,0,.3); } 50% { box-shadow: inset 0 0 80px rgba(0,0,0,.5); } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,.3); } }

.scn-rouletabilles-absurd-conclusion { background: linear-gradient(180deg, #1c1a20 0%, #2a2530 40%, #3f2e3a 100%), radial-gradient(ellipse at 50% 0%, #2a2530 0%, transparent 70%); }
.scn-rouletabilles-absurd-conclusion .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2c2633 0%, #4a3a4d 50%, #2c2633 100%); animation: rou-wall 10s ease-in-out infinite; }
.scn-rouletabilles-absurd-conclusion .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2b2b 0%, #1e1616 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-rouletabilles-absurd-conclusion .clock { position:absolute; top:20%; left:55%; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #c8a060 0%, #8b6b40 60%, #5a3f20 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,130,60,.3), inset 0 0 20px rgba(0,0,0,.5); transform: translateX(-50%); animation: rou-clock 6s ease-in-out infinite; }
.scn-rouletabilles-absurd-conclusion .hand-hour { position:absolute; top:20%; left:55%; width:4px; height:30px; background: #3a2a1a; border-radius:2px; transform-origin: 50% 100%; transform: translate(-50%, -100%) rotate(30deg); animation: rou-hour 30s linear infinite; }
.scn-rouletabilles-absurd-conclusion .hand-minute { position:absolute; top:20%; left:55%; width:3px; height:40px; background: #2a1a0a; border-radius:1.5px; transform-origin: 50% 100%; transform: translate(-50%, -100%) rotate(-20deg); animation: rou-minute 30s linear infinite; }
.scn-rouletabilles-absurd-conclusion .figure-general { position:absolute; bottom:30%; left:30%; width:24px; height:42px; background: linear-gradient(180deg, #2c1e1e 0%, #140a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: drop-shadow(2px 0 4px rgba(0,0,0,.5)); animation: rou-sway 5s ease-in-out infinite; }
.scn-rouletabilles-absurd-conclusion .figure-rouletabille { position:absolute; bottom:30%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rou-sway 5s ease-in-out infinite reverse; }
.scn-rouletabilles-absurd-conclusion .shadow-pool { position:absolute; bottom:30%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 40% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: rou-shadow 8s ease-in-out infinite; }
@keyframes rou-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes rou-clock { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes rou-hour { 0% { transform: translate(-50%, -100%) rotate(0deg) } 100% { transform: translate(-50%, -100%) rotate(360deg) } }
@keyframes rou-minute { 0% { transform: translate(-50%, -100%) rotate(0deg) } 100% { transform: translate(-50%, -100%) rotate(360deg) } }
@keyframes rou-sway { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(1px) rotate(1deg) } }
@keyframes rou-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }

.scn-moral-truths-daylight { background: linear-gradient(180deg, #1b1e2a 0%, #2d3345 40%, #1b1e2a 100%), radial-gradient(ellipse at 80% 0%, #3a4b6a 0%, transparent 60%); }
.scn-moral-truths-daylight .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #2d2d3a 0%, #3a3a4d 50%, #2d2d3a 100%); }
.scn-moral-truths-daylight .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2b2b35 0%, #12121a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-moral-truths-daylight .window { position:absolute; top:15%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #b0c0d8 0%, #8090b0 50%, #506080 100%); border:4px solid #4a4a5a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,255,.3), 0 0 40px rgba(100,140,200,.2); animation: mor-window 12s ease-in-out infinite; }
.scn-moral-truths-daylight .curtain-left { position:absolute; top:15%; left:10%; width:15%; height:50%; background: linear-gradient(90deg, #4a3a3a 0%, #6a4a4a 100%); border-radius:0 30% 30% 0; transform-origin: left center; animation: mor-curtain 8s ease-in-out infinite; }
.scn-moral-truths-daylight .curtain-right { position:absolute; top:15%; left:25%; width:15%; height:50%; background: linear-gradient(90deg, #6a4a4a 0%, #4a3a3a 100%); border-radius:30% 0 0 30%; transform-origin: right center; animation: mor-curtain 8s ease-in-out infinite reverse; }
.scn-moral-truths-daylight .desk { position:absolute; bottom:25%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-moral-truths-daylight .chair { position:absolute; bottom:30%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; transform-origin: bottom center; animation: mor-chair 6s ease-in-out infinite; }
.scn-moral-truths-daylight .figure-speaker { position:absolute; bottom:25%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mor-speaker 5s ease-in-out infinite; }
.scn-moral-truths-daylight .figure-listener { position:absolute; bottom:25%; left:50%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mor-listener 4s ease-in-out infinite; }
@keyframes mor-window { 0%,100% { opacity:.8; box-shadow: 0 0 40px rgba(100,140,200,.2) } 50% { opacity:1; box-shadow: 0 0 60px rgba(100,140,200,.4) } }
@keyframes mor-curtain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes mor-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mor-speaker { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } }
@keyframes mor-listener { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(0) rotate(0) } }

.scn-matrenas-tears-flow { background: linear-gradient(180deg, #1a1a2a 0%, #2c2230 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2c2230 0%, transparent 70%); }
.scn-matrenas-tears-flow .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #252030 0%, #3a2a45 50%, #252030 100%); animation: mat-wall 8s ease-in-out infinite; }
.scn-matrenas-tears-flow .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e1e 0%, #120a0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-matrenas-tears-flow .table { position:absolute; bottom:35%; left:40%; width:80px; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; transform: translateX(-50%); }
.scn-matrenas-tears-flow .candle { position:absolute; bottom:47%; left:40%; width:12px; height:40px; background: linear-gradient(180deg, #d8b070 0%, #a07a40 60%, #7a5a2a 100%); border-radius:3px 3px 30% 30%; transform: translateX(-50%); animation: mat-candle 6s ease-in-out infinite; }
.scn-matrenas-tears-flow .flame { position:absolute; bottom:70%; left:40%; width:8px; height:12px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #e0a040 50%, transparent 100%); border-radius:50%; transform: translateX(-50%); animation: mat-flame 3s ease-in-out infinite; }
.scn-matrenas-tears-flow .figure-matrena { position:absolute; bottom:35%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #2a1e2e 0%, #0e0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mat-figure 5s ease-in-out infinite; }
.scn-matrenas-tears-flow .figure-other { position:absolute; bottom:35%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mat-other 4s ease-in-out infinite; }
.scn-matrenas-tears-flow .tear { position:absolute; bottom:25%; left:30%; width:4px; height:6px; background: radial-gradient(circle, #b0c0d0 0%, transparent 100%); border-radius:50%; animation: mat-tear 2s ease-out infinite; }
@keyframes mat-wall { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes mat-candle { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes mat-flame { 0%,100% { transform: translateX(-50%) scale(1); opacity:.9 } 25% { transform: translateX(-50%) scale(1.1,0.9); opacity:1 } 50% { transform: translateX(-50%) scale(0.95,1.05); opacity:.8 } 75% { transform: translateX(-50%) scale(1.05,0.95); opacity:1 } }
@keyframes mat-figure { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } }
@keyframes mat-other { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-2deg) } 75% { transform: translateY(1px) rotate(2deg) } }
@keyframes mat-tear { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(20px) scale(0.3); opacity:0 } }

.scn-watching-the-corner { background: linear-gradient(135deg, #1a1a2a 0%, #2a2235 50%, #1a1a2a 100%), radial-gradient(circle at 70% 30%, #3a2a4a 0%, transparent 50%); }
.scn-watching-the-corner .wall-left { position:absolute; top:0; left:0; width:40%; height:70%; background: linear-gradient(180deg, #2d2733 0%, #1a1420 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.5); animation: wat-wall-l 12s ease-in-out infinite; }
.scn-watching-the-corner .wall-right { position:absolute; top:0; right:0; width:40%; height:70%; background: linear-gradient(180deg, #2d2733 0%, #1a1420 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.5); animation: wat-wall-r 12s ease-in-out infinite; }
.scn-watching-the-corner .corner { position:absolute; top:0; left:40%; width:20%; height:70%; background: linear-gradient(180deg, #3a2a45 0%, #1a0a25 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: wat-corner 8s ease-in-out infinite; }
.scn-watching-the-corner .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2b222b 0%, #120a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-watching-the-corner .figure-peeker { position:absolute; bottom:30%; left:45%; width:18px; height:36px; background: linear-gradient(180deg, #2a1e2e 0%, #0e0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wat-peek 5s ease-in-out infinite; }
.scn-watching-the-corner .figure-shadow { position:absolute; bottom:30%; left:60%; width:16px; height:34px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(2px); animation: wat-shadow 6s ease-in-out infinite; }
.scn-watching-the-corner .lamp { position:absolute; top:10%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #b08040 0%, #604020 100%); border-radius:4px; box-shadow: 0 0 20px 5px rgba(180,100,40,.2); animation: wat-lamp 4s ease-in-out infinite; }
@keyframes wat-wall-l { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes wat-wall-r { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes wat-corner { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes wat-peek { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes wat-shadow { 0%,100% { transform: translateY(0) scale(1); opacity:.6 } 30% { transform: translateY(-2px) scale(1.05); opacity:.8 } 60% { transform: translateY(2px) scale(0.95); opacity:.4 } }
@keyframes wat-lamp { 0%,100% { opacity:.7; box-shadow: 0 0 20px 5px rgba(180,100,40,.2) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(180,100,40,.4) } }

/* khor-released */
.scn-khor-released {
  background:
    linear-gradient(180deg, #fef9e6 0%, #fceabb 40%, #f8b270 100%),
    radial-gradient(ellipse at 80% 20%, #ffd27f 0%, transparent 60%);
}
.scn-khor-released .sky-kr { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b3d9ff 0%, #e6f0ff 100%); }
.scn-khor-released .sun-kr { position:absolute; top:5%; right:12%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff7c0 0%, #ffe06a 40%, #f59e3b 100%); box-shadow: 0 0 60px 20px #ffe06a; animation: kr-sun 8s ease-in-out infinite alternate; }
.scn-khor-released .wall-kr { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #efe3c6 0%, #f5edd6 100%); border-radius:30% 30% 0 0; }
.scn-khor-released .window-kr { position:absolute; top:30%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: #b3d9ff; border:6px solid #c4a882; border-radius:4px; box-shadow: inset 0 0 16px #fff7c0; animation: kr-window 6s ease-in-out infinite; }
.scn-khor-released .sunbeam-kr { position:absolute; top:18%; left:42%; width:120px; height:200px; transform:rotate(20deg); background: linear-gradient(180deg, rgba(255,255,220,0.6) 0%, rgba(255,255,220,0.1) 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 0% 100%); filter: blur(4px); animation: kr-beam 12s ease-in-out infinite alternate; }
.scn-khor-released .table-kr { position:absolute; bottom:10%; left:50%; width:140px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #b5926a 0%, #8c6e4a 100%); border-radius:6px; box-shadow: 0 4px 8px #7a5e3e; }
.scn-khor-released .cup-kr { position:absolute; bottom:14%; left:42%; width:20px; height:22px; background: linear-gradient(180deg, #ede1d0 0%, #d9c8b0 100%); border-radius:0 0 6px 6px; box-shadow: inset 0 2px 0 #f5edd6; }
.scn-khor-released .child-kr { position:absolute; bottom:15%; left:38%; width:40px; height:60px; background: linear-gradient(180deg, #2d241a 0%, #1a140f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: kr-child 4s ease-in-out infinite alternate; }
@keyframes kr-sun { 0% { opacity:.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.04); } 100% { opacity:.85; transform: scale(0.96); } }
@keyframes kr-window { 0% { box-shadow: inset 0 0 12px #fff7c0; } 50% { box-shadow: inset 0 0 24px #ffe06a; } 100% { box-shadow: inset 0 0 8px #fff7c0; } }
@keyframes kr-beam { 0% { opacity:0.5; transform: rotate(18deg) translateY(0); } 50% { opacity:0.8; transform: rotate(22deg) translateY(-4px); } 100% { opacity:0.3; transform: rotate(16deg) translateY(2px); } }
@keyframes kr-child { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(2px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0) rotate(-0.5deg); } }

/* general-on-natacha */
.scn-general-on-natacha {
  background:
    linear-gradient(180deg, #f4e7d3 0%, #b29a7a 50%, #5a4a2e 100%),
    radial-gradient(ellipse at 30% 50%, #fff7e0 0%, transparent 70%);
}
.scn-general-on-natacha .wall-gn { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b29a7a 100%); }
.scn-general-on-natacha .window-gn { position:absolute; top:8%; left:30%; width:100px; height:120px; background: #b3d9ff; border:8px solid #7a6a4a; border-radius:4px; box-shadow: inset 0 0 20px #ffe06a; animation: gn-window 6s ease-in-out infinite alternate; }
.scn-general-on-natacha .lightbeam-gn { position:absolute; top:18%; left:25%; width:160px; height:250px; transform:rotate(15deg); background: linear-gradient(180deg, rgba(255,255,220,0.7) 0%, rgba(255,255,220,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 40% 100%, 0% 100%); filter: blur(3px); animation: gn-beam 4s ease-in-out infinite alternate; }
.scn-general-on-natacha .general-gn { position:absolute; bottom:25%; left:45%; width:70px; height:110px; background: linear-gradient(180deg, #2b1f14 0%, #141008 100%); border-radius: 40% 50% 30% 30% / 60% 50% 40% 40%; transform: rotate(-2deg); animation: gn-general 3s ease-in-out infinite; }
.scn-general-on-natacha .natacha-gn { position:absolute; bottom:25%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gn-natacha 2.5s ease-in-out infinite; }
.scn-general-on-natacha .floor-gn { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a4a2e 0%, #7a6a4a 100%); border-radius:10% 10% 0 0; }
.scn-general-on-natacha .shadow-gn { position:absolute; bottom:5%; left:32%; width:80px; height:15px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(6px); animation: gn-shadow 3s ease-in-out infinite; }
@keyframes gn-window { 0% { box-shadow: inset 0 0 15px #ffe06a; } 50% { box-shadow: inset 0 0 30px #fff7c0; } 100% { box-shadow: inset 0 0 10px #ffe06a; } }
@keyframes gn-beam { 0% { opacity:0.6; transform: rotate(13deg) scaleY(1); } 50% { opacity:1; transform: rotate(17deg) scaleY(1.05); } 100% { opacity:0.4; transform: rotate(11deg) scaleY(0.95); } }
@keyframes gn-general { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes gn-natacha { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gn-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.2; } }

/* tigerish-nature */
.scn-tigerish-nature {
  background:
    linear-gradient(180deg, #f8c471 0%, #e67e22 40%, #b0560c 100%),
    radial-gradient(ellipse at 50% 80%, #f39c12 0%, transparent 60%);
}
.scn-tigerish-nature .sky-tn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8c471 0%, #f5a623 100%); }
.scn-tigerish-nature .sun-tn { position:absolute; top:5%; left:70%; width:70px; height:70px; border-radius:50%; background: radial-gradient(circle, #fff7c0 0%, #f5a623 60%, #c9770e 100%); box-shadow: 0 0 80px 30px #f5a623; animation: tn-sun 6s ease-in-out infinite alternate; }
.scn-tigerish-nature .tiger-tn { position:absolute; bottom:30%; left:30%; width:90px; height:120px; background: linear-gradient(180deg, #1a0f08 0%, #0a0603 100%); border-radius: 40% 50% 20% 20% / 50% 60% 30% 30%; transform: rotate(-5deg); box-shadow: 0 0 20px 5px rgba(0,0,0,0.3); animation: tn-tiger 2s ease-in-out infinite; }
.scn-tigerish-nature .natacha-tn { position:absolute; bottom:30%; left:45%; width:35px; height:65px; background: linear-gradient(180deg, #4a2c14 0%, #2a1608 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tn-natacha 3s ease-in-out infinite; }
.scn-tigerish-nature .ground-tn { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #3a2208 0%, #5a3a10 100%); border-radius: 40% 40% 0 0; }
.scn-tigerish-nature .heat-tn { position:absolute; top:15%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 100%); filter: blur(12px); animation: tn-heat 5s ease-in-out infinite alternate; }
@keyframes tn-sun { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.06); } 100% { opacity:.7; transform: scale(0.94); } }
@keyframes tn-tiger { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.03) translateX(2px); } 100% { transform: rotate(-4deg) scaleY(0.97); } }
@keyframes tn-natacha { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tn-heat { 0% { opacity:0.2; transform: scaleY(1); } 50% { opacity:0.5; transform: scaleY(1.1); } 100% { opacity:0.1; transform: scaleY(0.9); } }

/* petit-dejeuner */
.scn-petit-dejeuner {
  background:
    linear-gradient(180deg, #fff4e6 0%, #fce4c4 30%, #f0c894 100%),
    radial-gradient(ellipse at 60% 30%, #ffe9c4 0%, transparent 70%);
}
.scn-petit-dejeuner .wall-pd { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fce4c4 0%, #fff4e6 100%); }
.scn-petit-dejeuner .window-pd { position:absolute; top:10%; right:12%; width:80px; height:100px; background: #cbe6ff; border:6px solid #d4b48a; border-radius:4px; box-shadow: inset 0 0 20px #fff7c0; }
.scn-petit-dejeuner .curtain-pd { position:absolute; top:8%; right:10%; width:90px; height:110px; background: linear-gradient(0deg, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0.1) 100%); filter: blur(5px); animation: pd-curtain 8s ease-in-out infinite alternate; }
.scn-petit-dejeuner .table-pd { position:absolute; bottom:10%; left:50%; width:160px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #d4b48a 0%, #b5946a 100%); border-radius:6px; box-shadow: 0 4px 8px #9a7953; }
.scn-petit-dejeuner .plate-pd { position:absolute; bottom:14%; left:46%; width:40px; height:36px; background: radial-gradient(circle, #fff 20%, #f0e0d0 100%); border-radius:50%; box-shadow: 0 1px 3px #a08060; }
.scn-petit-dejeuner .cup-pd { position:absolute; bottom:16%; left:58%; width:22px; height:24px; background: linear-gradient(180deg, #f5edd6 0%, #e0d0b8 100%); border-radius:0 0 6px 6px; box-shadow: inset 0 -2px 0 #c0a88a; }
.scn-petit-dejeuner .sandwich-pd { position:absolute; bottom:15%; left:44%; width:30px; height:10px; background: linear-gradient(180deg, #b5946a 0%, #8c6e4a 100%); border-radius:4px; transform:rotate(10deg); }
.scn-petit-dejeuner .natacha-pd { position:absolute; bottom:12%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1) rotate(-3deg); animation: pd-natacha 4s ease-in-out infinite; }
@keyframes pd-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(1.05); } 100% { transform: translateX(2px) scaleX(0.95); } }
@keyframes pd-natacha { 0% { transform: scaleX(-1) rotate(-3deg) translateY(0); } 50% { transform: scaleX(-1) rotate(-1deg) translateY(-2px); } 100% { transform: scaleX(-1) rotate(-2deg) translateY(0); } }

.scn-rouletabille-train-encounter {
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 40%, #3b2b1a 100%), radial-gradient(ellipse at 50% 20%, #c08040 0%, transparent 60%);
}
.scn-rouletabille-train-encounter .base {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 80%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-rouletabille-train-encounter .window {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 35%; background: linear-gradient(135deg, #1a2a4a 0%, #2a3a5a 100%); border: 6px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 10px #c08040; animation: rte-window 8s ease-in-out infinite alternate;
}
.scn-rouletabille-train-encounter .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: rte-table 6s ease-in-out infinite;
}
.scn-rouletabille-train-encounter .chair-left {
  position: absolute; bottom: 28%; left: 15%; width: 18%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -6px 8px rgba(0,0,0,.5);
}
.scn-rouletabille-train-encounter .chair-right {
  position: absolute; bottom: 28%; right: 15%; width: 18%; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -6px 8px rgba(0,0,0,.5);
}
.scn-rouletabille-train-encounter .figure-rouletabille {
  position: absolute; bottom: 30%; left: 22%; width: 12%; height: 25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rte-eat 4s ease-in-out infinite;
}
.scn-rouletabille-train-encounter .figure-matrena {
  position: absolute; bottom: 28%; right: 20%; width: 15%; height: 30%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rte-drink 3s ease-in-out infinite;
}
.scn-rouletabille-train-encounter .lamp {
  position: absolute; top: 12%; left: 45%; width: 6%; height: 15%; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, #5a3a1a 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #ffd080, 0 0 60px 30px rgba(255,208,128,.4); animation: rte-lamp 2s ease-in-out infinite alternate;
}
.scn-rouletabille-train-encounter .vodka-glass {
  position: absolute; bottom: 40%; left: 38%; width: 4%; height: 6%; background: linear-gradient(180deg, rgba(255,255,200,.8) 0%, rgba(200,180,120,.3) 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: rte-glass 3s ease-in-out infinite;
}
@keyframes rte-window { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.02); } 100% { opacity: .8; transform: scaleY(.98); } }
@keyframes rte-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rte-eat { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rte-drink { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-4px) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rte-lamp { 0% { box-shadow: 0 0 20px 10px #ffd080; opacity: .9; } 50% { box-shadow: 0 0 40px 20px #ffd080, 0 0 80px 40px rgba(255,208,128,.3); opacity: 1; } 100% { box-shadow: 0 0 25px 12px #ffd080; opacity: .85; } }
@keyframes rte-glass { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-rouletabille-trick {
  background: linear-gradient(90deg, #6a5a3a 0%, #4a3a2a 30%, #5a4a2a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, #e0c080 0%, transparent 70%);
}
.scn-rouletabille-trick .bg-corridor {
  position: absolute; inset: 0; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-rouletabille-trick .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-rouletabille-trick .wall-left {
  position: absolute; top: 0; left: 0; bottom: 20%; width: 20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-right: 2px solid #1a1a0a; box-shadow: inset -10px 0 20px rgba(0,0,0,.3);
}
.scn-rouletabille-trick .wall-right {
  position: absolute; top: 0; right: 0; bottom: 20%; width: 20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-left: 2px solid #1a1a0a; box-shadow: inset 10px 0 20px rgba(0,0,0,.3);
}
.scn-rouletabille-trick .door-left {
  position: absolute; top: 15%; left: 12%; width: 10%; height: 50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border: 2px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,.4);
}
.scn-rouletabille-trick .door-right {
  position: absolute; top: 15%; right: 12%; width: 10%; height: 50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border: 2px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,.4);
}
.scn-rouletabille-trick .figure-caller {
  position: absolute; bottom: 18%; left: 40%; width: 12%; height: 28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtr-call 2s ease-in-out infinite;
}
.scn-rouletabille-trick .figure-crowd-1 {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 26%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtr-turn1 3s ease-in-out infinite;
}
.scn-rouletabille-trick .figure-crowd-2 {
  position: absolute; bottom: 18%; right: 30%; width: 10%; height: 26%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtr-turn2 3.5s ease-in-out infinite reverse;
}
@keyframes rtr-call { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rtr-turn1 { 0% { transform: translateX(0); } 30% { transform: translateX(12px) rotate(8deg); } 60% { transform: translateX(4px) rotate(-4deg); } 100% { transform: translateX(0); } }
@keyframes rtr-turn2 { 0% { transform: translateX(0); } 20% { transform: translateX(-10px) rotate(-6deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0); } }

.scn-entente-cordiale {
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3a2a 40%, #3a2a1a 100%), radial-gradient(ellipse at 70% 30%, #d0a060 0%, transparent 60%);
}
.scn-entente-cordiale .bg-seat {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 80%); border-radius: 10px; box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-entente-cordiale .window {
  position: absolute; top: 10%; right: 8%; width: 30%; height: 30%; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: ec-window 10s ease-in-out infinite alternate;
}
.scn-entente-cordiale .table {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-entente-cordiale .figure-left {
  position: absolute; bottom: 22%; left: 12%; width: 20%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: ec-profile-left 5s ease-in-out infinite;
}
.scn-entente-cordiale .figure-right {
  position: absolute; bottom: 22%; right: 12%; width: 20%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%; transform-origin: bottom center; animation: ec-profile-right 5s ease-in-out infinite alternate;
}
.scn-entente-cordiale .hand-glasses {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 5%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: left center; animation: ec-glasses 6s ease-in-out infinite;
}
.scn-entente-cordiale .lamp-soft {
  position: absolute; top: 12%; left: 48%; width: 4%; height: 12%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%, #5a3a1a 100%); border-radius: 50%; box-shadow: 0 0 40px 20px #ffd080, 0 0 80px 40px rgba(255,208,128,.3); animation: ec-lamp 3s ease-in-out infinite alternate;
}
.scn-entente-cordiale .shadow-overlay {
  position: absolute; inset: 0; background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,.2) 100%); pointer-events: none;
}
@keyframes ec-window { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes ec-profile-left { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0); } }
@keyframes ec-profile-right { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-2deg); } 70% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes ec-glasses { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ec-lamp { 0% { box-shadow: 0 0 30px 15px #ffd080; opacity: .85; } 50% { box-shadow: 0 0 50px 25px #ffd080, 0 0 100px 50px rgba(255,208,128,.2); opacity: 1; } 100% { box-shadow: 0 0 35px 18px #ffd080; opacity: .9; } }

.scn-marked-man {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, transparent 70%);
}
.scn-marked-man .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a1a 0%, #0a0505 100%); border-radius: 8px; box-shadow: inset 0 0 50px rgba(0,0,0,.9);
}
.scn-marked-man .window-barred {
  position: absolute; top: 8%; left: 8%; width: 30%; height: 40%; background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%); border: 4px solid #2a1a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 0 10px #4a2a1a; animation: mm-window 5s ease-in-out infinite alternate;
}
.scn-marked-man .figure-boy {
  position: absolute; bottom: 22%; left: 25%; width: 14%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mm-boy 2s ease-in-out infinite;
}
.scn-marked-man .figure-matrena-large {
  position: absolute; bottom: 18%; right: 15%; width: 20%; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-matrena 3s ease-in-out infinite;
}
.scn-marked-man .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: mm-shadow 4s ease-in-out infinite;
}
.scn-marked-man .curtain {
  position: absolute; top: 0; right: 0; width: 10%; height: 100%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-left: 2px solid #2a1a1a; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: mm-curtain 6s ease-in-out infinite alternate;
}
.scn-marked-man .lamp-flicker {
  position: absolute; top: 12%; left: 50%; width: 4%; height: 10%; background: radial-gradient(circle at 50% 30%, #ffa040 0%, #804020 60%, #2a0a0a 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,.3); animation: mm-flicker .5s ease-in-out infinite alternate;
}
.scn-marked-man .desk-edge {
  position: absolute; bottom: 28%; left: 15%; right: 15%; height: 4%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
@keyframes mm-window { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes mm-boy { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes mm-matrena { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mm-shadow { 0% { opacity: .4; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes mm-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }
@keyframes mm-flicker { 0% { box-shadow: 0 0 20px 5px #ffa040; opacity: .6; } 50% { box-shadow: 0 0 40px 15px #ffa040, 0 0 80px 30px rgba(255,160,64,.2); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #ffa040; opacity: .7; } }

/* Scene: natacha-supplication (ns) */
.scn-natacha-supplication {
  background:
    linear-gradient(180deg, #0d0a12 0%, #1a141e 40%, #2a1f2a 70%) no-repeat 0 0 / 100% 60%,
    radial-gradient(ellipse at 50% 100%, #2a1f2a 0%, #0d0a12 60%);
  position: relative;
  overflow: hidden;
}
.scn-natacha-supplication .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a141e 0%, #2a1f2a 100%);
  animation: ns-wall 8s ease-in-out infinite alternate;
}
.scn-natacha-supplication .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1f2a 0%, #0d0a12 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-natacha-supplication .light-source {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #c5803b 0%, #8a5226 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(197, 128, 59, 0.3), 0 0 120px 60px rgba(197, 128, 59, 0.15);
  animation: ns-flicker 0.8s steps(2) infinite;
}
.scn-natacha-supplication .figure-standing {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a141e 0%, #0d0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-stand-shift 4s ease-in-out infinite;
}
.scn-natacha-supplication .figure-lying {
  position: absolute; bottom: 20%; left: 45%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #2a1f2a 0%, #1a141e 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-10deg);
  animation: ns-lying-moan 3s ease-in-out infinite;
}
.scn-natacha-supplication .shadow-standing {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: ns-shadow-pulse 4s ease-in-out infinite;
}
.scn-natacha-supplication .shadow-lying {
  position: absolute; bottom: 10%; left: 40%; width: 120px; height: 15px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ns-shadow-pulse 4s ease-in-out infinite reverse;
}
@keyframes ns-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ns-flicker { 0% { opacity: 0.9; box-shadow: 0 0 50px 20px #c5803b; } 50% { opacity: 1; box-shadow: 0 0 70px 30px #c5803b; } 100% { opacity: 0.85; box-shadow: 0 0 40px 15px #c5803b; } }
@keyframes ns-stand-shift { 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 ns-lying-moan { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ns-shadow-pulse { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.2); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* Scene: father-belief (fb) */
.scn-father-belief {
  background:
    linear-gradient(90deg, #16110e 0%, #2a221d 30%, #3d322b 70%, #16110e 100%) no-repeat 0 0 / 100% 60%,
    radial-gradient(ellipse at 50% 100%, #1c1511 0%, #0f0c09 80%);
  position: relative;
  overflow: hidden;
}
.scn-father-belief .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221d 0%, #16110e 100%);
  animation: fb-wall-breath 6s ease-in-out infinite alternate;
}
.scn-father-belief .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1c1511 0%, #0f0c09 100%);
  border-radius: 40% 60% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-father-belief .light-source {
  position: absolute; top: 25%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d49a5a 0%, #a06d3a 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(212,154,90,0.3), 0 0 80px 40px rgba(212,154,90,0.15);
  animation: fb-glow 0.6s ease-in-out infinite alternate;
}
.scn-father-belief .figure-father {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c09 100%);
  border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: fb-father-tilt 3s ease-in-out infinite alternate;
}
.scn-father-belief .figure-daughter {
  position: absolute; bottom: 22%; left: 45%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #2a221d 0%, #16110e 100%);
  border-radius: 45% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: fb-daughter-tremble 1.5s ease-in-out infinite;
}
.scn-father-belief .observer-right {
  position: absolute; bottom: 22%; right: 15%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c09 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  animation: fb-observer-shift 4s ease-in-out infinite;
}
.scn-father-belief .observer-left {
  position: absolute; bottom: 22%; left: 15%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0f0c09 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform: scaleX(-1);
  animation: fb-observer-shift 4s ease-in-out infinite reverse;
}
@keyframes fb-wall-breath { 0% { filter: brightness(0.9); } 100% { filter: brightness(1.1); } }
@keyframes fb-glow { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px #d49a5a; } 100% { opacity: 1; box-shadow: 0 0 50px 25px #d49a5a; } }
@keyframes fb-father-tilt { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes fb-daughter-tremble { 0% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(9deg) translateY(-2px); } 50% { transform: rotate(11deg) translateY(-1px); } 75% { transform: rotate(9deg) translateY(1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes fb-observer-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }

/* Scene: michael-death-scene (md) */
.scn-michael-death-scene {
  background:
    linear-gradient(180deg, #0f0a0d 0%, #1a1418 25%, #261c20 50%, #1a1418 75%, #0f0a0d 100%) no-repeat 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 0%, #261c20 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-michael-death-scene .bg-deep {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1418 0%, #0f0a0d 100%);
  animation: md-dark-wash 12s ease-in-out infinite alternate;
}
.scn-michael-death-scene .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #261c20 0%, #0f0a0d 100%);
  border-radius: 30% 70% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 -30px 40px rgba(0,0,0,0.7);
}
.scn-michael-death-scene .light-source {
  position: absolute; bottom: 35%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #b07840 0%, #704a26 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(176,120,64,0.4), 0 0 60px 30px rgba(176,120,64,0.2);
  animation: md-flicker 0.5s steps(3) infinite;
}
.scn-michael-death-scene .corpse-michael {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2c30 0%, #1a1418 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
  animation: md-death-still 2s ease-in-out infinite;
}
.scn-michael-death-scene .figure-katharina {
  position: absolute; bottom: 25%; left: 50%; width: 38px; height: 100px;
  background: linear-gradient(180deg, #2a1c20 0%, #1a1418 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: md-katharina-bend 3s ease-in-out infinite alternate;
}
.scn-michael-death-scene .figure-police {
  position: absolute; bottom: 30%; right: 20%; width: 45px; height: 120px;
  background: linear-gradient(180deg, #1a1418 0%, #0f0a0d 100%);
  border-radius: 40% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: md-police-linger 5s ease-in-out infinite;
}
.scn-michael-death-scene .doorway {
  position: absolute; bottom: 10%; right: 5%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #261c20 0%, #1a1418 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: md-door-fade 8s ease-in-out infinite alternate;
}
@keyframes md-dark-wash { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes md-flicker { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px #b07840; } 33% { opacity: 1; box-shadow: 0 0 40px 20px #b07840; } 66% { opacity: 0.7; box-shadow: 0 0 15px 5px #b07840; } 100% { opacity: 0.9; box-shadow: 0 0 25px 12px #b07840; } }
@keyframes md-death-still { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4.5deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes md-katharina-bend { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-3px) scale(1.02); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes md-police-linger { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-5px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes md-door-fade { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }

/* Scene: rouletabille-corpse (rc) */
.scn-rouletabille-corpse {
  background:
    linear-gradient(90deg, #0e0c10 0%, #1b1620 30%, #2c2530 70%, #0e0c10 100%) no-repeat 0 0 / 100% 65%,
    radial-gradient(ellipse at 50% 100%, #1b1620 0%, #0e0c10 80%);
  position: relative;
  overflow: hidden;
}
.scn-rouletabille-corpse .bg-deep {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1b1620 0%, #0e0c10 100%);
  animation: rc-dark-shift 10s ease-in-out infinite alternate;
}
.scn-rouletabille-corpse .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2c2530 0%, #0e0c10 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 -15px 25px rgba(0,0,0,0.5);
}
.scn-rouletabille-corpse .light-source {
  position: absolute; bottom: 35%; left: 70%; width: 70px; height: 70px;
  background: radial-gradient(circle, #c07050 0%, #8a4a32 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(192,112,80,0.25), 0 0 100px 50px rgba(192,112,80,0.1);
  animation: rc-gloom 0.7s ease-in-out infinite alternate;
}
.scn-rouletabille-corpse .corpse {
  position: absolute; bottom: 15%; left: 25%; width: 90px; height: 35px;
  background: linear-gradient(180deg, #3a2c30 0%, #1b1620 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-8deg);
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.6);
  animation: rc-corpse-sink 3s ease-in-out infinite;
}
.scn-rouletabille-corpse .figure-rouletabille {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1b1620 0%, #0e0c10 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: rc-roulet-turn 2.5s ease-in-out infinite alternate;
}
.scn-rouletabille-corpse .figure-koupriane {
  position: absolute; bottom: 25%; left: 5%; width: 45px; height: 120px;
  background: linear-gradient(180deg, #2c2530 0%, #1b1620 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: rc-koupri-tremble 1.8s ease-in-out infinite;
}
.scn-rouletabille-corpse .corpse-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 110px; height: 15px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: rc-shadow-sway 4s ease-in-out infinite alternate;
}
@keyframes rc-dark-shift { 0% { filter: brightness(0.8); } 100% { filter: brightness(1.1); } }
@keyframes rc-gloom { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px #c07050; } 100% { opacity: 0.9; box-shadow: 0 0 60px 30px #c07050; } }
@keyframes rc-corpse-sink { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-7.5deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes rc-roulet-turn { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-4px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes rc-koupri-tremble { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-9deg) translateY(-3px); } 50% { transform: rotate(-11deg) translateY(-1px); } 75% { transform: rotate(-9deg) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rc-shadow-sway { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }

/* Scene: rouletabille-defends-natacha (rd) */
.scn-rouletabille-defends-natacha {
  background:
    linear-gradient(180deg, #d4a373 0%, #b5835a 40%, #8c5a35 100%),
    radial-gradient(ellipse at 50% 30%, #fefae0 0%, transparent 70%);
}
.scn-rouletabille-defends-natacha .window {
  position: absolute;
  top: 8%;
  left: 12%;
  width: 30%;
  height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #fff3c4 0%, #e6ccb2 60%, transparent 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: rd-glow 6s ease-in-out infinite alternate;
}
.scn-rouletabille-defends-natacha .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #7f5539 0%, #5a3e2b 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-rouletabille-defends-natacha .desk {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 40%;
  height: 12%;
  background: linear-gradient(180deg, #9c6644 0%, #7f5539 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: rd-bob 9s ease-in-out infinite;
}
.scn-rouletabille-defends-natacha .figure-rouletabille {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #2d1b0e 0%, #1a0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-walk 4s ease-in-out infinite;
}
.scn-rouletabille-defends-natacha .figure-emperor {
  position: absolute;
  bottom: 16%;
  right: 18%;
  width: 12%;
  height: 35%;
  background: linear-gradient(180deg, #4a2e1b 0%, #2d1b0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.1);
  animation: rd-sway 7s ease-in-out infinite alternate;
}
.scn-rouletabille-defends-natacha .lightray {
  position: absolute;
  top: 12%;
  left: 15%;
  width: 25%;
  height: 70%;
  background: linear-gradient(180deg, rgba(254,250,224,0.35) 0%, rgba(254,250,224,0) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rd-ray 8s ease-in-out infinite alternate;
}
.scn-rouletabille-defends-natacha .chandelier {
  position: absolute;
  top: 2%;
  left: 50%;
  width: 8%;
  height: 12%;
  background: radial-gradient(circle at 50% 30%, #f2cc8f 0%, #d4a373 60%, transparent 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(242,204,143,0.6);
  animation: rd-flicker 2s ease-in-out infinite alternate;
}
@keyframes rd-glow {
  0%   { opacity: 0.7; transform: scaleX(1); }
  50%  { opacity: 1;   transform: scaleX(1.05); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes rd-bob {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-3px); }
}
@keyframes rd-walk {
  0%   { transform: translateX(0) rotate(0deg); }
  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 rd-sway {
  0%   { transform: scale(1.1) rotate(-1deg); }
  50%  { transform: scale(1.12) rotate(1deg); }
  100% { transform: scale(1.08) rotate(-0.5deg); }
}
@keyframes rd-ray {
  0%   { opacity: 0.15; transform: skewX(-3deg); }
  50%  { opacity: 0.4;  transform: skewX(0deg); }
  100% { opacity: 0.25; transform: skewX(3deg); }
}
@keyframes rd-flicker {
  0%   { box-shadow: 0 0 20px 5px rgba(242,204,143,0.5); opacity: 0.8; }
  50%  { box-shadow: 0 0 40px 15px rgba(242,204,143,0.8); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(242,204,143,0.6); opacity: 0.9; }
}

/* Scene: tsar-shows-proofs (tp) */
.scn-tsar-shows-proofs {
  background:
    linear-gradient(180deg, #7f5539 0%, #5a3e2b 40%, #3a2518 100%),
    radial-gradient(ellipse at 60% 70%, #e6ccb2 0%, transparent 60%);
}
.scn-tsar-shows-proofs .desk {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 50%;
  background: linear-gradient(180deg, #9c6644 0%, #7f5539 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: tp-deskshift 12s ease-in-out infinite alternate;
}
.scn-tsar-shows-proofs .lamp {
  position: absolute;
  bottom: 52%;
  left: 35%;
  width: 8%;
  height: 12%;
  background: linear-gradient(180deg, #e6ccb2 0%, #b5835a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(230,204,178,0.6);
  animation: tp-lamp 3s ease-in-out infinite alternate;
}
.scn-tsar-shows-proofs .lightcone {
  position: absolute;
  bottom: 50%;
  left: 30%;
  width: 20%;
  height: 55%;
  background: linear-gradient(180deg, rgba(230,204,178,0.4) 0%, rgba(230,204,178,0) 100%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0 100%);
  animation: tp-cone 5s ease-in-out infinite alternate;
}
.scn-tsar-shows-proofs .papers {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 25%;
  height: 8%;
  background: #fefae0;
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: tp-papers 8s ease-in-out infinite;
}
.scn-tsar-shows-proofs .hand-pointing {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 6%;
  height: 15%;
  background: linear-gradient(180deg, #c8b6a0 0%, #8c6b4f 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: tp-point 3s ease-in-out infinite;
}
.scn-tsar-shows-proofs .figure-tsar {
  position: absolute;
  bottom: 18%;
  right: 15%;
  width: 14%;
  height: 40%;
  background: linear-gradient(180deg, #3a2518 0%, #1a0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tp-tsar 7s ease-in-out infinite alternate;
}
.scn-tsar-shows-proofs .shadow-block {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: tp-shadow 9s ease-in-out infinite alternate;
}
@keyframes tp-deskshift {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tp-lamp {
  0%   { box-shadow: 0 0 15px 4px rgba(230,204,178,0.5); opacity: 0.8; }
  50%  { box-shadow: 0 0 35px 12px rgba(230,204,178,0.8); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(230,204,178,0.6); opacity: 0.85; }
}
@keyframes tp-cone {
  0%   { opacity: 0.2; transform: skewX(-5deg); }
  50%  { opacity: 0.5; transform: skewX(0deg); }
  100% { opacity: 0.3; transform: skewX(5deg); }
}
@keyframes tp-papers {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50%     { transform: rotate(2deg) translateY(-2px); }
}
@keyframes tp-point {
  0%   { transform: rotate(-18deg) translateX(0); }
  30%  { transform: rotate(-22deg) translateX(2px); }
  60%  { transform: rotate(-16deg) translateX(-1px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes tp-tsar {
  0%   { transform: scaleX(-1) translateY(0) rotate(-1deg); }
  50%  { transform: scaleX(-1) translateY(-4px) rotate(1deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(0deg); }
}
@keyframes tp-shadow {
  0%   { opacity: 0.6; }
  50%  { opacity: 0.9; }
  100% { opacity: 0.7; }
}

/* Scene: explaining-natacha-sacrifice (ns) */
.scn-explaining-natacha-sacrifice {
  background:
    linear-gradient(180deg, #f2edeb 0%, #e6d5c3 50%, #d4a373 100%),
    radial-gradient(ellipse at 30% 20%, #fefae0 0%, transparent 70%);
}
.scn-explaining-natacha-sacrifice .window-arch {
  position: absolute;
  top: 5%;
  left: 35%;
  width: 30%;
  height: 60%;
  background: radial-gradient(ellipse at 50% 40%, #fff3c4 0%, #e6ccb2 60%, transparent 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: ns-window 10s ease-in-out infinite alternate;
}
.scn-explaining-natacha-sacrifice .figure-calm {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #4a3b32 0%, #2d221a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-gesture 6s ease-in-out infinite;
}
.scn-explaining-natacha-sacrifice .soft-light {
  position: absolute;
  top: 10%;
  left: 40%;
  width: 20%;
  height: 40%;
  background: radial-gradient(circle, rgba(254,250,224,0.2) 0%, transparent 100%);
  animation: ns-light 7s ease-in-out infinite alternate;
}
.scn-explaining-natacha-sacrifice .floor-plank {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #b5835a 0%, #8c5a35 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
}
.scn-explaining-natacha-sacrifice .curtain {
  position: absolute;
  top: 0;
  left: 10%;
  width: 15%;
  height: 90%;
  background: linear-gradient(180deg, #e6ccb2 0%, #c9a97a 100%);
  border-radius: 0 0 30% 30%;
  opacity: 0.6;
  animation: ns-curtain 12s ease-in-out infinite alternate;
}
.scn-explaining-natacha-sacrifice .vase {
  position: absolute;
  bottom: 12%;
  right: 20%;
  width: 6%;
  height: 14%;
  background: linear-gradient(180deg, #e07a5f 0%, #b8583f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: ns-vase 5s ease-in-out infinite alternate;
}
@keyframes ns-window {
  0%   { opacity: 0.7; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ns-gesture {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(3px) rotate(2deg); }
  50%  { transform: translateX(6px) rotate(-1deg); }
  75%  { transform: translateX(9px) rotate(1deg); }
  100% { transform: translateX(12px) rotate(0deg); }
}
@keyframes ns-light {
  0%   { opacity: 0.2; transform: scale(0.9); }
  50%  { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}
@keyframes ns-curtain {
  0%   { transform: translateX(0); }
  50%  { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes ns-vase {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* Scene: revealing-secret-deal (sd) */
.scn-revealing-secret-deal {
  background:
    linear-gradient(180deg, #414833 0%, #2b2d26 50%, #1a1c16 100%),
    radial-gradient(ellipse at 50% 60%, #936639 0%, transparent 70%);
}
.scn-revealing-secret-deal .hand-scroll {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 12%;
  height: 25%;
  background: linear-gradient(180deg, #c8b6a0 0%, #8c6b4f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: sd-hand 4s ease-in-out infinite;
}
.scn-revealing-secret-deal .scroll-doc {
  position: absolute;
  bottom: 35%;
  left: 38%;
  width: 20%;
  height: 10%;
  background: linear-gradient(180deg, #fefae0 0%, #e6ccb2 100%);
  border-radius: 10px;
  box-shadow: 2px 2px 15px rgba(0,0,0,0.7);
  transform: rotate(-5deg);
  animation: sd-scroll 6s ease-in-out infinite alternate;
}
.scn-revealing-secret-deal .table-edge {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #7f5539 0%, #5a3e2b 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-revealing-secret-deal .seal {
  position: absolute;
  bottom: 37%;
  left: 42%;
  width: 5%;
  height: 5%;
  background: radial-gradient(circle, #c8553d 0%, #8c3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(200,85,61,0.6);
  animation: sd-seal 3s ease-in-out infinite alternate;
}
.scn-revealing-secret-deal .shadow-dramatic {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: sd-shadow 5s ease-in-out infinite alternate;
}
.scn-revealing-secret-deal .spotlight {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, rgba(147,102,57,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
  animation: sd-spot 8s ease-in-out infinite alternate;
}
@keyframes sd-hand {
  0%   { transform: rotate(12deg) translateY(0); }
  30%  { transform: rotate(18deg) translateY(-2px); }
  60%  { transform: rotate(14deg) translateY(1px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sd-scroll {
  0%   { transform: rotate(-5deg) translateX(0); }
  50%  { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-7deg) translateX(-2px); }
}
@keyframes sd-seal {
  0%   { box-shadow: 0 0 8px 2px rgba(200,85,61,0.5); opacity: 0.7; }
  50%  { box-shadow: 0 0 18px 6px rgba(200,85,61,0.8); opacity: 1; }
  100% { box-shadow: 0 0 12px 4px rgba(200,85,61,0.6); opacity: 0.85; }
}
@keyframes sd-shadow {
  0%   { opacity: 0.5; transform: scaleY(1); }
  50%  { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(0.95); }
}
@keyframes sd-spot {
  0%   { opacity: 0.1; transform: skewX(-4deg); }
  50%  { opacity: 0.3; transform: skewX(0deg); }
  100% { opacity: 0.2; transform: skewX(4deg); }
}

/* packing-carriage */
.scn-packing-carriage {
  background: linear-gradient(180deg, #1a1510 0%, #2c2218 40%, #3d2b1c 100%), radial-gradient(ellipse at 60% 80%, #5a4020 0%, transparent 70%);
}
.scn-packing-carriage .carriage-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #2a1e14 0%, #4a3520 50%, #3a2818 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
  animation: pc-wall 12s ease-in-out infinite alternate;
}
.scn-packing-carriage .carriage-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a100a 0%, #2a1e14 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-packing-carriage .seat {
  position:absolute; bottom:25%; left:10%; width:50%; height:18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
  animation: pc-seat 6s ease-in-out infinite;
}
.scn-packing-carriage .thrown-linen {
  position:absolute; top:25%; left:15%; width:40px; height:30px;
  background: linear-gradient(135deg, #c8b89a 0%, #a08868 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 50% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: pc-throw1 3s ease-in-out infinite;
}
.scn-packing-carriage .thrown-garment {
  position:absolute; top:35%; left:55%; width:35px; height:45px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: pc-throw2 4s ease-in-out infinite;
}
.scn-packing-carriage .lantern-glow {
  position:absolute; top:20%; right:15%; width:30px; height:30px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,150,80,0.6);
  animation: pc-glow 3s ease-in-out infinite alternate;
}
.scn-packing-carriage .shadow-figure {
  position:absolute; bottom:30%; left:35%; width:20px; height:50px;
  background: linear-gradient(180deg, #0a0806 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 2.5s ease-in-out infinite;
}
.scn-packing-carriage .dust-mote {
  position:absolute; top:15%; left:40%; width:6px; height:6px;
  background: rgba(200,180,150,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: pc-dust 8s linear infinite;
}
@keyframes pc-wall {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(0.97); }
  100% { opacity:0.85; transform: scaleY(1); }
}
@keyframes pc-seat {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes pc-throw1 {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  25% { transform: translate(20px,-30px) rotate(120deg) scale(1.1); }
  50% { transform: translate(40px,0) rotate(240deg) scale(0.9); }
  75% { transform: translate(20px,20px) rotate(360deg) scale(1.05); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
@keyframes pc-throw2 {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  30% { transform: translate(-15px,-20px) rotate(-90deg) scale(1.2); }
  60% { transform: translate(-30px,5px) rotate(-180deg) scale(0.8); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
@keyframes pc-glow {
  0% { box-shadow: 0 0 30px 10px rgba(200,150,80,0.4); opacity:0.7; }
  50% { box-shadow: 0 0 50px 25px rgba(200,150,80,0.8); opacity:1; }
  100% { box-shadow: 0 0 35px 15px rgba(200,150,80,0.5); opacity:0.8; }
}
@keyframes pc-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5px) rotate(3deg); }
  60% { transform: translateX(-5px) rotate(-3deg); }
}
@keyframes pc-dust {
  0% { transform: translate(0,0) scale(1); opacity:0; }
  20% { opacity:0.6; }
  80% { opacity:0.2; }
  100% { transform: translate(20px,-40px) scale(3); opacity:0; }
}

/* night-ride-tsarskoie */
.scn-night-ride-tsarskoie {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f30 50%, #2a2f4a 100%), radial-gradient(ellipse at 50% 0%, #2a3040 0%, transparent 60%);
}
.scn-night-ride-tsarskoie .night-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2030 100%);
  animation: nr-sky 15s ease-in-out infinite alternate;
}
.scn-night-ride-tsarskoie .moon-glow {
  position:absolute; top:8%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #ffefc0 0%, #ffe090 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,224,144,0.3);
  animation: nr-moon 20s ease-in-out infinite;
}
.scn-night-ride-tsarskoie .carriage-body {
  position:absolute; bottom:20%; left:30%; width:120px; height:70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  transform: translateX(-60px);
  animation: nr-carriage-bob 4s ease-in-out infinite;
}
.scn-night-ride-tsarskoie .wheel {
  position:absolute; bottom:12%; width:28px; height:28px;
  background: radial-gradient(circle, #2a1a0a 0%, #0a0604 100%);
  border-radius: 50%;
  border: 3px solid #1a1008;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: nr-wheel-spin 3s linear infinite;
}
.scn-night-ride-tsarskoie .wheel-back { left:35%; animation-delay:-0.5s; }
.scn-night-ride-tsarskoie .wheel-front { left:55%; animation-delay:0s; }
.scn-night-ride-tsarskoie .horse-shadow {
  position:absolute; bottom:15%; left:15%; width:80px; height:50px;
  background: linear-gradient(180deg, #0a0806 0%, #1a120e 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  transform: rotate(-5deg);
  animation: nr-horse 3s ease-in-out infinite;
}
.scn-night-ride-tsarskoie .lantern-swing {
  position:absolute; top:22%; left:45%; width:10px; height:16px;
  background: radial-gradient(circle at 50% 50%, #ffd060 0%, #b08030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.7);
  transform-origin: top center;
  animation: nr-lantern 2s ease-in-out infinite alternate;
}
.scn-night-ride-tsarskoie .road-rush {
  position:absolute; bottom:12%; left:0; right:0; height:6%;
  background: linear-gradient(90deg, transparent 0%, #3a2a1a 20%, #2a1a0a 50%, #3a2a1a 80%, transparent 100%);
  animation: nr-road 2s linear infinite;
}
@keyframes nr-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes nr-moon {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.05); }
}
@keyframes nr-carriage-bob {
  0%,100% { transform: translateX(-60px) translateY(0) rotate(0deg); }
  25% { transform: translateX(-60px) translateY(-3px) rotate(1deg); }
  75% { transform: translateX(-60px) translateY(2px) rotate(-1deg); }
}
@keyframes nr-wheel-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes nr-horse {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-4px); }
}
@keyframes nr-lantern {
  0% { transform: rotate(-8deg); }
  100% { transform: rotate(8deg); }
}
@keyframes nr-road {
  0% { background-position: 0 0; }
  100% { background-position: -100% 0; }
}

/* arrival-tsarskoie-morning */
.scn-arrival-tsarskoie-morning {
  background: linear-gradient(180deg, #b0a090 0%, #d0c0b0 30%, #e0d0c0 60%, #c0b0a0 100%), radial-gradient(ellipse at 50% 0%, #e8d8c8 0%, transparent 70%);
}
.scn-arrival-tsarskoie-morning .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b898 50%, #a08870 100%);
  animation: at-sky 20s ease-in-out infinite alternate;
}
.scn-arrival-tsarskoie-morning .road-strip {
  position:absolute; bottom:30%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
}
.scn-arrival-tsarskoie-morning .carriage-repair {
  position:absolute; bottom:33%; left:40%; width:100px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: translateX(-50%) rotate(2deg);
  animation: at-carriage 6s ease-in-out infinite;
}
.scn-arrival-tsarskoie-morning .broken-wheel {
  position:absolute; bottom:27%; left:30%; width:30px; height:30px;
  background: radial-gradient(circle at 50% 50%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50%;
  border: 4px solid #2a1a0a;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  animation: at-wheel-break 4s ease-in-out infinite;
}
.scn-arrival-tsarskoie-morning .rope-coil {
  position:absolute; bottom:30%; left:48%; width:20px; height:10px;
  background: linear-gradient(135deg, #b89a70 0%, #8a6a40 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: at-rope 3s ease-in-out infinite;
}
.scn-arrival-tsarskoie-morning .figure-kneel {
  position:absolute; bottom:33%; left:50%; width:18px; height:35px;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at-figure 5s ease-in-out infinite;
}
.scn-arrival-tsarskoie-morning .distant-palace {
  position:absolute; top:20%; left:65%; width:60px; height:80px;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  clip-path: polygon(10% 100%, 10% 40%, 50% 10%, 90% 40%, 90% 100%);
  opacity:0.4;
  filter: blur(2px);
  animation: at-palace 25s ease-in-out infinite;
}
.scn-arrival-tsarskoie-morning .mist-layer {
  position:absolute; top:30%; left:0; right:0; height:40%;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: at-mist 15s linear infinite alternate;
}
@keyframes at-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes at-carriage {
  0%,100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes at-wheel-break {
  0% { transform: rotate(0deg) scale(1); }
  20% { transform: rotate(15deg) scale(0.9); }
  40% { transform: rotate(0deg) scale(1.1); }
  60% { transform: rotate(-10deg) scale(0.95); }
  80% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes at-rope {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.1); }
}
@keyframes at-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-2deg); }
  75% { transform: translateY(1px) rotate(2deg); }
}
@keyframes at-palace {
  0% { transform: scale(0.95); opacity:0.3; }
  50% { transform: scale(1); opacity:0.5; }
  100% { transform: scale(0.95); opacity:0.3; }
}
@keyframes at-mist {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(20px) scaleY(1.2); }
}

/* tsarskoie-morning-streets */
.scn-tsarskoie-morning-streets {
  background: linear-gradient(180deg, #3a3a40 0%, #4a4a50 40%, #5a5a60 100%), radial-gradient(ellipse at 50% 50%, #5a5a60 0%, transparent 70%);
}
.scn-tsarskoie-morning-streets .overcast-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #5a5a60 0%, #4a4a50 50%, #3a3a40 100%);
  animation: ts-sky 18s ease-in-out infinite alternate;
}
.scn-tsarskoie-morning-streets .street-pavement {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-tsarskoie-morning-streets .house-left {
  position:absolute; bottom:30%; left:5%; width:40%; height:70%;
  background: linear-gradient(180deg, #4a4440 0%, #3a3430 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4), inset 0 0 20px rgba(0,0,0,0.3);
  animation: ts-house-left 30s ease-in-out infinite;
}
.scn-tsarskoie-morning-streets .house-right {
  position:absolute; bottom:30%; right:5%; width:45%; height:60%;
  background: linear-gradient(180deg, #4a4440 0%, #3a3430 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4), inset 0 0 20px rgba(0,0,0,0.3);
  transform: scaleX(-1);
  animation: ts-house-right 30s ease-in-out infinite;
}
.scn-tsarskoie-morning-streets .figure-walk {
  position:absolute; bottom:15%; left:20%; width:12px; height:28px;
  background: linear-gradient(180deg, #0a0806 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ts-walk 4s linear infinite;
}
.scn-tsarskoie-morning-streets .lamp-post {
  position:absolute; bottom:20%; left:15%; width:4px; height:40px;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px 2px rgba(200,180,140,0.2);
}
.scn-tsarskoie-morning-streets .lamp-post::before {
  content: ''; position:absolute; top:0; left:-4px; width:12px; height:12px;
  background: radial-gradient(circle, #ffe090 0%, #b08040 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,224,144,0.3);
}
.scn-tsarskoie-morning-streets .puddle-mirror {
  position:absolute; bottom:12%; left:25%; width:30px; height:6px;
  background: linear-gradient(180deg, rgba(100,100,120,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ts-puddle 8s ease-in-out infinite alternate;
}
.scn-tsarskoie-morning-streets .fog-bank {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(80,80,90,0.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: ts-fog 20s linear infinite alternate;
}
@keyframes ts-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes ts-house-left {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ts-house-right {
  0%,100% { transform: scaleX(-1) translateY(0); }
  50% { transform: scaleX(-1) translateY(-3px); }
}
@keyframes ts-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  12.5% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  25% { transform: translateX(10px) translateY(0) rotate(0deg); }
  37.5% { transform: translateX(15px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  62.5% { transform: translateX(25px) translateY(-1px) rotate(2deg); }
  75% { transform: translateX(30px) translateY(0) rotate(0deg); }
  87.5% { transform: translateX(35px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes ts-puddle {
  0% { opacity:0.2; transform: scaleX(1) scaleY(1); }
  50% { opacity:0.5; transform: scaleX(1.1) scaleY(0.8); }
  100% { opacity:0.3; transform: scaleX(1) scaleY(1); }
}
@keyframes ts-fog {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(10px) scaleY(1.1); }
  100% { transform: translateX(-10px) scaleY(0.9); }
}

/* villa-secured – dark night, tense watch */
.scn-villa-secured {
  background: linear-gradient(180deg, #0f0f23 0%, #1a1a3a 40%, #2a2a4e 70%, #1e1e34 100%),
              radial-gradient(ellipse at 50% 10%, #2a2a5e 0%, transparent 60%);
}
.scn-villa-secured .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0f0f23 100%); animation: vs-sky 20s ease-in-out infinite alternate; }
.scn-villa-secured .villa-building { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); border-radius:8% 8% 0 0; box-shadow: 0 0 0 2px #3a3a4a; }
.scn-villa-secured .window-lit { position:absolute; bottom:45%; left:40%; width:6%; height:8%; background: radial-gradient(circle, #e0a040 0%, #b07030 70%); border-radius:10%; box-shadow: 0 0 20px 8px rgba(224,160,64,0.5); animation: vs-glow 3s ease-in-out infinite alternate; }
.scn-villa-secured .window-dark { position:absolute; bottom:45%; left:52%; width:6%; height:8%; background: #1a1a2e; border-radius:10%; box-shadow: inset 0 0 10px #0a0a1a; }
.scn-villa-secured .iron-gate { position:absolute; bottom:30%; left:20%; width:60%; height:4%; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 4px, transparent 4px, transparent 20px); border-radius:0; opacity:0.7; animation: vs-gate 8s ease-in-out infinite alternate; }
.scn-villa-secured .watchman { position:absolute; bottom:30%; left:25%; width:4%; height:12%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vs-walk 5s ease-in-out infinite; }
.scn-villa-secured .lantern-glow { position:absolute; bottom:33%; left:22%; width:3%; height:4%; background: radial-gradient(circle, #c08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(192,128,64,0.4); animation: vs-lantern 4s ease-in-out infinite; }
.scn-villa-secured .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1e 0%, #0f0f14 100%); }
@keyframes vs-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vs-glow { 0% { box-shadow: 0 0 15px 4px rgba(224,160,64,0.4); opacity:0.8 } 50% { box-shadow: 0 0 30px 12px rgba(224,160,64,0.7); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(224,160,64,0.5); opacity:0.9 } }
@keyframes vs-gate { 0% { transform: translateY(0); opacity:0.6 } 50% { transform: translateY(-2px); opacity:0.8 } 100% { transform: translateY(0); opacity:0.7 } }
@keyframes vs-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5%) rotate(2deg) } 50% { transform: translateX(10%) rotate(-2deg) } 75% { transform: translateX(5%) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vs-lantern { 0% { transform: translateY(0) rotate(-5deg); box-shadow: 0 0 20px 8px rgba(192,128,64,0.3) } 50% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 35px 15px rgba(192,128,64,0.5) } 100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 25px 10px rgba(192,128,64,0.4) } }

/* matrena-sleep-deprived – dark interior, exhaustion */
.scn-matrena-sleep-deprived {
  background: linear-gradient(180deg, #0a0a18 0%, #12121f 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 50%, #1a1a30 0%, transparent 70%);
}
.scn-matrena-sleep-deprived .dark-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #14141f 0%, #0e0e18 100%); }
.scn-matrena-sleep-deprived .wood-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #1a1a24 0px, #1a1a24 10px, #12121a 10px, #12121a 20px); }
.scn-matrena-sleep-deprived .armchair { position:absolute; bottom:22%; left:30%; width:18%; height:30%; background: linear-gradient(180deg, #2a2a34 0%, #1a1a24 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-matrena-sleep-deprived .slumped-figure { position:absolute; bottom:25%; left:32%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure 6s ease-in-out infinite alternate; }
.scn-matrena-sleep-deprived .side-table { position:absolute; bottom:24%; left:50%; width:8%; height:8%; background: #2a2a3a; border-radius:10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-matrena-sleep-deprived .moon-window { position:absolute; top:12%; left:10%; width:14%; height:18%; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a4e 100%); border-radius:10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: ms-moon 12s ease-in-out infinite alternate; }
.scn-matrena-sleep-deprived .swaying-shadow { position:absolute; top:20%; left:45%; width:6%; height:20%; background: linear-gradient(180deg, transparent, #0a0a1e 50%, transparent); filter: blur(4px); animation: ms-shadow 4s ease-in-out infinite; }
@keyframes ms-figure { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-3%) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ms-moon { 0% { opacity:0.4; box-shadow: inset 0 0 10px rgba(0,0,0,0.4) } 50% { opacity:0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.6) } 100% { opacity:0.5; box-shadow: inset 0 0 15px rgba(0,0,0,0.5) } }
@keyframes ms-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10%) scaleY(1.1) } 100% { transform: translateX(0) scaleY(1) } }

/* no-police-easier – dark room, searching shadows */
.scn-no-police-easier {
  background: linear-gradient(180deg, #0d0d1a 0%, #151525 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 80%, #1e1e30 0%, transparent 60%);
}
.scn-no-police-easier .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0f20 0%, #1a1a2e 50%, #0f0f20 100%); }
.scn-no-police-easier .armchair-left { position:absolute; bottom:20%; left:10%; width:18%; height:25%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a26 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: np-chair-left 10s ease-in-out infinite alternate; }
.scn-no-police-easier .armchair-right { position:absolute; bottom:18%; right:12%; width:16%; height:22%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a26 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: np-chair-right 12s ease-in-out infinite alternate; }
.scn-no-police-easier .sofa { position:absolute; bottom:22%; left:35%; width:28%; height:20%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a26 100%); border-radius:30% 30% 15% 15% / 40% 40% 20% 20%; box-shadow: 0 6px 16px rgba(0,0,0,0.5); }
.scn-no-police-easier .crouching-figure { position:absolute; bottom:25%; left:40%; width:8%; height:14%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); animation: np-crouch 5s ease-in-out infinite; }
.scn-no-police-easier .wandering-shadow { position:absolute; top:30%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, transparent, #0a0a1e 40%, transparent); filter: blur(6px); animation: np-shadow 8s ease-in-out infinite; }
.scn-no-police-easier .dim-lamp { position:absolute; top:15%; left:50%; width:4%; height:8%; background: radial-gradient(circle, #604020 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 25px 10px rgba(96,64,32,0.3); animation: np-lamp 3s ease-in-out infinite alternate; }
@keyframes np-chair-left { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(0) } }
@keyframes np-chair-right { 0% { transform: translateY(0) } 50% { transform: translateY(3%) } 100% { transform: translateY(0) } }
@keyframes np-crouch { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(10deg) translateX(5%) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes np-shadow { 0% { transform: translateX(0) scaleX(1) } 33% { transform: translateX(30%) scaleX(1.2) } 66% { transform: translateX(60%) scaleX(0.8) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes np-lamp { 0% { opacity:0.4; box-shadow: 0 0 15px 4px rgba(96,64,32,0.2) } 50% { opacity:0.9; box-shadow: 0 0 35px 15px rgba(96,64,32,0.5) } 100% { opacity:0.5; box-shadow: 0 0 20px 8px rgba(96,64,32,0.3) } }

/* gratitude-to-rouletabille – warm night garden, thanks */
.scn-gratitude-to-rouletabille {
  background: linear-gradient(180deg, #0f0f1e 0%, #1a1a2e 50%, #2a1a1e 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a2a 0%, transparent 70%);
}
.scn-gratitude-to-rouletabille .night-garden { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%); animation: gr-garden 10s ease-in-out infinite alternate; }
.scn-gratitude-to-rouletabille .veranda-lattice { position:absolute; bottom:20%; left:10%; width:35%; height:40%; background: repeating-linear-gradient(90deg, transparent, transparent 20px, #2a2a3a 20px, #2a2a3a 22px, transparent 22px, transparent 42px), repeating-linear-gradient(0deg, transparent, transparent 20px, #2a2a3a 20px, #2a2a3a 22px, transparent 22px, transparent 42px); border: 4px solid #1a1a2a; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: gr-lattice 15s ease-in-out infinite alternate; }
.scn-gratitude-to-rouletabille .figure-inside { position:absolute; bottom:25%; left:18%; width:8%; height:20%; background: linear-gradient(180deg, #2a1a1e 0%, #1a0a0e 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: gr-figure 6s ease-in-out infinite; }
.scn-gratitude-to-rouletabille .outdoor-lantern { position:absolute; bottom:30%; left:60%; width:5%; height:8%; background: radial-gradient(circle, #c08040 0%, #a06030 70%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 30px 15px rgba(192,128,64,0.5); animation: gr-lantern 4s ease-in-out infinite; }
.scn-gratitude-to-rouletabille .reporter-silhouette { position:absolute; bottom:18%; left:65%; width:6%; height:16%; background: linear-gradient(180deg, #0a0a14 0%, #00000a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: gr-reporter 8s ease-in-out infinite alternate; }
.scn-gratitude-to-rouletabille .warm-glow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, rgba(192,128,64,0.15) 0%, transparent 60%); pointer-events: none; animation: gr-glow 5s ease-in-out infinite alternate; }
.scn-gratitude-to-rouletabille .garden-grass { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #1a2a1a 0%, #0f1a0f 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; }
@keyframes gr-garden { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gr-lattice { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gr-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes gr-lantern { 0% { transform: rotate(-4deg); box-shadow: 0 0 20px 8px rgba(192,128,64,0.4) } 50% { transform: rotate(4deg); box-shadow: 0 0 40px 20px rgba(192,128,64,0.6) } 100% { transform: rotate(-2deg); box-shadow: 0 0 25px 10px rgba(192,128,64,0.5) } }
@keyframes gr-reporter { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(5%) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes gr-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-kouprianes-order {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a4e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
  animation: ko-bgshimmer 12s ease-in-out infinite alternate;
}
.scn-kouprianes-order .sky-dusk {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1f1f4a 0%, transparent 100%);
  animation: ko-skypulse 8s ease-in-out infinite alternate;
}
.scn-kouprianes-order .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2210 0%, #2a180a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-kouprianes-order .document {
  position: absolute; bottom: 32%; left: 38%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d6c8a0 0%, #b8a47a 100%);
  border-radius: 4%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ko-docfloat 6s ease-in-out infinite;
}
.scn-kouprianes-order .seal {
  position: absolute;
  background: radial-gradient(circle, #a63a28 0%, #5e1a1d 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(166,58,40,0.5);
}
.scn-kouprianes-order .seal-1 {
  bottom: 38%; left: 42%; width: 16px; height: 16px;
  animation: ko-sealpulse 4s ease-in-out infinite alternate;
}
.scn-kouprianes-order .seal-2 {
  bottom: 36%; left: 48%; width: 12px; height: 12px;
  animation: ko-sealpulse 4s ease-in-out infinite alternate 1s;
}
.scn-kouprianes-order .candle {
  position: absolute; bottom: 28%; left: 25%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 2px;
  transform: rotate(2deg);
}
.scn-kouprianes-order .flame {
  position: absolute; bottom: 66%; left: 25.2%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #ff8020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,128,32,0.6);
  animation: ko-flame 0.8s ease-in-out infinite alternate;
}
.scn-kouprianes-order .figure-official {
  position: absolute; bottom: 10%; left: 60%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ko-shift 10s ease-in-out infinite;
}
.scn-kouprianes-order .chair-shadow {
  position: absolute; bottom: 8%; left: 55%; width: 70px; height: 50px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: ko-shadowgrow 15s ease-in-out infinite alternate;
}
@keyframes ko-bgshimmer {
  0% { background-color: #2c2244; }
  50% { background-color: #372a54; }
  100% { background-color: #2c2244; }
}
@keyframes ko-skypulse {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes ko-docfloat {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ko-sealpulse {
  0% { transform: scale(1); opacity:0.8; }
  100% { transform: scale(1.1); opacity:1; }
}
@keyframes ko-flame {
  0% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.2) rotate(-5deg); }
  75% { transform: scaleY(0.9) rotate(5deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes ko-shift {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ko-shadowgrow {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.2); }
}

.scn-rouletabille-reassures {
  background:
    linear-gradient(180deg, #3a1a2a 0%, #6a3a4a 30%, #a06048 60%, #c08060 100%),
    radial-gradient(ellipse at 30% 50%, #e0a070 0%, transparent 60%);
  animation: rr-skyfade 20s ease-in-out infinite alternate;
}
.scn-rouletabille-reassures .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a4a3a 0%, #c08060 40%, transparent 100%);
  animation: rr-cloudpause 15s ease-in-out infinite alternate;
}
.scn-rouletabille-reassures .horizon-line {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 60% 0 0;
}
.scn-rouletabille-reassures .tree-silhouette {
  position: absolute; bottom: 38%; left: 15%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rr-tree 18s ease-in-out infinite alternate;
}
.scn-rouletabille-reassures .figure-rouletabille {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: rr-figure-breathe 5s ease-in-out infinite;
}
.scn-rouletabille-reassures .figure-woman {
  position: absolute; bottom: 20%; left: 48%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%;
  animation: rr-figure-breathe 5s ease-in-out infinite 0.5s;
}
.scn-rouletabille-reassures .hands-clasped {
  position: absolute; bottom: 28%; left: 43%; width: 14px; height: 10px;
  background: #4a3a3a;
  border-radius: 40%;
  box-shadow: 0 0 8px rgba(200,150,100,0.3);
  animation: rr-handsqueeze 6s ease-in-out infinite alternate;
}
.scn-rouletabille-reassures .lantern-glow {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #e09050 30%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.5);
  animation: rr-lanternpulse 4s ease-in-out infinite alternate;
}
@keyframes rr-skyfade {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes rr-cloudpause {
  0% { transform: translateY(0); opacity:0.7; }
  50% { transform: translateY(-4px); opacity:0.9; }
  100% { transform: translateY(0); opacity:0.7; }
}
@keyframes rr-tree {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes rr-figure-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes rr-handsqueeze {
  0% { transform: scale(1); }
  100% { transform: scale(1.1); }
}
@keyframes rr-lanternpulse {
  0% { opacity: 0.6; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

.scn-thaddeus-hunting-stories {
  background:
    linear-gradient(180deg, #4a3020 0%, #5a3a2a 30%, #6a4a3a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #7a5a4a 0%, transparent 70%);
  animation: ths-ambient 25s ease-in-out infinite alternate;
}
.scn-thaddeus-hunting-stories .wall-interior {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-bottom: 4px solid #3a2010;
}
.scn-thaddeus-hunting-stories .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2010 0%, #2a1808 100%);
  border-radius: 20% 20% 0 0;
}
.scn-thaddeus-hunting-stories .fireplace {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-thaddeus-hunting-stories .fire-glow {
  position: absolute; bottom: 38%; left: 34%; width: 50px; height: 60px;
  background: radial-gradient(ellipse, #ff8020 0%, #c8553d 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: ths-fire 2s ease-in-out infinite alternate;
}
.scn-thaddeus-hunting-stories .bear-rug {
  position: absolute; bottom: 15%; left: 20%; width: 70px; height: 40px;
  background: #4a3020;
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-thaddeus-hunting-stories .armchair {
  position: absolute; bottom: 12%; left: 55%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(2deg);
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
}
.scn-thaddeus-hunting-stories .thaddeus-large {
  position: absolute; bottom: 12%; left: 56%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ths-sway 9s ease-in-out infinite;
}
.scn-thaddeus-hunting-stories .feodor-figure {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ths-sway 9s ease-in-out infinite 2s;
}
.scn-thaddeus-hunting-stories .bookshelf {
  position: absolute; top: 8%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e08 100%);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
}
@keyframes ths-ambient {
  0% { filter: brightness(1); }
  100% { filter: brightness(1.05); }
}
@keyframes ths-fire {
  0% { transform: scaleY(0.9); opacity:0.8; }
  50% { transform: scaleY(1.2); opacity:1; }
  100% { transform: scaleY(0.9); opacity:0.8; }
}
@keyframes ths-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

.scn-thaddeus-friendship {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #7a5a4a 40%, #6a4a3a 100%),
    radial-gradient(ellipse at 70% 30%, #c09070 0%, transparent 60%);
  animation: thf-warmpulse 20s ease-in-out infinite alternate;
}
.scn-thaddeus-friendship .wall-light {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
}
.scn-thaddeus-friendship .table-round {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-thaddeus-friendship .thaddeus-massive {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 80px;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: thf-heavybreath 8s ease-in-out infinite;
}
.scn-thaddeus-friendship .feodor-small {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: thf-listening 12s ease-in-out infinite;
}
.scn-thaddeus-friendship .wine-glass {
  position: absolute; bottom: 30%; left: 46%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.scn-thaddeus-friendship .oil-lamp {
  position: absolute; bottom: 38%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6840 0%, #5a3820 100%);
  border-radius: 10%;
}
.scn-thaddeus-friendship .lamp-glow {
  position: absolute; bottom: 38%; left: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd060 0%, #e0a040 30%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 30px rgba(255,200,80,0.3);
  animation: thf-lamplight 6s ease-in-out infinite alternate;
}
.scn-thaddeus-friendship .window-bright {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c0d8e0 0%, #a0b8c0 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: thf-windowpulse 15s ease-in-out infinite alternate;
}
.scn-thaddeus-friendship .curtain {
  position: absolute; top: 8%; right: 14%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
}
@keyframes thf-warmpulse {
  0% { filter: brightness(1); }
  100% { filter: brightness(1.03); }
}
@keyframes thf-heavybreath {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.04); }
  100% { transform: scaleY(1); }
}
@keyframes thf-listening {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes thf-lamplight {
  0% { opacity: 0.8; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes thf-windowpulse {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

.scn-contempt-of-death { background: linear-gradient(180deg, #f5e1c0 0%, #d4a76a 60%, #8b5e3c 100%), radial-gradient(ellipse at 30% 40%, #ffd89b 0%, transparent 70%); }
.scn-contempt-of-death .bg        { position:absolute; inset:0; background: radial-gradient(circle at 40% 30%, #eebb77 0%, transparent 70%); opacity:0.3; animation: cd-bg 8s ease-in-out infinite alternate; }
.scn-contempt-of-death .window    { position:absolute; top:5%; left:30%; width:45%; height:55%; background: linear-gradient(135deg, #fff8e0 0%, #ffe8b0 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 60px rgba(255,215,140,0.5); animation: cd-window 6s ease-in-out infinite; }
.scn-contempt-of-death .curtain-l { position:absolute; top:5%; left:27%; width:12%; height:55%; background: linear-gradient(90deg, #7a4a2a 0%, #9a6a3a 50%, #7a4a2a 100%); border-radius: 0 30% 30% 0; transform-origin: left top; animation: cd-curtain 10s ease-in-out infinite alternate; }
.scn-contempt-of-death .curtain-r { position:absolute; top:5%; right:27%; width:12%; height:55%; background: linear-gradient(90deg, #7a4a2a 0%, #9a6a3a 50%, #7a4a2a 100%); border-radius: 30% 0 0 30%; transform-origin: right top; animation: cd-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-contempt-of-death .figure    { position:absolute; bottom:18%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure 4s ease-in-out infinite; }
.scn-contempt-of-death .arm       { position:absolute; bottom:48%; left:53%; width:30px; height:4px; background: #1a0a00; border-radius: 2px; transform-origin: left center; animation: cd-arm 2s ease-in-out infinite; }
.scn-contempt-of-death .glass     { position:absolute; bottom:58%; left:70%; width:10px; height:12px; background: radial-gradient(circle, #ffe080 0%, #c89650 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,220,100,0.6); animation: cd-glass 2s ease-in-out infinite; }
.scn-contempt-of-death .shine     { position:absolute; top:8%; left:32%; width:40%; height:2px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.7), transparent); transform: rotate(-15deg); animation: cd-shine 12s linear infinite; }
@keyframes cd-bg      { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes cd-window  { 0%,100% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(1.01); } }
@keyframes cd-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.8); } }
@keyframes cd-figure  { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cd-arm     { 0% { transform: rotate(40deg); } 50% { transform: rotate(60deg); } 100% { transform: rotate(40deg); } }
@keyframes cd-glass   { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-2px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.8; } }
@keyframes cd-shine   { 0% { left: -10%; opacity:0; } 20% { left: 30%; opacity:0.6; } 80% { left: 65%; opacity:0.6; } 100% { left: 110%; opacity:0; } }

.scn-more-heroism { background: linear-gradient(180deg, #d4c4a0 0%, #b8946a 40%, #8a6e48 100%), radial-gradient(ellipse at 70% 50%, #f0d4a0 0%, transparent 80%); }
.scn-more-heroism .floor      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #6a4e34 0%, #8a6e48 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.3); animation: mh-floor 12s ease-in-out infinite; }
.scn-more-heroism .wall-back  { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #d4c4a0 0%, #c0a880 100%); border-radius: 0 0 10% 10%; }
.scn-more-heroism .wall-side  { position:absolute; top:0; left:0; width:25%; height:70%; background: linear-gradient(90deg, #b8946a 0%, #c8a880 100%); transform: skewY(5deg); transform-origin: top left; animation: mh-side 15s ease-in-out infinite alternate; }
.scn-more-heroism .lamp       { position:absolute; top:5%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #c8a050 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(200,160,80,0.3); animation: mh-lamp 4s ease-in-out infinite; }
.scn-more-heroism .figure     { position:absolute; bottom:20%; left:20%; width:18px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-walk 6s linear infinite; }
.scn-more-heroism .cape       { position:absolute; bottom:32%; left:22%; width:25px; height:30px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius: 0 80% 80% 0; transform-origin: top left; animation: mh-cape 6s ease-in-out infinite; }
.scn-more-heroism .shadow     { position:absolute; bottom:0; left:20%; width:18px; height:8px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: mh-walk 6s linear infinite; }
@keyframes mh-floor  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mh-side   { 0% { transform: skewY(5deg) translateX(0); } 50% { transform: skewY(3deg) translateX(-5px); } 100% { transform: skewY(5deg) translateX(0); } }
@keyframes mh-lamp   { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes mh-walk   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(50px) rotate(2deg); } 50% { transform: translateX(100px) rotate(-2deg); } 75% { transform: translateX(150px) rotate(1deg); } 100% { transform: translateX(200px) rotate(0deg); } }
@keyframes mh-cape   { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(10deg) scaleX(1.1); } 50% { transform: rotate(-5deg) scaleX(0.9); } 75% { transform: rotate(8deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(1); } }

.scn-book-on-table { background: linear-gradient(180deg, #f5d488 0%, #d4a76a 40%, #8b5e3c 100%), radial-gradient(circle at 50% 70%, #c89650 0%, transparent 60%); }
.scn-book-on-table .floor    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6a4e34 0%, #8a6e48 100%); border-radius: 30% 30% 0 0; animation: bt-floor 8s ease-in-out infinite; }
.scn-book-on-table .rug      { position:absolute; bottom:15%; left:15%; width:70%; height:30%; background: linear-gradient(135deg, #4a7a6a 0%, #6a9a8a 50%, #4a7a6a 100%); border-radius: 20%; box-shadow: 0 -5px 15px rgba(0,0,0,0.3); animation: bt-rug 12s ease-in-out infinite alternate; }
.scn-book-on-table .tabletop { position:absolute; bottom:40%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #b08040 0%, #906030 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: rotateX(45deg); animation: bt-table 6s ease-in-out infinite; }
.scn-book-on-table .book     { position:absolute; bottom:48%; left:43%; width:12%; height:8%; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); transform: rotate(-10deg); animation: bt-book 3s ease-in-out infinite; }
.scn-book-on-table .pages    { position:absolute; bottom:49%; left:44%; width:10%; height:4%; background: #f0e8d0; border-radius: 1px; box-shadow: 0 1px 2px rgba(0,0,0,0.2); transform: rotate(-10deg); animation: bt-pages 2s ease-in-out infinite alternate; }
.scn-book-on-table .lamp     { position:absolute; bottom:55%; left:50%; width:20px; height:30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #ffe888 0%, #c89650 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 15px rgba(200,150,80,0.4); animation: bt-lamp 5s ease-in-out infinite; }
.scn-book-on-table .shadow   { position:absolute; bottom:38%; left:42%; width:25%; height:6px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: bt-shadow 4s ease-in-out infinite; }
@keyframes bt-floor  { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.005); } }
@keyframes bt-rug    { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(-2%) rotate(-1deg); } }
@keyframes bt-table  { 0% { transform: rotateX(45deg) translateY(0); } 50% { transform: rotateX(43deg) translateY(-1px); } 100% { transform: rotateX(45deg) translateY(0); } }
@keyframes bt-book   { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes bt-pages  { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-1px); } }
@keyframes bt-lamp   { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes bt-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-no-police-anymore { background: linear-gradient(180deg, #8a6e48 0%, #6a4e34 40%, #4a3020 100%), radial-gradient(ellipse at 30% 20%, #d4a76a 0%, transparent 60%); }
.scn-no-police-anymore .wall          { position:absolute; inset:0; background: linear-gradient(135deg, #6a4e34 0%, #4a3020 100%); }
.scn-no-police-anymore .doorway       { position:absolute; bottom:20%; left:30%; width:40%; height:70%; border: 6px solid #3a2214; border-bottom: none; background: transparent; border-radius: 30% 30% 0 0; }
.scn-no-police-anymore .door          { position:absolute; bottom:20%; left:30%; width:40%; height:70%; background: linear-gradient(135deg, #5a3a24 0%, #3a2214 100%); border-radius: 30% 30% 0 0; transform-origin: left center; animation: np-door 8s ease-in-out infinite alternate; }
.scn-no-police-anymore .outside-light { position:absolute; bottom:20%; left:30%; width:40%; height:70%; background: radial-gradient(ellipse at 50% 30%, #ffe8b0 0%, #d4a76a 50%, transparent 80%); opacity:0.6; border-radius: 30% 30% 0 0; animation: np-light 6s ease-in-out infinite; }
.scn-no-police-anymore .figure        { position:absolute; bottom:22%; left:10%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-enter 8s linear infinite; }
.scn-no-police-anymore .floor         { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #3a2214 0%, #5a3a24 100%); border-radius: 30% 30% 0 0; }
.scn-no-police-anymore .shadow        { position:absolute; bottom:0; left:25%; width:30px; height:10px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: np-shadow 8s linear infinite; }
@keyframes np-door  { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.3); } 100% { transform: scaleX(1); } }
@keyframes np-light { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes np-enter { 0% { transform: translateX(0) scaleX(-1); } 20% { transform: translateX(30px) scaleX(-1); opacity:0.5; } 40% { transform: translateX(60px) scaleX(-1); opacity:1; } 60% { transform: translateX(90px) scaleX(1); } 80% { transform: translateX(120px) scaleX(1); } 100% { transform: translateX(160px) scaleX(1); } }
@keyframes np-shadow { 0% { transform: translateX(0) scaleX(1); } 20% { transform: translateX(30px) scaleX(1.2); } 40% { transform: translateX(60px) scaleX(1.5); } 60% { transform: translateX(90px) scaleX(1.3); } 80% { transform: translateX(120px) scaleX(1.1); } 100% { transform: translateX(160px) scaleX(1); } }

.scn-natacha-improvises {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 50%, #e8d5b0 100%), radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 70%);
}
.scn-natacha-improvises .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e6d0 0%, #d9c8a8 100%); 
  animation: ni-bg 10s ease-in-out infinite alternate;
}
.scn-natacha-improvises .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%; 
  background: linear-gradient(180deg, #fff8e7 0%, #e8dcc0 100%); 
  border: 6px solid #8b5e3c; border-radius: 4px; box-shadow: 0 0 40px rgba(255,248,231,0.3); 
  animation: ni-glow 4s ease-in-out infinite alternate;
}
.scn-natacha-improvises .father {
  position: absolute; bottom: 20%; left: 15%; width: 14%; height: 28%; 
  background: radial-gradient(ellipse 60% 50% at 50% 30%, #7a5a3a 0%, #4a3520 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  animation: ni-breathe 6s ease-in-out infinite;
}
.scn-natacha-improvises .natacha {
  position: absolute; bottom: 18%; left: 40%; width: 12%; height: 38%; 
  background: radial-gradient(ellipse 50% 50% at 50% 25%, #d4a373 0%, #a07050 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; 
  animation: ni-sway 5s ease-in-out infinite;
}
.scn-natacha-improvises .light-ray {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 60%; 
  background: linear-gradient(135deg, rgba(255,248,231,0.15) 0%, rgba(255,248,231,0) 80%); 
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); 
  animation: ni-ray 7s ease-in-out infinite alternate;
}
.scn-natacha-improvises .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%; 
  background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.2) 100%); 
  transform-origin: bottom center; animation: ni-shadow 12s ease-in-out infinite alternate;
}
@keyframes ni-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ni-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px rgba(255,248,231,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px rgba(255,248,231,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 35px rgba(255,248,231,0.25); } }
@keyframes ni-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ni-sway { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes ni-ray { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes ni-shadow { 0% { transform: skewX(0deg) scaleY(1); } 50% { transform: skewX(3deg) scaleY(1.02); } 100% { transform: skewX(0deg) scaleY(1); } }

.scn-natacha-song-effect {
  background: linear-gradient(180deg, #fef9ef 0%, #f3e8d0 50%, #e0d0b0 100%), radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-natacha-song-effect .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f5edd8 0%, #e0d0b0 100%); 
  animation: nse-bg 15s ease-in-out infinite alternate;
}
.scn-natacha-song-effect .stage {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 30%; 
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); 
  border-radius: 20% 20% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,0.1); 
  animation: nse-stage 8s ease-in-out infinite alternate;
}
.scn-natacha-song-effect .natacha {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 40%; 
  background: radial-gradient(ellipse 55% 45% at 50% 30%, #d4a373 0%, #a07050 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: nse-sing 4s ease-in-out infinite;
}
.scn-natacha-song-effect .listener-a {
  position: absolute; bottom: 8%; left: 12%; width: 12%; height: 22%; 
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  animation: nse-listen 6s ease-in-out infinite; animation-delay: 0s;
}
.scn-natacha-song-effect .listener-b {
  position: absolute; bottom: 8%; left: 30%; width: 12%; height: 22%; 
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #5a4a3a 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  animation: nse-listen 6s ease-in-out infinite; animation-delay: -2s;
}
.scn-natacha-song-effect .listener-c {
  position: absolute; bottom: 8%; left: 60%; width: 12%; height: 22%; 
  background: radial-gradient(ellipse 50% 40% at 50% 30%, #7a6a5a 0%, #4a3a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  animation: nse-listen 6s ease-in-out infinite; animation-delay: -4s;
}
.scn-natacha-song-effect .light-spot {
  position: absolute; top: -5%; left: 40%; width: 20%; height: 50%; 
  background: radial-gradient(ellipse at center, rgba(255,248,231,0.3) 0%, transparent 70%); 
  animation: nse-spot 5s ease-in-out infinite alternate;
}
@keyframes nse-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nse-stage { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes nse-sing { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.03) translateX(3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes nse-listen { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes nse-spot { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.98); } }

.scn-korsakoff-comment {
  background: linear-gradient(180deg, #f5edd8 0%, #e0d0b0 40%, #c8b898 100%), radial-gradient(ellipse at 60% 40%, #fff8e7 0%, transparent 60%);
}
.scn-korsakoff-comment .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ede0c8 0%, #d0c0a0 100%); 
  animation: kc-bg 8s ease-in-out infinite alternate;
}
.scn-korsakoff-comment .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 16%; 
  background: linear-gradient(180deg, #a08870 0%, #705848 100%); 
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 20px rgba(0,0,0,0.3); 
  animation: kc-table 5s ease-in-out infinite alternate;
}
.scn-korsakoff-comment .korsakoff {
  position: absolute; bottom: 18%; left: 45%; width: 16%; height: 40%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: kc-stand 3s ease-in-out infinite;
}
.scn-korsakoff-comment .orderly-a {
  position: absolute; bottom: 10%; left: 12%; width: 12%; height: 20%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  animation: kc-nod 4s ease-in-out infinite; animation-delay: 0s;
}
.scn-korsakoff-comment .orderly-b {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 20%; 
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; 
  animation: kc-nod 4s ease-in-out infinite; animation-delay: -1.5s;
}
.scn-korsakoff-comment .lamp {
  position: absolute; top: 5%; left: 42%; width: 16%; height: 10%; 
  background: radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, #c8a060 100%); 
  border-radius: 50%; box-shadow: 0 0 40px rgba(255,232,192,0.3); 
  animation: kc-flicker 2s ease-in-out infinite alternate;
}
.scn-korsakoff-comment .shadow {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 30%; 
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 100%); 
  transform-origin: bottom center; animation: kc-shade 6s ease-in-out infinite alternate;
}
@keyframes kc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kc-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes kc-stand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kc-nod { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }
@keyframes kc-flicker { 0% { opacity: 0.8; box-shadow: 0 0 30px rgba(255,232,192,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px rgba(255,232,192,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 20px rgba(255,232,192,0.1); } }
@keyframes kc-shade { 0% { transform: skewX(0deg) scaleX(1); } 50% { transform: skewX(-4deg) scaleX(1.02); } 100% { transform: skewX(0deg) scaleX(1); } }

.scn-general-weeps {
  background: linear-gradient(180deg, #fdf6e3 0%, #f0e6d0 50%, #e0d0b0 100%), radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 60%);
}
.scn-general-weeps .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f5edd8 0%, #d8c8a8 100%); 
  animation: gw-bg 12s ease-in-out infinite alternate;
}
.scn-general-weeps .table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 14%; 
  background: linear-gradient(180deg, #a08870 0%, #705848 100%); 
  border-radius: 8% 8% 0 0; box-shadow: 0 4px 20px rgba(0,0,0,0.2); 
  animation: gw-table 10s ease-in-out infinite alternate;
}
.scn-general-weeps .general {
  position: absolute; bottom: 15%; left: 35%; width: 18%; height: 35%; 
  background: radial-gradient(ellipse 55% 45% at 50% 30%, #6a5a4a 0%, #3a2a1a 100%); 
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  animation: gw-weep 7s ease-in-out infinite;
}
.scn-general-weeps .glass {
  position: absolute; bottom: 12%; left: 60%; width: 6%; height: 18%; 
  background: linear-gradient(180deg, rgba(255,248,231,0.6) 0%, rgba(200,180,150,0.3) 100%); 
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px rgba(255,248,231,0.3); 
  animation: gw-fizz 4s ease-in-out infinite;
}
.scn-general-weeps .bottle {
  position: absolute; bottom: 14%; left: 70%; width: 8%; height: 24%; 
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); 
  border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); 
  animation: gw-wobble 8s ease-in-out infinite alternate;
}
.scn-general-weeps .napkin {
  position: absolute; bottom: 8%; left: 45%; width: 10%; height: 6%; 
  background: linear-gradient(180deg, #fff8e7 0%, #e8dcc0 100%); 
  border-radius: 10% 10% 40% 40%; transform-origin: top center; 
  animation: gw-flutter 6s ease-in-out infinite alternate;
}
@keyframes gw-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gw-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes gw-weep { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gw-fizz { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes gw-wobble { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes gw-flutter { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(-5deg) scaleY(1); } }

/* Scene: kasan-line-engine */
.scn-kasan-line-engine {
  background: 
    linear-gradient(180deg, #1a1820 0%, #2a2428 40%, #18141a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-kasan-line-engine .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1618 0%, #0e0c10 100%); animation: kl-bg 12s ease-in-out infinite alternate; }
.scn-kasan-line-engine .gaslight { position:absolute; top:15%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #e0b060 0%, #b08030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(200,140,60,0.4); animation: kl-gas 4s ease-in-out infinite; }
.scn-kasan-line-engine .window { position:absolute; top:10%; right:15%; width:50px; height:40px; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border: 2px solid #3a2a1a; border-radius:4px; box-shadow: inset 0 0 6px #0a0a1a, 0 0 10px rgba(100,130,180,0.2); animation: kl-window 8s ease-in-out infinite alternate; }
.scn-kasan-line-engine .engineer { position:absolute; bottom:30%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kl-eng 6s ease-in-out infinite; }
.scn-kasan-line-engine .steam { position:absolute; background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); }
.scn-kasan-line-engine .cloud-a { top:20%; left:10%; width:70px; height:25px; animation: kl-steam-a 15s linear infinite; }
.scn-kasan-line-engine .cloud-b { top:30%; right:5%; width:50px; height:18px; animation: kl-steam-b 20s linear infinite reverse; }
.scn-kasan-line-engine .lever { position:absolute; bottom:35%; left:20%; width:4px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; transform-origin: bottom center; animation: kl-lever 5s ease-in-out infinite alternate; }
@keyframes kl-bg { 0%,100% { opacity:1; } 50% { opacity:0.85; } }
@keyframes kl-gas { 0%,100% { transform:scale(0.9); opacity:0.8; box-shadow:0 0 40px 12px rgba(200,140,60,0.3); } 50% { transform:scale(1.1); opacity:1; box-shadow:0 0 80px 30px rgba(220,160,80,0.5); } }
@keyframes kl-window { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.2); } 100% { filter:brightness(0.9); } }
@keyframes kl-eng { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(2deg); } }
@keyframes kl-steam-a { 0% { transform:translateX(0) translateY(0); opacity:0; } 10% { opacity:0.6; } 100% { transform:translateX(100vw) translateY(-20px); opacity:0; } }
@keyframes kl-steam-b { 0% { transform:translateX(0) translateY(0); opacity:0; } 15% { opacity:0.4; } 100% { transform:translateX(-80vw) translateY(-30px); opacity:0; } }
@keyframes kl-lever { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* Scene: miracle-engine-smashed */
.scn-miracle-engine-smashed {
  background: 
    linear-gradient(180deg, #0e0e14 0%, #1a1618 40%, #0c0a10 100%),
    radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, transparent 80%);
}
.scn-miracle-engine-smashed .bg-cab { position:absolute; inset:0; background: linear-gradient(180deg, #141018 0%, #0e0c10 100%); animation: ms-bg 10s ease-in-out infinite alternate; }
.scn-miracle-engine-smashed .firebox { position:absolute; bottom:20%; left:25%; width:60px; height:50px; background: radial-gradient(circle at 50% 40%, #ff8030 0%, #cc4000 40%, #600800 100%); border-radius: 20% 20% 60% 60% / 40% 40% 60% 60%; box-shadow: 0 0 100px 40px rgba(255,100,20,0.6), inset 0 0 20px #ffa050; animation: ms-fire 3s ease-in-out infinite alternate; }
.scn-miracle-engine-smashed .engineer { position:absolute; bottom:30%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-eng 4s ease-in-out infinite; }
.scn-miracle-engine-smashed .steam { position:absolute; background: linear-gradient(180deg, rgba(220,200,180,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(10px); }
.scn-miracle-engine-smashed .plume { top:10%; left:30%; width:90px; height:30px; animation: ms-steam 8s linear infinite; }
.scn-miracle-engine-smashed .gauge { position:absolute; top:40%; right:20%; width:16px; height:16px; background: radial-gradient(circle, #c08040 0%, #603020 100%); border-radius:50%; border: 2px solid #4a2a1a; box-shadow: inset 0 0 4px #2a1a0a; animation: ms-gauge 6s ease-in-out infinite alternate; }
.scn-miracle-engine-smashed .spark { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #ffc080 0%, #ff6000 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,120,0,0.8); }
.scn-miracle-engine-smashed .spark-a { top:25%; left:20%; animation: ms-spark-a 2s ease-in-out infinite; }
.scn-miracle-engine-smashed .spark-b { top:35%; left:35%; animation: ms-spark-b 3s ease-in-out infinite 0.5s; }
.scn-miracle-engine-smashed .glow-pulse { position:absolute; bottom:15%; left:20%; width:120px; height:80px; background: radial-gradient(ellipse at 50% 50%, rgba(255,100,20,0.2) 0%, transparent 100%); animation: ms-glow 4s ease-in-out infinite alternate; }
@keyframes ms-bg { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ms-fire { 0% { transform:scale(0.95); filter:brightness(0.9); } 50% { transform:scale(1.05); filter:brightness(1.2); } 100% { transform:scale(1); filter:brightness(1); } }
@keyframes ms-eng { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-3deg); } 70% { transform: translateX(-1px) rotate(2deg); } }
@keyframes ms-steam { 0% { transform:translateY(0) scale(0.5); opacity:0; } 20% { opacity:0.6; transform:translateY(-20px) scale(1); } 100% { transform:translateY(-60px) scale(1.5); opacity:0; } }
@keyframes ms-gauge { 0% { transform:rotate(0deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(-10deg); } }
@keyframes ms-spark-a { 0% { transform:translate(0,0) scale(1); opacity:1; } 50% { transform:translate(20px,-10px) scale(0.5); opacity:0.6; } 100% { transform:translate(40px,-20px) scale(0.1); opacity:0; } }
@keyframes ms-spark-b { 0% { transform:translate(0,0) scale(1); opacity:1; } 60% { transform:translate(-15px,-12px) scale(0.6); opacity:0.5; } 100% { transform:translate(-30px,-25px) scale(0.1); opacity:0; } }
@keyframes ms-glow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* Scene: vlassof-inn-lubetszy */
.scn-vlassof-inn-lubetszy {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1e1612 40%, #140e0c 100%),
    radial-gradient(ellipse at 30% 50%, #4a3020 0%, transparent 80%);
}
.scn-vlassof-inn-lubetszy .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%); animation: vi-bg 15s ease-in-out infinite alternate; }
.scn-vlassof-inn-lubetszy .gaslamp { position:absolute; top:10%; left:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 60%, #e0b060 0%, #a08030 50%, transparent 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 50px 15px rgba(200,140,60,0.5); animation: vi-lamp 5s ease-in-out infinite; }
.scn-vlassof-inn-lubetszy .table { position:absolute; bottom:25%; left:40%; width:80px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: perspective(200px) rotateX(10deg); animation: vi-table 8s ease-in-out infinite alternate; }
.scn-vlassof-inn-lubetszy .figure { position:absolute; bottom:20%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8)); }
.scn-vlassof-inn-lubetszy .figure-a { left:15%; animation: vi-fig-a 6s ease-in-out infinite; }
.scn-vlassof-inn-lubetszy .figure-b { left:60%; animation: vi-fig-b 7s ease-in-out infinite 1s; }
.scn-vlassof-inn-lubetszy .figure-c { left:75%; width:20px; height:42px; animation: vi-fig-c 8s ease-in-out infinite 0.5s; }
.scn-vlassof-inn-lubetszy .door { position:absolute; bottom:20%; right:5%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border: 2px solid #0e0a06; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px #0a0604, 0 0 6px rgba(200,180,140,0.1); animation: vi-door 10s ease-in-out infinite alternate; }
.scn-vlassof-inn-lubetszy .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(10,6,4,0.8) 0%, transparent 100%); animation: vi-shadow 12s ease-in-out infinite alternate; }
@keyframes vi-bg { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes vi-lamp { 0%,100% { transform:scale(0.95) rotate(-2deg); opacity:0.85; } 50% { transform:scale(1.05) rotate(2deg); opacity:1; } }
@keyframes vi-table { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(8deg) translateY(1px); } }
@keyframes vi-fig-a { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 70% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes vi-fig-b { 0%,100% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(1deg); } 80% { transform: translateX(2px) rotate(-1deg); } }
@keyframes vi-fig-c { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-4deg); } 75% { transform: translateX(-3px) rotate(3deg); } }
@keyframes vi-door { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.1); } 100% { filter:brightness(0.9); } }
@keyframes vi-shadow { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }

/* Scene: volley-sounded */
.scn-volley-sounded {
  background: 
    linear-gradient(180deg, #c8d8e0 0%, #e0e8ec 30%, #f0f4f0 60%, #d8e0d8 100%),
    radial-gradient(ellipse at 70% 30%, #f8fcff 0%, transparent 80%);
}
.scn-volley-sounded .sky-heavy { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8c8d0 0%, #e0e8ec 100%); animation: vs-sky 20s ease-in-out infinite alternate; }
.scn-volley-sounded .sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff8e8 0%, #f0e0c0 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,240,200,0.6); animation: vs-sun 10s ease-in-out infinite alternate; }
.scn-volley-sounded .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a8b890 0%, #7a8a6a 100%); border-radius: 30% 0 0 0 / 10% 0 0 0; animation: vs-ground 8s ease-in-out infinite alternate; }
.scn-volley-sounded .wall { position:absolute; bottom:20%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); border-radius: 4px; box-shadow: inset 0 0 10px #4a3a2a, 0 4px 8px rgba(0,0,0,0.3); animation: vs-wall 12s ease-in-out infinite alternate; }
.scn-volley-sounded .soldier { position:absolute; bottom:15%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.5)); }
.scn-volley-sounded .soldier-a { left:30%; animation: vs-soldier 5s ease-in-out infinite; }
.scn-volley-sounded .soldier-b { left:45%; animation: vs-soldier 5s ease-in-out infinite 0.7s; }
.scn-volley-sounded .soldier-c { left:60%; animation: vs-soldier 5s ease-in-out infinite 1.4s; }
.scn-volley-sounded .vlassof { position:absolute; bottom:18%; left:50%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vs-vlassof 6s ease-in-out infinite; }
.scn-volley-sounded .dust { position:absolute; bottom:5%; left:20%; right:20%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,0.4) 0%, transparent 100%); filter: blur(6px); animation: vs-dust 15s ease-in-out infinite alternate; }
.scn-volley-sounded .motes { position:absolute; top:40%; left:20%; width:10px; height:10px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: vs-motes 20s linear infinite; }
@keyframes vs-sky { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.1); } 100% { filter:brightness(1); } }
@keyframes vs-sun { 0% { transform:scale(0.95); opacity:0.9; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(0.98); opacity:0.95; } }
@keyframes vs-ground { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(-1px); } }
@keyframes vs-wall { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.1); } 100% { filter:brightness(0.9); } }
@keyframes vs-soldier { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(1px) rotate(2deg); } 70% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes vs-vlassof { 0%,100% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(2px) rotate(-2deg) scale(0.98); } 75% { transform: translateX(-1px) rotate(1deg) scale(1.02); } }
@keyframes vs-dust { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes vs-motes { 0% { transform:translate(0,0); opacity:0; } 10% { opacity:0.5; } 100% { transform:translate(80vw, -20vh); opacity:0; } }

.scn-revolver-barrel-temple {
  background: linear-gradient(180deg, #0b1725 0%, #14253c 50%, #1e3550 100%),
              radial-gradient(ellipse at 70% 20%, #2a4a6a 0%, transparent 60%);
}
.scn-revolver-barrel-temple .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0b1725 0%, #14253c 100%); animation: rbt-bg 12s ease-in-out infinite alternate; }
.scn-revolver-barrel-temple .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0eaf5 0%, #b0c8e0 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(176,200,224,0.4); animation: rbt-moon 20s ease-in-out infinite; }
.scn-revolver-barrel-temple .tree-left { position:absolute; bottom:30%; left:5%; width:30px; height:80px; background: linear-gradient(180deg, #0d1a2a 0%, #1a2e44 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; transform: scaleX(0.8); animation: rbt-tree 8s ease-in-out infinite alternate; }
.scn-revolver-barrel-temple .tree-right { position:absolute; bottom:30%; right:10%; width:35px; height:90px; background: linear-gradient(180deg, #0d1a2a 0%, #1a2e44 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; animation: rbt-tree 10s ease-in-out infinite alternate-reverse; }
.scn-revolver-barrel-temple .figure { position:absolute; bottom:30%; left:45%; width:22px; height:70px; background: linear-gradient(180deg, #0a0f1a 0%, #141f30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rbt-figure 3s ease-in-out infinite; }
.scn-revolver-barrel-temple .revolver { position:absolute; bottom:65%; left:55%; width:12px; height:4px; background: #5a6a7a; border-radius: 2px; transform: rotate(-30deg); animation: rbt-revolver 0.8s ease-in-out infinite; }
.scn-revolver-barrel-temple .hand { position:absolute; bottom:62%; left:52%; width:10px; height:15px; background: #1a2a3a; border-radius: 40% 40% 30% 30%; transform: rotate(10deg); animation: rbt-hand 0.8s ease-in-out infinite; }
.scn-revolver-barrel-temple .cloud { position:absolute; top:15%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, rgba(200,220,240,0.05) 100%); border-radius:50%; filter: blur(6px); animation: rbt-cloud 45s linear infinite; }
@keyframes rbt-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rbt-moon { 0% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(176,200,224,0.4); } 50% { transform: scale(1.02); box-shadow: 0 0 50px 20px rgba(176,200,224,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 35px 10px rgba(176,200,224,0.3); } }
@keyframes rbt-tree { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.85) translateY(-2px); } 100% { transform: scaleX(0.8) translateY(1px); } }
@keyframes rbt-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rbt-revolver { 0% { transform: rotate(-30deg) translate(0); } 50% { transform: rotate(-32deg) translate(1px, -1px); } 100% { transform: rotate(-30deg) translate(0); } }
@keyframes rbt-hand { 0% { transform: rotate(10deg) translate(0); } 50% { transform: rotate(12deg) translate(1px, 0); } 100% { transform: rotate(10deg) translate(0); } }
@keyframes rbt-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-natacha-pretending-abed {
  background: linear-gradient(180deg, #0a0f14 0%, #141c24 50%, #1e2a35 100%),
              radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 80%);
}
.scn-natacha-pretending-abed .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #0a0f14 0%, #141c24 100%); animation: npa-wall 15s ease-in-out infinite alternate; }
.scn-natacha-pretending-abed .window { position:absolute; top:10%; left:30%; width:40%; height:40%; background: #1a2a35; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.8); animation: npa-window 4s ease-in-out infinite; }
.scn-natacha-pretending-abed .curtain-left { position:absolute; top:10%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #1a2030 0%, #2a3a4a 100%); border-radius: 30% 0 0 30%; transform-origin: left top; animation: npa-curtain 6s ease-in-out infinite; }
.scn-natacha-pretending-abed .curtain-right { position:absolute; top:10%; right:30%; width:12%; height:40%; background: linear-gradient(180deg, #1a2030 0%, #2a3a4a 100%); border-radius: 0 30% 30% 0; transform-origin: right top; animation: npa-curtain 6s ease-in-out infinite reverse; }
.scn-natacha-pretending-abed .bed { position:absolute; bottom:20%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #3a3a3a 0%, #202020 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-natacha-pretending-abed .blanket { position:absolute; bottom:20%; left:22%; width:56%; height:15%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 40% 40% 10% 10%; animation: npa-blanket 3s ease-in-out infinite; }
.scn-natacha-pretending-abed .figure { position:absolute; bottom:30%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #0a0f1a 0%, #141c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: npa-figure 5s ease-in-out infinite; }
.scn-natacha-pretending-abed .lamp-off { position:absolute; bottom:35%; right:25%; width:12px; height:18px; background: #1a2a3a; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 4px 2px rgba(0,0,0,0.5); animation: npa-lamp 4s ease-in-out infinite; }
@keyframes npa-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes npa-window { 0% { box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 30px 15px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px 10px rgba(0,0,0,0.8); } }
@keyframes npa-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes npa-blanket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes npa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes npa-lamp { 0% { opacity:0.2; box-shadow: 0 0 4px 2px rgba(0,0,0,0.5); } 50% { opacity:0; box-shadow: none; } 100% { opacity:0.2; box-shadow: 0 0 4px 2px rgba(0,0,0,0.5); } }

.scn-krestowsky-surveillance {
  background: linear-gradient(180deg, #0a0f1a 0%, #121c2a 50%, #1c2b3e 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%);
}
.scn-krestowsky-surveillance .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0f1a 0%, #121c2a 100%); animation: kss-bg 18s ease-in-out infinite alternate; }
.scn-krestowsky-surveillance .moon { position:absolute; top:6%; left:15%; width:35px; height:35px; background: radial-gradient(circle, #d0dce8 0%, #a0b8d0 70%); border-radius:50%; box-shadow: 0 0 35px 12px rgba(160,184,208,0.4); animation: kss-moon 25s ease-in-out infinite; }
.scn-krestowsky-surveillance .house { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a3a 0%, #0e1a24 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,0.6); }
.scn-krestowsky-surveillance .window-lit { position:absolute; bottom:40%; left:55%; width:14px; height:18px; background: radial-gradient(circle, #e0c080 0%, #b09050 70%); border-radius: 4%; box-shadow: 0 0 20px 6px rgba(224,192,128,0.3); animation: kss-window 5s ease-in-out infinite alternate; }
.scn-krestowsky-surveillance .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #121c2a 0%, #0a0f1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-krestowsky-surveillance .figure-crouch { position:absolute; bottom:20%; left:25%; width:18px; height:30px; background: linear-gradient(180deg, #0a0f1a 0%, #141c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9) rotate(-5deg); animation: kss-figure 4s ease-in-out infinite; }
.scn-krestowsky-surveillance .tree { position:absolute; bottom:20%; right:10%; width:25px; height:80px; background: linear-gradient(180deg, #0d1a2a 0%, #1a2e44 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: kss-tree 9s ease-in-out infinite alternate; }
.scn-krestowsky-surveillance .cloud { position:absolute; top:12%; right:20%; width:60px; height:14px; background: linear-gradient(180deg, rgba(200,220,240,0.2) 0%, rgba(200,220,240,0.05) 100%); border-radius:50%; filter: blur(5px); animation: kss-cloud 55s linear infinite; }
@keyframes kss-bg { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kss-moon { 0% { transform: scale(1); box-shadow: 0 0 35px 12px rgba(160,184,208,0.4); } 50% { transform: scale(1.03); box-shadow: 0 0 45px 18px rgba(160,184,208,0.6); } 100% { transform: scale(0.97); box-shadow: 0 0 30px 8px rgba(160,184,208,0.3); } }
@keyframes kss-window { 0% { opacity:0.6; box-shadow: 0 0 20px 6px rgba(224,192,128,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(224,192,128,0.6); } 100% { opacity:0.5; box-shadow: 0 0 15px 4px rgba(224,192,128,0.2); } }
@keyframes kss-figure { 0% { transform: scale(0.9) rotate(-5deg) translateY(0); } 50% { transform: scale(0.92) rotate(-4deg) translateY(-2px); } 100% { transform: scale(0.9) rotate(-5deg) translateY(0); } }
@keyframes kss-tree { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(1) translateY(1px); } }
@keyframes kss-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-light-stroke-water {
  background: linear-gradient(180deg, #0b1725 0%, #14253c 50%, #1e3550 100%),
              radial-gradient(ellipse at 50% 30%, #2a4a6a 0%, transparent 60%);
}
.scn-light-stroke-water .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0b1725 0%, #14253c 100%); animation: lsw-sky 14s ease-in-out infinite alternate; }
.scn-light-stroke-water .water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a1a2a 0%, #152638 100%); animation: lsw-water 6s ease-in-out infinite; }
.scn-light-stroke-water .moon-reflect { position:absolute; top:45%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(200,220,240,0.4) 0%, rgba(200,220,240,0) 70%); animation: lsw-reflect 4s ease-in-out infinite alternate; }
.scn-light-stroke-water .boat { position:absolute; bottom:30%; left:35%; width:60px; height:18px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-5deg); animation: lsw-boat 5s ease-in-out infinite; }
.scn-light-stroke-water .oar { position:absolute; bottom:32%; left:40%; width:45px; height:3px; background: #3a4a5a; border-radius: 2px; transform-origin: left center; transform: rotate(-40deg); animation: lsw-oar 1.5s ease-in-out infinite; }
.scn-light-stroke-water .figure { position:absolute; bottom:32%; left:37%; width:14px; height:20px; background: linear-gradient(180deg, #0a0f1a 0%, #141c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: lsw-figure 5s ease-in-out infinite; }
.scn-light-stroke-water .ripple-1 { position:absolute; bottom:20%; left:30%; width:30px; height:4px; background: rgba(200,220,240,0.2); border-radius:50%; animation: lsw-ripple 3s ease-out infinite; }
.scn-light-stroke-water .ripple-2 { position:absolute; bottom:18%; left:55%; width:25px; height:3px; background: rgba(200,220,240,0.15); border-radius:50%; animation: lsw-ripple 3.5s ease-out infinite 1s; }
@keyframes lsw-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes lsw-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lsw-reflect { 0% { opacity:0.3; transform: translateX(-50%) scale(1); } 50% { opacity:0.6; transform: translateX(-50%) scale(1.2); } 100% { opacity:0.2; transform: translateX(-50%) scale(0.9); } }
@keyframes lsw-boat { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes lsw-oar { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-50deg); } 100% { transform: rotate(-40deg); } }
@keyframes lsw-figure { 0% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.82) translateY(-2px); } 100% { transform: scale(0.8) translateY(0); } }
@keyframes lsw-ripple { 0% { transform: scale(0); opacity:0.4; } 50% { transform: scale(2); opacity:0.2; } 100% { transform: scale(3); opacity:0; } }

/* Each scene block prefixed with .scn-<id> */

/* Scene 1: tsar-reflects (tense, bright interior) */
.scn-tsar-reflects {
  background: linear-gradient(180deg, #c8a47e 0%, #b8926a 40%, #a47e5c 100%),
              radial-gradient(ellipse at 30% 30%, #e0c8a0 0%, transparent 60%);
}
.scn-tsar-reflects .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4b896 0%, #c4a888 100%); animation: bg-tsr 6s ease-in-out infinite alternate; }
.scn-tsar-reflects .window { position:absolute; top:10%; left:60%; width:30%; height:50%; background: linear-gradient(135deg, #eef5ff 0%, #b8cde0 100%); border-radius:4px; box-shadow:inset 0 0 8px rgba(255,255,200,0.3); animation: win-tsr 4s ease-in-out infinite alternate; }
.scn-tsar-reflects .desk { position:absolute; bottom:20%; left:15%; width:50%; height:15%; background: linear-gradient(180deg, #6b4c2e 0%, #4f351e 100%); border-radius:2px; box-shadow:0 4px 12px rgba(0,0,0,0.5); animation: desk-tsr 8s ease-in-out infinite; }
.scn-tsar-reflects .chair { position:absolute; bottom:25%; left:18%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1f1610 100%); border-radius:30% 30% 10% 10%; box-shadow:0 6px 10px rgba(0,0,0,0.4); animation: chair-tsr 5s ease-in-out infinite; }
.scn-tsar-reflects .portrait { position:absolute; top:12%; left:10%; width:15%; height:35%; background: linear-gradient(135deg, #8a6e4a 0%, #5c442a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation: port-tsr 7s ease-in-out infinite; }
.scn-tsar-reflects .figure-tsar { position:absolute; bottom:30%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #1b1b2e 0%, #0f0f1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tsar-tsr 3s ease-in-out infinite alternate; }
.scn-tsar-reflects .figure-speaker { position:absolute; bottom:28%; right:25%; width:10%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom center; animation: speak-tsr 2.5s ease-in-out infinite alternate; }
.scn-tsar-reflects .lamp { position:absolute; top:8%; right:10%; width:8%; height:12%; background: radial-gradient(circle, #ffe48c 0%, #d4a54a 60%, #8a6a2a 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(255,228,140,0.5), 0 0 40px 15px rgba(212,165,74,0.3); animation: lamp-tsr 4s ease-in-out infinite; }
.scn-tsar-reflects .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.15) 0%, transparent 70%); animation: shad-tsr 6s ease-in-out infinite alternate; }

@keyframes bg-tsr { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes win-tsr { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes desk-tsr { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes chair-tsr { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes port-tsr { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes tsar-tsr { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes speak-tsr { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes lamp-tsr { 0%,100% { transform: scale(1); opacity:0.9; box-shadow:0 0 20px 8px rgba(255,228,140,0.5); } 50% { transform: scale(1.05); opacity:1; box-shadow:0 0 30px 12px rgba(255,228,140,0.7); } }
@keyframes shad-tsr { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* Scene 2: explaining-observation (warm, bright interior) */
.scn-explaining-observation {
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a8 50%, #c8ac8c 100%),
              radial-gradient(ellipse at 50% 80%, #ffe4b0 0%, transparent 60%);
}
.scn-explaining-observation .bg-room { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #f4e4cc 0%, #e0ccb0 100%); animation: bg-exp 10s ease-in-out infinite alternate; }
.scn-explaining-observation .table { position:absolute; bottom:20%; left:20%; width:50%; height:12%; background: linear-gradient(180deg, #7a5c3a 0%, #5a4028 100%); border-radius:6px; box-shadow:0 6px 14px rgba(0,0,0,0.4); animation: table-exp 8s ease-in-out infinite; }
.scn-explaining-observation .map { position:absolute; bottom:24%; left:25%; width:30%; height:20%; background: linear-gradient(135deg, #d4c08a 0%, #b8a06e 100%); border-radius:2px; box-shadow:inset 0 0 6px rgba(0,0,0,0.3); animation: map-exp 12s ease-in-out infinite alternate; }
.scn-explaining-observation .papers { position:absolute; bottom:22%; left:38%; width:12%; height:8%; background: linear-gradient(180deg, #ece4d0 0%, #d4c8a8 100%); border-radius:1px; box-shadow:0 2px 4px rgba(0,0,0,0.2); animation: paper-exp 7s ease-in-out infinite; }
.scn-explaining-observation .candle { position:absolute; bottom:30%; left:50%; width:4%; height:15%; background: linear-gradient(180deg, #f0d890 0%, #d0b070 100%); border-radius:20% 20% 10% 10%; box-shadow:0 0 12px 6px rgba(240,216,144,0.6); animation: candle-exp 4s ease-in-out infinite alternate; }
.scn-explaining-observation .figure-listener { position:absolute; bottom:28%; left:12%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1f1610 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin:bottom center; animation: listen-exp 5s ease-in-out infinite; }
.scn-explaining-observation .figure-speaker { position:absolute; bottom:25%; right:18%; width:11%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom center; animation: speak-exp 3s ease-in-out infinite alternate; }
.scn-explaining-observation .window-light { position:absolute; top:5%; left:70%; width:25%; height:60%; background: linear-gradient(135deg, #fff8e6 0%, #f0dbb0 100%); border-radius:10px 10px 0 0; box-shadow:inset 0 0 20px rgba(255,230,150,0.4); animation: winlight-exp 6s ease-in-out infinite alternate; }

@keyframes bg-exp { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.01); } 100% { opacity:0.92; transform:scale(1); } }
@keyframes table-exp { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes map-exp { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(1deg) scale(1.02); } 100% { transform:rotate(-1deg) scale(0.98); } }
@keyframes paper-exp { 0%,100% { transform:translateX(0); } 50% { transform:translateX(3px); } }
@keyframes candle-exp { 0% { transform:scaleY(1); opacity:0.85; box-shadow:0 0 10px 4px rgba(240,216,144,0.5); } 50% { transform:scaleY(1.05); opacity:1; box-shadow:0 0 18px 8px rgba(240,216,144,0.8); } 100% { transform:scaleY(0.95); opacity:0.9; box-shadow:0 0 14px 6px rgba(240,216,144,0.6); } }
@keyframes listen-exp { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(-1px) rotate(-1deg); } 75% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes speak-exp { 0% { transform:translateX(0) translateY(0) rotate(1deg); } 50% { transform:translateX(-4px) translateY(-2px) rotate(-2deg); } 100% { transform:translateX(0) translateY(0) rotate(1deg); } }
@keyframes winlight-exp { 0% { opacity:0.7; transform:scaleX(0.98); } 50% { opacity:1; transform:scaleX(1.02); } 100% { opacity:0.8; transform:scaleX(0.99); } }

/* Scene 3: investigating-natacha (calm, bright interior) */
.scn-investigating-natacha {
  background: linear-gradient(180deg, #e4e0cc 0%, #d0c8b4 40%, #b8b0a0 100%),
              radial-gradient(ellipse at 50% 30%, #f0ecd8 0%, transparent 70%);
}
.scn-investigating-natacha .bg-interior { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #ece8d8 0%, #dcd4c0 100%); animation: bg-inv 12s ease-in-out infinite alternate; }
.scn-investigating-natacha .table-round { position:absolute; bottom:25%; left:25%; width:40%; height:18%; background: linear-gradient(180deg, #8a7a5e 0%, #6a5a42 100%); border-radius:50%; box-shadow:0 8px 16px rgba(0,0,0,0.3); animation: table-inv 9s ease-in-out infinite; }
.scn-investigating-natacha .chair-left { position:absolute; bottom:30%; left:15%; width:15%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: chairl-inv 7s ease-in-out infinite; }
.scn-investigating-natacha .chair-right { position:absolute; bottom:32%; right:18%; width:14%; height:24%; background: linear-gradient(180deg, #3a2a1a 0%, #1f1610 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: chairr-inv 7s ease-in-out infinite 0.5s; }
.scn-investigating-natacha .figure-observer { position:absolute; bottom:30%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:45% 45% 30% 30% / 55% 55% 40% 40%; transform-origin:bottom center; animation: observer-inv 5s ease-in-out infinite; }
.scn-investigating-natacha .figure-natacha { position:absolute; bottom:28%; right:35%; width:11%; height:38%; background: linear-gradient(180deg, #3a2a4e 0%, #1a1a2e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: natacha-inv 5s ease-in-out infinite 0.3s; }
.scn-investigating-natacha .window-sun { position:absolute; top:5%; left:65%; width:25%; height:55%; background: linear-gradient(135deg, #fff8e0 0%, #f0e0b8 100%); border-radius:6px; box-shadow:inset 0 0 12px rgba(255,230,150,0.2); animation: win-inv 8s ease-in-out infinite alternate; }
.scn-investigating-natacha .curtains { position:absolute; top:0; left:60%; width:35%; height:70%; background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%); border-radius:0 0 20% 20%; filter:blur(1px); animation: curt-inv 11s ease-in-out infinite alternate; }

@keyframes bg-inv { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes table-inv { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(1deg); } }
@keyframes chairl-inv { 0% { transform:rotate(0deg); } 25% { transform:rotate(2deg); } 50% { transform:rotate(-2deg); } 75% { transform:rotate(1deg); } 100% { transform:rotate(0deg); } }
@keyframes chairr-inv { 0% { transform:rotate(0deg); } 25% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 75% { transform:rotate(-1deg); } 100% { transform:rotate(0deg); } }
@keyframes observer-inv { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(3px) rotate(1deg); } 60% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes natacha-inv { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-3px) rotate(-1deg); } 60% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes win-inv { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes curt-inv { 0% { transform:scaleX(1); } 50% { transform:scaleX(1.03); } 100% { transform:scaleX(0.97); } }

/* Scene 4: michael-role (tense, bright interior) */
.scn-michael-role {
  background: linear-gradient(180deg, #8a8a9e 0%, #6a6a7e 40%, #4a4a5e 100%),
              radial-gradient(ellipse at 70% 20%, #c0b8a8 0%, transparent 50%);
}
.scn-michael-role .bg-secret { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #9e9aaa 0%, #7a7a8a 100%); animation: bg-mic 8s ease-in-out infinite alternate; }
.scn-michael-role .desk-old { position:absolute; bottom:18%; left:10%; width:60%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 8px 16px rgba(0,0,0,0.5); animation: desk-mic 7s ease-in-out infinite; }
.scn-michael-role .chair-back { position:absolute; bottom:22%; left:35%; width:18%; height:28%; background: linear-gradient(180deg, #2a1e12 0%, #12100a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: chair-mic 5s ease-in-out infinite; }
.scn-michael-role .lamp-desk { position:absolute; bottom:26%; left:20%; width:8%; height:12%; background: radial-gradient(circle, #ffe48c 0%, #c8a040 60%, #705020 100%); border-radius:50%; box-shadow:0 0 16px 6px rgba(255,228,140,0.4), 0 0 32px 12px rgba(200,160,64,0.3); animation: lamp-mic 3s ease-in-out infinite alternate; }
.scn-michael-role .letters { position:absolute; bottom:20%; left:25%; width:10%; height:6%; background: linear-gradient(135deg, #e8e0cc 0%, #c8bca0 100%); border-radius:1px; box-shadow:0 2px 4px rgba(0,0,0,0.3); animation: letters-mic 6s ease-in-out infinite; }
.scn-michael-role .figure-michael { position:absolute; bottom:24%; left:50%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin:bottom center; animation: michael-mic 2.5s ease-in-out infinite alternate; }
.scn-michael-role .figure-natacha { position:absolute; bottom:22%; right:20%; width:10%; height:36%; background: linear-gradient(180deg, #2a1a2e 0%, #1a0e1a 100%); border-radius:42% 42% 32% 32% / 58% 58% 35% 35%; transform-origin:bottom center; animation: natachamic-mic 3s ease-in-out infinite alternate 0.2s; }
.scn-michael-role .shadow-stripe { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,0.15) 50%, transparent 70%); animation: stripe-mic 5s ease-in-out infinite alternate; }

@keyframes bg-mic { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes desk-mic { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes chair-mic { 0% { transform:rotate(0deg); } 25% { transform:rotate(2deg); } 50% { transform:rotate(-2deg); } 75% { transform:rotate(1deg); } 100% { transform:rotate(0deg); } }
@keyframes lamp-mic { 0% { transform:scale(1); opacity:0.8; box-shadow:0 0 12px 4px rgba(255,228,140,0.4); } 50% { transform:scale(1.08); opacity:1; box-shadow:0 0 24px 10px rgba(255,228,140,0.7); } 100% { transform:scale(0.95); opacity:0.85; box-shadow:0 0 16px 6px rgba(255,228,140,0.5); } }
@keyframes letters-mic { 0%,100% { transform:translateX(0); } 50% { transform:translateX(4px); } }
@keyframes michael-mic { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 50% { transform:translateX(4px) translateY(-1px) rotate(3deg); } 100% { transform:translateX(0) translateY(0) rotate(-2deg); } }
@keyframes natachamic-mic { 0% { transform:translateX(0) translateY(0) rotate(2deg); } 50% { transform:translateX(-3px) translateY(-1px) rotate(-2deg); } 100% { transform:translateX(0) translateY(0) rotate(2deg); } }
@keyframes stripe-mic { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }

/* supper-with-annouchka - funny, gaslit interior dinner scene */
.scn-supper-with-annouchka {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #c8a050 0%, transparent 60%);
}
.scn-supper-with-annouchka .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  animation: swa-room 15s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .table {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 28%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 8px 24px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,160,80,0.2);
  transform: perspective(800px) rotateX(12deg);
  animation: swa-table 8s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 60%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: swa-fig-l 6s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .figure-right {
  position: absolute; bottom: 20%; right: 22%; width: 45px; height: 72px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 35% 40% 30% 35% / 55% 60% 30% 35%;
  transform-origin: bottom center;
  animation: swa-fig-r 7s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .figure-center {
  position: absolute; bottom: 22%; left: 45%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 40%, #1a0a00 100%);
  border-radius: 50% 45% 35% 40% / 65% 55% 35% 40%;
  transform-origin: bottom center;
  animation: swa-fig-c 5s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .gaslamp-glow {
  position: absolute; top: 12%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #f0c868 0%, #c89040 30%, #805020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,144,64,0.5), 0 0 120px 40px rgba(200,144,64,0.2);
  animation: swa-lamp 4s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .wine-glass {
  position: absolute; bottom: 22%; left: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 0 0 6px 6px / 0 0 4px 4px;
  box-shadow: 0 0 8px 2px rgba(200,160,96,0.3);
  animation: swa-glass 3s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .plate {
  position: absolute; bottom: 21%; left: 50%; width: 28px; height: 10px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: swa-plate 10s ease-in-out infinite alternate;
}
.scn-supper-with-annouchka .shadow-sway {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: swa-shadow 9s ease-in-out infinite alternate;
}

@keyframes swa-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes swa-table { 0% { transform: perspective(800px) rotateX(12deg) translateY(0); } 50% { transform: perspective(800px) rotateX(10deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(14deg) translateY(1px); } }
@keyframes swa-fig-l { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(0deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes swa-fig-r { 0% { transform: translateX(0) rotate(2deg) scaleY(1); } 50% { transform: translateX(-3px) rotate(0deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes swa-fig-c { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg) scaleY(1.015); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes swa-lamp { 0% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 50px 15px rgba(200,144,64,0.4), 0 0 100px 30px rgba(200,144,64,0.15); } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 80px 25px rgba(240,200,104,0.6), 0 0 160px 50px rgba(240,200,104,0.25); } 100% { transform: scale(0.98); opacity: 0.9; box-shadow: 0 0 60px 18px rgba(200,144,64,0.45), 0 0 120px 35px rgba(200,144,64,0.2); } }
@keyframes swa-glass { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes swa-plate { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes swa-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }

/* umbrella-merchant - funny, gaslit street scene */
.scn-umbrella-merchant {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 70%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 60%, #c8a860 0%, transparent 60%);
}
.scn-umbrella-merchant .street-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 70%, #3a3a3a 100%);
  animation: umb-street 20s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .stall-roof {
  position: absolute; bottom: 40%; left: 25%; right: 35%; height: 20%;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5), inset 0 2px 4px rgba(200,180,140,0.3);
  transform: perspective(600px) rotateX(-5deg);
  animation: umb-roof 10s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .stall-post {
  position: absolute; bottom: 20%; left: 28%; width: 6px; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: umb-post 12s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .stall-goods {
  position: absolute; bottom: 30%; left: 28%; right: 32%; height: 12%;
  background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 4px, #8a6a5a 4px, #8a6a5a 6px, #5a3a2a 6px, #5a3a2a 10px);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 -6px 8px rgba(0,0,0,0.3);
  animation: umb-goods 15s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .merchant {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%);
  border-radius: 35% 40% 30% 35% / 55% 60% 30% 35%;
  transform-origin: bottom center;
  animation: umb-merc 5s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .customer {
  position: absolute; bottom: 18%; right: 30%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #0a0500 100%);
  border-radius: 40% 35% 35% 30% / 60% 55% 35% 30%;
  transform-origin: bottom center;
  animation: umb-cust 6s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .gaslamp-glow {
  position: absolute; top: 8%; right: 20%; width: 70px; height: 70px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 30%, #906020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,160,80,0.4), 0 0 80px 30px rgba(200,160,80,0.2);
  animation: umb-lamp 4s ease-in-out infinite alternate;
}
.scn-umbrella-merchant .rain-drizzle {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(180,200,220,0.08) 8px, rgba(180,200,220,0.08) 9px);
  animation: umb-rain 2s linear infinite;
}

@keyframes umb-street { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes umb-roof { 0% { transform: perspective(600px) rotateX(-5deg) translateY(0); } 50% { transform: perspective(600px) rotateX(-3deg) translateY(-3px); } 100% { transform: perspective(600px) rotateX(-7deg) translateY(2px); } }
@keyframes umb-post { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(-1px) rotate(-0.5deg); } }
@keyframes umb-goods { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes umb-merc { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 50% { transform: translateX(4px) rotate(2deg) scaleY(1.015); } 100% { transform: translateX(0) rotate(-2deg) scaleY(0.99); } }
@keyframes umb-cust { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes umb-lamp { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 35px 12px rgba(200,160,80,0.35), 0 0 70px 25px rgba(200,160,80,0.15); } 50% { transform: scale(1.06); opacity: 1; box-shadow: 0 0 60px 22px rgba(240,208,128,0.55), 0 0 120px 40px rgba(240,208,128,0.25); } 100% { transform: scale(0.97); opacity: 0.85; box-shadow: 0 0 40px 14px rgba(200,160,80,0.4), 0 0 80px 28px rgba(200,160,80,0.18); } }
@keyframes umb-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

/* soft-as-sheep - funny, gaslit cozy interior */
.scn-soft-as-sheep {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #c8a060 0%, transparent 70%);
}
.scn-soft-as-sheep .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%);
  animation: sas-room 18s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .sofa {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 50%, #4a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6), inset 0 4px 8px rgba(200,180,140,0.15);
  animation: sas-sofa 12s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .figure-reclining {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 55px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%);
  border-radius: 45% 40% 35% 40% / 55% 50% 35% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: sas-fig-r 7s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .figure-standing {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 35% 30% 35% / 55% 50% 30% 35%;
  transform-origin: bottom center;
  animation: sas-fig-s 8s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .hearth-glow {
  position: absolute; bottom: 10%; left: 12%; width: 90px; height: 90px;
  background: radial-gradient(circle, #f0a040 0%, #c87020 30%, #905010 50%, transparent 75%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(240,160,64,0.4), 0 0 100px 40px rgba(240,160,64,0.2);
  animation: sas-hearth 5s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .carpet {
  position: absolute; bottom: 5%; left: 18%; right: 18%; height: 18%;
  background: linear-gradient(135deg, #6a4a3a 0%, #5a3a2a 30%, #4a2a1a 60%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: sas-carpet 20s ease-in-out infinite alternate;
}
.scn-soft-as-sheep .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: sas-shad 8s ease-in-out infinite alternate;
}

@keyframes sas-room { 0% { opacity: 0.82; } 50% { opacity: 1; } 100% { opacity: 0.88; } }
@keyframes sas-sofa { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes sas-fig-r { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes sas-fig-s { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(3px) rotate(-2deg) scaleY(1.01); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes sas-hearth { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 40px 15px rgba(240,160,64,0.3), 0 0 80px 30px rgba(240,160,64,0.15); } 50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 70px 25px rgba(240,160,64,0.55), 0 0 140px 50px rgba(240,160,64,0.25); } 100% { transform: scale(0.95); opacity: 0.75; box-shadow: 0 0 45px 16px rgba(240,160,64,0.35), 0 0 90px 32px rgba(240,160,64,0.18); } }
@keyframes sas-carpet { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } 100% { transform: translateY(1px) scaleX(0.99); } }
@keyframes sas-shad { 0% { opacity: 0.6; } 50% { opacity: 0.75; } 100% { opacity: 0.65; } }

/* natacha-in-mantilla - tense, gaslit profile watching scene */
.scn-natacha-in-mantilla {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #3a2a3a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #c8a060 0%, transparent 50%);
}
.scn-natacha-in-mantilla .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 50%, #0a000a 100%);
  animation: nim-wall 25s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .profile-figure {
  position: absolute; bottom: 15%; left: 30%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 40%, #1a0a1a 100%);
  border-radius: 30% 35% 35% 30% / 50% 55% 40% 35%;
  transform: scaleX(-1);
  animation: nim-profile 6s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .mantilla-shadow {
  position: absolute; bottom: 15%; left: 28%; width: 55px; height: 90px;
  background: linear-gradient(135deg, rgba(30,20,30,0.8) 0%, rgba(10,5,10,0.6) 100%);
  border-radius: 25% 30% 35% 25% / 45% 50% 40% 30%;
  transform: scaleX(-1) rotate(5deg);
  animation: nim-mant 4s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .observer {
  position: absolute; bottom: 15%; right: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a000a 100%);
  border-radius: 40% 35% 30% 35% / 55% 50% 30% 35%;
  transform-origin: bottom center;
  animation: nim-obs 8s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .gaslamp-glow {
  position: absolute; top: 15%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0c860 0%, #c8a040 30%, #906020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 12px rgba(200,160,64,0.35), 0 0 70px 25px rgba(200,160,64,0.15);
  animation: nim-lamp 3s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: nim-flsh 12s ease-in-out infinite alternate;
}
.scn-natacha-in-mantilla .doorway {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border: 2px solid #3a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
  animation: nim-door 20s ease-in-out infinite alternate;
}

@keyframes nim-wall { 0% { opacity: 0.75; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes nim-profile { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(3px) rotate(-2deg); } 100% { transform: scaleX(-1) translateX(0) rotate(2deg); } }
@keyframes nim-mant { 0% { transform: scaleX(-1) rotate(5deg) translateY(0); opacity: 0.7; } 50% { transform: scaleX(-1) rotate(3deg) translateY(-2px); opacity: 0.85; } 100% { transform: scaleX(-1) rotate(6deg) translateY(1px); opacity: 0.75; } }
@keyframes nim-obs { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(2px) rotate(2deg); } }
@keyframes nim-lamp { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 30px 10px rgba(200,160,64,0.3), 0 0 60px 20px rgba(200,160,64,0.12); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 55px 20px rgba(240,200,96,0.55), 0 0 110px 40px rgba(240,200,96,0.25); } 100% { transform: scale(0.95); opacity: 0.75; box-shadow: 0 0 35px 12px rgba(200,160,64,0.35), 0 0 70px 25px rgba(200,160,64,0.15); } }
@keyframes nim-flsh { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }
@keyframes nim-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }

/* everything-enchanted-him */
.scn-everything-enchanted-him { background: linear-gradient(180deg, #ffe0a0 0%, #f5d69e 40%, #e8c37a 70%, #d4a86a 100%), radial-gradient(ellipse at 50% 0%, #fff9e6 0%, transparent 70%); }
.scn-everything-enchanted-him .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5e6b8 100%); animation: en-sky 10s ease-in-out infinite alternate; }
.scn-everything-enchanted-him .sun-glow { position:absolute; top:10%; left:70%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(30px); animation: en-sun 8s ease-in-out infinite alternate; }
.scn-everything-enchanted-him .buildings-left { position:absolute; bottom:30%; left:0; width:35%; height:70%; background: linear-gradient(180deg, #d4a86a 0%, #8b6b40 100%); border-radius: 0 10% 0 0; box-shadow: inset -4px 0 10px rgba(0,0,0,0.3); animation: en-build 6s ease-in-out infinite; }
.scn-everything-enchanted-him .buildings-right { position:absolute; bottom:30%; right:0; width:35%; height:70%; background: linear-gradient(180deg, #c89a6a 0%, #7a5c3a 100%); border-radius: 10% 0 0 0; box-shadow: inset 4px 0 10px rgba(0,0,0,0.3); animation: en-build 6s ease-in-out infinite reverse; }
.scn-everything-enchanted-him .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0884a 0%, #8a6a3a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); animation: en-street 12s ease-in-out infinite alternate; }
.scn-everything-enchanted-him .carriage { position:absolute; bottom:15%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: en-carriage 4s ease-in-out infinite; }
.scn-everything-enchanted-him .carriage::before { content:''; position:absolute; top:-15px; left:10px; width:20px; height:15px; background: #4a3a2a; border-radius: 50% 50% 0 0; } /* horse */
.scn-everything-enchanted-him .figure-woman { position:absolute; bottom:20%; left:60%; width:12px; height:28px; background: linear-gradient(180deg, #e8d4b4 0%, #d4b48a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: en-walk 4s ease-in-out infinite; }
.scn-everything-enchanted-him .cloud-a { position:absolute; top:20%; left:10%; width:90px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: en-drift-a 30s linear infinite; }
.scn-everything-enchanted-him .cloud-b { position:absolute; top:15%; right:10%; width:70px; height:16px; background: linear-gradient(-90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(4px); animation: en-drift-b 40s linear infinite reverse; }
@keyframes en-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes en-sun { 0% { transform: scale(1) translate(0,0); opacity:0.7 } 50% { transform: scale(1.1) translate(5px,-5px); opacity:1 } 100% { transform: scale(0.95) translate(-3px,3px); opacity:0.8 } }
@keyframes en-build { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes en-street { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes en-carriage { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-6px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes en-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(0deg) } 50% { transform: translateX(16px) rotate(2deg) } 75% { transform: translateX(24px) rotate(0deg) } 100% { transform: translateX(32px) rotate(-2deg) } }
@keyframes en-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes en-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* order-reigned-city */
.scn-order-reigned-city { background: linear-gradient(180deg, #b0d0e5 0%, #d4e0e8 40%, #e8e0c0 70%, #c9b99a 100%), radial-gradient(ellipse at 50% 0%, #f0f4f8 0%, transparent 70%); }
.scn-order-reigned-city .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0e5 0%, #d4e0e8 100%); animation: or-sky 12s ease-in-out infinite alternate; }
.scn-order-reigned-city .buildings-back { position:absolute; bottom:30%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #c9b99a 0%, #a8916e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: or-buildings 8s ease-in-out infinite; }
.scn-order-reigned-city .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c9b99a 0%, #b0986a 100%); animation: or-ground 10s ease-in-out infinite alternate; }
.scn-order-reigned-city .guard-left { position:absolute; bottom:22%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: or-guard 4s ease-in-out infinite; }
.scn-order-reigned-city .guard-right { position:absolute; bottom:22%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: or-guard 4s ease-in-out infinite reverse; }
.scn-order-reigned-city .couple { position:absolute; bottom:20%; left:45%; width:30px; height:35px; background: linear-gradient(180deg, #d4c4a0 0%, #b0a080 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: or-couple 6s ease-in-out infinite; }
.scn-order-reigned-city .fountain { position:absolute; bottom:25%; left:50%; width:40px; height:25px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #b0d0e5 0%, #8090a8 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: or-fountain 5s ease-in-out infinite; }
.scn-order-reigned-city .cloud-a { position:absolute; top:18%; left:15%; width:80px; height:18px; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: or-drift-a 35s linear infinite; }
@keyframes or-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes or-buildings { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes or-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes or-guard { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes or-couple { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes or-fountain { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes or-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* nichevo-forgotten */
.scn-nichevo-forgotten { background: linear-gradient(180deg, #98b9d4 0%, #b0c4d4 40%, #d0c8b0 70%, #c0b098 100%), radial-gradient(ellipse at 50% 0%, #d8e0e8 0%, transparent 70%); }
.scn-nichevo-forgotten .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #98b9d4 0%, #c0d0d8 100%); animation: ni-sky 14s ease-in-out infinite alternate; }
.scn-nichevo-forgotten .buildings-far { position:absolute; bottom:30%; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #c0b098 0%, #a08a6a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,0.15); animation: ni-buildings 10s ease-in-out infinite; }
.scn-nichevo-forgotten .trees { position:absolute; bottom:30%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; filter: blur(2px); animation: ni-trees 12s ease-in-out infinite alternate; }
.scn-nichevo-forgotten .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0986a 0%, #8a7a5a 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); animation: ni-street 8s ease-in-out infinite alternate; }
.scn-nichevo-forgotten .lamp { position:absolute; bottom:25%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10%; transform-origin: bottom center; }
.scn-nichevo-forgotten .lamp-glow { position:absolute; bottom:30%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,150,0.5) 0%, rgba(255,220,150,0) 70%); border-radius:50%; filter: blur(10px); animation: ni-glow 3s ease-in-out infinite alternate; }
.scn-nichevo-forgotten .figure-solitary { position:absolute; bottom:20%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ni-figure 6s ease-in-out infinite; }
.scn-nichevo-forgotten .bunting-left { position:absolute; top:20%; left:5%; width:40%; height:10px; background: repeating-linear-gradient(90deg, #b87878 0px, #b87878 15px, transparent 15px, transparent 30px); border-radius:0 0 50% 50%; animation: ni-bunting 5s ease-in-out infinite; }
.scn-nichevo-forgotten .bunting-right { position:absolute; top:20%; right:5%; width:40%; height:10px; background: repeating-linear-gradient(-90deg, #b87878 0px, #b87878 15px, transparent 15px, transparent 30px); border-radius:0 0 50% 50%; animation: ni-bunting 5s ease-in-out infinite reverse; }
@keyframes ni-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ni-buildings { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ni-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ni-street { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(0.99) } }
@keyframes ni-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes ni-figure { 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 ni-bunting { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }

/* purest-air */
.scn-purest-air { background: linear-gradient(180deg, #f4d08a 0%, #f0c060 40%, #d8a84a 70%, #c8983a 100%), radial-gradient(ellipse at 50% 100%, #fce4a0 0%, transparent 70%); }
.scn-purest-air .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f4d08a 0%, #fce4a0 100%); animation: pu-sky 12s ease-in-out infinite alternate; }
.scn-purest-air .sun { position:absolute; top:8%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 100%); border-radius:50%; filter: blur(5px); animation: pu-sun 8s ease-in-out infinite alternate; }
.scn-purest-air .hills-far { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7aa85a 0%, #5d8a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: pu-hills-far 14s ease-in-out infinite alternate; }
.scn-purest-air .hills-mid { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #8ab86a 0%, #6a9a4a 100%); border-radius: 60% 40% 0 0 / 40% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: pu-hills-mid 10s ease-in-out infinite alternate; }
.scn-purest-air .tavern { position:absolute; bottom:15%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #8b5e3c 0%, #6a3e1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: pu-tavern 6s ease-in-out infinite; }
.scn-purest-air .window { position:absolute; bottom:20%; left:38%; width:16px; height:20px; background: radial-gradient(circle, #f0d060 0%, #c8a040 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #f0d060, 0 0 40px 10px rgba(240,208,96,0.5); animation: pu-glow 3s ease-in-out infinite alternate; }
.scn-purest-air .beer-mug { position:absolute; bottom:22%; left:52%; width:24px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b890 100%); border-radius: 10% 10% 15% 15% / 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: pu-mug 4s ease-in-out infinite; }
.scn-purest-air .beer-mug::before { content:''; position:absolute; top:-6px; left:4px; width:16px; height:8px; background: #f0e0c0; border-radius: 50% 50% 0 0; } /* foam */
.scn-purest-air .wheat { position:absolute; bottom:18%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #e8d080 0%, #c8a040 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: pu-wheat 5s ease-in-out infinite; }
@keyframes pu-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pu-sun { 0% { transform: scale(1) translate(0,0); opacity:0.7 } 50% { transform: scale(1.1) translate(5px,-5px); opacity:1 } 100% { transform: scale(0.95) translate(-3px,3px); opacity:0.8 } }
@keyframes pu-hills-far { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(0.98) } }
@keyframes pu-hills-mid { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes pu-tavern { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pu-glow { 0% { box-shadow: 0 0 15px 3px #f0d060, 0 0 30px 8px rgba(240,208,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 30px 10px #ffe880, 0 0 60px 18px rgba(255,232,128,0.6); opacity:1 } 100% { box-shadow: 0 0 18px 4px #f0d060, 0 0 36px 10px rgba(240,208,96,0.35); opacity:0.9 } }
@keyframes pu-mug { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes pu-wheat { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-natacha-downstairs {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f15 40%, #3a2a1a 70%, #2a1f15 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-natacha-downstairs .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f15 50%, #1a1410 100%);
  animation: nd-wall 10s ease-in-out infinite alternate;
}
.scn-natacha-downstairs .stairs {
  position: absolute; bottom: 30%; left: 10%; width: 70%; height: 60%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1f15 100%);
  clip-path: polygon(15% 0%, 85% 0%, 70% 100%, 10% 100%);
  animation: nd-stairs 8s ease-in-out infinite alternate;
}
.scn-natacha-downstairs .railing {
  position: absolute; bottom: 35%; left: 12%; width: 70%; height: 4px;
  background: #4a3a2a;
  box-shadow: 0 30px 0 #3a2a1a, 0 60px 0 #4a3a2a;
  border-radius: 2px;
  animation: nd-railing 12s ease-in-out infinite;
}
.scn-natacha-downstairs .figure {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-figure 4s ease-in-out infinite;
}
.scn-natacha-downstairs .lantern {
  position: absolute; bottom: 42%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.5);
  animation: nd-lantern 2.5s ease-in-out infinite alternate;
}
.scn-natacha-downstairs .shadow {
  position: absolute; bottom: 30%; left: 20%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,8,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: nd-shadow 6s ease-in-out infinite alternate;
}

.scn-floor-examination {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f15 40%, #3a2a1a 70%, #2a1f15 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-floor-examination .floor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1f15 0%, #3a2a1a 50%, #2a1f15 100%);
  animation: fe-floor 15s ease-in-out infinite;
}
.scn-floor-examination .carpet {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 30% 70% 50% 50% / 40% 40% 60% 60%;
  animation: fe-carpet 6s ease-in-out infinite alternate;
}
.scn-floor-examination .sofa {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: fe-sofa 8s ease-in-out infinite;
}
.scn-floor-examination .figure {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 30% 40%;
  transform-origin: bottom center;
  animation: fe-figure 4s ease-in-out infinite;
}
.scn-floor-examination .lamp {
  position: absolute; bottom: 35%; left: 70%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #a07030 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 30px 8px #b08040, 0 0 60px 15px rgba(176,128,64,0.4);
  animation: fe-lamp 3s ease-in-out infinite alternate;
}
.scn-floor-examination .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,8,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: fe-shadow 5s ease-in-out infinite alternate;
}

.scn-koupriane-hints {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f15 40%, #3a2a1a 70%, #2a1f15 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-koupriane-hints .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%);
  animation: kh-wall 12s ease-in-out infinite;
}
.scn-koupriane-hints .door {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: kh-door 8s ease-in-out infinite alternate;
}
.scn-koupriane-hints .figure {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kh-figure 4s ease-in-out infinite;
}
.scn-koupriane-hints .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%);
  animation: kh-floor 6s ease-in-out infinite alternate;
}
.scn-koupriane-hints .light-slit {
  position: absolute; bottom: 33%; left: 65%; width: 3px; height: 15px;
  background: #d4a050;
  box-shadow: 0 0 20px 10px rgba(212,160,80,0.6);
  animation: kh-light 2.5s ease-in-out infinite alternate;
}
.scn-koupriane-hints .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,8,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: kh-shadow 6s ease-in-out infinite alternate;
}

.scn-discovery-of-board {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f15 40%, #3a2a1a 70%, #2a1f15 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
}
.scn-discovery-of-board .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%);
  animation: db-wall 10s ease-in-out infinite alternate;
}
.scn-discovery-of-board .door {
  position: absolute; bottom: 30%; left: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: db-door 7s ease-in-out infinite;
}
.scn-discovery-of-board .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1f15 0%, #1a1410 100%);
  animation: db-floor 9s ease-in-out infinite alternate;
}
.scn-discovery-of-board .carpet-corner {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 30% 0%);
  transform: rotate(-10deg);
  animation: db-carpet 4s ease-in-out infinite;
}
.scn-discovery-of-board .lantern {
  position: absolute; bottom: 15%; left: 35%; width: 10px; height: 12px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 70%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 30px 8px #b08040, 0 0 50px 16px rgba(176,128,64,0.5);
  animation: db-lantern 2.5s ease-in-out infinite alternate;
}
.scn-discovery-of-board .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,8,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: db-shadow 5s ease-in-out infinite alternate;
}

/* Keyframes for natacha-downstairs */
@keyframes nd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nd-stairs { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes nd-railing { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes nd-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes nd-lantern { 0% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 25px 8px #d4a050, 0 0 50px 16px rgba(212,160,80,0.6); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b08040, 0 0 35px 10px rgba(176,128,64,0.5); opacity: 0.8; } }
@keyframes nd-shadow { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.1) translate(-5px, -2px); } 100% { transform: scale(0.95) translate(3px, 1px); } }

/* Keyframes for floor-examination */
@keyframes fe-floor { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: -5% 0%; } }
@keyframes fe-carpet { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes fe-sofa { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fe-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes fe-lamp { 0% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 35px 10px #d4a050, 0 0 60px 20px rgba(212,160,80,0.6); opacity: 1; } 100% { box-shadow: 0 0 22px 6px #b08040, 0 0 45px 12px rgba(176,128,64,0.5); opacity: 0.8; } }
@keyframes fe-shadow { 0% { transform: scale(1) translate(0,0); opacity: 0.4; } 50% { transform: scale(1.15) translate(-5px, -3px); opacity: 0.6; } 100% { transform: scale(0.9) translate(4px, 2px); opacity: 0.3; } }

/* Keyframes for koupriane-hints */
@keyframes kh-wall { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: -3% 0%; } }
@keyframes kh-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }
@keyframes kh-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes kh-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kh-light { 0% { opacity: 0.6; box-shadow: 0 0 10px 5px rgba(212,160,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 15px rgba(212,160,80,0.8); } 100% { opacity: 0.7; box-shadow: 0 0 15px 8px rgba(212,160,80,0.5); } }
@keyframes kh-shadow { 0% { transform: scale(1) translate(0,0); opacity: 0.5; } 50% { transform: scale(1.2) translate(-8px, -4px); opacity: 0.7; } 100% { transform: scale(0.85) translate(5px, 2px); opacity: 0.4; } }

/* Keyframes for discovery-of-board */
@keyframes db-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes db-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes db-floor { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: -2% 0%; } }
@keyframes db-carpet { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(2px, -1px); } 100% { transform: rotate(-12deg) translate(-1px, 1px); } }
@keyframes db-lantern { 0% { box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); opacity: 0.7; } 50% { box-shadow: 0 0 40px 12px #d4a050, 0 0 80px 24px rgba(212,160,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08040, 0 0 50px 16px rgba(176,128,64,0.5); opacity: 0.8; } }
@keyframes db-shadow { 0% { transform: scale(1) translate(0,0); opacity: 0.5; } 50% { transform: scale(1.1) translate(-5px, -3px); opacity: 0.7; } 100% { transform: scale(0.9) translate(3px, 2px); opacity: 0.4; } }

/* not-sure-who — tense + dawn */
.scn-not-sure-who {
  background:
    linear-gradient(180deg, #4a5a7a 0%, #6b7f9f 30%, #8ba3bf 60%, #c0d0e0 90%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 40% 20%, #ffd6a0 0%, transparent 50%);
}
.scn-not-sure-who .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c3a4f 0%, #5a6b82 60%, transparent 100%);
  animation: nsw-skyglow 6s ease-in-out infinite alternate;
}
.scn-not-sure-who .dawn-sun {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,192,80,0.5);
  animation: nsw-sunrise 8s ease-in-out infinite alternate;
}
.scn-not-sure-who .horizon-line {
  position: absolute; bottom: 34%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #3a4a5a 20%, #5a6b7a 50%, #3a4a5a 80%, transparent 100%);
  animation: nsw-horizonsharp 4s ease-in-out infinite;
}
.scn-not-sure-who .soldier-left {
  position: absolute; bottom: 24%; left: 20%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #1a222a 0%, #0a121a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: nsw-march-left 5s ease-in-out infinite;
}
.scn-not-sure-who .soldier-right {
  position: absolute; bottom: 22%; right: 25%; width: 30px; height: 52px;
  background: linear-gradient(180deg, #1e2832 0%, #0f1820 100%);
  border-radius: 45% 40% 25% 30% / 65% 60% 40% 45%;
  transform-origin: bottom center;
  animation: nsw-march-right 5.5s ease-in-out infinite 0.3s;
}
.scn-not-sure-who .general-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 34px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a12 0%, #05050a 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(10,10,15,0.8);
  animation: nsw-general-turn 7s ease-in-out infinite;
}
.scn-not-sure-who .mist-bank {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(200,210,220,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: nsw-mist-drift 12s ease-in-out infinite alternate;
}
.scn-not-sure-who .shadow-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 40%, rgba(5,8,15,0.6) 100%);
  animation: nsw-shadow-pulse 4s ease-in-out infinite alternate;
}

@keyframes nsw-skyglow {
  0% { opacity: 0.7; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.15); }
  100% { opacity: 0.8; filter: brightness(1); }
}
@keyframes nsw-sunrise {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes nsw-horizonsharp {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.5); }
  100% { opacity: 0.5; transform: scaleY(1); }
}
@keyframes nsw-march-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(14px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nsw-march-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-10px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(-18px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nsw-general-turn {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(5deg); }
  60% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes nsw-mist-drift {
  0% { transform: translateX(0) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(20px) scaleY(1.2); opacity: 0.8; }
  100% { transform: translateX(-15px) scaleY(1); opacity: 0.6; }
}
@keyframes nsw-shadow-pulse {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* matrena-defends-boris-michael — dark + dawn */
.scn-matrena-defends-boris-michael {
  background:
    linear-gradient(180deg, #1a1f24 0%, #2c3540 40%, #404d5a 70%, #5a6b78 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 30% 60%, #3a4a5a 0%, transparent 60%);
}
.scn-matrena-defends-boris-michael .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12161c 0%, #1e2630 50%, #2c3640 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: mdbm-roomdim 10s ease-in-out infinite alternate;
}
.scn-matrena-defends-boris-michael .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1c20 0%, #0c0e12 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-matrena-defends-boris-michael .window-pane {
  position: absolute; top: 15%; left: 10%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #2a4050 0%, #4a6070 50%, #2a4050 100%);
  border: 2px solid #1c2630;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: mdbm-windowlight 5s ease-in-out infinite alternate;
}
.scn-matrena-defends-boris-michael .dawn-beam {
  position: absolute; top: 18%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(135deg, rgba(180,200,220,0.15) 0%, transparent 80%);
  filter: blur(6px);
  animation: mdbm-beamsweep 12s ease-in-out infinite;
}
.scn-matrena-defends-boris-michael .matrena-figure {
  position: absolute; bottom: 18%; left: 35%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #1a2a34 0%, #0e181e 100%);
  border-radius: 40% 45% 30% 30% / 60% 65% 35% 35%;
  transform-origin: bottom center;
  box-shadow: -4px 0 6px rgba(0,0,0,0.5);
  animation: mdbm-matrena-shift 6s ease-in-out infinite;
}
.scn-matrena-defends-boris-michael .boris-shadow {
  position: absolute; bottom: 15%; right: 18%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #0a0e12 0%, #040608 100%);
  border-radius: 35% 35% 20% 20% / 55% 55% 30% 30%;
  opacity: 0.7;
  animation: mdbm-boris-pulse 8s ease-in-out infinite alternate;
}
.scn-matrena-defends-boris-michael .table-ledge {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 4px;
  background: linear-gradient(90deg, #2c343c 0%, #404850 50%, #2c343c 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: mdbm-tableglint 4s ease-in-out infinite;
}
.scn-matrena-defends-boris-michael .chair-ghost {
  position: absolute; bottom: 12%; right: 30%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1c2228 0%, #10141a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  opacity: 0.4;
  animation: mdbm-chair-rock 7s ease-in-out infinite alternate;
}

@keyframes mdbm-roomdim {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.7); }
}
@keyframes mdbm-windowlight {
  0% { filter: brightness(0.6); opacity: 0.7; }
  50% { filter: brightness(1); opacity: 1; }
  100% { filter: brightness(0.7); opacity: 0.8; }
}
@keyframes mdbm-beamsweep {
  0% { transform: translateX(-10px) rotate(-5deg); opacity: 0.3; }
  50% { transform: translateX(20px) rotate(5deg); opacity: 0.6; }
  100% { transform: translateX(-5px) rotate(-2deg); opacity: 0.4; }
}
@keyframes mdbm-matrena-shift {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mdbm-boris-pulse {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes mdbm-tableglint {
  0%,100% { opacity: 0.4; }
  50% { opacity: 0.8; }
}
@keyframes mdbm-chair-rock {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

/* reward-for-domovoi — warm + dawn */
.scn-reward-for-domovoi {
  background:
    linear-gradient(180deg, #4a3020 0%, #6a4a30 30%, #8a6a4a 60%, #b0a080 90%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 50% 60%, #b08050 0%, transparent 60%);
}
.scn-reward-for-domovoi .warm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2518 0%, #5a3c28 40%, #7a5a3a 70%, #9a7a5a 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.4);
  animation: rwd-ambientglow 8s ease-in-out infinite alternate;
}
.scn-reward-for-domovoi .hearth-glow {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #d08030 0%, #a05020 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: rwd-hearthpulse 3s ease-in-out infinite;
}
.scn-reward-for-domovoi .fire-flame {
  position: absolute; bottom: 22%; left: 18%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #f0a040 0%, #c07020 50%, #804010 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,100,30,0.6);
  animation: rwd-fireflicker 0.8s steps(2) infinite;
}
.scn-reward-for-domovoi .domovoi-figure {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #2c1c10 0%, #1c1008 100%);
  border-radius: 45% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: rwd-domovoi-bow 6s ease-in-out infinite;
}
.scn-reward-for-domovoi .matrena-thanks {
  position: absolute; bottom: 18%; right: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #22160e 100%);
  border-radius: 35% 40% 25% 30% / 55% 60% 35% 40%;
  transform-origin: bottom center;
  animation: rwd-matrena-reach 7s ease-in-out infinite 0.5s;
}
.scn-reward-for-domovoi .golden-light {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,200,120,0.2) 0%, transparent 70%);
  filter: blur(20px);
  animation: rwd-lightsway 10s ease-in-out infinite alternate;
}
.scn-reward-for-domovoi .wooden-beam {
  position: absolute; top: 10%; left: 10%; width: 70%; height: 6px;
  background: linear-gradient(90deg, #4a2a18 0%, #6a3a22 30%, #5a2e1a 60%, #4a2210 100%);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: rwd-beamcreak 12s ease-in-out infinite;
}
.scn-reward-for-domovoi .shadow-dim {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, transparent 30%, rgba(16,8,4,0.5) 100%);
  animation: rwd-shadowdeep 6s ease-in-out infinite alternate;
}

@keyframes rwd-ambientglow {
  0% { filter: brightness(0.8) saturate(0.9); }
  50% { filter: brightness(1.1) saturate(1.1); }
  100% { filter: brightness(0.9) saturate(0.95); }
}
@keyframes rwd-hearthpulse {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes rwd-fireflicker {
  0% { transform: scaleY(1) translateY(0); opacity: 1; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 0.9; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 1; }
}
@keyframes rwd-domovoi-bow {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(4deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rwd-matrena-reach {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rwd-lightsway {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(20px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(-10px) scale(1); opacity: 0.5; }
}
@keyframes rwd-beamcreak {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
}
@keyframes rwd-shadowdeep {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* item-phial-in-pocket — calm + dawn */
.scn-item-phial-in-pocket {
  background:
    linear-gradient(180deg, #9ab0c0 0%, #c0d4e0 40%, #dce8f0 70%, #eef4f8 100%) 0 0 / 100% 100%,
    radial-gradient(ellipse at 30% 40%, #b8d0e0 0%, transparent 60%);
}
.scn-item-phial-in-pocket .calm-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7a9ab0 0%, #a8c0d0 50%, transparent 100%);
  animation: ipd-skyshift 14s ease-in-out infinite alternate;
}
.scn-item-phial-in-pocket .soft-clouds {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(220,235,245,0.3) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ipd-clouddrift 30s linear infinite;
}
.scn-item-phial-in-pocket .figure-rouletabille {
  position: absolute; bottom: 18%; left: 45%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2a3a42 0%, #16202a 100%);
  border-radius: 40% 45% 30% 30% / 60% 65% 35% 35%;
  transform-origin: bottom center;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
  animation: ipd-figurestill 8s ease-in-out infinite;
}
.scn-item-phial-in-pocket .hand-extended {
  position: absolute; bottom: 30%; left: 52%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #a09a90 0%, #6a6460 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom left;
  animation: ipd-handreach 5s ease-in-out infinite alternate;
}
.scn-item-phial-in-pocket .phial-glass {
  position: absolute; bottom: 34%; left: 55%; width: 8px; height: 14px;
  background: linear-gradient(180deg, rgba(180,210,230,0.5) 0%, rgba(120,160,190,0.3) 100%);
  border: 1px solid rgba(200,220,240,0.4);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(200,230,255,0.3);
  animation: ipd-phialglint 4s ease-in-out infinite;
}
.scn-item-phial-in-pocket .coat-shoulder {
  position: absolute; bottom: 38%; left: 48%; width: 22px; height: 20px;
  background: linear-gradient(180deg, #2a3840 0%, #1a262e 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: ipd-shoulderlift 6s ease-in-out infinite alternate;
}
.scn-item-phial-in-pocket .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,215,225,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: ipd-mistroll 15s ease-in-out infinite alternate;
}

@keyframes ipd-skyshift {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes ipd-clouddrift {
  0% { transform: translateX(-40px); opacity: 0.4; }
  50% { transform: translateX(60px); opacity: 0.7; }
  100% { transform: translateX(-40px); opacity: 0.4; }
}
@keyframes ipd-figurestill {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ipd-handreach {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ipd-phialglint {
  0% { opacity: 0.5; filter: brightness(0.8); }
  50% { opacity: 0.9; filter: brightness(1.2); }
  100% { opacity: 0.6; filter: brightness(0.9); }
}
@keyframes ipd-shoulderlift {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes ipd-mistroll {
  0% { transform: translateX(0) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(15px) scaleY(1.1); opacity: 0.6; }
  100% { transform: translateX(-10px) scaleY(1); opacity: 0.4; }
}

.scn-khor-locked-up {
  background: linear-gradient(135deg, #c8a870 0%, #a08050 30%, #806040 60%, #604020 100%), 
              radial-gradient(ellipse at 70% 50%, #d4b88a 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(30,20,10,0.3);
}
.scn-khor-locked-up .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #6a4a2a 0%, #8a6a3a 30%, #9a7a4a 60%, #8a6a3a 100%);
  border-top: 2px solid #5a3a1a;
  transform: perspective(600px) rotateX(6deg);
  transform-origin: bottom center;
  animation: klu-floor 20s ease-in-out infinite;
}
.scn-khor-locked-up .wall-left {
  position: absolute; top: 0; left: 0; width: 28%; height: 72%;
  background: linear-gradient(180deg, #b09060 0%, #a08050 40%, #907040 100%);
  border-right: 2px solid #604020;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.15);
  animation: klu-wall 18s ease-in-out infinite alternate;
}
.scn-khor-locked-up .wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 72%;
  background: linear-gradient(180deg, #b09060 0%, #a08050 40%, #907040 100%);
  border-left: 2px solid #604020;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.12);
}
.scn-khor-locked-up .door {
  position: absolute; bottom: 28%; left: 28%; width: 22%; height: 52%;
  background: linear-gradient(180deg, #5a3a1a 0%, #4a2a0a 40%, #3a1a00 100%);
  border: 3px solid #3a2010;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4), 4px 0 12px rgba(0,0,0,0.3);
}
.scn-khor-locked-up .window {
  position: absolute; top: 12%; right: 4%; width: 12%; height: 18%;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 50%, #0a1a3a 100%);
  border: 4px solid #604020;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,80,0.5), 0 0 30px rgba(80,120,200,0.08);
  animation: klu-window 12s ease-in-out infinite alternate;
}
.scn-khor-locked-up .dog-silhouette {
  position: absolute; bottom: 28%; left: 36%; width: 18%; height: 22%;
  background: radial-gradient(ellipse 60% 50% at 50% 70%, #1a1a0a 0%, #0a0a00 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: klu-dog 4s ease-in-out infinite;
}
.scn-khor-locked-up .chain {
  position: absolute; bottom: 30%; left: 34%; width: 14%; height: 2px;
  background: linear-gradient(90deg, #8a8a8a 0%, #6a6a6a 50%, #5a5a5a 100%);
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: klu-chain 2s ease-in-out infinite alternate;
}
.scn-khor-locked-up .shadow-bar {
  position: absolute; top: 0; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: klu-shade 8s ease-in-out infinite alternate;
}
@keyframes klu-floor {
  0%,100% { opacity:0.9; transform: perspective(600px) rotateX(6deg) translateY(0); }
  50% { opacity:1; transform: perspective(600px) rotateX(6deg) translateY(-2px); }
}
@keyframes klu-wall {
  0% { box-shadow: inset -8px 0 20px rgba(0,0,0,0.15); }
  50% { box-shadow: inset -12px 0 30px rgba(0,0,0,0.25); }
  100% { box-shadow: inset -6px 0 15px rgba(0,0,0,0.12); }
}
@keyframes klu-window {
  0% { background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 50%, #0a1a3a 100%); box-shadow: inset 0 0 20px rgba(0,0,80,0.5), 0 0 30px rgba(80,120,200,0.08); }
  50% { background: linear-gradient(135deg, #3a4a6a 0%, #2a3a5a 50%, #1a2a4a 100%); box-shadow: inset 0 0 30px rgba(0,0,80,0.6), 0 0 40px rgba(80,120,200,0.15); }
  100% { background: linear-gradient(135deg, #1a2a4a 0%, #0a1a3a 50%, #000a2a 100%); box-shadow: inset 0 0 15px rgba(0,0,80,0.4), 0 0 20px rgba(80,120,200,0.05); }
}
@keyframes klu-dog {
  0%,100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-3px) scaleY(0.98); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  75% { transform: translateY(-4px) scaleY(0.96); }
}
@keyframes klu-chain {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes klu-shade {
  0%,100% { opacity:0.5; }
  33% { opacity:0.8; }
  66% { opacity:0.4; }
}

.scn-matrena-hides-disquiet {
  background: linear-gradient(180deg, #c8b080 0%, #b09868 30%, #988050 60%, #786040 100%),
              radial-gradient(ellipse at 30% 40%, #d4c090 0%, transparent 70%);
  box-shadow: inset 0 0 50px rgba(40,30,10,0.3);
}
.scn-matrena-hides-disquiet .wall-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #d4be9a 0%, #c0a880 40%, #a88860 100%);
  box-shadow: inset 0 8px 40px rgba(0,0,0,0.08);
  animation: mhd-wall 16s ease-in-out infinite alternate;
}
.scn-matrena-hides-disquiet .sofa-back {
  position: absolute; bottom: 22%; left: 20%; width: 50%; height: 20%;
  background: linear-gradient(135deg, #6a4020 0%, #5a3018 50%, #4a2010 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  transform: scaleX(1.05);
  animation: mhd-sofa 14s ease-in-out infinite alternate;
}
.scn-matrena-hides-disquiet .sofa-seat {
  position: absolute; bottom: 12%; left: 18%; width: 54%; height: 12%;
  background: linear-gradient(180deg, #7a5030 0%, #5a3818 60%, #4a2810 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2), 0 6px 14px rgba(0,0,0,0.25);
}
.scn-matrena-hides-disquiet .figure-torso {
  position: absolute; bottom: 22%; left: 34%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #7a5840 0%, #5a3820 40%, #3a2010 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: mhd-torso 6s ease-in-out infinite alternate;
}
.scn-matrena-hides-disquiet .figure-head {
  position: absolute; bottom: 48%; left: 38%; width: 12%; height: 14%;
  background: radial-gradient(ellipse at 50% 40%, #b09070 0%, #8a6a4a 60%, #5a3a20 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: mhd-head 6s ease-in-out infinite alternate;
}
.scn-matrena-hides-disquiet .figure-hand {
  position: absolute; bottom: 26%; left: 48%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #a08060 0%, #8a6a4a 60%, #6a4a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: mhd-hand 3s ease-in-out infinite;
}
.scn-matrena-hides-disquiet .doorway {
  position: absolute; top: 0; right: 8%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-left: 3px solid #5a3a20;
  box-shadow: -12px 0 30px rgba(0,0,0,0.2);
  animation: mhd-door 20s ease-in-out infinite alternate;
}
.scn-matrena-hides-disquiet .lamplight {
  position: absolute; top: 30%; left: 60%; width: 14%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #d0b060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mhd-lamp 5s ease-in-out infinite alternate;
}
@keyframes mhd-wall {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes mhd-sofa {
  0%,100% { transform: scaleX(1.05) translateY(0); }
  50% { transform: scaleX(1.03) translateY(-3px); }
}
@keyframes mhd-torso {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes mhd-head {
  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 mhd-hand {
  0%,100% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(6px) translateY(-2px) rotate(10deg); }
  50% { transform: translateX(2px) translateY(-4px) rotate(5deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(15deg); }
}
@keyframes mhd-door {
  0% { box-shadow: -12px 0 30px rgba(0,0,0,0.2); }
  50% { box-shadow: -18px 0 40px rgba(0,0,0,0.3); }
  100% { box-shadow: -8px 0 20px rgba(0,0,0,0.15); }
}
@keyframes mhd-lamp {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.7; transform: scale(0.95); }
}

.scn-matrena-counts-attacks {
  background: linear-gradient(180deg, #b09870 0%, #a08860 30%, #887050 60%, #685030 100%),
              radial-gradient(ellipse at 40% 50%, #c8b090 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(30,20,5,0.25);
}
.scn-matrena-counts-attacks .room-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #c0a880 0%, #a88860 40%, #907050 100%);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.1);
  animation: mca-wall 18s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .sofa-corner {
  position: absolute; bottom: 15%; left: 10%; width: 45%; height: 25%;
  background: linear-gradient(135deg, #5a3820 0%, #4a2810 50%, #3a1808 100%);
  border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: mca-sofa 12s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .figure-body {
  position: absolute; bottom: 18%; left: 22%; width: 22%; height: 38%;
  background: linear-gradient(180deg, #7a5038 0%, #5a3820 40%, #3a2010 100%);
  border-radius: 25% 25% 20% 20% / 35% 35% 25% 25%;
  box-shadow: -3px 0 10px rgba(0,0,0,0.15);
  animation: mca-body 6s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .arm-counting {
  position: absolute; bottom: 32%; left: 38%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a10 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform-origin: 50% 80%;
  animation: mca-arm 3s ease-in-out infinite;
}
.scn-matrena-counts-attacks .fingers {
  position: absolute; bottom: 34%; left: 44%; width: 10%; height: 6%;
  background: linear-gradient(90deg, #8a6a4a 0%, #a08060 40%, #8a6a4a 100%);
  border-radius: 20% 40% 40% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transform-origin: left center;
  animation: mca-fingers 2s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .curtain {
  position: absolute; top: 0; right: 0; width: 16%; height: 65%;
  background: linear-gradient(180deg, #5a3820 0%, #4a2810 40%, #3a1808 100%);
  border-radius: 0 0 0 40%;
  box-shadow: -4px 0 16px rgba(0,0,0,0.2);
  animation: mca-curtain 20s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .side-table {
  position: absolute; bottom: 12%; right: 18%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 60%, #2a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: mca-table 16s ease-in-out infinite alternate;
}
.scn-matrena-counts-attacks .candle {
  position: absolute; bottom: 28%; right: 22%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e0c080 0%, #c8a060 50%, #a08040 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.4);
  animation: mca-candle 5s ease-in-out infinite alternate;
}
@keyframes mca-wall {
  0%,100% { opacity:0.9; }
  50% { opacity:1; }
}
@keyframes mca-sofa {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-4px); }
  100% { transform: rotate(-3deg) translateY(2px); }
}
@keyframes mca-body {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes mca-arm {
  0%,100% { transform: rotate(-10deg) translateX(0); }
  25% { transform: rotate(-5deg) translateX(4px); }
  50% { transform: rotate(-20deg) translateX(2px); }
  75% { transform: rotate(-8deg) translateX(6px); }
}
@keyframes mca-fingers {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(4px); }
  100% { transform: scaleX(0.95) translateX(2px); }
}
@keyframes mca-curtain {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.98); }
}
@keyframes mca-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes mca-candle {
  0% { opacity:0.8; transform: scaleY(1); box-shadow: 0 0 20px 6px rgba(200,160,80,0.4); }
  50% { opacity:1; transform: scaleY(1.05); box-shadow: 0 0 30px 10px rgba(200,160,80,0.6); }
  100% { opacity:0.7; transform: scaleY(0.95); box-shadow: 0 0 15px 4px rgba(200,160,80,0.3); }
}

.scn-first-attempt-sleigh {
  background: linear-gradient(180deg, #8a9ab0 0%, #a0b4c8 20%, #c0d0e0 40%, #e0e8f0 60%, #f0f4f8 100%),
              radial-gradient(ellipse at 50% 100%, #f0f4f8 0%, transparent 70%);
  box-shadow: inset 0 20px 60px rgba(60,80,120,0.15);
}
.scn-first-attempt-sleigh .sky-glow {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8dce8 30%, #b0c0d8 60%, #8a9ab0 100%);
  animation: fas-sky 20s ease-in-out infinite alternate;
}
.scn-first-attempt-sleigh .city-skyline {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a8a 0%, #5a6a7a 40%, #4a5a6a 100%);
  border-radius: 4% 6% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.2);
  animation: fas-skyline 30s ease-in-out infinite alternate;
}
.scn-first-attempt-sleigh .snow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #e8eef0 0%, #d0d8e0 40%, #b8c0c8 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 12px 40px rgba(80,100,120,0.2);
  animation: fas-ground 18s ease-in-out infinite alternate;
}
.scn-first-attempt-sleigh .sleigh-body {
  position: absolute; bottom: 18%; left: 30%; width: 28%; height: 12%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%);
  border-radius: 20% 40% 20% 10% / 40% 60% 30% 20%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: fas-sleigh 4s ease-in-out infinite;
}
.scn-first-attempt-sleigh .horse {
  position: absolute; bottom: 16%; left: 14%; width: 22%; height: 24%;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: 0 4px 14px rgba(0,0,0,0.25);
  transform-origin: bottom center;
  animation: fas-horse 3s ease-in-out infinite;
}
.scn-first-attempt-sleigh .driver {
  position: absolute; bottom: 22%; left: 34%; width: 12%; height: 16%;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 60%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: fas-driver 4s ease-in-out infinite alternate;
}
.scn-first-attempt-sleigh .snow-flurry {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-image: radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,0.7) 0%, transparent 100%),
                    radial-gradient(2px 2px at 30% 50%, rgba(255,255,255,0.6) 0%, transparent 100%),
                    radial-gradient(1px 1px at 50% 10%, rgba(255,255,255,0.8) 0%, transparent 100%),
                    radial-gradient(2px 2px at 70% 60%, rgba(255,255,255,0.5) 0%, transparent 100%),
                    radial-gradient(1px 1px at 90% 30%, rgba(255,255,255,0.7) 0%, transparent 100%);
  animation: fas-flurry 12s linear infinite;
}
.scn-first-attempt-sleigh .shadow-track {
  position: absolute; bottom: 12%; left: 10%; width: 60%; height: 4%;
  background: linear-gradient(90deg, rgba(40,50,60,0.1) 0%, rgba(40,50,60,0.2) 30%, rgba(40,50,60,0.15) 60%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-1deg);
  animation: fas-track 4s ease-in-out infinite;
}
@keyframes fas-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes fas-skyline {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes fas-ground {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes fas-sleigh {
  0%,100% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(-1deg) translateX(3px); }
  50% { transform: rotate(-3deg) translateX(-2px); }
  75% { transform: rotate(-1deg) translateX(4px); }
}
@keyframes fas-horse {
  0%,100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-4px) scaleY(0.97); }
  50% { transform: translateY(-2px) scaleY(1.03); }
  75% { transform: translateY(-5px) scaleY(0.96); }
}
@keyframes fas-driver {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes fas-flurry {
  0% { background-position: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%; }
  100% { background-position: 20% 100%, 40% 100%, 60% 100%, 80% 100%, 100% 100%; }
}
@keyframes fas-track {
  0%,100% { opacity:0.5; transform: rotate(-1deg) scaleY(1); }
  50% { opacity:0.8; transform: rotate(-0.5deg) scaleY(1.2); }
}

.scn-matrena-confession {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d6b982 40%, #b58a5e 100%),
    radial-gradient(ellipse at 60% 20%, #fff5e0 0%, transparent 60%);
}
.scn-matrena-confession .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c9b585 0%, #a3835a 100%);
  animation: mc-wall 14s ease-in-out infinite alternate;
}
.scn-matrena-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #7a5c3a 0%, #9e7a4e 100%);
  border-radius: 0 0 4px 4px;
}
.scn-matrena-confession .window {
  position: absolute; bottom: 45%; left: 28%; width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #d4c8a0 70%);
  border: 6px solid #6b4c2a; border-radius: 4px;
  box-shadow: inset 0 0 20px 4px rgba(255,240,200,.4);
  animation: mc-window 9s ease-in-out infinite;
}
.scn-matrena-confession .curtain-left {
  position: absolute; bottom: 45%; left: 23%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 20% 0 0 60%; transform-origin: top;
  animation: mc-curtain-l 7s ease-in-out infinite alternate;
}
.scn-matrena-confession .curtain-right {
  position: absolute; bottom: 45%; right: 23%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2210 100%);
  border-radius: 0 20% 60% 0; transform-origin: top;
  animation: mc-curtain-r 7s ease-in-out infinite alternate;
}
.scn-matrena-confession .figure-tsar {
  position: absolute; bottom: 35%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2b1a0e 0%, #0f0904 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: mc-fig-tsar 4s ease-in-out infinite;
}
.scn-matrena-confession .figure-roulet {
  position: absolute; bottom: 35%; right: 55%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1f150a 0%, #0a0603 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: mc-fig-roulet 5s ease-in-out infinite;
}
.scn-matrena-confession .desk {
  position: absolute; bottom: 32%; left: 40%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #6b3d22 0%, #3d1f0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mc-desk 12s ease-in-out infinite alternate;
}
.scn-matrena-confession .lamp {
  position: absolute; bottom: 52%; left: 46%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d080 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 18px 6px #e0b060, 0 0 40px 12px rgba(224,176,96,.4);
  animation: mc-lamp 3s ease-in-out infinite alternate;
}
@keyframes mc-wall { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mc-window { 0% { box-shadow: inset 0 0 10px 2px rgba(255,240,200,.3); } 50% { box-shadow: inset 0 0 30px 8px rgba(255,240,200,.6); } 100% { box-shadow: inset 0 0 15px 4px rgba(255,240,200,.4); } }
@keyframes mc-curtain-l { 0% { transform: scaleX(1) skewX(0); } 50% { transform: scaleX(0.9) skewX(5deg); } 100% { transform: scaleX(1) skewX(0); } }
@keyframes mc-curtain-r { 0% { transform: scaleX(1) skewX(0); } 50% { transform: scaleX(0.9) skewX(-5deg); } 100% { transform: scaleX(1) skewX(0); } }
@keyframes mc-fig-tsar { 0% { transform: translateX(0) rotate(-0.5deg); } 33% { transform: translateX(3px) rotate(0.5deg); } 66% { transform: translateX(-2px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mc-fig-roulet { 0% { transform: translateX(0) rotate(0.5deg); } 50% { transform: translateX(-4px) rotate(-0.3deg); } 100% { transform: translateX(2px) rotate(0.2deg); } }
@keyframes mc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mc-lamp { 0% { box-shadow: 0 0 12px 3px #d0a050, 0 0 30px 8px rgba(208,160,80,.3); opacity: .8; } 50% { box-shadow: 0 0 24px 8px #f0c060, 0 0 50px 16px rgba(240,192,96,.5); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #d0a050, 0 0 35px 10px rgba(208,160,80,.35); opacity: .9; } }

.scn-final-pact {
  background:
    linear-gradient(0deg, #d4b894 0%, #f0e2c8 60%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 50%);
}
.scn-final-pact .wall-deep {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #bca07a 0%, #8f7452 100%);
  animation: fp-wall 15s ease-in-out infinite alternate;
}
.scn-final-pact .wall-mid {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #ccb492 0%, transparent);
}
.scn-final-pact .floor-pact {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #6f532e 0%, #a5855a 100%);
  border-radius: 0 0 6px 6px;
}
.scn-final-pact .door {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #7a4f2a 0%, #3a2510 100%);
  border: 4px solid #4a2d14; border-radius: 3px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
  animation: fp-door 12s ease-in-out infinite;
}
.scn-final-pact .table-pact {
  position: absolute; bottom: 38%; left: 50%; width: 70px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5b361a 0%, #2e180a 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: fp-table 8s ease-in-out infinite alternate;
}
.scn-final-pact .figure-roulet2 {
  position: absolute; bottom: 34%; left: 42%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #20140a 0%, #0a0603 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fp-fig-roulet 5s ease-in-out infinite;
}
.scn-final-pact .figure-tsar2 {
  position: absolute; bottom: 34%; right: 38%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2b1a0e 0%, #0f0904 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fp-fig-tsar 4.5s ease-in-out infinite;
}
.scn-final-pact .chandelier {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #f0c870 0%, #b08840 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #d0a050, 0 0 60px 20px rgba(208,160,80,.3);
  animation: fp-chand 6s ease-in-out infinite alternate;
}
.scn-final-pact .bell {
  position: absolute; bottom: 42%; right: 20%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c8a040 0%, #8a6a20 100%);
  border-radius: 50% 50% 0 0; transform-origin: top center;
  animation: fp-bell 3s ease-in-out infinite;
}
@keyframes fp-wall { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes fp-door { 0% { transform: rotateY(0); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(0); } }
@keyframes fp-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fp-fig-roulet { 0% { transform: translateX(0) rotate(0.5deg); } 33% { transform: translateX(3px) rotate(-0.3deg); } 66% { transform: translateX(-2px) rotate(0.2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fp-fig-tsar { 0% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(-3px) rotate(0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fp-chand { 0% { opacity: .7; box-shadow: 0 0 20px 6px #d0a050; } 50% { opacity: 1; box-shadow: 0 0 40px 14px #f0c870; } 100% { opacity: .8; box-shadow: 0 0 25px 8px #d0a050; } }
@keyframes fp-bell { 0% { transform: rotate(-20deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(15deg); } 100% { transform: rotate(-20deg); } }

.scn-progress-and-pity {
  background:
    linear-gradient(180deg, #fdf0d5 0%, #ecdba8 50%, #d4be8a 100%),
    radial-gradient(ellipse at 40% 30%, #fff9e6 0%, transparent 60%);
}
.scn-progress-and-pity .wall-warm {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e3cca2 0%, #c7a87a 100%);
  animation: pp-wall 16s ease-in-out infinite alternate;
}
.scn-progress-and-pity .floor-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #9e7a50 0%, #be9e70 100%);
  border-radius: 0 0 4px 4px;
}
.scn-progress-and-pity .sunbeam {
  position: absolute; top: 0; left: 30%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(255,245,200,.6) 0%, rgba(255,245,200,0) 100%);
  transform: skewX(-10deg); filter: blur(4px);
  animation: pp-beam 20s ease-in-out infinite alternate;
}
.scn-progress-and-pity .window-warm {
  position: absolute; bottom: 40%; left: 25%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 20%, #fff8e0 0%, #d8c8a0 70%);
  border: 8px solid #7a5a30; border-radius: 4px;
  box-shadow: inset 0 0 30px 6px rgba(255,240,200,.4);
  animation: pp-window 12s ease-in-out infinite;
}
.scn-progress-and-pity .figure-tsar3 {
  position: absolute; bottom: 32%; left: 55%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2b1a0e 0%, #0f0904 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: pp-fig-tsar 5s ease-in-out infinite;
}
.scn-progress-and-pity .figure-roulet3 {
  position: absolute; bottom: 34%; right: 55%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1f150a 0%, #0a0603 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: pp-fig-roulet 4s ease-in-out infinite;
}
.scn-progress-and-pity .desk-warm {
  position: absolute; bottom: 30%; left: 44%; width: 60px; height: 22px;
  background: linear-gradient(180deg, #6b3d22 0%, #3d1f0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: pp-desk 10s ease-in-out infinite alternate;
}
.scn-progress-and-pity .globe {
  position: absolute; bottom: 44%; left: 38%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a0c0d0 0%, #6080a0 70%);
  border-radius: 50%; box-shadow: inset -2px -2px 4px rgba(0,0,0,.3);
  animation: pp-globe 20s linear infinite;
}
@keyframes pp-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes pp-beam { 0% { transform: skewX(-10deg) translateX(0); opacity: .6; } 50% { transform: skewX(-10deg) translateX(20px); opacity: 1; } 100% { transform: skewX(-10deg) translateX(0); opacity: .7; } }
@keyframes pp-window { 0% { box-shadow: inset 0 0 20px 4px rgba(255,240,200,.3); } 50% { box-shadow: inset 0 0 40px 10px rgba(255,240,200,.6); } 100% { box-shadow: inset 0 0 25px 5px rgba(255,240,200,.4); } }
@keyframes pp-fig-tsar { 0% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(2px) rotate(0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pp-fig-roulet { 0% { transform: translateX(0) rotate(0.5deg); } 33% { transform: translateX(-3px) rotate(-0.3deg); } 66% { transform: translateX(2px) rotate(0.2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pp-globe { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }

.scn-salon-after-tsar {
  background:
    linear-gradient(180deg, #cbb28a 0%, #a78a64 50%, #8a6e4a 100%),
    radial-gradient(ellipse at 50% 40%, #f5e6c8 0%, transparent 70%);
}
.scn-salon-after-tsar .salon-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d9c4a0 0%, #b89c76 100%);
  animation: sa-wall 14s ease-in-out infinite alternate;
}
.scn-salon-after-tsar .salon-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #5a3e20 0%, #7a5a38 100%);
  border-radius: 0 0 6px 6px;
}
.scn-salon-after-tsar .sofa {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: sa-sofa 8s ease-in-out infinite alternate;
}
.scn-salon-after-tsar .lamp-salon {
  position: absolute; top: 10%; left: 30%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0c870 0%, #b08840 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 10px #d0a050, 0 0 60px 20px rgba(208,160,80,.3);
  animation: sa-lamp 6s ease-in-out infinite alternate;
}
.scn-salon-after-tsar .figure-marshal {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0603 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sa-fig-m 5s ease-in-out infinite;
}
.scn-salon-after-tsar .figure-koupriane {
  position: absolute; bottom: 30%; left: 48%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #2a1a0e 0%, #100a04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sa-fig-k 4.5s ease-in-out infinite;
}
.scn-salon-after-tsar .figure-matrena {
  position: absolute; bottom: 28%; right: 28%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a1e12 0%, #0f0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sa-fig-mt 4s ease-in-out infinite;
}
.scn-salon-after-tsar .carpet {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #6a2a1a 0%, #4a1a0e 20%, #6a2a1a 40%, #4a1a0e 60%, #6a2a1a 80%, #4a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  opacity: .6; filter: blur(2px);
  animation: sa-carpet 20s linear infinite alternate;
}
.scn-salon-after-tsar .frame {
  position: absolute; top: 15%; left: 40%; width: 30px; height: 24px;
  border: 6px solid #6b4c2a; background: #b89c76; border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: sa-frame 12s ease-in-out infinite;
}
@keyframes sa-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes sa-sofa { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sa-lamp { 0% { opacity: .7; box-shadow: 0 0 15px 5px #d0a050; } 50% { opacity: 1; box-shadow: 0 0 40px 14px #f0c870; } 100% { opacity: .8; box-shadow: 0 0 20px 6px #d0a050; } }
@keyframes sa-fig-m { 0% { transform: translateX(0) rotate(-0.5deg); } 33% { transform: translateX(2px) rotate(0.3deg); } 66% { transform: translateX(-1px) rotate(-0.2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-fig-k { 0% { transform: translateX(0) rotate(0.5deg); } 50% { transform: translateX(-3px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-fig-mt { 0% { transform: translateX(0) rotate(-0.3deg); } 50% { transform: translateX(4px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.3deg); } }
@keyframes sa-carpet { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes sa-frame { 0% { box-shadow: 0 4px 8px rgba(0,0,0,.3); } 50% { box-shadow: 0 6px 16px rgba(0,0,0,.5); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,.3); } }

/* general-defends-himself */
.scn-general-defends-himself {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b690 40%, #908070 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
}
.scn-general-defends-himself .wall-back {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  animation: gd-wall 12s ease-in-out infinite alternate;
}
.scn-general-defends-himself .floor {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.3); border-radius: 30% 30% 0 0;
}
.scn-general-defends-himself .judge-bench {
  position:absolute; bottom:45%; left:30%; width:150px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.4); animation: gd-bench 8s ease-in-out infinite;
}
.scn-general-defends-himself .figure-defendant {
  position:absolute; bottom:15%; left:50%; width:40px; height:70px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 60%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: gd-figure 4s ease-in-out infinite;
}
.scn-general-defends-himself .light-beam {
  position:absolute; top:10%; left:35%; width:200px; height:300px; background: linear-gradient(180deg, rgba(255,240,200,.3) 0%, rgba(255,240,200,0) 100%);
  transform: rotate(15deg); filter: blur(10px); animation: gd-beam 6s ease-in-out infinite alternate;
}
.scn-general-defends-himself .shadow-sharp {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: gd-shadow 5s ease-in-out infinite alternate;
}
.scn-general-defends-himself .chain {
  position:absolute; bottom:20%; left:48%; width:20px; height:30px; background: repeating-linear-gradient(0deg, #7a7a7a 0px, #9a9a9a 5px, #7a7a7a 10px);
  border-radius: 30%; animation: gd-chain 3s ease-in-out infinite;
}
@keyframes gd-wall { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes gd-bench { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes gd-figure { 0%{transform:translateX(-50%) rotate(-2deg)} 25%{transform:translateX(-48%) rotate(1deg)} 50%{transform:translateX(-50%) rotate(-1deg)} 75%{transform:translateX(-52%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(0)} }
@keyframes gd-beam { 0%{opacity:.3;transform:rotate(13deg) scale(1)} 50%{opacity:.5;transform:rotate(17deg) scale(1.05)} 100%{opacity:.35;transform:rotate(14deg) scale(1)} }
@keyframes gd-shadow { 0%{opacity:.5} 50%{opacity:.7} 100%{opacity:.4} }
@keyframes gd-chain { 0%,100%{transform:rotate(0)} 50%{transform:rotate(5deg)} }

/* happy-condemned */
.scn-happy-condemned {
  background: linear-gradient(180deg, #f8ecd0 0%, #e0d4b0 40%, #d0c0a0 100%), radial-gradient(ellipse at 50% 100%, #ffe8c0 0%, transparent 60%);
}
.scn-happy-condemned .bg-warm {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0e0c0 0%, #e8d4b0 100%);
  animation: hc-warm 15s ease-in-out infinite alternate;
}
.scn-happy-condemned .carpet {
  position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.2);
}
.scn-happy-condemned .sofa {
  position:absolute; bottom:40%; left:10%; width:180px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20px 20px 0 0; box-shadow: 0 10px 15px rgba(0,0,0,.3); animation: hc-sofa 10s ease-in-out infinite;
}
.scn-happy-condemned .father {
  position:absolute; bottom:30%; left:15%; width:45px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 80%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: hc-father 5s ease-in-out infinite;
}
.scn-happy-condemned .mother {
  position:absolute; bottom:32%; left:30%; width:40px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hc-mother 6s ease-in-out infinite;
}
.scn-happy-condemned .child {
  position:absolute; bottom:25%; left:42%; width:25px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 60%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hc-child 4s ease-in-out infinite;
}
.scn-happy-condemned .window-glow {
  position:absolute; top:15%; right:10%; width:80px; height:100px; background: radial-gradient(ellipse, #ffe8c0 0%, rgba(255,232,192,0) 70%);
  border-radius: 10px; box-shadow: 0 0 40px 20px rgba(255,232,192,.3); animation: hc-window 7s ease-in-out infinite alternate;
}
.scn-happy-condemned .curtain-left {
  position:absolute; top:12%; left:8%; width:30px; height:130px; background: linear-gradient(180deg, #b88868 0%, #684838 100%);
  border-radius: 5px 0 0 5px; animation: hc-curtain 9s ease-in-out infinite;
}
.scn-happy-condemned .curtain-right {
  position:absolute; top:12%; right:8%; width:30px; height:130px; background: linear-gradient(180deg, #b88868 0%, #684838 100%);
  border-radius: 0 5px 5px 0; animation: hc-curtain 9s ease-in-out infinite reverse;
}
@keyframes hc-warm { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes hc-sofa { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes hc-father { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(0) rotate(2deg)} 75%{transform:translateX(-3px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes hc-mother { 0%{transform:translateX(0) rotate(1deg)} 50%{transform:translateX(4px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes hc-child { 0%{transform:scale(1)} 50%{transform:scale(1.05)} 100%{transform:scale(1)} }
@keyframes hc-window { 0%{opacity:.8;box-shadow:0 0 30px 15px rgba(255,232,192,.2)} 100%{opacity:1;box-shadow:0 0 50px 25px rgba(255,232,192,.4)} }
@keyframes hc-curtain { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} }

/* rouletabille-investigates */
.scn-rouletabille-investigates {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #908070 100%), radial-gradient(ellipse at 50% 0%, #ecd0a0 0%, transparent 50%);
}
.scn-rouletabille-investigates .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #c8b898 0%, #a89878 60%, #786858 100%);
  animation: ri-deep 14s ease-in-out infinite alternate;
}
.scn-rouletabille-investigates .table {
  position:absolute; bottom:35%; left:50%; width:200px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: ri-table 9s ease-in-out infinite;
}
.scn-rouletabille-investigates .plate {
  position:absolute; bottom:40%; left:38%; width:60px; height:10px; background: linear-gradient(180deg, #b8a888 0%, #887868 100%);
  border-radius: 50%; box-shadow: 0 3px 5px rgba(0,0,0,.2); animation: ri-plate 5s ease-in-out infinite;
}
.scn-rouletabille-investigates .wine-glass {
  position:absolute; bottom:40%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 0 0 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 80% 70%, 100% 100%, 0% 100%, 20% 70%);
  animation: ri-glass 6s ease-in-out infinite;
}
.scn-rouletabille-investigates .figure-detective {
  position:absolute; bottom:20%; left:25%; width:35px; height:65px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ri-detective 4s ease-in-out infinite;
}
.scn-rouletabille-investigates .candle {
  position:absolute; bottom:40%; left:50%; width:6px; height:20px; transform:translateX(-50%);
  background: linear-gradient(180deg, #f0d060 0%, #c08020 100%); border-radius: 30%;
  box-shadow: 0 0 20px 8px rgba(240,208,96,.5); animation: ri-candle 3s ease-in-out infinite alternate;
}
.scn-rouletabille-investigates .shadow-musician {
  position:absolute; bottom:10%; right:20%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: ri-musician 8s ease-in-out infinite;
}
.scn-rouletabille-investigates .music-pulse {
  position:absolute; top:40%; right:15%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,180,150,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px); animation: ri-music 3s ease-in-out infinite;
}
@keyframes ri-deep { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes ri-table { 0%,100%{transform:translateX(-50%)} 50%{transform:translateX(-48%)} }
@keyframes ri-plate { 0%{transform:rotate(0)} 50%{transform:rotate(3deg)} 100%{transform:rotate(0)} }
@keyframes ri-glass { 0%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(2deg) translateY(-2px)} 100%{transform:rotate(-1deg) translateY(0)} }
@keyframes ri-detective { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(4px) rotate(1deg)} 50%{transform:translateX(0) rotate(2deg)} 75%{transform:translateX(-4px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ri-candle { 0%{opacity:.7;box-shadow:0 0 15px 5px rgba(240,208,96,.4)} 100%{opacity:1;box-shadow:0 0 25px 12px rgba(240,208,96,.6)} }
@keyframes ri-musician { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes ri-music { 0%{opacity:.3;transform:scale(1)} 50%{opacity:.5;transform:scale(1.2)} 100%{opacity:.3;transform:scale(1)} }

/* sitting-room-exploration */
.scn-sitting-room-exploration {
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 40%, #c0a890 100%), radial-gradient(ellipse at 50% 100%, #e8d4c0 0%, transparent 60%);
}
.scn-sitting-room-exploration .wall-back {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b498 100%);
  animation: sr-wall 16s ease-in-out infinite alternate;
}
.scn-sitting-room-exploration .wall-side {
  position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #d0bca0 0%, #b09878 100%);
  animation: sr-side 14s ease-in-out infinite alternate;
}
.scn-sitting-room-exploration .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 15px 20px rgba(0,0,0,.2);
}
.scn-sitting-room-exploration .sofa {
  position:absolute; bottom:35%; left:15%; width:160px; height:50px; background: linear-gradient(180deg, #7a6050 0%, #4a3a2a 100%);
  border-radius: 15px 15px 0 0; box-shadow: 0 8px 10px rgba(0,0,0,.3); animation: sr-sofa 10s ease-in-out infinite;
}
.scn-sitting-room-exploration .armchair {
  position:absolute; bottom:32%; left:55%; width:70px; height:50px; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 6px 8px rgba(0,0,0,.2); animation: sr-chair 9s ease-in-out infinite;
}
.scn-sitting-room-exploration .lamp {
  position:absolute; bottom:55%; left:58%; width:10px; height:40px; background: linear-gradient(180deg, #a08868 0%, #706050 100%);
  border-radius: 5px; transform: rotate(-5deg); animation: sr-lamp 7s ease-in-out infinite alternate;
}
.scn-sitting-room-exploration .vase {
  position:absolute; bottom:20%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, #c86040 0%, #a03820 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.2);
  animation: sr-vase 5s ease-in-out infinite;
}
.scn-sitting-room-exploration .door {
  position:absolute; bottom:30%; right:5%; width:60px; height:100px; background: linear-gradient(180deg, #b09880 0%, #887068 100%);
  border-radius: 5px; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: sr-door 12s ease-in-out infinite;
}
.scn-sitting-room-exploration .figure-tourist {
  position:absolute; bottom:18%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: sr-figure 6s ease-in-out infinite;
}
@keyframes sr-wall { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes sr-side { 0%{opacity:.8} 50%{opacity:.95} 100%{opacity:.85} }
@keyframes sr-sofa { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes sr-chair { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes sr-lamp { 0%{transform:rotate(-7deg)} 50%{transform:rotate(-3deg)} 100%{transform:rotate(-6deg)} }
@keyframes sr-vase { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes sr-door { 0%{transform:rotateY(0)} 50%{transform:rotateY(5deg)} 100%{transform:rotateY(0)} }
@keyframes sr-figure { 0%{transform:translateX(0) rotate(-2deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(0) rotate(2deg)} 75%{transform:translateX(-3px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0)} }

/* scene: slower-through-streets (ss) – tense, sunlit */
.scn-slower-through-streets {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 30%, #ffe4b5 0%, transparent 60%);
}
.scn-slower-through-streets .sky-haze {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  animation: ss-skyga 14s ease-in-out infinite alternate;
}
.scn-slower-through-streets .sun-glow {
  position: absolute; top: 12%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,0.3);
  animation: ss-sun 5s ease-in-out infinite;
}
.scn-slower-through-streets .church-dome {
  position: absolute; bottom: 40%; left: 25%;
  width: 70px; height: 80px;
  background: radial-gradient(ellipse at 50% 20%, #8b7355 0%, #4a3728 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: scale(0.9);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-slower-through-streets .building-left {
  position: absolute; bottom: 30%; left: 2%;
  width: 20%; height: 65%;
  background: linear-gradient(180deg, #ca9a6e 0%, #7a5a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 15px 0 20px -5px rgba(0,0,0,0.3);
  animation: ss-build 20s ease-in-out infinite alternate;
}
.scn-slower-through-streets .building-right {
  position: absolute; bottom: 30%; right: 2%;
  width: 18%; height: 60%;
  background: linear-gradient(180deg, #d4a76a 0%, #8b6742 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -15px 0 20px -5px rgba(0,0,0,0.3);
  animation: ss-build 20s ease-in-out infinite alternate-reverse;
}
.scn-slower-through-streets .carriage {
  position: absolute; bottom: 28%; left: 40%;
  width: 90px; height: 50px;
  background: linear-gradient(135deg, #5c3a1e 0%, #3a2210 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: ss-carriage 6s ease-in-out infinite;
}
.scn-slower-through-streets .cobble-street {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 30%;
  background: 
    linear-gradient(90deg, #8b7d6b 0%, #a0907a 25%, #8b7d6b 50%, #a0907a 75%, #8b7d6b 100%) repeat-x 0 0 / 60px 100%,
    linear-gradient(0deg, #605040 0%, #8a7a6a 100%);
  animation: ss-cobble 20s linear infinite;
}
.scn-slower-through-streets .shadow-slice {
  position: absolute; bottom: 25%; left: 0; right: 0;
  height: 5%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 30%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.2) 70%, transparent 100%);
  animation: ss-shadow 12s ease-in-out infinite alternate;
}
@keyframes ss-skyga { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ss-sun { 0% { transform:scale(1); opacity:0.9 } 50% { transform:scale(1.2); opacity:1 } 100% { transform:scale(0.95); opacity:0.85 } }
@keyframes ss-build { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes ss-carriage { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-48%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-52%) translateY(0) rotate(-1deg) } 75% { transform:translateX(-48%) translateY(-2px) rotate(0.5deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes ss-cobble { 0% { background-position:0 0 } 100% { background-position:-60px 0 } }
@keyframes ss-shadow { 0% { opacity:0.2; transform:scaleX(0.8) } 50% { opacity:0.5; transform:scaleX(1.1) } 100% { opacity:0.3; transform:scaleX(0.9) } }

/* scene: laughter-at-church (lc) – tense, sunlit interior */
.scn-laughter-at-church {
  background: linear-gradient(180deg, #4a3b2a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 35%, #6b4f3a 0%, transparent 70%);
}
.scn-laughter-at-church .vault-bg {
  position: absolute; top: 0; left: 5%; right: 5%;
  height: 55%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4935 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
  animation: lc-vault 15s ease-in-out infinite alternate;
}
.scn-laughter-at-church .stained-window {
  position: absolute; top: 10%; left: 38%;
  width: 24%; height: 40%;
  background: linear-gradient(135deg, #3a5a8a 0%, #c05040 30%, #d0a030 60%, #3a5a8a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 60px 20px rgba(255,200,100,0.15);
  animation: lc-window 8s ease-in-out infinite alternate;
}
.scn-laughter-at-church .pillar-left {
  position: absolute; bottom: 0; left: 10%;
  width: 8%; height: 85%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.4);
}
.scn-laughter-at-church .pillar-right {
  position: absolute; bottom: 0; right: 10%;
  width: 8%; height: 85%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
}
.scn-laughter-at-church .laughing-figure {
  position: absolute; bottom: 8%; left: 44%;
  width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lc-laugh 4s ease-in-out infinite;
}
.scn-laughter-at-church .cast-shadow {
  position: absolute; bottom: 0; left: 30%;
  width: 40%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: lc-shadow 4s ease-in-out infinite alternate;
}
.scn-laughter-at-church .light-beam {
  position: absolute; top: 12%; left: 38%;
  width: 24%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,220,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(8px);
  animation: lc-beam 6s ease-in-out infinite alternate;
}
@keyframes lc-vault { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lc-window { 0% { opacity:0.5; transform:scale(0.95) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.6; transform:scale(0.98) } }
@keyframes lc-laugh { 0% { transform:translateY(0) rotate(0deg) scaleY(1) } 20% { transform:translateY(-5px) rotate(3deg) scaleY(1.1) } 40% { transform:translateY(-2px) rotate(-2deg) scaleY(0.95) } 60% { transform:translateY(-6px) rotate(4deg) scaleY(1.08) } 80% { transform:translateY(-3px) rotate(-1deg) scaleY(1) } 100% { transform:translateY(0) rotate(0deg) scaleY(1) } }
@keyframes lc-shadow { 0% { transform:scaleX(0.8); opacity:0.3 } 50% { transform:scaleX(1.2); opacity:0.6 } 100% { transform:scaleX(0.9); opacity:0.35 } }
@keyframes lc-beam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* scene: misty-street (ms) – tense, overcast */
.scn-misty-street {
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 50%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 80%, #8a9aaa 0%, transparent 60%);
}
.scn-misty-street .snow-ground {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: ms-snow 10s linear infinite;
}
.scn-misty-street .fog-layer-front {
  position: absolute; bottom: 20%; left: -10%; right: -10%;
  height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,210,220,0.4) 0%, transparent 60%);
  filter: blur(15px);
  animation: ms-fogf 25s linear infinite;
}
.scn-misty-street .fog-layer-back {
  position: absolute; top: 10%; left: -5%; right: -5%;
  height: 40%;
  background: radial-gradient(ellipse at 60% 40%, rgba(180,190,200,0.3) 0%, transparent 50%);
  filter: blur(20px);
  animation: ms-fogb 35s linear infinite reverse;
}
.scn-misty-street .soldier-1 {
  position: absolute; bottom: 28%; left: 20%;
  width: 30px; height: 55px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: ms-soldier 3s ease-in-out infinite;
}
.scn-misty-street .soldier-2 {
  position: absolute; bottom: 30%; right: 25%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: skewX(3deg);
  animation: ms-soldier 3.5s ease-in-out infinite -1s;
}
.scn-misty-street .whip-crack {
  position: absolute; bottom: 40%; left: 35%;
  width: 80px; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #4a4a4a 20%, #8a8a8a 50%, #4a4a4a 80%, transparent 100%);
  border-radius: 50%;
  transform: rotate(20deg);
  transform-origin: left;
  animation: ms-whip 2s ease-in-out infinite;
}
.scn-misty-street .shadow-rush {
  position: absolute; bottom: 15%; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.15) 70%, transparent 100%);
  animation: ms-shadow 4s ease-in-out infinite alternate;
}
.scn-misty-street .mist-veil {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0%, rgba(180,190,200,0.08) 2px, transparent 4px);
  filter: blur(3px);
  animation: ms-veil 8s linear infinite;
}
@keyframes ms-snow { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes ms-fogf { 0% { transform:translateX(0); opacity:0.5 } 50% { transform:translateX(30px); opacity:0.8 } 100% { transform:translateX(60px); opacity:0.6 } }
@keyframes ms-fogb { 0% { transform:translateX(0); opacity:0.3 } 50% { transform:translateX(-40px); opacity:0.6 } 100% { transform:translateX(-80px); opacity:0.4 } }
@keyframes ms-soldier { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(10px) translateY(-5px) } 50% { transform: translateX(20px) translateY(0) } 75% { transform: translateX(10px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ms-whip { 0% { transform:rotate(10deg) scaleX(0.5); opacity:0.8 } 30% { transform:rotate(30deg) scaleX(1.2); opacity:1 } 60% { transform:rotate(-5deg) scaleX(0.8); opacity:0.6 } 100% { transform:rotate(10deg) scaleX(0.5); opacity:0.8 } }
@keyframes ms-shadow { 0% { opacity:0.1; transform:scaleX(0.7) } 50% { opacity:0.4; transform:scaleX(1.3) } 100% { opacity:0.2; transform:scaleX(0.8) } }
@keyframes ms-veil { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

/* scene: child-prisoner (cp) – tense, overcast */
.scn-child-prisoner {
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 50%, #1a2a2a 100%),
              radial-gradient(ellipse at 50% 70%, #5a6a6a 0%, transparent 60%);
}
.scn-child-prisoner .prison-wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%;
  height: 75%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: cp-wall 20s ease-in-out infinite alternate;
}
.scn-child-prisoner .cold-floor {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-child-prisoner .bound-youth {
  position: absolute; bottom: 18%; left: 40%;
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: cp-youth 6s ease-in-out infinite;
}
.scn-child-prisoner .whip-strike {
  position: absolute; bottom: 40%; left: 30%;
  width: 100px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #4a3a2a 20%, #6a5a4a 50%, #4a3a2a 80%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-15deg);
  transform-origin: left;
  animation: cp-whip 3s ease-in-out infinite;
}
.scn-child-prisoner .observer-silhouette {
  position: absolute; bottom: 18%; right: 15%;
  width: 25px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cp-observer 8s ease-in-out infinite alternate;
}
.scn-child-prisoner .dropping-chain {
  position: absolute; top: 5%; left: 38%;
  width: 24%; height: 20%;
  background: repeating-linear-gradient(180deg, #8a7a6a 0px, #8a7a6a 4px, transparent 4px, transparent 8px);
  border-radius: 10% 10% 0 0;
  opacity: 0.6;
  animation: cp-chain 10s linear infinite;
}
.scn-child-prisoner .shadow-stain {
  position: absolute; bottom: 10%; left: 30%; right: 30%;
  height: 8%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: cp-stain 12s ease-in-out infinite alternate;
}
@keyframes cp-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cp-youth { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 20% { transform:translateX(-50%) translateY(-8px) rotate(2deg) } 40% { transform:translateX(-50%) translateY(0) rotate(-2deg) } 60% { transform:translateX(-50%) translateY(-5px) rotate(1deg) } 80% { transform:translateX(-50%) translateY(-2px) rotate(-1deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes cp-whip { 0% { transform:rotate(-20deg) translateX(0); opacity:0.7 } 40% { transform:rotate(10deg) translateX(20px); opacity:1 } 80% { transform:rotate(-30deg) translateX(-10px); opacity:0.5 } 100% { transform:rotate(-20deg) translateX(0); opacity:0.7 } }
@keyframes cp-observer { 0% { transform:scaleX(-1) translateY(0) } 50% { transform:scaleX(-1) translateY(-5px) } 100% { transform:scaleX(-1) translateY(0) } }
@keyframes cp-chain { 0% { background-position:0 0 } 100% { background-position:0 20% } }
@keyframes cp-stain { 0% { opacity:0.2; transform:scaleX(0.8) } 50% { opacity:0.5; transform:scaleX(1.2) } 100% { opacity:0.3; transform:scaleX(0.9) } }

/* ===== annouchka-greets-rouletabille ===== */
.scn-annouchka-greets-rouletabille {
  background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%);
}
.scn-annouchka-greets-rouletabille .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, rgba(90,50,30,0.15) 0%, transparent 70%); animation: a1-bg 12s ease-in-out infinite alternate;
}
.scn-annouchka-greets-rouletabille .gaslight {
  position: absolute; top: 8%; left: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #e0a040 0%, #b07030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(224,160,64,0.3); animation: a1-light 3s ease-in-out infinite alternate;
}
.scn-annouchka-greets-rouletabille .table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 14px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: a1-table 20s ease-in-out infinite alternate;
}
.scn-annouchka-greets-rouletabille .annouchka {
  position: absolute; bottom: 30%; left: 28%; width: 30px; height: 70px; background: linear-gradient(180deg, #5a2a1a 0%, #2a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a1-annouchka 5s ease-in-out infinite;
}
.scn-annouchka-greets-rouletabille .rouletabille {
  position: absolute; bottom: 30%; right: 25%; width: 28px; height: 65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: a1-rouletabille 4s ease-in-out infinite;
}
.scn-annouchka-greets-rouletabille .kiss {
  position: absolute; bottom: 45%; left: 35%; width: 6px; height: 6px; background: radial-gradient(circle, #f0c070 0%, #d09040 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(240,192,112,0.8); animation: a1-kiss 6s ease-in-out infinite;
}
.scn-annouchka-greets-rouletabille .curtain {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%; background: linear-gradient(90deg, #2a1a0a 0%, #1a0f0a 100%); border-radius: 0 30% 30% 0 / 0 20% 20% 0; animation: a1-curtain 15s ease-in-out infinite alternate;
}
@keyframes a1-bg { 0%{opacity:.7;transform:scale(1)} 50%{opacity:.9;transform:scale(1.02)} 100%{opacity:.8;transform:scale(1)} }
@keyframes a1-light { 0%{opacity:.8;transform:scale(.95)} 50%{opacity:1;transform:scale(1.08)} 100%{opacity:.85;transform:scale(1)} }
@keyframes a1-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes a1-annouchka { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(-1deg)} }
@keyframes a1-rouletabille { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-3px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes a1-kiss { 0%{transform:translate(0,0) scale(1);opacity:.8} 30%{transform:translate(30px,-10px) scale(1.4);opacity:1} 60%{transform:translate(60px,-20px) scale(1.8);opacity:.9} 100%{transform:translate(90px,-30px) scale(2);opacity:0} }
@keyframes a1-curtain { 0%{transform:translateX(0)} 50%{transform:translateX(4px)} 100%{transform:translateX(0)} }

/* ===== save-life-trebassof ===== */
.scn-save-life-trebassof {
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%), radial-gradient(ellipse at 70% 40%, #3a2a1a 0%, transparent 50%);
}
.scn-save-life-trebassof .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, rgba(60,40,25,0.2) 0%, transparent 70%); animation: st-bg 10s ease-in-out infinite alternate;
}
.scn-save-life-trebassof .lamp {
  position: absolute; top: 10%; right: 18%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,150,80,0.3); animation: st-lamp 3s ease-in-out infinite alternate;
}
.scn-save-life-trebassof .table {
  position: absolute; bottom: 22%; left: 5%; right: 5%; height: 12px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,0.5);
}
.scn-save-life-trebassof .bottle {
  position: absolute; bottom: 25%; left: 30%; width: 14px; height: 40px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: st-bottle 8s ease-in-out infinite;
}
.scn-save-life-trebassof .glass1 {
  position: absolute; bottom: 26%; left: 42%; width: 16px; height: 20px; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, rgba(200,180,150,0.2) 100%); border-radius: 10% 10% 5% 5%; border: 1px solid rgba(255,200,150,0.2); animation: st-glass 6s ease-in-out infinite;
}
.scn-save-life-trebassof .glass2 {
  position: absolute; bottom: 26%; left: 52%; width: 16px; height: 18px; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, rgba(200,180,150,0.15) 100%); border-radius: 10% 10% 5% 5%; border: 1px solid rgba(255,200,150,0.15);
}
.scn-save-life-trebassof .rouletabille {
  position: absolute; bottom: 20%; left: 18%; width: 30px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: st-roule 4s ease-in-out infinite;
}
.scn-save-life-trebassof .gounsovski {
  position: absolute; bottom: 20%; right: 15%; width: 32px; height: 68px; background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-goun 3s ease-in-out infinite;
}
@keyframes st-bg { 0%{opacity:.8;transform:scale(1.01)} 50%{opacity:.95;transform:scale(1)} 100%{opacity:.85;transform:scale(1.01)} }
@keyframes st-lamp { 0%{opacity:.75;transform:scaleY(.95)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:.8;transform:scaleY(.97)} }
@keyframes st-bottle { 0%{transform:translateX(0) rotate(-1deg)} 50%{transform:translateX(2px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes st-glass { 0%{opacity:.7;transform:translateY(0)} 50%{opacity:.9;transform:translateY(-2px)} 100%{opacity:.8;transform:translateY(0)} }
@keyframes st-roule { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes st-goun { 0%{transform:translateX(0) rotate(0)} 30%{transform:translateX(-2px) rotate(3deg)} 60%{transform:translateX(2px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0)} }

/* ===== koupriane-ignorance ===== */
.scn-koupriane-ignorance {
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%), radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-koupriane-ignorance .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 40%, rgba(80,50,30,0.1) 0%, transparent 70%); animation: ki-bg 15s ease-in-out infinite alternate;
}
.scn-koupriane-ignorance .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-koupriane-ignorance .paper1 {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 28px; background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%); border-radius: 2px; transform: rotate(12deg); animation: ki-paper 20s ease-in-out infinite alternate;
}
.scn-koupriane-ignorance .paper2 {
  position: absolute; bottom: 32%; left: 35%; width: 38px; height: 26px; background: linear-gradient(135deg, #d0c0a0 0%, #b09870 100%); border-radius: 2px; transform: rotate(-8deg); animation: ki-paper2 25s ease-in-out infinite alternate;
}
.scn-koupriane-ignorance .candle {
  position: absolute; bottom: 30%; left: 55%; width: 12px; height: 50px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30% 30% 5% 5%; animation: ki-candle 6s ease-in-out infinite;
}
.scn-koupriane-ignorance .flame {
  position: absolute; bottom: 52%; left: 55.5%; width: 10px; height: 16px; background: radial-gradient(circle at 50% 100%, #f0c060 0%, #d09030 50%, transparent 70%); border-radius: 50%; transform-origin: bottom center; animation: ki-flame 1.5s ease-in-out infinite alternate;
}
.scn-koupriane-ignorance .koupriane {
  position: absolute; bottom: 15%; left: 20%; width: 34px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ki-koup 4s ease-in-out infinite;
}
.scn-koupriane-ignorance .rouletabille {
  position: absolute; bottom: 15%; right: 22%; width: 30px; height: 58px; background: linear-gradient(180deg, #3a2a1a 0%, #0f0a05 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ki-roule 5s ease-in-out infinite;
}
.scn-koupriane-ignorance .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 60px; height: 80px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); transform: skewX(-20deg); animation: ki-shadow 8s ease-in-out infinite alternate;
}
@keyframes ki-bg { 0%{opacity:.8;transform:scale(1)} 50%{opacity:.95;transform:scale(1.01)} 100%{opacity:.85;transform:scale(1)} }
@keyframes ki-paper { 0%{transform:rotate(12deg) translateX(0)} 50%{transform:rotate(15deg) translateX(2px)} 100%{transform:rotate(10deg) translateX(0)} }
@keyframes ki-paper2 { 0%{transform:rotate(-8deg) translateX(0)} 50%{transform:rotate(-6deg) translateX(-2px)} 100%{transform:rotate(-10deg) translateX(0)} }
@keyframes ki-candle { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-1px) scaleY(1.02)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes ki-flame { 0%{transform:scale(.8);opacity:.7} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(.9);opacity:.8} }
@keyframes ki-koup { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(3px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ki-roule { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ki-shadow { 0%{transform:skewX(-20deg) scaleX(1)} 50%{transform:skewX(-22deg) scaleX(1.08)} 100%{transform:skewX(-18deg) scaleX(1)} }

/* ===== annouchka-indifferent ===== */
.scn-annouchka-indifferent {
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%), radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 65%);
}
.scn-annouchka-indifferent .bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 30%, rgba(70,40,20,0.15) 0%, transparent 70%); animation: ai-bg 11s ease-in-out infinite alternate;
}
.scn-annouchka-indifferent .table {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 16px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 5px; box-shadow: 0 5px 12px rgba(0,0,0,0.5);
}
.scn-annouchka-indifferent .plate {
  position: absolute; bottom: 28%; left: 28%; width: 50px; height: 30px; background: radial-gradient(ellipse, #b0a090 0%, #807060 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.3); animation: ai-plate 14s ease-in-out infinite;
}
.scn-annouchka-indifferent .glass {
  position: absolute; bottom: 27%; left: 48%; width: 14px; height: 24px; background: linear-gradient(180deg, rgba(255,230,200,0.25) 0%, rgba(200,180,150,0.15) 100%); border-radius: 10% 10% 5% 5%; border: 1px solid rgba(255,200,150,0.2);
}
.scn-annouchka-indifferent .annouchka {
  position: absolute; bottom: 18%; left: 22%; width: 32px; height: 64px; background: linear-gradient(180deg, #5a2a1a 0%, #2a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ai-annouchka 6s ease-in-out infinite;
}
.scn-annouchka-indifferent .rouletabille {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 62px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ai-roule 4.5s ease-in-out infinite;
}
.scn-annouchka-indifferent .gounsovski {
  position: absolute; bottom: 18%; right: 40%; width: 30px; height: 66px; background: linear-gradient(180deg, #4a2a1a 0%, #2a120a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ai-goun 5s ease-in-out infinite;
}
.scn-annouchka-indifferent .bucket {
  position: absolute; bottom: 22%; left: 52%; width: 20px; height: 28px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ai-bucket 12s ease-in-out infinite;
}
@keyframes ai-bg { 0%{opacity:.8;transform:scale(1)} 50%{opacity:.93;transform:scale(1.01)} 100%{opacity:.85;transform:scale(1)} }
@keyframes ai-plate { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-1deg)} }
@keyframes ai-annouchka { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-2deg)} 100%{transform:translateY(0) rotate(1deg)} }
@keyframes ai-roule { 0%{transform:translateX(0) rotate(0)} 50%{transform:translateX(-2px) rotate(2deg)} 100%{transform:translateX(0) rotate(0)} }
@keyframes ai-goun { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ai-bucket { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }

.scn-never-that {
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a1a 100%), radial-gradient(ellipse at 70% 30%, #4a2a4a 0%, transparent 60%);
}
.scn-never-that .room { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); }
.scn-never-that .window { position:absolute; top:15%; left:40%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #d4a060 0%, #b88650 40%, #4a2a1a 100%); border-radius:5%; box-shadow: 0 0 60px 30px rgba(180,130,80,.3); animation: nt-glow 5s ease-in-out infinite alternate; }
.scn-never-that .glow { position:absolute; top:15%; left:40%; width:30%; height:40%; background: linear-gradient(135deg, rgba(200,160,100,0.4) 0%, transparent 70%); filter: blur(12px); animation: nt-glow 5s ease-in-out infinite alternate-reverse; }
.scn-never-that .figure-main { position:absolute; bottom:20%; left:45%; width:35px; height:80px; background: linear-gradient(180deg, #120a14 0%, #0a060a 100%); border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-sway 4s ease-in-out infinite; }
.scn-never-that .figure-other { position:absolute; bottom:18%; left:52%; width:28px; height:70px; background: linear-gradient(180deg, #1a0a1a 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-sway 4s ease-in-out 0.5s infinite; }
.scn-never-that .shadow { position:absolute; bottom:15%; left:40%; width:50%; height:8px; background: radial-gradient(ellipse at 50% 50%, #0a060a 0%, transparent 100%); opacity:0.6; animation: nt-shadow 4s ease-in-out infinite; }
@keyframes nt-glow { 0% { box-shadow:0 0 40px 20px rgba(180,130,80,.2); opacity:0.7 } 50% { box-shadow:0 0 80px 40px rgba(200,160,100,.5); opacity:1 } 100% { box-shadow:0 0 50px 25px rgba(180,130,80,.3); opacity:0.8 } }
@keyframes nt-sway { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nt-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(2px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }

.scn-virgin-protect-you {
  background: linear-gradient(180deg, #ffb07c 0%, #7a6a5a 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%);
}
.scn-virgin-protect-you .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffc89a 0%, #ffb07c 50%, #7a6a5a 100%); animation: vpy-sky 12s ease-in-out infinite alternate; }
.scn-virgin-protect-you .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a8a8a 0%, #4a6a6a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: vpy-waves 8s ease-in-out infinite alternate; }
.scn-virgin-protect-you .sun { position:absolute; top:20%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,200,120,.5); animation: vpy-sunrise 15s ease-in-out infinite alternate; }
.scn-virgin-protect-you .island { position:absolute; bottom:30%; left:20%; width:25%; height:15%; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-virgin-protect-you .statue { position:absolute; bottom:33%; left:30%; width:18px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vpy-statue 6s ease-in-out infinite; }
.scn-virgin-protect-you .halo { position:absolute; bottom:45%; left:30%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,230,180,.8) 0%, transparent 100%); border-radius:50%; transform: translate(-6px, -10px); animation: vpy-halo 4s ease-in-out infinite alternate; }
.scn-virgin-protect-you .rays { position:absolute; top:10%; left:0; width:100%; height:50%; background: repeating-linear-gradient(135deg, transparent 0%, rgba(255,220,150,.15) 5%, transparent 10%, transparent 100%); animation: vpy-rays 10s linear infinite; }
@keyframes vpy-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes vpy-waves { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes vpy-sunrise { 0% { transform: translateX(0) scale(1); box-shadow:0 0 60px 30px rgba(255,200,120,.3); } 50% { transform: translateX(10px) scale(1.1); box-shadow:0 0 100px 50px rgba(255,200,120,.6); } 100% { transform: translateX(0) scale(1); box-shadow:0 0 70px 35px rgba(255,200,120,.4); } }
@keyframes vpy-statue { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vpy-halo { 0% { opacity:0.6; transform: translate(-6px, -10px) scale(0.9); } 50% { opacity:1; transform: translate(-4px, -8px) scale(1.1); } 100% { opacity:0.7; transform: translate(-6px, -10px) scale(1); } }
@keyframes vpy-rays { 0% { background-position:0 0; } 100% { background-position:200% 200%; } }

.scn-watchers-of-virgin {
  background: linear-gradient(180deg, #4a7a3a 0%, #2a4a1a 100%), radial-gradient(circle at 30% 20%, #6a9a5a 0%, transparent 50%);
}
.scn-watchers-of-virgin .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a6a2a 0%, #1a3a0a 100%); }
.scn-watchers-of-virgin .leaf-large { position:absolute; bottom:20%; left:10%; width:40%; height:50%; background: linear-gradient(135deg, #5a8a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; transform-origin: bottom left; animation: wov-leafwave 6s ease-in-out infinite alternate; }
.scn-watchers-of-virgin .leaf-small { position:absolute; top:30%; right:15%; width:30%; height:35%; background: linear-gradient(225deg, #6a9a5a 0%, #4a7a3a 100%); border-radius: 50% 50% 50% 50% / 60% 40% 40% 60%; transform-origin: bottom right; animation: wov-leafwave 6s ease-in-out 3s infinite alternate; }
.scn-watchers-of-virgin .web-main { position:absolute; top:20%; left:25%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,220,200,.2); animation: wov-websway 8s ease-in-out infinite; }
.scn-watchers-of-virgin .web-side { position:absolute; top:35%; left:15%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.2) 0%, transparent 80%); border-radius:50%; animation: wov-websway 8s ease-in-out 4s infinite; }
.scn-watchers-of-virgin .dewdrop-a { position:absolute; top:25%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #e0f0e0 0%, #b0c0b0 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,230,200,.6); animation: wov-dewdrop 3s ease-in-out infinite alternate; }
.scn-watchers-of-virgin .dewdrop-b { position:absolute; top:40%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #e0f0e0 0%, #b0c0b0 100%); border-radius:50%; box-shadow: 0 0 8px 3px rgba(200,230,200,.6); animation: wov-dewdrop 3s ease-in-out 1.5s infinite alternate; }
@keyframes wov-leafwave { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes wov-websway { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.03) } 100% { transform: translateX(0) scale(1) } }
@keyframes wov-dewdrop { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-2px) scale(1.3); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }

.scn-swimming-like-god {
  background: linear-gradient(180deg, #f0c8a0 0%, #8a6a5a 100%), radial-gradient(ellipse at 50% 100%, #c0a080 0%, transparent 70%);
}
.scn-swimming-like-god .sky-horizon { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0c8a0 0%, #d0a888 50%, #b08868 100%); animation: slg-sky 12s ease-in-out infinite alternate; }
.scn-swimming-like-god .river { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a8a8a 0%, #4a6a6a 100%); border-radius: 30% 70% 0 0 / 70% 60% 0 0; animation: slg-river 8s ease-in-out infinite alternate; }
.scn-swimming-like-god .reeds-back { position:absolute; bottom:30%; left:5%; width:15%; height:40%; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: slg-reeds 5s ease-in-out infinite; }
.scn-swimming-like-god .reeds-front { position:absolute; bottom:28%; right:10%; width:20%; height:50%; background: linear-gradient(180deg, #7a8a4a 0%, #5a6a3a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: slg-reeds 5s ease-in-out 2.5s infinite; }
.scn-swimming-like-god .figure { position:absolute; bottom:35%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slg-swim 6s ease-in-out infinite; }
.scn-swimming-like-god .villa { position:absolute; bottom:40%; left:15%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: slg-villa 12s ease-in-out infinite alternate; }
.scn-swimming-like-god .sun { position:absolute; top:15%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #ffe8b0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,200,120,.5); animation: slg-sunrise 15s ease-in-out infinite alternate; }
@keyframes slg-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes slg-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes slg-reeds { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes slg-swim { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(15px) rotate(5deg) } 50% { transform: translateX(30px) rotate(0) } 75% { transform: translateX(45px) rotate(-5deg) } 100% { transform: translateX(60px) rotate(0) } }
@keyframes slg-villa { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:0.9; transform: scale(1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes slg-sunrise { 0% { transform: translateX(0) scale(1); box-shadow:0 0 40px 20px rgba(255,200,120,.3) } 50% { transform: translateX(5px) scale(1.05); box-shadow:0 0 80px 40px rgba(255,200,120,.6) } 100% { transform: translateX(0) scale(1); box-shadow:0 0 50px 25px rgba(255,200,120,.4) } }

.scn-eider-downs-explanation {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-eider-downs-explanation .ed-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d8c0 0%, #d0b898 100%); opacity: 0.6;
}
.scn-eider-downs-explanation .ed-table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ed-table 5s ease-in-out infinite;
}
.scn-eider-downs-explanation .ed-figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 50px; height: 80px; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ed-sway-left 4s ease-in-out infinite;
}
.scn-eider-downs-explanation .ed-figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 50px; height: 80px; background: linear-gradient(180deg, #3a7a5a 0%, #1a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ed-sway-right 4.5s ease-in-out infinite;
}
.scn-eider-downs-explanation .ed-feather {
  position: absolute; top: 35%; left: 50%; width: 20px; height: 8px; background: linear-gradient(135deg, #f0e8d0 0%, #c0b090 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ed-feather 6s ease-in-out infinite alternate;
}
.scn-eider-downs-explanation .ed-lamp {
  position: absolute; top: 15%; left: 50%; width: 30px; height: 40px; background: linear-gradient(180deg, #d0a060 0%, #805020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 0 40px 10px #ffd080; transform: translateX(-50%); animation: ed-lamp 3s ease-in-out infinite alternate;
}
.scn-eider-downs-explanation .ed-document {
  position: absolute; top: 45%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: ed-doc 8s ease-in-out infinite;
}
@keyframes ed-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ed-sway-left {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes ed-sway-right {
  0%,100% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
}
@keyframes ed-feather {
  0% { transform: translate(0,0) rotate(-20deg); }
  25% { transform: translate(10px,-15px) rotate(-10deg); }
  50% { transform: translate(-5px,-25px) rotate(5deg); }
  75% { transform: translate(15px,-10px) rotate(-30deg); }
  100% { transform: translate(0,0) rotate(-20deg); }
}
@keyframes ed-lamp {
  0% { opacity: 0.8; transform: translateX(-50%) rotate(-3deg); }
  50% { opacity: 1; transform: translateX(-50%) rotate(0deg); }
  100% { opacity: 0.9; transform: translateX(-50%) rotate(3deg); }
}
@keyframes ed-doc {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
}

.scn-final-goodbyes {
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a880 100%), radial-gradient(ellipse at 70% 20%, #ffebc0 0%, transparent 50%);
}
.scn-final-goodbyes .fg-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8c4a0 0%, #b89870 100%); opacity: 0.7;
}
.scn-final-goodbyes .fg-figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 100px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fg-sway-left 5s ease-in-out infinite;
}
.scn-final-goodbyes .fg-figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 100px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fg-sway-right 4.5s ease-in-out infinite;
}
.scn-final-goodbyes .fg-hands {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%); background: linear-gradient(135deg, #d0b090 0%, #a08060 100%); border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%; animation: fg-hands 3s ease-in-out infinite;
}
.scn-final-goodbyes .fg-window {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #b0d8f0 0%, #6090b0 100%); border: 4px solid #4a3020; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: fg-window 8s ease-in-out infinite alternate;
}
.scn-final-goodbyes .fg-curtain {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 100px; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 0 4px 4px 0; transform-origin: top right; animation: fg-curtain 6s ease-in-out infinite alternate;
}
.scn-final-goodbyes .fg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
@keyframes fg-sway-left {
  0%,100% { transform: rotate(-1deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-2deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes fg-sway-right {
  0%,100% { transform: rotate(1deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes fg-hands {
  0%,100% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes fg-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); }
  50% { opacity: 0.9; box-shadow: inset 0 0 40px rgba(255,255,255,0.5); }
  100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); }
}
@keyframes fg-curtain {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.9) rotate(5deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}

.scn-item-handkerchief-wave {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%), radial-gradient(ellipse at 30% 60%, #ffe8c0 0%, transparent 50%);
}
.scn-item-handkerchief-wave .hw-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); opacity: 0.7;
}
.scn-item-handkerchief-wave .hw-window {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 140px; background: linear-gradient(180deg, #b0d8f0 0%, #6090b0 100%); border: 4px solid #4a3020; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 4px 8px rgba(0,0,0,0.2); animation: hw-window 10s ease-in-out infinite alternate;
}
.scn-item-handkerchief-wave .hw-curtain {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 140px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius: 0 4px 4px 0; transform-origin: top left; animation: hw-curtain 7s ease-in-out infinite alternate;
}
.scn-item-handkerchief-wave .hw-figure {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hw-figure-sway 5s ease-in-out infinite;
}
.scn-item-handkerchief-wave .hw-handkerchief {
  position: absolute; top: 25%; left: 40%; width: 30px; height: 20px; background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b0 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; transform: rotate(30deg); box-shadow: 0 0 6px rgba(0,0,0,0.1); animation: hw-handkerchief 3s ease-in-out infinite;
}
.scn-item-handkerchief-wave .hw-sill {
  position: absolute; bottom: 22%; left: 18%; right: 58%; height: 6px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 2px;
}
@keyframes hw-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 4px 8px rgba(0,0,0,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,255,0.6), 0 4px 8px rgba(0,0,0,0.2); }
  100% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(255,255,255,0.4), 0 4px 8px rgba(0,0,0,0.2); }
}
@keyframes hw-curtain {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.85) rotate(8deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes hw-figure-sway {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-2px); }
  50% { transform: rotate(1deg) translateY(-1px); }
  75% { transform: rotate(-2deg) translateY(-3px); }
}
@keyframes hw-handkerchief {
  0% { transform: rotate(30deg) translate(0,0); }
  20% { transform: rotate(40deg) translate(5px,-5px); }
  40% { transform: rotate(20deg) translate(-3px,3px); }
  60% { transform: rotate(50deg) translate(8px,-8px); }
  80% { transform: rotate(25deg) translate(-2px,2px); }
  100% { transform: rotate(30deg) translate(0,0); }
}

/* scene 1: evening-prayers-steppe */
.scn-evening-prayers-steppe {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a1a2a 70%, #1a0a0a 100%),
              radial-gradient(ellipse at 60% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-evening-prayers-steppe .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3e 40%, #2a1a2a 100%);
  animation: eps-sky 20s ease-in-out infinite alternate;
}
.scn-evening-prayers-steppe .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-evening-prayers-steppe .distant-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 80% 50% 0 0 / 100% 70% 0 0;
  opacity: .6;
  animation: eps-hills 40s ease-in-out infinite alternate;
}
.scn-evening-prayers-steppe .campfire-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ff8c42 0%, #a04020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,140,66,.4), 0 0 100px 40px rgba(160,64,32,.2);
  animation: eps-fire 3s ease-in-out infinite alternate;
}
.scn-evening-prayers-steppe .figure-praying {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: eps-figure 6s ease-in-out infinite;
}
.scn-evening-prayers-steppe .smoke {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(100,80,60,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: eps-smoke 5s ease-in-out infinite;
}
.scn-evening-prayers-steppe .star-1 {
  position: absolute; top: 15%; left: 20%; width: 3px; height: 3px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,248,224,.6);
  animation: eps-twinkle 4s ease-in-out infinite;
}
.scn-evening-prayers-steppe .star-2 {
  position: absolute; top: 10%; right: 25%; width: 2px; height: 2px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,248,224,.5);
  animation: eps-twinkle 5s ease-in-out infinite 1s;
}
@keyframes eps-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes eps-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes eps-fire {
  0% { transform: scale(1); opacity: .8; box-shadow: 0 0 40px 15px rgba(255,140,66,.3); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 60px 25px rgba(255,140,66,.5); }
  100% { transform: scale(0.95); opacity: .7; box-shadow: 0 0 35px 10px rgba(160,64,32,.3); }
}
@keyframes eps-figure {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(1px); }
  50% { transform: rotate(-1deg) translateX(-1px); }
  75% { transform: rotate(1deg) translateX(1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes eps-smoke {
  0% { transform: translateY(0) scaleY(1); opacity: .4; }
  50% { transform: translateY(-10px) scaleY(1.5); opacity: .2; }
  100% { transform: translateY(0) scaleY(1); opacity: .4; }
}
@keyframes eps-twinkle {
  0% { opacity: .3; transform: scale(.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .5; transform: scale(.9); }
}

/* scene 2: daily-bread-prayer */
.scn-daily-bread-prayer {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #1a0a05 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-daily-bread-prayer .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 4px;
}
.scn-daily-bread-prayer .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-daily-bread-prayer .bread-loaf {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
  animation: dbp-bread 8s ease-in-out infinite;
}
.scn-daily-bread-prayer .hands-clasped {
  position: absolute; bottom: 35%; left: 50%; width: 22px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: dbp-hands 3s ease-in-out infinite alternate;
}
.scn-daily-bread-prayer .candle {
  position: absolute; bottom: 32%; left: 45%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: dbp-candle 4s ease-in-out infinite;
}
.scn-daily-bread-prayer .flame-glow {
  position: absolute; bottom: 38%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,.5), 0 0 60px 20px rgba(192,128,64,.3);
  animation: dbp-flame 2s ease-in-out infinite alternate;
}
.scn-daily-bread-prayer .shadow-inset {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 50%, transparent 0%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
@keyframes dbp-bread {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes dbp-hands {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes dbp-candle {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes dbp-flame {
  0% { transform: scale(1) translateY(0); opacity: .8; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: .7; }
}

/* scene 3: national-hymn-rises */
.scn-national-hymn-rises {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-national-hymn-rises .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-national-hymn-rises .flag-pole {
  position: absolute; bottom: 10%; left: 50%; width: 4px; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 1px;
}
.scn-national-hymn-rises .flag {
  position: absolute; bottom: 55%; left: 50%; width: 60px; height: 35px;
  transform: translateX(-50%) scaleX(0);
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: nhr-flag 4s ease-out forwards;
}
.scn-national-hymn-rises .figure-left {
  position: absolute; bottom: 10%; left: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: nhr-figure 2s ease-in-out infinite alternate;
}
.scn-national-hymn-rises .figure-right {
  position: absolute; bottom: 10%; right: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: nhr-figure 2.3s ease-in-out infinite alternate-reverse;
}
.scn-national-hymn-rises .light-ray {
  position: absolute; top: 0; bottom: 0; width: 60%;
  background: linear-gradient(90deg, rgba(255,220,150,.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 40% 0%, 100% 100%, 60% 100%);
  animation: nhr-ray 6s ease-in-out infinite;
}
.scn-national-hymn-rises .light-ray.ray-2 {
  left: 40%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,220,150,.1) 100%);
  clip-path: polygon(60% 0%, 100% 0%, 40% 100%, 0% 100%);
  animation-duration: 8s;
  animation-delay: 1s;
}
.scn-national-hymn-rises .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(200,180,150,.05) 0%, transparent 50%);
  filter: blur(10px);
  animation: nhr-dust 10s ease-in-out infinite;
}
@keyframes nhr-flag {
  0% { transform: translateX(-50%) scaleX(0); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes nhr-figure {
  0% { transform: rotate(-3deg) translateY(0); }
  25% { transform: rotate(0deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(-1px); }
  75% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes nhr-ray {
  0% { opacity: .5; transform: translateX(-10%); }
  50% { opacity: 1; transform: translateX(0); }
  100% { opacity: .5; transform: translateX(10%); }
}
@keyframes nhr-dust {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.05); }
  100% { opacity: .4; transform: scale(0.95); }
}

/* scene 4: reckless-girl */
.scn-reckless-girl {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-reckless-girl .theater-curtains {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a1a1a 0%, transparent 15%, transparent 85%, #3a1a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-reckless-girl .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
}
.scn-reckless-girl .spotlight {
  position: absolute; top: 0; left: 40%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,150,.2) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 85% 100%, 15% 100%);
  animation: rlg-spotlight 8s ease-in-out infinite alternate;
}
.scn-reckless-girl .girl-running {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rlg-girl 0.8s steps(4) infinite;
}
.scn-reckless-girl .crowd-left {
  position: absolute; bottom: 10%; left: 5%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rlg-crowd 1.2s ease-in-out infinite alternate;
}
.scn-reckless-girl .crowd-right {
  position: absolute; bottom: 10%; right: 5%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rlg-crowd 1.4s ease-in-out infinite alternate-reverse;
}
.scn-reckless-girl .shadow-edge {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%);
  pointer-events: none;
}
@keyframes rlg-spotlight {
  0% { transform: translateX(-10%) skewY(2deg); opacity: .6; }
  50% { transform: translateX(5%) skewY(-3deg); opacity: 1; }
  100% { transform: translateX(-5%) skewY(0deg); opacity: .7; }
}
@keyframes rlg-girl {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-5deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(15px) rotate(5deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes rlg-crowd {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(2deg) translateY(0); }
}

/* === execution-plea-for-time (tense, dark) === */
.scn-execution-plea-for-time {
  background: linear-gradient(135deg, #0d1b2a 0%, #1b2838 40%, #2c3e4e 100%),
              radial-gradient(ellipse at 30% 20%, #3a5a7a 0%, transparent 70%);
}
.scn-execution-plea-for-time .cell-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a28 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-execution-plea-for-time .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-execution-plea-for-time .bars {
  position: absolute; left: 25%; top: 5%; width: 6px; height: 75%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  box-shadow: 18px 0 0 #4a3a2a, 36px 0 0 #5a4a3a, 54px 0 0 #4a3a2a;
  animation: bars-ept 3s ease-in-out infinite alternate;
}
.scn-execution-plea-for-time .figure {
  position: absolute; bottom: 24%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3040 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: figure-ept 2.5s ease-in-out infinite;
}
.scn-execution-plea-for-time .arms {
  position: absolute; bottom: 44%; left: 32%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #3a3040 0%, #1a1020 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: arms-ept 1.8s ease-in-out infinite alternate;
}
.scn-execution-plea-for-time .window {
  position: absolute; top: 12%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at center, #aad0ff 0%, #4060a0 70%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 20px 6px #6080c0, 0 0 40px 12px rgba(96,128,192,.3);
  animation: window-ept 4s ease-in-out infinite;
}
.scn-execution-plea-for-time .light-flicker {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(160,200,255,.2) 0%, transparent 70%);
  animation: flicker-ept 0.8s steps(3) infinite;
}
.scn-execution-plea-for-time .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%);
  animation: shadow-ept 2.5s ease-in-out infinite;
}
@keyframes bars-ept {
  0% { opacity: .7; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(2px); }
  100% { opacity: .6; transform: translateX(-1px); }
}
@keyframes figure-ept {
  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 arms-ept {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.2); }
  100% { transform: rotate(-5deg) scaleY(.9); }
}
@keyframes window-ept {
  0% { opacity: .6; box-shadow: 0 0 15px 4px #6080c0; }
  50% { opacity: 1; box-shadow: 0 0 35px 10px #80a0e0; }
  100% { opacity: .7; box-shadow: 0 0 20px 6px #4060a0; }
}
@keyframes flicker-ept {
  0% { opacity: .3; }
  33% { opacity: .6; }
  66% { opacity: .4; }
  100% { opacity: .5; }
}
@keyframes shadow-ept {
  0% { transform: scaleX(.8); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(.9); opacity: .4; }
}

/* === item-stool-thought (calm, dark) === */
.scn-item-stool-thought {
  background: linear-gradient(180deg, #0a1220 0%, #162030 40%, #0f1a28 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
}
.scn-item-stool-thought .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a1220 0%, #162030 50%, #0f1a28 100%);
}
.scn-item-stool-thought .stool {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,.5);
  animation: stool-ist 12s ease-in-out infinite alternate;
}
.scn-item-stool-thought .rope {
  position: absolute; top: 5%; left: 50%; width: 4px; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% / 10%;
  animation: rope-ist 8s ease-in-out infinite alternate;
}
.scn-item-stool-thought .figure-sitting {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 70% 30% 30%;
  transform-origin: bottom center;
  animation: figure-ist 6s ease-in-out infinite;
}
.scn-item-stool-thought .thought-ring {
  position: absolute; top: 15%; left: 55%; width: 40px; height: 40px;
  background: transparent;
  border: 2px solid rgba(200,220,255,.2);
  border-radius: 50%;
  animation: ring-ist 20s linear infinite;
}
.scn-item-stool-thought .thought-sparkle {
  position: absolute; top: 30%; left: 60%; width: 4px; height: 4px;
  background: #c0d0ff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,208,255,.6);
  animation: sparkle-ist 4s ease-in-out infinite;
}
.scn-item-stool-thought .ambient-glow {
  position: absolute; top: 20%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(ellipse, rgba(100,140,200,.08) 0%, transparent 70%);
  animation: glow-ist 15s ease-in-out infinite alternate;
}
@keyframes stool-ist {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(.5deg) translateY(1px); }
  100% { transform: translateX(-50%) rotate(-.5deg) translateY(-1px); }
}
@keyframes rope-ist {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes figure-ist {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ring-ist {
  0% { transform: rotate(0deg) scale(.8); opacity: .2; }
  50% { transform: rotate(180deg) scale(1.2); opacity: .4; }
  100% { transform: rotate(360deg) scale(.9); opacity: .1; }
}
@keyframes sparkle-ist {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  50% { transform: translateY(-12px) scale(1.5); opacity: 1; }
  100% { transform: translateY(0) scale(.8); opacity: 0; }
}
@keyframes glow-ist {
  0% { opacity: .3; transform: scale(.9); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .2; transform: scale(.95); }
}

/* === execution-statue-thought (warm, dark) === */
.scn-execution-statue-thought {
  background: linear-gradient(135deg, #1a0e0a 0%, #2a1610 40%, #1e0c06 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-execution-statue-thought .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1610 50%, #1e0c06 100%);
}
.scn-execution-statue-thought .head {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3a2010 0%, #1a0a04 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.5);
  animation: head-est 4s ease-in-out infinite;
}
.scn-execution-statue-thought .eyes {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 8px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffd080 0%, #ffa030 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffa030, 0 0 32px 8px rgba(255,160,48,.3);
  animation: eyes-est 3s ease-in-out infinite alternate;
}
.scn-execution-statue-thought .halo {
  position: absolute; top: 22%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,180,80,.12) 0%, transparent 70%);
  animation: halo-est 6s ease-in-out infinite;
}
.scn-execution-statue-thought .glow-burst {
  position: absolute; top: 18%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,200,120,.08) 0%, transparent 60%);
  animation: burst-est 5s ease-in-out infinite alternate;
}
.scn-execution-statue-thought .eye-light {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 4px;
  transform: translate(-50%, -50%);
  background: #ffe0a0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,224,160,.8);
  animation: eye-light-est 1.5s ease-in-out infinite;
}
@keyframes head-est {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(.98); }
}
@keyframes eyes-est {
  0% { box-shadow: 0 0 12px 2px #ffa030; opacity: .8; }
  50% { box-shadow: 0 0 28px 8px #ffc060; opacity: 1; }
  100% { box-shadow: 0 0 16px 4px #ffa030; opacity: .9; }
}
@keyframes halo-est {
  0% { transform: translateX(-50%) scale(.9); opacity: .3; }
  50% { transform: translateX(-50%) scale(1.2); opacity: .5; }
  100% { transform: translateX(-50%) scale(1); opacity: .2; }
}
@keyframes burst-est {
  0% { transform: translateX(-50%) scale(.8); opacity: .1; }
  50% { transform: translateX(-50%) scale(1.3); opacity: .3; }
  100% { transform: translateX(-50%) scale(.9); opacity: .15; }
}
@keyframes eye-light-est {
  0% { opacity: .5; transform: translate(-50%, -50%) scale(.8); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.3); }
  100% { opacity: .6; transform: translate(-50%, -50%) scale(.9); }
}

/* === execution-experiment-steps (warm, dark) === */
.scn-execution-experiment-steps {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1610 40%, #1e0c06 100%),
              radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-execution-experiment-steps .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1610 60%, #1e0c06 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.4);
}
.scn-execution-experiment-steps .central-figure {
  position: absolute; bottom: 25%; left: 50%; width: 36px; height: 58px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #4a3020 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.5);
  animation: central-ees 3s ease-in-out infinite;
}
.scn-execution-experiment-steps .aura {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(255,180,80,.15) 0%, transparent 70%);
  animation: aura-ees 5s ease-in-out infinite alternate;
}
.scn-execution-experiment-steps .follower-1 {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: follower1-ees 6s ease-in-out infinite;
}
.scn-execution-experiment-steps .follower-2 {
  position: absolute; bottom: 28%; left: 62%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: follower2-ees 7s ease-in-out infinite;
}
.scn-execution-experiment-steps .follower-3 {
  position: absolute; bottom: 20%; left: 70%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: follower3-ees 8s ease-in-out infinite;
}
.scn-execution-experiment-steps .light-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-conic-gradient(from 0deg, rgba(255,200,120,.03) 0deg 5deg, transparent 5deg 20deg);
  animation: rays-ees 20s linear infinite;
}
.scn-execution-experiment-steps .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0c06 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
@keyframes central-ees {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { transform: translateX(-50%) scale(1.04) rotate(1deg); }
  100% { transform: translateX(-50%) scale(.98) rotate(-1deg); }
}
@keyframes aura-ees {
  0% { transform: translate(-50%, -50%) scale(.85); opacity: .3; }
  50% { transform: translate(-50%, -50%) scale(1.2); opacity: .5; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: .4; }
}
@keyframes follower1-ees {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes follower2-ees {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes follower3-ees {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rays-ees {
  0% { transform: rotate(0deg) scale(1); opacity: .1; }
  50% { transform: rotate(180deg) scale(1.2); opacity: .2; }
  100% { transform: rotate(360deg) scale(1); opacity: .1; }
}

/* living-bombs-lurking – tense night interior */
.scn-living-bombs-lurking {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 50%, #16202a 100%),
              radial-gradient(ellipse at 30% 80%, #1a2a3a 0%, transparent 60%);
}
.scn-living-bombs-lurking .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1b2838 0%, #0d1b2a 100%);
  animation: lb-room 8s ease-in-out infinite alternate;
}
.scn-living-bombs-lurking .veranda-arch {
  position: absolute; bottom: 25%; left: 50%; width: 55%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, transparent 60%, #2a3a4a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
  animation: lb-arch 12s ease-in-out infinite;
}
.scn-living-bombs-lurking .garden-night {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(circle at 20% 50%, #0a1a2a 0%, #050d1a 100%);
  opacity: 0.8;
  animation: lb-garden 20s ease-in-out infinite alternate;
}
.scn-living-bombs-lurking .chair-left {
  position: absolute; bottom: 22%; left: 22%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lb-chair 6s ease-in-out infinite;
}
.scn-living-bombs-lurking .doctor-silhouette {
  position: absolute; bottom: 24%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a202a 0%, #0a101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lb-doctor 4s ease-in-out infinite;
}
.scn-living-bombs-lurking .staircase-shadow {
  position: absolute; bottom: 12%; right: 25%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 0 0 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: lb-stairs 10s ease-in-out infinite alternate;
}
.scn-living-bombs-lurking .bomb-package {
  position: absolute; bottom: 18%; right: 30%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #7a4a3a 0%, #5a3020 100%);
  border-radius: 10%;
  box-shadow: 0 0 8px 2px rgba(200, 120, 80, 0.3);
  animation: lb-bomb 3s ease-in-out infinite;
}
.scn-living-bombs-lurking .flicker-light {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 35% 60%, rgba(200, 180, 140, 0.15) 0%, transparent 60%);
  pointer-events: none;
  animation: lb-flicker 2s steps(4) infinite;
}
@keyframes lb-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lb-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98) translateY(2px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes lb-garden { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes lb-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes lb-doctor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lb-stairs { 0% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } 50% { clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } }
@keyframes lb-bomb { 0% { box-shadow: 0 0 6px 1px rgba(200,120,80,0.3); } 50% { box-shadow: 0 0 12px 4px rgba(200,120,80,0.5); } 100% { box-shadow: 0 0 6px 1px rgba(200,120,80,0.3); } }
@keyframes lb-flicker { 0%,100% { opacity: 0.3; } 25% { opacity: 0.5; } 50% { opacity: 0.2; } 75% { opacity: 0.4; } }

/* upstairs-conference – dim amber interior */
.scn-upstairs-conference {
  background: linear-gradient(180deg, #2a1f18 0%, #3a2a20 50%, #2a1f18 100%),
              radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-upstairs-conference .up-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1f18 100%);
  animation: uc-wall 10s ease-in-out infinite alternate;
}
.scn-upstairs-conference .up-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1f18 0%, #1a120c 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: uc-floor 15s ease-in-out infinite;
}
.scn-upstairs-conference .door-left {
  position: absolute; bottom: 25%; left: 12%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3525 0%, #2a1f14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: uc-door 8s ease-in-out infinite alternate;
}
.scn-upstairs-conference .matrena-silhouette {
  position: absolute; bottom: 30%; left: 42%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 70% 60% 30% 30%;
  transform-origin: bottom center;
  animation: uc-matrena 5s ease-in-out infinite;
}
.scn-upstairs-conference .watchdog-shadow {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 12px;
  background: #1a1410;
  border-radius: 50% 50% 30% 30%;
  animation: uc-dog 7s ease-in-out infinite;
}
.scn-upstairs-conference .lamp-glow {
  position: absolute; top: 20%; right: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d4a050 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200, 150, 80, 0.4);
  animation: uc-lamp 4s ease-in-out infinite alternate;
}
.scn-upstairs-conference .creaking-board {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 2px;
  animation: uc-creak 8s ease-in-out infinite;
}
@keyframes uc-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes uc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes uc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes uc-matrena { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes uc-dog { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes uc-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(200,150,80,0.3); } 50% { opacity: 0.9; box-shadow: 0 0 25px 10px rgba(200,150,80,0.5); } 100% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(200,150,80,0.3); } }
@keyframes uc-creak { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }

/* final-explosion – night veranda with moving shadow */
.scn-final-explosion {
  background: linear-gradient(180deg, #0f1a2b 0%, #1b2638 50%, #0f1a2b 100%),
              radial-gradient(ellipse at 70% 90%, #2a3a4a 0%, transparent 60%);
}
.scn-final-explosion .veranda-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1b2638 0%, #0f1a2b 100%);
  animation: fe-veranda 12s ease-in-out infinite alternate;
}
.scn-final-explosion .chair-moved {
  position: absolute; bottom: 22%; left: 25%; width: 36px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: fe-chair 6s ease-in-out infinite;
}
.scn-final-explosion .shadow-figure {
  position: absolute; bottom: 18%; left: 32%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-shadow 4s ease-in-out infinite;
}
.scn-final-explosion .staircase-big {
  position: absolute; bottom: 5%; left: 60%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 0 10% 10%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: fe-stair 10s ease-in-out infinite alternate;
}
.scn-final-explosion .group-on-stairs {
  position: absolute; bottom: 10%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 40%, #0a0a0a 30%, transparent 50%),
              radial-gradient(circle at 70% 60%, #0a0a0a 20%, transparent 40%);
  background-size: 100% 100%, 100% 100%;
  animation: fe-group 7s ease-in-out infinite;
}
.scn-final-explosion .explosion-flash {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 65% 50%, rgba(255, 220, 150, 0.3) 0%, transparent 40%, transparent 100%);
  pointer-events: none;
  animation: fe-flash 3s steps(6) infinite;
}
.scn-final-explosion .debris-falling {
  position: absolute; top: -10%; left: 20%; width: 8px; height: 8px;
  background: #3a2a1a;
  border-radius: 2px;
  animation: fe-debris 5s linear infinite;
  box-shadow: 10px 20px 0 0 #2a1a0a, 30px 40px 0 0 #3a2a1a, 50px 10px 0 0 #1a120a;
}
@keyframes fe-veranda { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fe-chair { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg); } }
@keyframes fe-shadow { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(12px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes fe-stair { 0% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } 50% { clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); } }
@keyframes fe-group { 0% { opacity: 0.8; } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: 0.8; } }
@keyframes fe-flash { 0%,100% { opacity: 0; } 16% { opacity: 0.3; } 33% { opacity: 0.8; } 50% { opacity: 0.1; } 66% { opacity: 0.6; } 83% { opacity: 0.2; } }
@keyframes fe-debris { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(20px) rotate(180deg); } 100% { transform: translateY(100px) rotate(360deg); } }

/* after-explosion – dawn ruin with muted warm tones */
.scn-after-explosion {
  background: linear-gradient(180deg, #7a7050 0%, #8a7a5a 50%, #6a5a40 100%),
              radial-gradient(ellipse at 50% 20%, #9a8a6a 0%, transparent 60%);
}
.scn-after-explosion .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a40 100%);
  opacity: 0.7;
  animation: ae-sky 20s ease-in-out infinite alternate;
}
.scn-after-explosion .ruin-wall-left {
  position: absolute; bottom: 5%; left: 5%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%);
  border-radius: 0 20% 20% 0 / 0 30% 20% 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
  animation: ae-ruin 15s ease-in-out infinite;
}
.scn-after-explosion .ruin-wall-right {
  position: absolute; bottom: 5%; right: 5%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 20%;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
  animation: ae-ruin 15s ease-in-out infinite reverse;
}
.scn-after-explosion .smoke-cloud {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 40px;
  background: rgba(160, 140, 110, 0.4);
  filter: blur(12px);
  border-radius: 50%;
  animation: ae-smoke 25s linear infinite;
}
.scn-after-explosion .rubble-pile {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%;
  background: 
    radial-gradient(circle at 20% 30%, #4a3a2a 10px, transparent 10px),
    radial-gradient(circle at 60% 70%, #3a2a1a 12px, transparent 12px),
    radial-gradient(circle at 80% 40%, #5a4a3a 8px, transparent 8px);
  animation: ae-rubble 8s ease-in-out infinite alternate;
}
.scn-after-explosion .stretcher-bearer {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ae-stretch 6s ease-in-out infinite;
}
.scn-after-explosion .survivor-silhouette {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ae-survive 8s ease-in-out infinite;
}
@keyframes ae-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }
@keyframes ae-ruin { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes ae-smoke { 0% { transform: translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateX(30px) scale(1.1); opacity: 0.2; } 100% { transform: translateX(0) scale(1); opacity: 0.5; } }
@keyframes ae-rubble { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ae-stretch { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ae-survive { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg); } }

.scn-huge-grave-snow { background: linear-gradient(180deg, #b0c8d8 0%, #e0f0f8 50%, #c8d8e0 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-huge-grave-snow .sky-snow { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d0e0e8 0%, transparent 100%); animation: skhg-bright 12s ease-in-out infinite alternate; }
.scn-huge-grave-snow .grave-pit { position: absolute; bottom: 18%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, #020a10 0%, #0a1820 50%, #121c24 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.8); animation: skhg-deep 8s ease-in-out infinite; }
.scn-huge-grave-snow .snow-mound { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #e8f4f8 0%, #b0c8d8 100%); border-radius: 80% 80% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(80,120,140,0.4); animation: skhg-drift 20s ease-in-out infinite alternate; }
.scn-huge-grave-snow .van { position: absolute; bottom: 24%; left: 12%; width: 18%; height: 14%; background: linear-gradient(180deg, #1a2428 0%, #0a1218 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; box-shadow: 4px 8px 12px rgba(0,0,0,0.5); transform: rotate(-2deg); }
.scn-huge-grave-snow .corpse-figure { position: absolute; bottom: 26%; left: 18%; width: 4%; height: 8%; background: linear-gradient(180deg, #2a3a3a 0%, #0a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: skhg-tilt 4s ease-in-out infinite; }
.scn-huge-grave-snow .dark-cypress { position: absolute; bottom: 30%; right: 8%; width: 5%; height: 50%; background: linear-gradient(180deg, #1a2e24 0%, #0a1612 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; box-shadow: -6px 0 12px rgba(0,0,0,0.3); animation: skhg-sway 15s ease-in-out infinite; }
.scn-huge-grave-snow .snow-fence { position: absolute; bottom: 16%; left: 0; right: 0; height: 2%; background: repeating-linear-gradient(90deg, #3a4a4a 0px, #3a4a4a 4px, transparent 4px, transparent 20px); opacity: 0.7; animation: skhg-drift 25s ease-in-out infinite alternate; }
.scn-huge-grave-snow .snow-particle { position: absolute; top: 5%; left: 20%; width: 4px; height: 4px; background: #ffffff; border-radius: 50%; box-shadow: 120px 40px 0 #ffffff, 240px 80px 0 #ffffff, 80px 160px 0 #ffffff, 300px 200px 0 #ffffff; animation: skhg-fall 12s linear infinite; }
@keyframes skhg-bright { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes skhg-deep { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes skhg-drift { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(-4px); } }
@keyframes skhg-tilt { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(15deg); } }
@keyframes skhg-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes skhg-fall { 0% { transform: translateY(-10vh) rotate(0deg); opacity: 0.9; } 50% { transform: translateY(50vh) rotate(180deg); opacity: 0.5; } 100% { transform: translateY(110vh) rotate(360deg); opacity: 0; } }

.scn-fourteen-wounds { background: linear-gradient(180deg, #d2b48c 0%, #a0522d 50%, #5c3a21 100%), radial-gradient(circle at 50% 0%, #fff8dc 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-fourteen-wounds .sun-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8a6040 0%, #4a3020 100%); border-radius: 40% 60% 0 0 / 20% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.6); }
.scn-fourteen-wounds .avenger { position: absolute; bottom: 12%; left: 42%; width: 14%; height: 24%; background: linear-gradient(135deg, #2a1a10 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: skfw-tremble 3s ease-in-out infinite; }
.scn-fourteen-wounds .body { position: absolute; bottom: 10%; left: 54%; width: 18%; height: 22%; background: linear-gradient(180deg, #4a3020 0%, #1a1008 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform: rotate(-8deg); box-shadow: inset 4px 4px 12px rgba(0,0,0,0.8); }
.scn-fourteen-wounds .gold-chain { position: absolute; bottom: 18%; left: 58%; width: 10%; height: 2%; background: linear-gradient(90deg, #d4af37 0%, #ffd700 30%, #b8860b 70%, #d4af37 100%); border-radius: 20% / 50%; box-shadow: 0 0 8px rgba(212,175,55,0.5); animation: skfw-glow 4s ease-in-out infinite alternate; }
.scn-fourteen-wounds .mother-portrait { position: absolute; bottom: 28%; left: 50%; width: 8%; height: 10%; background: radial-gradient(circle at 50% 50%, #fff8dc 0%, #d2b48c 50%, transparent 70%); border-radius: 20%; opacity: 0.6; animation: skfw-appear 6s ease-in-out infinite; }
.scn-fourteen-wounds .sun-beam { position: absolute; top: 0; left: 35%; width: 30%; bottom: 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%); transform: skewX(-10deg); animation: skfw-sweep 15s ease-in-out infinite alternate; }
.scn-fourteen-wounds .dust-mote { position: absolute; top: 20%; left: 50%; width: 6px; height: 6px; background: #ffffff; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.6); animation: skfw-float 8s ease-in-out infinite; }
@keyframes skfw-tremble { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes skfw-glow { 0% { opacity: 0.4; box-shadow: 0 0 4px rgba(212,175,55,0.3); } 50% { opacity: 1; box-shadow: 0 0 16px rgba(212,175,55,0.8); } 100% { opacity: 0.6; box-shadow: 0 0 8px rgba(212,175,55,0.4); } }
@keyframes skfw-appear { 0% { transform: scale(0.9); opacity: 0.3; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.5; } }
@keyframes skfw-sweep { 0% { transform: translateX(-10%) skewX(-10deg); opacity: 0.4; } 50% { transform: translateX(10%) skewX(-5deg); opacity: 0.8; } 100% { transform: translateX(-5%) skewX(-15deg); opacity: 0.5; } }
@keyframes skfw-float { 0% { transform: translateY(0) translateX(0); opacity: 0.2; } 50% { transform: translateY(40px) translateX(20px); opacity: 1; } 100% { transform: translateY(80px) translateX(-10px); opacity: 0; } }

.scn-i-was-doomed { background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 30%, #1a1a1a 100%), radial-gradient(circle at 50% 0%, #ffffe0 5%, #2a2a2a 80%); position: relative; overflow: hidden; }
.scn-i-was-doomed .prison-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.8); }
.scn-i-was-doomed .lamp { position: absolute; top: 4%; left: 50%; width: 12%; height: 14%; transform: translateX(-50%); background: radial-gradient(circle at 50% 80%, #ffffe0 0%, #d4c8a0 40%, #8a7a5a 70%, transparent 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 60px 20px rgba(255,255,224,0.3); animation: skid-flicker 4s ease-in-out infinite alternate; }
.scn-i-was-doomed .doomed-man { position: absolute; bottom: 12%; left: 28%; width: 16%; height: 32%; background: linear-gradient(135deg, #1a120a 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,0.8); animation: skid-breathe 5s ease-in-out infinite; }
.scn-i-was-doomed .interrogator { position: absolute; bottom: 12%; right: 15%; width: 22%; height: 45%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: -10px 0 30px rgba(0,0,0,0.9); transform: rotate(5deg); animation: skid-stand 8s ease-in-out infinite; }
.scn-i-was-doomed .helper-shadow { position: absolute; bottom: 15%; right: 8%; width: 18%; height: 35%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; filter: blur(8px); animation: skid-creep 12s ease-in-out infinite; }
.scn-i-was-doomed .table { position: absolute; bottom: 12%; left: 20%; right: 20%; height: 6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); }
.scn-i-was-doomed .bars { position: absolute; left: 6%; top: 0; bottom: 0; width: 4%; background: repeating-linear-gradient(180deg, #4a4a4a 0px, #4a4a4a 8px, transparent 8px, transparent 24px); box-shadow: 4px 0 12px rgba(0,0,0,0.5); opacity: 0.8; }
@keyframes skid-flicker { 0% { opacity: 0.85; transform: translateX(-50%) scaleY(1); } 25% { opacity: 1; transform: translateX(-50%) scaleY(1.02); } 75% { opacity: 0.9; transform: translateX(-50%) scaleY(0.98); } 100% { opacity: 0.95; transform: translateX(-50%) scaleY(1); } }
@keyframes skid-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes skid-stand { 0% { transform: rotate(5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(5deg); } }
@keyframes skid-creep { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-10px) scale(1.05); opacity: 0.9; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }

.scn-you-will-be-hanged { background: linear-gradient(180deg, #3a4a3a 0%, #5a6a5a 40%, #2a3a2a 100%), radial-gradient(circle at 50% 0%, #fffff0 5%, #3a4a3a 80%); position: relative; overflow: hidden; }
.scn-you-will-be-hanged .station-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #4a5a4a 0%, #6a7a6a 50%, #4a5a4a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.5); }
.scn-you-will-be-hanged .chief { position: absolute; bottom: 8%; left: 65%; width: 22%; height: 55%; background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(-3deg); box-shadow: -10px 0 30px rgba(0,0,0,0.8); animation: skyh-looms 10s ease-in-out infinite; }
.scn-you-will-be-hanged .rouletabille { position: absolute; bottom: 10%; left: 22%; width: 14%; height: 22%; background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 10px 0 20px rgba(0,0,0,0.6); animation: skyh-defy 6s ease-in-out infinite; }
.scn-you-will-be-hanged .table { position: absolute; bottom: 10%; left: 18%; right: 18%; height: 6%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); }
.scn-you-will-be-hanged .bet-purse { position: absolute; bottom: 16%; left: 46%; width: 6%; height: 5%; background: radial-gradient(circle at 50% 50%, #8a7a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: skyh-hover 2s ease-in-out infinite alternate; }
.scn-you-will-be-hanged .noose { position: absolute; top: 0; left: 50%; width: 4%; bottom: 20%; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 50% 50% / 10% 10% 80% 80%; box-shadow: 0 20px 40px rgba(0,0,0,0.4); transform-origin: top center; animation: skyh-swing 5s ease-in-out infinite; }
.scn-you-will-be-hanged .second-hand { position: absolute; top: 6%; right: 12%; width: 4%; height: 20%; background: repeating-linear-gradient(180deg, #1a1a1a 0px, #1a1a1a 4px, transparent 4px, transparent 8px); border-radius: 20%; transform-origin: bottom center; animation: skyh-tick 60s steps(60) infinite; }
@keyframes skyh-looms { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes skyh-defy { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes skyh-hover { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes skyh-swing { 0% { transform: translateX(-50%) rotate(-8deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(8deg); } 100% { transform: translateX(-50%) rotate(-8deg); } }
@keyframes skyh-tick { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* CSS for not-strong-enough — Confrontation close-up, gaslit */
.scn-not-strong-enough {
  background: linear-gradient(180deg, #0f0c12 0%, #1a1318 40%, #0a080c 100%), radial-gradient(ellipse at 50% 60%, #1c1610 0%, transparent 60%);
}
.scn-not-strong-enough .bg-shadows {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a080c 0%, #12101a 50%, #0a080c 100%); opacity: 0.8;
}
.scn-not-strong-enough .gaslight-source {
  position: absolute; bottom: 20%; left: 50%; width: 30%; height: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse, #d4a373 0%, #b08040 30%, #3a2a1a 70%, transparent 100%);
  filter: blur(8px); animation: nse-gas-flicker 4s ease-in-out infinite alternate; opacity: 0.9;
}
.scn-not-strong-enough .girl-silhouette {
  position: absolute; bottom: 20%; left: 28%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #1a141e 0%, #0e0a10 100%);
  border-radius: 40% 60% 50% 50% / 70% 80% 40% 40%;
  transform: rotate(4deg); animation: nse-girl-bob 3s ease-in-out infinite; z-index: 2;
}
.scn-not-strong-enough .chief-silhouette {
  position: absolute; bottom: 20%; right: 22%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #1c161a 0%, #0a080c 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-2deg); animation: nse-chief-loom 5s ease-in-out infinite; z-index: 2;
}
.scn-not-strong-enough .floor-plane {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a08 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0; z-index: 1;
}
.scn-not-strong-enough .rim-light {
  position: absolute; bottom: 35%; width: 4%; height: 40%; background: #c9955e;
  filter: blur(4px); opacity: 0.6; z-index: 3;
}
.scn-not-strong-enough .rim-left { left: 32%; animation: nse-rim-pulse 4s ease-in-out infinite; }
.scn-not-strong-enough .rim-right { right: 30%; animation: nse-rim-pulse 4s ease-in-out infinite 2s; }
@keyframes nse-gas-flicker {
  0% { opacity: 0.8; filter: blur(8px) brightness(1); }
  50% { opacity: 1; filter: blur(10px) brightness(1.2); }
  100% { opacity: 0.7; filter: blur(6px) brightness(0.9); }
}
@keyframes nse-girl-bob {
  0% { transform: rotate(4deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
  100% { transform: rotate(4deg) translateY(0); }
}
@keyframes nse-chief-loom {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.03); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes nse-rim-pulse {
  0% { opacity: 0.4; filter: blur(4px); }
  50% { opacity: 0.8; filter: blur(6px); }
  100% { opacity: 0.5; filter: blur(3px); }
}

/* CSS for katharina-errands — Street scene, spy and quarry */
.scn-katharina-errands {
  background: linear-gradient(180deg, #0a0e14 0%, #12161c 40%, #181c22 100%), radial-gradient(ellipse at 70% 10%, #2a2a1a 0%, transparent 60%);
}
.scn-katharina-errands .bg-night {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c101a 0%, #141a24 40%, #1a202e 100%);
}
.scn-katharina-errands .cobble-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1c 100%);
  border-radius: 20% 60% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); overflow: hidden;
}
.scn-katharina-errands .street-fog {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 80%, rgba(180,160,140,0.2) 0%, transparent 60%);
  filter: blur(12px); animation: ke-fog 20s linear infinite alternate;
}
.scn-katharina-errands .lamp-post {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #1a1a1c 0%, #0e0e10 100%);
  border-radius: 10%; z-index: 3;
}
.scn-katharina-errands .lamp-glow {
  position: absolute; bottom: 30%; left: 26%; width: 12%; height: 15%;
  background: radial-gradient(circle, #d4a373 0%, #b08040 30%, transparent 70%);
  filter: blur(10px); animation: ke-lamp 3s ease-in-out infinite alternate; z-index: 4;
}
.scn-katharina-errands .spy-figure {
  position: absolute; bottom: 25%; right: 15%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #121016 0%, #08060a 100%);
  border-radius: 40% 60% 50% 50% / 60% 70% 40% 40%;
  transform: scaleX(-1) rotate(2deg); animation: ke-spy 6s ease-in-out infinite; z-index: 5;
}
.scn-katharina-errands .katharina-figure {
  position: absolute; bottom: 30%; left: 20%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #1a161c 0%, #0e0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ke-katharina 8s ease-in-out infinite; z-index: 3;
}
.scn-katharina-errands .distant-carriage {
  position: absolute; bottom: 32%; left: 60%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #1c1c20 0%, #0e0e10 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%;
  animation: ke-carriage 12s linear infinite; z-index: 2; opacity: 0.7;
}
@keyframes ke-fog {
  0% { transform: translateX(-5%) scale(1); opacity: 0.8; }
  50% { transform: translateX(10%) scale(1.05); opacity: 1; }
  100% { transform: translateX(20%) scale(1); opacity: 0.9; }
}
@keyframes ke-lamp {
  0% { opacity: 0.8; filter: blur(8px); }
  50% { opacity: 1; filter: blur(14px); }
  100% { opacity: 0.9; filter: blur(10px); }
}
@keyframes ke-spy {
  0% { transform: scaleX(-1) rotate(2deg) translateY(0); }
  50% { transform: scaleX(-1) rotate(-1deg) translateY(-2px); }
  100% { transform: scaleX(-1) rotate(2deg) translateY(0); }
}
@keyframes ke-katharina {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(4px) translateY(-1px); }
  50% { transform: translateX(8px) translateY(0); }
  75% { transform: translateX(4px) translateY(1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes ke-carriage {
  0% { transform: translateX(0); opacity: 0.5; }
  25% { transform: translateX(-10px); opacity: 0.7; }
  50% { transform: translateX(-20px); opacity: 0.6; }
  100% { transform: translateX(0); opacity: 0.5; }
}

/* CSS for still-some-abomination — Interior shaft, bowed figure */
.scn-still-some-abomination {
  background: linear-gradient(90deg, #0e0a08 0%, #1a1210 50%, #0e0a08 100%), radial-gradient(ellipse at 50% 30%, #2a1a12 0%, transparent 70%);
}
.scn-still-some-abomination .bg-paneled-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #0e0a08 0px, #1a1210 4px, #0e0a08 8px, #1a1210 12px);
  opacity: 0.3; animation: sa-wall 20s linear infinite;
}
.scn-still-some-abomination .tall-window {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0e0e1a 100%);
  border-radius: 2% 2% 50% 50% / 10% 10% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: sa-window 8s ease-in-out infinite alternate;
}
.scn-still-some-abomination .stair-rail {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(150deg, transparent 40%, #1a1210 42%, #0e0a08 45%, transparent 47%);
  animation: sa-rail 12s ease-in-out infinite; z-index: 2;
}
.scn-still-some-abomination .gaslight-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(180,150,120,0.15) 0%, transparent 60%);
  filter: blur(8px); transform: skewX(-5deg); animation: sa-beam 10s ease-in-out infinite alternate; z-index: 1;
}
.scn-still-some-abomination .bowed-figure {
  position: absolute; bottom: 15%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(-5deg) scaleX(0.8); animation: sa-bow 4s ease-in-out infinite; z-index: 5;
}
.scn-still-some-abomination .annouchka-figure {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1c1620 0%, #0e0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg); animation: sa-annouchka 6s ease-in-out infinite; z-index: 4;
}
.scn-still-some-abomination .distorted-shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 80%);
  filter: blur(6px); transform: skewX(-10deg); animation: sa-shadow 12s ease-in-out infinite; z-index: 0;
}
@keyframes sa-wall {
  0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; }
}
@keyframes sa-window {
  0% { filter: brightness(0.8) blur(0px); } 50% { filter: brightness(1.2) blur(2px); } 100% { filter: brightness(0.9) blur(0px); }
}
@keyframes sa-rail {
  0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-4px) skewX(1deg); } 100% { transform: translateX(0) skewX(0deg); }
}
@keyframes sa-beam {
  0% { transform: skewX(-5deg) translateX(-2%); opacity: 0.6; }
  50% { transform: skewX(3deg) translateX(3%); opacity: 0.9; }
  100% { transform: skewX(-4deg) translateX(-1%); opacity: 0.7; }
}
@keyframes sa-bow {
  0% { transform: rotate(-5deg) scaleX(0.8) translateY(0); }
  30% { transform: rotate(-10deg) scaleX(0.75) translateY(2px); }
  60% { transform: rotate(2deg) scaleX(0.85) translateY(-1px); }
  100% { transform: rotate(-5deg) scaleX(0.8) translateY(0); }
}
@keyframes sa-annouchka {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(3px); }
  100% { transform: rotate(3deg) translateX(0); }
}
@keyframes sa-shadow {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.6; }
  50% { transform: skewX(-5deg) scaleY(1.1); opacity: 0.8; }
  100% { transform: skewX(-10deg) scaleY(1); opacity: 0.6; }
}

/* CSS for service-of-tsar — Doorway, power dynamics */
.scn-service-of-tsar {
  background: linear-gradient(180deg, #120810 0%, #1a0c14 40%, #0e060a 100%), radial-gradient(ellipse at 80% 50%, #2a1416 0%, transparent 60%);
}
.scn-service-of-tsar .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0e060a 0%, #1a0e12 20%, #120810 80%, #0a0406 100%);
  opacity: 0.9;
}
.scn-service-of-tsar .door-frame {
  position: absolute; top: 0; left: 65%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #1a1216 0%, #0e080a 100%);
  box-shadow: -10px 0 20px rgba(0,0,0,0.6); z-index: 3;
}
.scn-service-of-tsar .open-doorway {
  position: absolute; top: 5%; left: 70%; width: 20%; height: 95%;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a0e12 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: st-doorway 8s ease-in-out infinite alternate;
}
.scn-service-of-tsar .guard-figure {
  position: absolute; bottom: 15%; left: 72%; width: 16%; height: 55%;
  background: linear-gradient(180deg, #0e0a0c 0%, #060406 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8); animation: st-guard 5s ease-in-out infinite; z-index: 4;
}
.scn-service-of-tsar .trembling-men {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a0e12 0%, #0e060a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: scaleX(0.7); animation: st-men 3s ease-in-out infinite; z-index: 2;
}
.scn-service-of-tsar .low-table {
  position: absolute; bottom: 5%; left: 15%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #1a1216 0%, #0e080a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5); z-index: 1;
}
.scn-service-of-tsar .table-candle {
  position: absolute; bottom: 18%; left: 30%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #c9955e 0%, #b08040 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  filter: blur(2px); animation: st-candle 2s ease-in-out infinite alternate; z-index: 5;
}
.scn-service-of-tsar .candle-glow {
  position: absolute; bottom: 15%; left: 22%; width: 18%; height: 25%;
  background: radial-gradient(circle, #d4a373 0%, #b08040 20%, transparent 60%);
  filter: blur(12px); animation: st-glow 3s ease-in-out infinite alternate; z-index: 4; pointer-events: none;
}
@keyframes st-doorway {
  0% { filter: brightness(0.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); }
}
@keyframes st-guard {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes st-men {
  0% { transform: scaleX(0.7) translateY(0) rotate(0deg); }
  25% { transform: scaleX(0.72) translateY(1px) rotate(2deg); }
  50% { transform: scaleX(0.7) translateY(0) rotate(-1deg); }
  75% { transform: scaleX(0.68) translateY(-1px) rotate(1deg); }
  100% { transform: scaleX(0.7) translateY(0) rotate(0deg); }
}
@keyframes st-candle {
  0% { filter: blur(2px) brightness(0.9); transform: scaleY(1) rotate(-1deg); }
  50% { filter: blur(4px) brightness(1.2); transform: scaleY(1.1) rotate(2deg); }
  100% { filter: blur(2px) brightness(1); transform: scaleY(0.95) rotate(0deg); }
}
@keyframes st-glow {
  0% { opacity: 0.6; filter: blur(10px); }
  50% { opacity: 0.9; filter: blur(16px); }
  100% { opacity: 0.7; filter: blur(12px); }
}

.scn-ermolai-brings-champagne { background: radial-gradient(circle at 30% 70%, #e8c39e 0%, #7a3d1c 60%, #2a150a 100%), repeating-linear-gradient(45deg, #2a150a 0px, #2a150a 2px, #3a2010 2px, #3a2010 4px); }
.scn-ermolai-brings-champagne .bg-warm { position:absolute; inset:0; background: radial-gradient(circle at 20% 80%, rgba(232,195,158,.3) 0%, transparent 70%); animation: ebc-pulse 9s ease-in-out infinite alternate; }
.scn-ermolai-brings-champagne .piano { position:absolute; bottom:10%; left:5%; width:55%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 4% 30% 8% 4%; box-shadow: inset 0 0 30px #000; animation: ebc-lid 15s ease-in-out infinite alternate; }
.scn-ermolai-brings-champagne .champagne { position:absolute; bottom:20%; left:55%; width:6%; height:20%; background: linear-gradient(180deg, #3a6a3a 0%, #5a7a3a 20%, #c8b07a 30%, #c8b07a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: ebc-pop 4s ease-in-out infinite; }
.scn-ermolai-brings-champagne .figure-ermolai { position:absolute; bottom:15%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ebc-enter 6s ease-in-out infinite; }
.scn-ermolai-brings-champagne .figure-thaddeus { position:absolute; bottom:15%; left:10%; width:14%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 20% 20% / 60% 50% 40% 40%; animation: ebc-play 2s ease-in-out infinite alternate; }
.scn-ermolai-brings-champagne .figure-rouletabille { position:absolute; bottom:15%; right:10%; width:10%; height:28%; background: linear-gradient(180deg, #2a201a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom right; animation: ebc-watch 3s ease-in-out infinite; }
.scn-ermolai-brings-champagne .cuff-notes { position:absolute; bottom:25%; right:12%; width:6%; height:4%; background: #e8dcc8; border-radius: 10%; transform: rotate(-15deg); animation: ebc-write 1.5s steps(2) infinite; }
.scn-ermolai-brings-champagne .shadow-cross { position:absolute; bottom:10%; left:30%; width:40%; height:50%; background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.4) 35%, transparent 35%, transparent 65%, rgba(0,0,0,.3) 65%, rgba(0,0,0,.3) 70%, transparent 70%); animation: ebc-flicker 8s ease-in-out infinite alternate; }
@keyframes ebc-pulse { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ebc-lid { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes ebc-pop { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-5%) scaleY(1.02) } 50% { transform: translateY(2%) scaleY(.95) } 75% { transform: translateY(-2%) scaleY(1.01) } }
@keyframes ebc-enter { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(10%) rotate(2deg) } 60% { transform: translateX(-5%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ebc-play { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2%) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ebc-watch { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-5deg) } }
@keyframes ebc-write { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ebc-flicker { 0%,100% { opacity:.6 } 50% { opacity:.9 } }

.scn-second-attempt-sleigh-bomb { background: linear-gradient(180deg, #0a111a 0%, #1a2b3c 30%, #4a5a6a 100%), radial-gradient(circle at 50% 30%, #fffbe6 0%, #e67a22 20%, transparent 60%); }
.scn-second-attempt-sleigh-bomb .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(10,17,26,.8) 100%); animation: sas-darken 12s ease-in-out infinite alternate; }
.scn-second-attempt-sleigh-bomb .snow-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a8a 0%, #dce0e6 100%); border-radius: 80% 70% 0 0 / 100% 100% 0 0; }
.scn-second-attempt-sleigh-bomb .explosion-flash { position:absolute; top:20%; left:50%; width:30%; height:30%; transform:translate(-50%, -50%); background: radial-gradient(circle, #fffbe6 0%, #e67a22 30%, transparent 70%); border-radius:50%; animation: sas-flash 2s ease-in-out infinite alternate; }
.scn-second-attempt-sleigh-bomb .sleigh-wreck { position:absolute; bottom:20%; left:30%; width:25%; height:15%; background: linear-gradient(135deg, #2a1a10 0%, #0a0500 100%); clip-path: polygon(0% 0%, 80% 20%, 100% 100%, 20% 80%); animation: sas-break 1.5s ease-in-out infinite alternate; }
.scn-second-attempt-sleigh-bomb .horse-fallen { position:absolute; bottom:15%; left:50%; width:30%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 20% 10% 40% / 60% 30% 40% 50%; transform: rotate(-20deg); animation: sas-collapse 2s ease-in-out infinite; }
.scn-second-attempt-sleigh-bomb .figure-thrown { position:absolute; bottom:25%; left:20%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(45deg); animation: sas-throw 1.8s ease-in-out infinite alternate; }
.scn-second-attempt-sleigh-bomb .debris { position:absolute; top:40%; left:40%; width:70%; height:60%; background: radial-gradient(circle at 20% 30%, #4a3a2a 4px, transparent 4px), radial-gradient(circle at 80% 70%, #6a5a4a 3px, transparent 3px), radial-gradient(circle at 40% 60%, #2a1a1a 5px, transparent 5px); animation: sas-fly 1.2s steps(2) infinite; }
@keyframes sas-darken { 0% { opacity:.5 } 100% { opacity:1 } }
@keyframes sas-flash { 0% { transform:translate(-50%, -50%) scale(.5); opacity:0 } 30% { transform:translate(-50%, -50%) scale(1.5); opacity:1 } 60% { transform:translate(-50%, -50%) scale(1.8); opacity:.8 } 100% { transform:translate(-50%, -50%) scale(1); opacity:.6 } }
@keyframes sas-break { 0% { transform: translate(0, 0) rotate(0) } 50% { transform: translate(10%, -5%) rotate(15deg) } 100% { transform: translate(-5%, 10%) rotate(-10deg) } }
@keyframes sas-collapse { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(5%) } }
@keyframes sas-throw { 0% { transform: rotate(45deg) translateY(0) } 50% { transform: rotate(90deg) translateY(-20%) } 100% { transform: rotate(30deg) translateY(10%) } }
@keyframes sas-fly { 0% { transform: translate(0, 0) } 25% { transform: translate(15%, -10%) } 50% { transform: translate(-10%, 15%) } 75% { transform: translate(5%, -5%) } 100% { transform: translate(0, 0) } }

.scn-convalescence { background: linear-gradient(90deg, #1a1817 0%, #3a3330 50%, #1a1817 100%), radial-gradient(circle at 50% 100%, #4a423f 0%, transparent 80%); }
.scn-convalescence .bg-dim { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(255,255,255,.02) 20px, rgba(255,255,255,.02) 21px); animation: con-texture 20s linear infinite; }
.scn-convalescence .wall-texture { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, #5a4a42 0%, transparent 60%); opacity:.3; animation: con-fade 15s ease-in-out infinite alternate; }
.scn-convalescence .staircase { position:absolute; bottom:0; right:10%; width:20%; height:80%; background: linear-gradient(180deg, transparent 0%, #2a2420 20%, #2a2420 25%, #3a302a 25%, #3a302a 30%, #2a2420 30%, #2a2420 35%, #3a302a 35%, #3a302a 40%, #2a2420 40%, #2a2420 45%, #3a302a 45%, #3a302a 50%, #2a2420 50%); clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); animation: con-creep 25s ease-in-out infinite; }
.scn-convalescence .bed { position:absolute; bottom:10%; left:10%; width:60%; height:25%; background: linear-gradient(180deg, #5a4a42 0%, #3a2a22 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-convalescence .figure-general { position:absolute; bottom:15%; left:20%; width:30%; height:15%; background: linear-gradient(180deg, #4a3a32 0%, #2a1a12 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; animation: con-breathe 5s ease-in-out infinite alternate; }
.scn-convalescence .figure-servant { position:absolute; bottom:10%; right:15%; width:10%; height:25%; background: linear-gradient(180deg, #3a302a 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: con-ascend 8s ease-in-out infinite; }
.scn-convalescence .lamp-glow { position:absolute; top:20%; left:40%; width:20%; height:20%; background: radial-gradient(circle, #cfb27a 0%, #8a7a5a 30%, transparent 70%); border-radius:50%; animation: con-flicker 3s ease-in-out infinite alternate; }
@keyframes con-texture { 0% { transform: translateY(0) } 100% { transform: translateY(20px) } }
@keyframes con-fade { 0%,100% { opacity:.2 } 50% { opacity:.5 } }
@keyframes con-creep { 0% { transform: translateY(0) } 33% { transform: translateY(-5%) } 66% { transform: translateY(2%) } 100% { transform: translateY(0) } }
@keyframes con-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes con-ascend { 0% { transform: translateY(0) opacity:0 } 20% { opacity:1 } 50% { transform: translateY(-10%) } 80% { opacity:1 } 100% { transform: translateY(-20%) opacity:0 } }
@keyframes con-flicker { 0%,100% { opacity:.4; transform: scale(.95) } 50% { opacity:.8; transform: scale(1.05) } }

.scn-datcha-settlement { background: linear-gradient(180deg, #1e2229 0%, #343942 50%, #4a505c 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(255,255,255,.03) 40px, rgba(255,255,255,.03) 41px); }
.scn-datcha-settlement .bg-room { position:absolute; inset:0; background: radial-gradient(circle at 50% 20%, #5a6a7a 0%, transparent 70%); animation: dts-ambient 12s ease-in-out infinite alternate; }
.scn-datcha-settlement .window-frame { position:absolute; top:5%; left:35%; width:30%; height:45%; border: 8px solid #3a3a4a; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: dts-frame 15s ease-in-out infinite alternate; }
.scn-datcha-settlement .window-glass { position:absolute; top:5%; left:35%; width:30%; height:45%; background: linear-gradient(180deg, #6a8a9a 0%, #8aaaba 50%, #5a7a8a 100%); opacity:.2; animation: dts-curtain 8s ease-in-out infinite alternate; }
.scn-datcha-settlement .table { position:absolute; bottom:15%; left:20%; width:50%; height:15%; background: linear-gradient(180deg, #4a423a 0%, #2a221a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-datcha-settlement .figure-general { position:absolute; bottom:20%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dts-breathe 4s ease-in-out infinite alternate; }
.scn-datcha-settlement .letter { position:absolute; bottom:30%; left:30%; width:8%; height:6%; background: #dce0e6; border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(5deg); animation: dts-tremble 1.5s ease-in-out infinite; }
.scn-datcha-settlement .shadow-lurking { position:absolute; bottom:10%; right:15%; width:20%; height:40%; background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,.6) 30%, rgba(0,0,0,.6) 50%, transparent 50%); animation: dts-lurk 10s ease-in-out infinite alternate; }
@keyframes dts-ambient { 0%,100% { opacity:.6 } 50% { opacity:.9 } }
@keyframes dts-frame { 0% { border-color: #3a3a4a } 50% { border-color: #5a5a6a } 100% { border-color: #2a2a3a } }
@keyframes dts-curtain { 0% { transform: scaleX(1); opacity:.2 } 50% { transform: scaleX(1.2); opacity:.4 } 100% { transform: scaleX(.8); opacity:.1 } }
@keyframes dts-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(.99) } }
@keyframes dts-tremble { 0%,100% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-2px) } 50% { transform: rotate(2deg) translateY(1px) } 75% { transform: rotate(6deg) translateY(-1px) } }
@keyframes dts-lurk { 0% { transform: translateX(0) opacity:.3 } 33% { transform: translateX(-10%) opacity:.6 } 66% { transform: translateX(5%) opacity:.4 } 100% { transform: translateX(0) opacity:.5 } }

.scn-gone-to-boris-family {
  background: linear-gradient(180deg, #7ab8d4 0%, #f5e6b0 60%, #d4a373 100%), radial-gradient(circle at 70% 20%, #fff8e0, transparent 50%);
}
.scn-gone-to-boris-family .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0d8f0 0%, transparent 100%); animation:gbf-sky 6s ease-in-out infinite alternate; }
.scn-gone-to-boris-family .cloud-1 { position:absolute; top:10%; left:20%; width:80px; height:18px; background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(5px); animation:gbf-cloud1 30s linear infinite; }
.scn-gone-to-boris-family .cloud-2 { position:absolute; top:18%; right:10%; width:60px; height:14px; background:linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter:blur(4px); animation:gbf-cloud2 40s linear infinite reverse; }
.scn-gone-to-boris-family .building { position:absolute; bottom:30%; left:20%; width:40%; height:30%; background:linear-gradient(90deg, #a67c5c 0%, #d4a373 50%, #c48a5c 100%); border-radius:4% 4% 0 0; box-shadow:0 8px 20px rgba(0,0,0,.5); animation:gbf-building 8s ease-in-out infinite; }
.scn-gone-to-boris-family .balcony { position:absolute; bottom:30%; left:30%; width:20%; height:10%; background:linear-gradient(180deg, #b8996b 0%, #8c6c4a 100%); border-radius:50% 50% 0 0; transform-origin:bottom center; animation:gbf-balcony 4s ease-in-out infinite; }
.scn-gone-to-boris-family .table { position:absolute; bottom:33%; left:35%; width:12%; height:4%; background:linear-gradient(90deg, #6a4a3a 0%, #8c6c4a 100%); border-radius:10px; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:gbf-table 3s ease-in-out infinite; }
.scn-gone-to-boris-family .figure { position:absolute; bottom:29%; left:40%; width:12px; height:30px; background:linear-gradient(180deg, #2c1a1a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:gbf-figure 2s ease-in-out infinite; }
@keyframes gbf-sky { 0%{ opacity:.8; transform:scale(1)} 50%{ opacity:1; transform:scale(1.02)} 100%{ opacity:.9; transform:scale(1)} }
@keyframes gbf-cloud1 { 0%{ transform:translateX(-30px)} 50%{ transform:translateX(20px)} 100%{ transform:translateX(100px)} }
@keyframes gbf-cloud2 { 0%{ transform:translateX(0)} 50%{ transform:translateX(-40px)} 100%{ transform:translateX(-80px)} }
@keyframes gbf-building { 0%,100%{ box-shadow:10px 10px 20px rgba(0,0,0,.5)} 50%{ box-shadow:5px 5px 15px rgba(0,0,0,.3)} }
@keyframes gbf-table { 0%,100%{ transform:translateY(0)} 50%{ transform:translateY(-1px)} }
@keyframes gbf-figure { 0%{ transform:translateX(0) rotate(-2deg)} 50%{ transform:translateX(3px) rotate(2deg)} 100%{ transform:translateX(0) rotate(-1deg)} }
@keyframes gbf-balcony { 0%,100%{ transform:scaleY(1)} 50%{ transform:scaleY(1.05)} }

.scn-place-st-isaac {
  background: linear-gradient(180deg, #6fa8c4 0%, #e3d5b0 60%, #c4a57a 100%), radial-gradient(circle at 60% 30%, #fffce0, transparent 40%);
}
.scn-place-st-isaac .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #8cc4e0 0%, transparent 100%); animation:psi-sky 12s ease-in-out infinite alternate; }
.scn-place-st-isaac .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #d4c4a0 0%, #a88a60 100%); border-radius:60% 40% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.2); animation:psi-ground 10s ease-in-out infinite; }
.scn-place-st-isaac .dome { position:absolute; bottom:30%; left:50%; width:80px; height:60px; transform:translateX(-50%); background:radial-gradient(circle at 50% 30%, #e8d8b0 0%, #a08060 100%); border-radius:50% 50% 10% 10%; box-shadow:0 6px 12px rgba(0,0,0,.4); animation:psi-dome 6s ease-in-out infinite; }
.scn-place-st-isaac .figure-1 { position:absolute; bottom:25%; left:30%; width:14px; height:34px; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:psi-fig1 4s ease-in-out infinite; }
.scn-place-st-isaac .figure-2 { position:absolute; bottom:25%; left:55%; width:16px; height:36px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:psi-fig2 5s ease-in-out infinite; }
.scn-place-st-isaac .lamppost { position:absolute; bottom:25%; left:42%; width:4px; height:60px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 0 0 transparent; animation:psi-lamp 3s ease-in-out infinite; }
.scn-place-st-isaac .steps { position:absolute; bottom:18%; left:35%; width:30%; height:10%; background:repeating-linear-gradient(0deg, #b8997a 0px, #b8997a 6px, #a08060 6px, #a08060 12px); border-radius:4px; animation:psi-steps 8s ease-in-out infinite; }
@keyframes psi-sky { 0%{ opacity:.7; transform:scale(1)} 50%{ opacity:1; transform:scale(1.03)} 100%{ opacity:.8; transform:scale(1)} }
@keyframes psi-ground { 0%,100%{ transform:translateY(0)} 50%{ transform:translateY(-2px)} }
@keyframes psi-dome { 0%,100%{ transform:translateX(-50%)} 50%{ transform:translateX(-50%) scale(1.02)} }
@keyframes psi-fig1 { 0%{ transform:translateX(0) rotate(-3deg)} 25%{ transform:translateX(4px) rotate(1deg)} 50%{ transform:translateX(8px) rotate(-2deg)} 75%{ transform:translateX(4px) rotate(2deg)} 100%{ transform:translateX(0) rotate(-1deg)} }
@keyframes psi-fig2 { 0%,100%{ transform:translateY(0) rotate(0)} 50%{ transform:translateY(-3px) rotate(3deg)} }
@keyframes psi-lamp { 0%,100%{ box-shadow:0 0 6px 2px #e8d8a0} 50%{ box-shadow:0 0 12px 4px #f0e0b0} }
@keyframes psi-steps { 0%,100%{ opacity:.9} 50%{ opacity:1} }

.scn-annouchkas-address {
  background: linear-gradient(180deg, #c8b098 0%, #a08060 50%, #7a6040 100%), radial-gradient(circle at 30% 40%, #f0e8c0, transparent 60%);
}
.scn-annouchkas-address .bg-wall { position:absolute; inset:0; background:linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%); animation:anna-wall 10s ease-in-out infinite alternate; }
.scn-annouchkas-address .window { position:absolute; top:10%; left:20%; width:30%; height:40%; background:linear-gradient(180deg, #e8e0d0 0%, #b0a090 100%); border:4px solid #3a2a1a; border-radius:8px; box-shadow:0 0 20px 5px rgba(232,224,208,.3); animation:anna-window 4s ease-in-out infinite; }
.scn-annouchkas-address .door { position:absolute; bottom:0; left:40%; width:20%; height:60%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; border:2px solid #2a1a0a; transform-origin:left center; animation:anna-door 12s ease-in-out infinite; }
.scn-annouchkas-address .table { position:absolute; bottom:10%; left:15%; width:50%; height:6%; background:linear-gradient(90deg, #6a4a3a 0%, #8c6c4a 100%); border-radius:8px; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:anna-table 3s ease-in-out infinite; }
.scn-annouchkas-address .chair { position:absolute; bottom:12%; left:30%; width:8%; height:12%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform-origin:bottom center; animation:anna-chair 5s ease-in-out infinite; }
.scn-annouchkas-address .figure-1 { position:absolute; bottom:8%; left:25%; width:14px; height:40px; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:anna-fig1 2s ease-in-out infinite; }
.scn-annouchkas-address .figure-2 { position:absolute; bottom:8%; left:55%; width:16px; height:38px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:anna-fig2 3s ease-in-out infinite; }
@keyframes anna-wall { 0%,100%{ opacity:.85} 50%{ opacity:1} }
@keyframes anna-window { 0%,100%{ box-shadow:0 0 30px 5px rgba(232,224,208,.3); opacity:.9} 50%{ box-shadow:0 0 50px 10px rgba(232,224,208,.5); opacity:1} }
@keyframes anna-door { 0%,100%{ transform:rotateY(0deg)} 50%{ transform:rotateY(4deg)} }
@keyframes anna-table { 0%,100%{ transform:translateY(0)} 50%{ transform:translateY(-2px)} }
@keyframes anna-chair { 0%{ transform:rotate(-2deg)} 50%{ transform:rotate(2deg)} 100%{ transform:rotate(-1deg)} }
@keyframes anna-fig1 { 0%{ transform:translateX(0) rotate(-3deg)} 25%{ transform:translateX(2px) rotate(2deg)} 50%{ transform:translateX(0) rotate(-1deg)} 75%{ transform:translateX(-2px) rotate(3deg)} 100%{ transform:translateX(0) rotate(-2deg)} }
@keyframes anna-fig2 { 0%,100%{ transform:translateY(0) rotate(0)} 50%{ transform:translateY(-2px) rotate(4deg)} }

.scn-five-roubles-information {
  background: linear-gradient(180deg, #9ac0d4 0%, #e8d8b0 60%, #c4a57a 100%), radial-gradient(circle at 80% 40%, #fffce0, transparent 50%);
}
.scn-five-roubles-information .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b8d8e8 0%, transparent 100%); animation:fr-sky 15s ease-in-out infinite alternate; }
.scn-five-roubles-information .building { position:absolute; bottom:20%; left:10%; width:80%; height:50%; background:linear-gradient(0deg, #7a6040 0%, #a08060 50%, #7a6040 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,.3); animation:fr-building 12s ease-in-out infinite; }
.scn-five-roubles-information .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #d4c4a0 0%, #b8a080 100%); border-radius:40% 60% 0 0; animation:fr-ground 8s ease-in-out infinite; }
.scn-five-roubles-information .step { position:absolute; bottom:15%; left:40%; width:20%; height:6%; background:repeating-linear-gradient(0deg, #c4a57a 0px, #c4a57a 4px, #a08060 4px, #a08060 8px); border-radius:2px; animation:fr-step 6s ease-in-out infinite; }
.scn-five-roubles-information .figure-1 { position:absolute; bottom:18%; left:30%; width:14px; height:36px; background:linear-gradient(180deg, #2a1a1a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:fr-fig1 5s ease-in-out infinite; }
.scn-five-roubles-information .figure-2 { position:absolute; bottom:18%; left:55%; width:16px; height:38px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:fr-fig2 7s ease-in-out infinite; }
.scn-five-roubles-information .hand-coin { position:absolute; bottom:24%; left:38%; width:10px; height:10px; background:radial-gradient(circle, #f0d080 0%, #c8a060 70%); border-radius:50%; box-shadow:0 0 12px 3px rgba(240,208,128,.5); animation:fr-coin 3s ease-in-out infinite; }
@keyframes fr-sky { 0%{ opacity:.8; transform:scale(1)} 50%{ opacity:1; transform:scale(1.01)} 100%{ opacity:.9; transform:scale(1)} }
@keyframes fr-building { 0%,100%{ box-shadow:inset 0 10px 20px rgba(0,0,0,.3)} 50%{ box-shadow:inset 0 15px 30px rgba(0,0,0,.5)} }
@keyframes fr-ground { 0%,100%{ transform:translateY(0)} 50%{ transform:translateY(-2px)} }
@keyframes fr-step { 0%,100%{ opacity:.8} 50%{ opacity:1} }
@keyframes fr-fig1 { 0%{ transform:translateX(0) rotate(-2deg)} 25%{ transform:translateX(3px) rotate(1deg)} 50%{ transform:translateX(6px) rotate(-2deg)} 75%{ transform:translateX(3px) rotate(2deg)} 100%{ transform:translateX(0) rotate(-1deg)} }
@keyframes fr-fig2 { 0%,100%{ transform:translateY(0) rotate(0)} 50%{ transform:translateY(-3px) rotate(3deg)} }
@keyframes fr-coin { 0%,100%{ transform:translate(0,0) scale(1); box-shadow:0 0 12px 3px rgba(240,208,128,.5)} 50%{ transform:translate(2px,-2px) scale(1.1); box-shadow:0 0 20px 6px rgba(240,208,128,.7)} }

/* one block per scene id. Append to style.css. */
.scn-slipping-into-garden {
  background: linear-gradient(180deg, #3d2b4f 0%, #7a5c6a 30%, #c88b70 60%, #edc79a 100%), radial-gradient(ellipse at 50% 100%, #3d2b4f 0%, transparent 70%);
  overflow: hidden;
}
.scn-slipping-into-garden .sky-sig { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3d2b4f 0%, #7a5c6a 40%, #c88b70 100%); animation: sig-sky 15s ease-in-out infinite alternate; }
.scn-slipping-into-garden .gate-sig { position:absolute; bottom:25%; left:30%; width:40%; height:40%; border: 4px solid #2a1e2c; border-radius:4px; background: repeating-linear-gradient(90deg, #2a1e2c 0px, #2a1e2c 4px, transparent 4px, transparent 10px); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: sig-gate 8s ease-in-out infinite alternate; }
.scn-slipping-into-garden .path-sig { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #6b5a4a, #4a3a2a); border-radius: 50% / 100% 100% 0 0; transform: rotate(-2deg); animation: sig-path 6s ease-in-out infinite alternate; }
.scn-slipping-into-garden .figure-sig { position:absolute; bottom:12%; left:25%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sig-walk 4s ease-in-out infinite; }
.scn-slipping-into-garden .guard-sig { position:absolute; bottom:20%; right:22%; width:16px; height:36px; background: linear-gradient(180deg, #2a1e2c 0%, #0e0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: sig-guard 5s ease-in-out infinite alternate; }
.scn-slipping-into-garden .bush-sig { position:absolute; bottom:15%; left:5%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 100%, #2a4a2a, #1a2a1a); border-radius:50%; filter: blur(3px); animation: sig-bush 10s ease-in-out infinite alternate; }
@keyframes sig-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sig-gate  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sig-path  { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(-1.5deg) translateX(3px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes sig-walk  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-2deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes sig-guard { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) } }
@keyframes sig-bush  { 0% { filter: blur(3px) } 50% { filter: blur(5px) } 100% { filter: blur(3px) } }

.scn-studying-the-east {
  background: linear-gradient(180deg, #4a3a5a 0%, #8a7a9a 30%, #d4b8a8 60%, #f0d0c0 100%), radial-gradient(ellipse at 80% 30%, #f0d0c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-studying-the-east .sky-ste    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a5a 0%, #a08a90 40%, #f0d0c0 100%); animation: ste-sky 20s ease-in-out infinite alternate; }
.scn-studying-the-east .lawn-ste   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a7a4a, #3a5a3a); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ste-lawn 15s ease-in-out infinite alternate; }
.scn-studying-the-east .figure-ste { position:absolute; bottom:20%; left:50%; width:14px; height:35px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ste-figure 8s ease-in-out infinite; }
.scn-studying-the-east .sunrise-ste{ position:absolute; top:20%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #ffcc80 0%, #ffa060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,160,96,0.3); animation: ste-sunrise 12s ease-in-out infinite alternate; }
.scn-studying-the-east .tree-ste   { position:absolute; bottom:35%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; box-shadow: inset -5px 0 10px rgba(0,0,0,.4); animation: ste-tree 25s ease-in-out infinite alternate; }
@keyframes ste-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ste-lawn    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ste-figure  { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ste-sunrise { 0% { transform: scale(0.9); box-shadow: 0 0 40px 10px rgba(255,160,96,0.2); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,160,96,0.4); } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(255,160,96,0.25); } }
@keyframes ste-tree    { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

.scn-traversing-the-paths {
  background: linear-gradient(180deg, #2d1b3e 0%, #6a4a5a 30%, #b08070 60%, #d4a090 100%), radial-gradient(ellipse at 30% 70%, #b08070 0%, transparent 60%);
  overflow: hidden;
}
.scn-traversing-the-paths .sky-tp     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2d1b3e 0%, #6a4a5a 40%, #b08070 100%); animation: tp-sky 12s ease-in-out infinite alternate; }
.scn-traversing-the-paths .house-tp   { position:absolute; bottom:20%; right:10%; width:80px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: tp-house 10s ease-in-out infinite; }
.scn-traversing-the-paths .window-tp  { position:absolute; bottom:30%; right:18%; width:16px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.4); animation: tp-window 3s ease-in-out infinite alternate; }
.scn-traversing-the-paths .path-tp    { position:absolute; bottom:8%; left:5%; width:90%; height:6%; background: linear-gradient(180deg, #6b5a4a, #4a3a2a); transform: skewX(-10deg); animation: tp-path 7s ease-in-out infinite alternate; }
.scn-traversing-the-paths .figure-tp  { position:absolute; bottom:12%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: tp-figure 4s ease-in-out infinite; }
.scn-traversing-the-paths .tree-tp    { position:absolute; bottom:15%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a5a3a, #2a4a2a); border-radius:50% 50% 40% 40% / 80% 80% 20% 20%; filter: blur(1px); animation: tp-tree 15s ease-in-out infinite alternate; }
.scn-traversing-the-paths .fence-tp   { position:absolute; bottom:18%; left:0; right:0; height:5px; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 3px, transparent 3px, transparent 8px); animation: tp-fence 20s ease-in-out infinite alternate; }
@keyframes tp-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tp-house  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tp-window { 0% { box-shadow: 0 0 15px 3px #b08040; opacity:.8 } 50% { box-shadow: 0 0 30px 8px #ffd080; opacity:1 } 100% { box-shadow: 0 0 20px 5px #b08040; opacity:.9 } }
@keyframes tp-path   { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-8deg) translateX(5px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes tp-figure { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(-3deg) } 50% { transform: translateX(16px) rotate(-5deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(32px) rotate(-5deg) } }
@keyframes tp-tree   { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes tp-fence  { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-no-one-in-garden {
  background: linear-gradient(180deg, #1a0f1a 0%, #2a1a2a 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%);
  overflow: hidden;
}
.scn-no-one-in-garden .darkroom-nig { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1a2a, #0a050a); animation: nig-room 10s ease-in-out infinite alternate; }
.scn-no-one-in-garden .door-nig     { position:absolute; bottom:10%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 2px solid #1a0f0a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: nig-door 8s ease-in-out infinite alternate; }
.scn-no-one-in-garden .figure-nig   { position:absolute; bottom:10%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: nig-figure 5s ease-in-out infinite; }
.scn-no-one-in-garden .arm-nig      { position:absolute; bottom:25%; left:42%; width:20px; height:6px; background: linear-gradient(90deg, #1a1a2a, #2a2a3a); border-radius: 30% 20% 20% 30%; transform: rotate(-30deg); transform-origin: right bottom; animation: nig-arm 3s ease-in-out infinite alternate; }
.scn-no-one-in-garden .shiny-nig    { position:absolute; bottom:24%; left:44%; width:4px; height:4px; background: radial-gradient(circle, #ffd0a0, #a08040); border-radius:50%; box-shadow: 0 0 10px 3px #ffd0a0, 0 0 20px 6px rgba(255,208,160,.5); animation: nig-shiny 2s ease-in-out infinite alternate; }
@keyframes nig-room   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nig-door   { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes nig-figure { 0% { transform: rotate(10deg) } 33% { transform: rotate(8deg) translateY(-1px) } 66% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes nig-arm    { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }
@keyframes nig-shiny  { 0% { box-shadow: 0 0 8px 2px #ffd0a0; opacity:.7 } 50% { box-shadow: 0 0 20px 6px #ffd0a0; opacity:1 } 100% { box-shadow: 0 0 10px 3px #ffd0a0; opacity:.8 } }

.scn-abduction-by-nihilists{background:linear-gradient(180deg,#1a1a2e 0%,#2a2a3e 50%,#0e0e1a 100%),radial-gradient(ellipse at 60% 70%,#3a3a5e 0%,transparent 60%);}
.scn-abduction-by-nihilists .wall{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#3a3a4e 0%,#1a1a2a 100%);}
.scn-abduction-by-nihilists .floor{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);}
.scn-abduction-by-nihilists .counter{position:absolute;bottom:18%;left:10%;right:30%;height:8%;background:linear-gradient(180deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.6);animation:abn-counter 6s ease-in-out infinite;}
.scn-abduction-by-nihilists .basket{position:absolute;bottom:22%;right:15%;width:60px;height:40px;background:radial-gradient(ellipse at 50% 40%,#6a5a4a 0%,#3a2a1a 100%);border-radius:30% 30% 40% 40% / 40% 40% 60% 60%;box-shadow:0 4px 6px rgba(0,0,0,.7);animation:abn-basket 4s ease-in-out infinite;}
.scn-abduction-by-nihilists .figures{position:absolute;bottom:12%;left:20%;width:40px;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:abn-figures 3s ease-in-out infinite;}
.scn-abduction-by-nihilists .light{position:absolute;top:10%;left:40%;width:120px;height:200px;background:radial-gradient(ellipse at 50% 0%,rgba(200,180,150,.2) 0%,transparent 70%);transform:skewX(-10deg);animation:abn-light 2s ease-in-out infinite alternate;}
@keyframes abn-counter{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes abn-basket{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes abn-figures{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(4px) rotate(-2deg)}}
@keyframes abn-light{0%{opacity:.6}50%{opacity:1}100%{opacity:.7}}

.scn-revolutionary-tribunal{background:linear-gradient(180deg,#2a1a1a 0%,#3a2a2a 50%,#1a0a0a 100%),radial-gradient(ellipse at 50% 20%,#4a3a3a 0%,transparent 60%);}
.scn-revolutionary-tribunal .wall-bg{position:absolute;inset:0 0 20% 0;background:linear-gradient(180deg,#3a2a2a 0%,#1a1a1a 100%);}
.scn-revolutionary-tribunal .wall-side{position:absolute;inset:0 30% 20% 0;background:linear-gradient(180deg,#2a1a1a 0%,#0a0a0a 100%);}
.scn-revolutionary-tribunal .floor{position:absolute;bottom:0;left:0;right:0;height:20%;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);}
.scn-revolutionary-tribunal .figure-center{position:absolute;bottom:18%;left:50%;width:30px;height:80px;transform:translateX(-50%);background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:rev-center 4s ease-in-out infinite;}
.scn-revolutionary-tribunal .crowd-left{position:absolute;bottom:10%;left:10%;width:120px;height:50px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 0 0;filter:blur(2px);animation:rev-crowd 6s ease-in-out infinite;}
.scn-revolutionary-tribunal .crowd-right{position:absolute;bottom:10%;right:10%;width:100px;height:40px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 0 0;filter:blur(2px);animation:rev-crowd 6s ease-in-out infinite reverse;}
.scn-revolutionary-tribunal .light-beam{position:absolute;top:5%;left:35%;width:200px;height:300px;background:radial-gradient(ellipse at 50% 0%,rgba(255,200,150,.15) 0%,transparent 70%);transform:skewX(-5deg);animation:rev-light 3s ease-in-out infinite alternate;}
@keyframes rev-center{0%,100%{transform:translateX(-50%) translateY(0) rotate(0)}50%{transform:translateX(-50%) translateY(-3px) rotate(2deg)}}
@keyframes rev-crowd{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes rev-light{0%,100%{opacity:.5}50%{opacity:1}}

.scn-execution-preparation{background:linear-gradient(180deg,#2a1a3a 0%,#4a2a4a 30%,#6a4a6a 60%,#8a6a6a 100%),radial-gradient(ellipse at 30% 20%,#7a5a7a 0%,transparent 70%);}
.scn-execution-preparation .wall{position:absolute;inset:0 0 15% 0;background:linear-gradient(180deg,#3a2a3a 0%,#1a0a1a 100%);}
.scn-execution-preparation .window{position:absolute;top:10%;left:35%;width:80px;height:120px;background:linear-gradient(180deg,#4a3a5a 0%,#6a5a7a 100%);border-radius:10% 10% 0 0;box-shadow:inset 0 0 20px rgba(200,180,220,.3);animation:exp-window 10s ease-in-out infinite alternate;}
.scn-execution-preparation .dawn-glow{position:absolute;top:8%;left:30%;width:160px;height:200px;background:radial-gradient(ellipse at 50% 0%,rgba(255,200,220,.2) 0%,transparent 70%);animation:exp-dawn 12s ease-in-out infinite;}
.scn-execution-preparation .figure-seated{position:absolute;bottom:20%;left:40%;width:40px;height:70px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:exp-figure 4s ease-in-out infinite;}
.scn-execution-preparation .balalaika{position:absolute;bottom:12%;left:35%;width:20px;height:50px;background:radial-gradient(ellipse at 50% 30%,#6a4a3a 0%,#3a2a1a 100%);border-radius:20% 20% 40% 40%;transform:rotate(15deg);animation:exp-bala 5s ease-in-out infinite;}
.scn-execution-preparation .ring-bolt{position:absolute;top:12%;left:50%;width:10px;height:10px;background:radial-gradient(circle,#8a7a6a 0%,#4a3a2a 100%);border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,.5);animation:exp-bolt 3s ease-in-out infinite;}
.scn-execution-preparation .shadow{position:absolute;top:12%;left:45%;width:80px;height:120px;background:radial-gradient(ellipse at 50% 0%,rgba(0,0,0,.3) 0%,transparent 70%);transform:skewX(-20deg);animation:exp-shadow 6s ease-in-out infinite;}
@keyframes exp-window{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.95)}}
@keyframes exp-dawn{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes exp-figure{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(1deg)}}
@keyframes exp-bala{0%,100%{transform:rotate(15deg)}50%{transform:rotate(20deg)}}
@keyframes exp-bolt{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes exp-shadow{0%,100%{transform:skewX(-20deg) scaleX(1)}50%{transform:skewX(-25deg) scaleX(1.1)}}

.scn-execution-courtyard-final{background:linear-gradient(180deg,#0a0a1a 0%,#1a1a2e 40%,#2a2a3e 100%),radial-gradient(ellipse at 50% 0%,#1a1a2e 0%,transparent 70%);}
.scn-execution-courtyard-final .sky-night{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#2a2a4e 0%,#0a0a1a 100%);animation:exc-sky 20s ease-in-out infinite alternate;}
.scn-execution-courtyard-final .ground{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%);}
.scn-execution-courtyard-final .gallows{position:absolute;bottom:30%;left:50%;width:12px;height:200px;transform:translateX(-50%);background:linear-gradient(180deg,#3a3a4a 0%,#1a1a2a 100%);box-shadow:-4px 0 8px rgba(0,0,0,.6);animation:exc-gallows 8s ease-in-out infinite;}
.scn-execution-courtyard-final .figure-condemned{position:absolute;bottom:22%;left:50%;width:20px;height:40px;transform:translateX(-50%);background:linear-gradient(180deg,#1a1a2a 0%,#0a0a1a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:exc-figure 3s ease-in-out infinite;}
.scn-execution-courtyard-final .lamp-glow{position:absolute;top:15%;left:42%;width:80px;height:80px;background:radial-gradient(circle,rgba(255,220,180,.3) 0%,transparent 70%);animation:exc-lamp 2s ease-in-out infinite alternate;}
.scn-execution-courtyard-final .shadow{position:absolute;bottom:30%;left:45%;width:100px;height:100px;background:radial-gradient(ellipse at 50% 0%,rgba(0,0,0,.5) 0%,transparent 70%);transform:skewX(-10deg);animation:exc-shadow 6s ease-in-out infinite;}
@keyframes exc-sky{0%,100%{opacity:.8}50%{opacity:1}}
@keyframes exc-gallows{0%,100%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(1deg)}}
@keyframes exc-figure{0%,100%{transform:translateX(-50%) translateY(0) rotate(0)}50%{transform:translateX(-50%) translateY(-3px) rotate(2deg)}}
@keyframes exc-lamp{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes exc-shadow{0%,100%{transform:skewX(-10deg) scaleX(1)}50%{transform:skewX(-15deg) scaleX(1.2)}}

.scn-nightly-gayeties {
  background:
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a120a 60%),
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #1a0a0a 100%);
}
.scn-nightly-gayeties .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); }
.scn-nightly-gayeties .lamp { position:absolute; top:15%; left:50%; width:12px; height:20px; background: #b08050; border-radius: 20% 20% 50% 50%; transform:translateX(-50%); box-shadow: 0 -10px 20px 5px rgba(180,120,60,0.6); }
.scn-nightly-gayeties .lamp-glow { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #f0d090 0%, #c08040 50%, transparent 100%); transform:translate(-50%,-50%); animation: ng-glow 4s ease-in-out infinite alternate; }
.scn-nightly-gayeties .table { position:absolute; bottom:20%; left:30%; width:80px; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; transform: perspective(200px) rotateX(20deg); }
.scn-nightly-gayeties .figure-a { position:absolute; bottom:22%; left:20%; width:20px; height:60px; background: #0a0a0a; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ng-dance 2.5s ease-in-out infinite; }
.scn-nightly-gayeties .figure-b { position:absolute; bottom:22%; left:55%; width:18px; height:58px; background: #151510; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ng-dance 2.7s ease-in-out infinite 0.8s; }
.scn-nightly-gayeties .glass { position:absolute; bottom:25%; left:38%; width:6px; height:10px; background: radial-gradient(circle, #f0e0c0 0%, #c0a080 80%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-nightly-gayeties .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #4a2020 0%, #3a1515 50%, transparent 100%); animation: ng-sway 6s ease-in-out infinite alternate; }
@keyframes ng-glow { 0% { opacity:0.7; transform:translate(-50%,-50%) scale(1); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } 100% { opacity:0.8; transform:translate(-50%,-50%) scale(0.95); } }
@keyframes ng-dance { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-2px); } 60% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ng-sway { 0% { transform: skewX(-2deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-1deg); } }

.scn-annouchkas-debut {
  background:
    radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0505 80%),
    linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
}
.scn-annouchkas-debut .stage-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); }
.scn-annouchkas-debut .spotlight { position:absolute; top:0; left:50%; width:200px; height:80%; background: radial-gradient(ellipse at 50% 100%, #e0c080 0%, transparent 80%); transform:translateX(-50%); animation: ad-spotlight 3s ease-in-out infinite alternate; }
.scn-annouchkas-debut .singer { position:absolute; bottom:30%; left:50%; width:30px; height:70px; background: #0a0a0a; border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform:translateX(-50%) scale(1.1); box-shadow: 0 0 20px 10px rgba(200,180,120,0.3); animation: ad-singer 2s ease-in-out infinite; }
.scn-annouchkas-debut .audience-left { position:absolute; bottom:10%; left:5%; width:40%; height:50%; background: linear-gradient(180deg, #151510 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: ad-audience 5s ease-in-out infinite; }
.scn-annouchkas-debut .audience-right { position:absolute; bottom:10%; right:5%; width:40%; height:50%; background: linear-gradient(180deg, #151510 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: ad-audience 5s ease-in-out infinite 1.5s; }
.scn-annouchkas-debut .stage-edge { position:absolute; bottom:28%; left:10%; right:10%; height:4px; background: linear-gradient(90deg, transparent 0%, #4a3a2a 20%, #4a3a2a 80%, transparent 100%); }
.scn-annouchkas-debut .glow-back { position:absolute; bottom:40%; left:45%; width:10%; height:20%; background: radial-gradient(circle, #e0c080 0%, transparent 80%); animation: ad-glow 2.5s ease-in-out infinite alternate; }
@keyframes ad-spotlight { 0% { opacity:0.6; transform:translateX(-50%) scaleX(1); } 50% { opacity:1; transform:translateX(-50%) scaleX(1.1); } 100% { opacity:0.7; transform:translateX(-50%) scaleX(0.9); } }
@keyframes ad-singer { 0% { transform:translateX(-50%) scale(1.1) translateY(0); } 30% { transform:translateX(-50%) scale(1.15) translateY(-2px); } 60% { transform:translateX(-50%) scale(1.08) translateY(1px); } 100% { transform:translateX(-50%) scale(1.1) translateY(0); } }
@keyframes ad-audience { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ad-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-roussalka-number {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a0a 80%),
    linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
}
.scn-roussalka-number .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-roussalka-number .dancer-1 { position:absolute; bottom:20%; left:30%; width:25px; height:65px; background: #151510; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rn-dance 1.8s ease-in-out infinite; }
.scn-roussalka-number .dancer-2 { position:absolute; bottom:20%; left:50%; width:25px; height:65px; background: #151510; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rn-dance 1.8s ease-in-out infinite 0.4s; }
.scn-roussalka-number .dancer-3 { position:absolute; bottom:20%; left:70%; width:25px; height:65px; background: #151510; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rn-dance 1.8s ease-in-out infinite 0.8s; }
.scn-roussalka-number .tambourine-1 { position:absolute; bottom:35%; left:28%; width:8px; height:8px; background: #c8a060; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,96,0.5); animation: rn-tambourine 2s ease-in-out infinite; }
.scn-roussalka-number .tambourine-2 { position:absolute; bottom:35%; right:28%; width:8px; height:8px; background: #c8a060; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,96,0.5); animation: rn-tambourine 2s ease-in-out infinite 0.5s; }
.scn-roussalka-number .stage-lights { position:absolute; top:10%; left:10%; right:10%; height:20%; background: radial-gradient(ellipse at 50% 0%, #c08040 0%, transparent 80%); animation: rn-lights 4s ease-in-out infinite alternate; }
.scn-roussalka-number .boot-left { position:absolute; bottom:15%; left:28%; width:8px; height:4px; background: #a0461a; border-radius: 20% 20% 0 0; box-shadow: 0 0 4px 2px rgba(160,70,26,0.5); animation: rn-sparkle 1.5s ease-in-out infinite alternate; }
.scn-roussalka-number .boot-right { position:absolute; bottom:15%; right:28%; width:8px; height:4px; background: #a0461a; border-radius: 20% 20% 0 0; box-shadow: 0 0 4px 2px rgba(160,70,26,0.5); animation: rn-sparkle 1.5s ease-in-out infinite alternate 0.3s; }
@keyframes rn-dance { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-3px); } 50% { transform: rotate(-5deg) translateY(-1px); } 75% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes rn-tambourine { 0% { transform: scale(1) translate(0,0); } 25% { transform: scale(1.2) translate(2px, -3px); } 50% { transform: scale(1) translate(0,0); } 75% { transform: scale(1.1) translate(-2px, -1px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes rn-lights { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(0.9); } }
@keyframes rn-sparkle { 0% { opacity:0.3; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.5) rotate(10deg); } 100% { opacity:0.3; transform: scale(1) rotate(0deg); } }

.scn-peasant-songs-dances {
  background:
    radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, #0a0505 80%),
    linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
}
.scn-peasant-songs-dances .scene-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #0a0505 100%); }
.scn-peasant-songs-dances .peasant-figure { position:absolute; bottom:25%; left:50%; width:35px; height:70px; background: #151510; border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform:translateX(-50%); animation: psd-figure 2s ease-in-out infinite; }
.scn-peasant-songs-dances .skirt-swirl { position:absolute; bottom:20%; left:50%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; transform:translateX(-50%); animation: psd-skirt 3s ease-in-out infinite; }
.scn-peasant-songs-dances .arm-left { position:absolute; bottom:45%; left:45%; width:20px; height:6px; background: #0a0a0a; border-radius: 30% 30% 60% 60%; transform-origin: right center; animation: psd-arm-left 1.5s ease-in-out infinite; }
.scn-peasant-songs-dances .arm-right { position:absolute; bottom:45%; right:45%; width:20px; height:6px; background: #0a0a0a; border-radius: 30% 30% 60% 60%; transform-origin: left center; animation: psd-arm-right 1.5s ease-in-out infinite 0.2s; }
.scn-peasant-songs-dances .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-peasant-songs-dances .dust { position:absolute; bottom:15%; left:30%; right:30%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(200,180,150,0.3) 0%, transparent 100%); animation: psd-dust 4s ease-in-out infinite; }
@keyframes psd-figure { 0% { transform:translateX(-50%) rotate(-3deg) translateY(0); } 30% { transform:translateX(-50%) rotate(2deg) translateY(-2px); } 60% { transform:translateX(-50%) rotate(-1deg) translateY(-1px); } 100% { transform:translateX(-50%) rotate(3deg) translateY(0); } }
@keyframes psd-skirt { 0% { transform:translateX(-50%) scaleX(1) rotate(0deg); } 50% { transform:translateX(-50%) scaleX(1.2) rotate(5deg); } 100% { transform:translateX(-50%) scaleX(0.9) rotate(-5deg); } }
@keyframes psd-arm-left { 0% { transform: rotate(-40deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(-40deg); } }
@keyframes psd-arm-right { 0% { transform: rotate(40deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(40deg); } }
@keyframes psd-dust { 0% { opacity:0.2; transform: scaleY(1) translateY(0); } 50% { opacity:0.6; transform: scaleY(1.5) translateY(-5px); } 100% { opacity:0.2; transform: scaleY(1) translateY(0); } }

.scn-matrena-weeps-over-natacha {
  background: linear-gradient(180deg, #ffc285 0%, #6b3a4a 30%, #1a1025 60%), linear-gradient(90deg, #2a1f2a 0%, #1a1025 100%);
  position: relative;
}
.scn-matrena-weeps-over-natacha .mw-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffc285 0%, #d47a5a 40%, transparent 100%);
  animation: mw-dawn 12s ease-in-out infinite alternate;
}
.scn-matrena-weeps-over-natacha .mw-wall {
  position: absolute; inset: 20% 10% 0 10%;
  background: linear-gradient(180deg, #2a1f2a 0%, #1a1025 100%);
  border-radius: 8px;
}
.scn-matrena-weeps-over-natacha .mw-window {
  position: absolute; top: 25%; left: 25%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #ffa05e 0%, #d47a5a 70%, #5a3040 100%);
  border: 4px solid #1a1025;
  box-shadow: inset 0 0 20px #ffb87a, 0 0 30px #ffa05e;
  border-radius: 4px;
  animation: mw-glow 6s ease-in-out infinite alternate;
}
.scn-matrena-weeps-over-natacha .mw-figure {
  position: absolute; bottom: 10%; left: 40%; width: 12%; height: 35%;
  background: radial-gradient(ellipse at 50% 20%, #1a1025 0%, #0d0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-weep 4s ease-in-out infinite;
}
.scn-matrena-weeps-over-natacha .mw-book {
  position: absolute; bottom: 8%; left: 55%; width: 8%; height: 4%;
  background: linear-gradient(135deg, #4a3025 0%, #2a1a15 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: mw-shift 8s ease-in-out infinite;
}
.scn-matrena-weeps-over-natacha .mw-shadow {
  position: absolute; bottom: 8%; left: 35%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: mw-shadow 4s ease-in-out infinite;
}
@keyframes mw-dawn { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mw-glow { 0% { box-shadow: inset 0 0 10px #ffb87a, 0 0 20px #ffa05e; } 50% { box-shadow: inset 0 0 30px #ffc285, 0 0 60px #ffa05e; } 100% { box-shadow: inset 0 0 15px #ffb87a, 0 0 30px #ffa05e; } }
@keyframes mw-weep { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mw-shift { 0%, 100% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg) translateY(1px); } }
@keyframes mw-shadow { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } }

.scn-natacha-cherished-child {
  background: linear-gradient(180deg, #e8b88a 0%, #8c5a5a 30%, #1a1025 60%), linear-gradient(90deg, #2a1f2a 0%, #1a1025 100%);
  position: relative;
}
.scn-natacha-cherished-child .nc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8b88a 0%, #c47a5a 40%, transparent 100%);
  animation: nc-dawn 15s ease-in-out infinite alternate;
}
.scn-natacha-cherished-child .nc-wall {
  position: absolute; inset: 20% 15% 0 15%;
  background: linear-gradient(180deg, #2a1f2a 0%, #1a1025 100%);
  border-radius: 8px;
}
.scn-natacha-cherished-child .nc-window {
  position: absolute; top: 20%; right: 20%; width: 25%; height: 30%;
  background: linear-gradient(135deg, #ffb07a 0%, #c47a5a 70%, #5a3040 100%);
  border: 4px solid #1a1025;
  border-radius: 4px;
  box-shadow: inset 0 0 15px #ffc285, 0 0 25px #ffb07a;
  animation: nc-glow 8s ease-in-out infinite alternate;
}
.scn-natacha-cherished-child .nc-cradle {
  position: absolute; bottom: 12%; left: 30%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #5a3a30 0%, #3a2025 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nc-rock 6s ease-in-out infinite;
}
.scn-natacha-cherished-child .nc-figure {
  position: absolute; bottom: 10%; left: 55%; width: 12%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #1a1025 0%, #0d0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-turn 12s ease-in-out infinite;
}
.scn-natacha-cherished-child .nc-hand {
  position: absolute; bottom: 25%; left: 62%; width: 5%; height: 8%;
  background: linear-gradient(180deg, #1a1025 0%, #0d0810 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top;
  animation: nc-reach 6s ease-in-out infinite;
}
@keyframes nc-dawn { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nc-glow { 0% { box-shadow: inset 0 0 10px #ffc285, 0 0 20px #ffb07a; } 50% { box-shadow: inset 0 0 25px #ffd5a0, 0 0 50px #ffb07a; } 100% { box-shadow: inset 0 0 15px #ffc285, 0 0 30px #ffb07a; } }
@keyframes nc-rock { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes nc-turn { 0% { transform: scaleX(1); } 25% { transform: scaleX(-1); } 50% { transform: scaleX(1); } 75% { transform: scaleX(-1); } 100% { transform: scaleX(1); } }
@keyframes nc-reach { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } }

.scn-three-pathways {
  background: linear-gradient(180deg, #ffc285 0%, #a06a5a 40%, #3a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a4a4a 0%, transparent 70%);
  position: relative;
}
.scn-three-pathways .tp-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffc285 0%, #e8a86a 50%, transparent 100%);
  animation: tp-dawn 20s ease-in-out infinite alternate;
}
.scn-three-pathways .tp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-three-pathways .tp-path1 {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a3a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(10deg);
  transform-origin: bottom left;
  animation: tp-path 12s ease-in-out infinite;
}
.scn-three-pathways .tp-path2 {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a3a 100%);
  border-radius: 0 0 50% 50%;
  animation: tp-path 14s ease-in-out infinite 1s;
}
.scn-three-pathways .tp-path3 {
  position: absolute; bottom: 20%; right: 10%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a3a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  transform-origin: bottom right;
  animation: tp-path 16s ease-in-out infinite 2s;
}
.scn-three-pathways .tp-man {
  position: absolute; bottom: 25%; left: 50%; width: 8%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tp-stand 8s ease-in-out infinite;
}
.scn-three-pathways .tp-wall {
  position: absolute; right: 5%; top: 10%; width: 15%; height: 80%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a2a 100%);
  border-radius: 10% 10% 0 0;
  opacity: 0.6;
}
.scn-three-pathways .tp-tree {
  position: absolute; left: 10%; top: 15%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: tp-sway 20s ease-in-out infinite;
}
@keyframes tp-dawn { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tp-path { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } }
@keyframes tp-stand { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes tp-sway { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } }

.scn-examining-tree-trunk {
  background: linear-gradient(180deg, #ffc285 0%, #b07a5a 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 0%, #5a4a4a 0%, transparent 70%);
  position: relative;
}
.scn-examining-tree-trunk .tt-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffc285 0%, #e8a86a 50%, transparent 100%);
  animation: tt-dawn 18s ease-in-out infinite alternate;
}
.scn-examining-tree-trunk .tt-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-examining-tree-trunk .tt-trunk {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 70%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #4a3a3a 70%, #3a2a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
  animation: tt-breathe 10s ease-in-out infinite;
}
.scn-examining-tree-trunk .tt-man {
  position: absolute; bottom: 15%; left: 55%; width: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-bend 8s ease-in-out infinite;
}
.scn-examining-tree-trunk .tt-stone {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 6%;
  background: radial-gradient(ellipse, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-examining-tree-trunk .tt-clothes {
  position: absolute; bottom: 8%; left: 65%; width: 10%; height: 5%;
  background: linear-gradient(135deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(20deg);
  animation: tt-clothes 12s ease-in-out infinite;
}
.scn-examining-tree-trunk .tt-river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  filter: blur(2px);
  animation: tt-flow 20s linear infinite;
}
@keyframes tt-dawn { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tt-breathe { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes tt-bend { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } }
@keyframes tt-clothes { 0%, 100% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } }
@keyframes tt-flow { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

.scn-matrena-stops { background: linear-gradient(180deg,#1c1819 0%,#2a2220 40%,#3a2a24 100%), radial-gradient(ellipse at 50% 0%,#4a3228 0%,transparent 60%); }
.scn-matrena-stops .bg-walls { position:absolute; inset:0; background:linear-gradient(180deg,#1c1819 0%,#2a2220 100%); opacity:.85; }
.scn-matrena-stops .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg,#0f0c0a 0%,#1c1614 100%); border-radius:20% 20% 0 0; }
.scn-matrena-stops .table { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background:linear-gradient(180deg,#3a2a1e 0%,#1f1510 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.7); }
.scn-matrena-stops .lamp { position:absolute; bottom:25%; left:50%; width:8px; height:12px; margin-left:-4px; background:radial-gradient(circle,#e2b045 0%,#c87a2c 60%,#8a4018 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 32px 12px rgba(200,122,44,.5); animation:flicker-ms 2s ease-in-out infinite alternate; }
.scn-matrena-stops .figure-matrena { position:absolute; bottom:25%; left:35%; width:40px; height:80px; margin-left:-20px; background:linear-gradient(180deg,#2a2220 0%,#0f0c0a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:breathe-ms 4s ease-in-out infinite; }
.scn-matrena-stops .figure-rouletabille { position:absolute; bottom:25%; left:65%; width:45px; height:85px; margin-left:-22px; background:linear-gradient(180deg,#1c1819 0%,#0a0808 100%); border-radius:45% 45% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:lean-ms 5s ease-in-out infinite; }
.scn-matrena-stops .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.6) 100%); animation:shadow-sway-ms 6s ease-in-out infinite alternate; }
@keyframes flicker-ms { 0% { opacity:.8; box-shadow:0 0 24px 8px rgba(200,122,44,.4); } 50% { opacity:1; box-shadow:0 0 48px 18px rgba(200,122,44,.7); } 100% { opacity:.7; box-shadow:0 0 16px 4px rgba(200,122,44,.3); } }
@keyframes breathe-ms { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.01); } }
@keyframes lean-ms { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(3deg); } }
@keyframes shadow-sway-ms { 0% { transform:skewX(0deg); } 50% { transform:skewX(3deg); } 100% { transform:skewX(-1deg); } }

.scn-natacha-suspicion { background: linear-gradient(180deg,#1a1c1e 0%,#2a2426 40%,#1c1a1c 100%), radial-gradient(ellipse at 70% 50%,#3a2a2e 0%,transparent 60%); }
.scn-natacha-suspicion .bg-deep { position:absolute; inset:0; background:linear-gradient(180deg,#1a1c1e 0%,#0f0e10 100%); }
.scn-natacha-suspicion .window { position:absolute; right:10%; top:20%; width:80px; height:120px; background:linear-gradient(180deg,#4a5a6a 0%,#6a7a8a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5),0 0 32px rgba(74,90,106,.3); animation:window-light-ns 8s ease-in-out infinite alternate; }
.scn-natacha-suspicion .curtain { position:absolute; right:10%; top:20%; width:90px; height:130px; background:linear-gradient(180deg,#2a1a1a 0%,#1a0c0c 100%); border-radius:4px; opacity:.8; animation:curtain-sway-ns 12s ease-in-out infinite; }
.scn-natacha-suspicion .figure-natacha { position:absolute; bottom:25%; left:45%; width:50px; height:90px; margin-left:-25px; background:linear-gradient(180deg,#3a2a2e 0%,#1a1416 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:embrace-ns 6s ease-in-out infinite; }
.scn-natacha-suspicion .figure-other { position:absolute; bottom:25%; left:55%; width:40px; height:80px; margin-left:-20px; background:linear-gradient(180deg,#2a2a2a 0%,#141414 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:embrace-ns 6s ease-in-out infinite -3s; }
.scn-natacha-suspicion .motes { position:absolute; inset:0; background:radial-gradient(circle at 70% 50%,rgba(200,180,160,.1) 0%,transparent 50%); animation:dust-ns 20s linear infinite; }
@keyframes window-light-ns { 0%,100% { opacity:.6; } 50% { opacity:1; } }
@keyframes curtain-sway-ns { 0%,100% { transform:translateX(0); } 50% { transform:translateX(-4px); } }
@keyframes embrace-ns { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(1deg); } 75% { transform:translateY(1px) rotate(-1deg); } }
@keyframes dust-ns { 0% { transform:translateY(0) translateX(0); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform:translateY(-20px) translateX(-10px); opacity:0; } }

.scn-koupriane-sure { background: linear-gradient(180deg,#1e1c1a 0%,#2a2622 40%,#1a1816 100%), radial-gradient(ellipse at 30% 60%,#3a322a 0%,transparent 60%); }
.scn-koupriane-sure .bg-office { position:absolute; inset:0; background:linear-gradient(180deg,#1e1c1a 0%,#141210 100%); }
.scn-koupriane-sure .desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg,#3a3028 0%,#221c18 100%); border-radius:8px; box-shadow:0 4px 12px rgba(0,0,0,.7); }
.scn-koupriane-sure .figure-koupriane { position:absolute; bottom:25%; left:30%; width:55px; height:100px; margin-left:-27px; background:linear-gradient(180deg,#2a2622 0%,#12100e 100%); border-radius:45% 45% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:sit-ks 4s ease-in-out infinite alternate; }
.scn-koupriane-sure .lamp-desk { position:absolute; bottom:30%; left:50%; width:10px; height:16px; margin-left:-5px; background:radial-gradient(circle,#e2c045 0%,#c89a2c 60%,#8a6018 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 48px 24px rgba(200,154,44,.6); animation:glow-ks 3s ease-in-out infinite alternate; }
.scn-koupriane-sure .papers { position:absolute; bottom:15%; left:50%; width:60px; height:40px; margin-left:-30px; background:linear-gradient(180deg,#c8b89a 0%,#a8987a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:shuffle-ks 10s ease-in-out infinite; }
.scn-koupriane-sure .telephone { position:absolute; bottom:12%; left:70%; width:20px; height:30px; background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%); border-radius:50% 50% 10% 10%; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:hum-ks 5s ease-in-out infinite; }
@keyframes sit-ks { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(1deg); } 100% { transform:translateY(-2px) rotate(2deg); } }
@keyframes glow-ks { 0% { box-shadow:0 0 32px 12px rgba(200,154,44,.4); opacity:.8; } 50% { box-shadow:0 0 48px 20px rgba(200,154,44,.9); opacity:1; } 100% { box-shadow:0 0 64px 28px rgba(200,154,44,.5); opacity:.85; } }
@keyframes shuffle-ks { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(3deg); } }
@keyframes hum-ks { 0%,100% { transform:scale(1); opacity:.7; } 50% { transform:scale(1.02); opacity:1; } }

.scn-rouletabille-notes { background: linear-gradient(180deg,#1a1e22 0%,#222a30 40%,#14181c 100%), radial-gradient(ellipse at 50% 80%,#2a3a44 0%,transparent 60%); }
.scn-rouletabille-notes .bg-room { position:absolute; inset:0; background:linear-gradient(180deg,#1a1e22 0%,#0e1216 100%); }
.scn-rouletabille-notes .window-neva { position:absolute; top:10%; left:5%; right:40%; bottom:40%; background:linear-gradient(180deg,#4a6a7a 0%,#6a8a9a 30%,#3a5a6a 100%); border-radius:4px; box-shadow:inset 0 0 40px rgba(0,0,0,.4),0 0 20px rgba(74,106,122,.2); animation:neva-rn 15s linear infinite alternate; }
.scn-rouletabille-notes .desk { position:absolute; bottom:10%; left:0; right:0; height:30%; background:linear-gradient(180deg,#2a1e18 0%,#1a1210 100%); border-radius:12px 12px 0 0; box-shadow:0 -4px 20px rgba(0,0,0,.6); }
.scn-rouletabille-notes .notes { position:absolute; bottom:20%; left:10%; width:60%; height:15%; background:linear-gradient(180deg,#c8b89a 0%,#a8987a 50%,#c8b89a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:notes-rn 8s ease-in-out infinite; }
.scn-rouletabille-notes .magnifying-glass { position:absolute; bottom:30%; left:55%; width:30px; height:30px; background:radial-gradient(circle,rgba(200,220,240,.2) 0%,rgba(200,220,240,.1) 50%,#4a5a6a 51%,#2a3a4a 100%); border-radius:50%; box-shadow:0 0 12px rgba(0,0,0,.5); animation:glass-rn 12s ease-in-out infinite alternate; }
.scn-rouletabille-notes .inkwell { position:absolute; bottom:22%; left:75%; width:16px; height:20px; background:linear-gradient(180deg,#1a1a1a 0%,#0a0a0a 100%); border-radius:50% 50% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-rouletabille-notes .hands { position:absolute; bottom:18%; left:15%; width:40px; height:30px; background:radial-gradient(ellipse at 50% 100%,#c8a88a 0%,#a08060 100%); border-radius:40% 40% 20% 20%; animation:write-rn 4s ease-in-out infinite alternate; }
@keyframes neva-rn { 0% { background-position:0% 0%; } 50% { background-position:2% 8%; } 100% { background-position:0% 12%; } }
@keyframes notes-rn { 0%,100% { transform:translateY(0) scale(1); } 50% { transform:translateY(-4px) scale(1.02); } }
@keyframes glass-rn { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-5px) rotate(8deg); } 100% { transform:translateX(-10px) rotate(15deg); } }
@keyframes write-rn { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 50% { transform:translateX(4px) translateY(-2px) rotate(3deg); } 100% { transform:translateX(8px) translateY(-4px) rotate(5deg); } }

.scn-matrena-takes-vent{background:linear-gradient(180deg,#1a1a3e 0%,#2c2244 50%,#4a3a6e 100%),radial-gradient(ellipse at 30% 50%,#4a3a6e 0%,transparent 70%);}
.scn-matrena-takes-vent .room-bg{position:absolute;inset:0;background:linear-gradient(180deg,#141428,#20203a);}
.scn-matrena-takes-vent .vent-frame{position:absolute;right:20%;top:30%;width:15%;height:25%;border:3px solid #2a2a4e;background:#0a0a1a;border-radius:4px;}
.scn-matrena-takes-vent .vent-glass{position:absolute;right:20%;top:30%;width:15%;height:25%;background:radial-gradient(circle at 30% 30%,#4a6a8a 0%,#2a3a5a 60%,#0a1a2a 100%);opacity:0.7;animation:mtv-glow 4s ease-in-out infinite alternate;}
.scn-matrena-takes-vent .garden-path{position:absolute;right:22%;top:32%;width:11%;height:21%;background:linear-gradient(180deg,#3a5a3a,#1a2a1a);border-radius:50% 50% 0 0;filter:blur(1px);}
.scn-matrena-takes-vent .figure{position:absolute;right:18%;bottom:35%;width:8%;height:30%;background:linear-gradient(180deg,#1a1a2a,#0a0a1a);border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;animation:mtv-figure 3s ease-in-out infinite;}
.scn-matrena-takes-vent .curtain{position:absolute;right:15%;top:25%;width:10%;height:45%;background:linear-gradient(180deg,#3a2a3a,#2a1a2a);border-radius:0 20% 20% 0;animation:mtv-curtain 6s ease-in-out infinite alternate;}
.scn-matrena-takes-vent .shadow{position:absolute;left:10%;bottom:10%;width:40%;height:20%;background:radial-gradient(ellipse at 30% 50%,rgba(0,0,0,0.5),transparent);animation:mtv-shadow 4s ease-in-out infinite;}
@keyframes mtv-glow{0%{opacity:0.6;box-shadow:0 0 10px #4a6a8a}50%{opacity:0.9;box-shadow:0 0 20px #6a8aaa}100%{opacity:0.7;box-shadow:0 0 5px #4a6a8a}}
@keyframes mtv-figure{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-2px) rotate(2deg)}50%{transform:translateY(0) rotate(-1deg)}75%{transform:translateY(-1px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes mtv-curtain{0%{transform:scaleX(1)}50%{transform:scaleX(1.1)}100%{transform:scaleX(1)}}
@keyframes mtv-shadow{0%{opacity:0.4;transform:scaleX(1)}50%{opacity:0.7;transform:scaleX(1.05)}100%{opacity:0.5;transform:scaleX(1)}}

.scn-matrena-lives-for-general{background:linear-gradient(180deg,#1a1a2e 0%,#2c2c44 50%,#1a1a2e 100%),radial-gradient(ellipse at 50% 100%,#2c2c44 0%,transparent 80%);}
.scn-matrena-lives-for-general .room-wall{position:absolute;inset:0;background:linear-gradient(90deg,#14142a 0%,#1e1e32 50%,#14142a 100%);}
.scn-matrena-lives-for-general .door-frame{position:absolute;left:20%;top:10%;width:20%;height:70%;border:4px solid #2a2a3e;background:#0a0a1a;border-radius:4px 4px 0 0;}
.scn-matrena-lives-for-general .door-crack{position:absolute;left:22%;top:15%;width:16%;height:60%;background:radial-gradient(ellipse at 50% 50%,#4a4a6a 0%,#1a1a2a 70%);animation:mlg-crack 5s ease-in-out infinite;}
.scn-matrena-lives-for-general .figure{position:absolute;right:30%;bottom:20%;width:10%;height:40%;background:linear-gradient(180deg,#1a1a2a,#0a0a1a);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:mlg-figure 4s ease-in-out infinite;}
.scn-matrena-lives-for-general .lamp-glow{position:absolute;right:15%;top:50%;width:6%;height:6%;background:radial-gradient(circle,#c08040 0%,transparent 70%);border-radius:50%;box-shadow:0 0 30px 10px rgba(192,128,64,0.5);animation:mlg-lamp 3s ease-in-out infinite alternate;}
.scn-matrena-lives-for-general .shadow-floor{position:absolute;left:20%;bottom:0;width:60%;height:15%;background:radial-gradient(ellipse at 30% 0%,rgba(0,0,0,0.6),transparent);}
@keyframes mlg-crack{0%{opacity:0.6;transform:scaleY(0.95)}50%{opacity:0.9;transform:scaleY(1.02)}100%{opacity:0.7;transform:scaleY(1)}}
@keyframes mlg-figure{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(1deg)}50%{transform:translateY(0) rotate(-1deg)}75%{transform:translateY(-2px) rotate(0)}100%{transform:translateY(0) rotate(0)}}
@keyframes mlg-lamp{0%{opacity:0.7;box-shadow:0 0 20px 5px rgba(192,128,64,0.4)}50%{opacity:1;box-shadow:0 0 40px 15px rgba(192,128,64,0.6)}100%{opacity:0.8;box-shadow:0 0 30px 10px rgba(192,128,64,0.5)}}

.scn-rouletabille-arrives{background:linear-gradient(180deg,#f0e8d0 0%,#d8c8a8 50%,#b8a888 100%),radial-gradient(ellipse at 80% 20%,#fff0d0 0%,transparent 60%);}
.scn-rouletabille-arrives .room-bright{position:absolute;inset:0;background:linear-gradient(180deg,#e8dcc0,#d4c4a0);}
.scn-rouletabille-arrives .window{position:absolute;right:10%;top:5%;width:30%;height:80%;background:linear-gradient(135deg,#ffffff 0%,#d8e0f0 50%,#a0b8d0 100%);border-radius:8px;box-shadow:inset 0 0 40px rgba(255,255,255,0.5);animation:ra-window 8s ease-in-out infinite alternate;}
.scn-rouletabille-arrives .head{position:absolute;bottom:40%;left:40%;width:12%;height:22%;background:linear-gradient(180deg,#d4b88a,#c0a070);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;animation:ra-head 6s ease-in-out infinite;}
.scn-rouletabille-arrives .eye{position:absolute;bottom:46%;left:45%;width:3%;height:3%;background:radial-gradient(circle,#4a6a8a,#2a3a5a 70%);border-radius:50%;animation:ra-eye 2s ease-in-out infinite;}
.scn-rouletabille-arrives .hair{position:absolute;bottom:53%;left:38%;width:10%;height:10%;background:#1a1a2a;border-radius:70% 30% 0 0 / 80% 20% 0 0;}
.scn-rouletabille-arrives .body{position:absolute;bottom:20%;left:35%;width:20%;height:25%;background:linear-gradient(180deg,#2a3a3a,#1a2a2a);border-radius:20% 20% 40% 40% / 30% 30% 60% 60%;animation:ra-body 5s ease-in-out infinite;}
@keyframes ra-window{0%{opacity:0.8;transform:scale(1)}50%{opacity:1;transform:scale(1.01)}100%{opacity:0.9;transform:scale(0.99)}}
@keyframes ra-head{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(2deg)}100%{transform:translateY(0) rotate(-2deg)}}
@keyframes ra-eye{0%{transform:scale(1)}25%{transform:scale(0.1)}30%{transform:scale(1)}100%{transform:scale(1)}}
@keyframes ra-body{0%{transform:scaleY(1)}50%{transform:scaleY(1.02)}100%{transform:scaleY(1)}}

.scn-sturgeon-and-salad{background:linear-gradient(180deg,#f8e8c0 0%,#e8d4a0 50%,#d4bc80 100%),radial-gradient(ellipse at 50% 50%,#fff8e0 0%,transparent 70%);}
.scn-sturgeon-and-salad .table{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#8a6a4a,#6a4a2a);border-radius:20% 20% 0 0;}
.scn-sturgeon-and-salad .plate{position:absolute;bottom:25%;left:30%;width:40%;height:15%;background:radial-gradient(ellipse,#f0f0e8,#d0d0c8);border-radius:50%;}
.scn-sturgeon-and-salad .fish{position:absolute;bottom:28%;left:35%;width:25%;height:10%;background:linear-gradient(180deg,#d4a040,#b08030);border-radius:40% 60% 60% 40% / 50% 50% 50% 50%;animation:ss-fish 2s ease-in-out infinite;}
.scn-sturgeon-and-salad .salad{position:absolute;bottom:30%;left:55%;width:15%;height:12%;background:radial-gradient(ellipse,#6a8a3a,#4a6a2a);border-radius:60% 40% 40% 60%;}
.scn-sturgeon-and-salad .head{position:absolute;bottom:35%;right:25%;width:20%;height:25%;background:linear-gradient(180deg,#d4b88a,#c0a070);border-radius:45% 55% 50% 50% / 60% 60% 40% 40%;animation:ss-head 3s ease-in-out infinite;}
.scn-sturgeon-and-salad .mouth{position:absolute;bottom:28%;right:28%;width:8%;height:5%;background:linear-gradient(180deg,#c8553d,#a0461a);border-radius:50%;animation:ss-mouth 1s ease-in-out infinite;}
.scn-sturgeon-and-salad .hand{position:absolute;bottom:22%;right:18%;width:8%;height:18%;background:linear-gradient(180deg,#c0a070,#a08050);border-radius:30% 30% 20% 20%;animation:ss-hand 2.5s ease-in-out infinite;}
@keyframes ss-fish{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(5px) rotate(5deg)}100%{transform:translateX(0) rotate(-5deg)}}
@keyframes ss-head{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-5px) rotate(3deg)}50%{transform:translateY(0) rotate(-2deg)}75%{transform:translateY(-3px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes ss-mouth{0%{transform:scale(1)}50%{transform:scale(1.2) translateY(-2px)}100%{transform:scale(1)}}
@keyframes ss-hand{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(10deg)}100%{transform:translateY(0) rotate(0)}}

.scn-no-one-sick { background: linear-gradient(180deg, #f5e6d3 0%, #e3cbb0 100%), linear-gradient(90deg, rgba(180,100,50,0.1) 0%, transparent 50%, rgba(50,30,10,0.2) 100%); }
.scn-no-one-sick .bg-walls { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #fdf5ed 20%, #d6bca0 80%); }
.scn-no-one-sick .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b4c3a 0%, #3d281d 100%); }
.scn-no-one-sick .window-frame { position:absolute; top:5%; left:10%; width:40%; height:60%; border:12px solid #4a3020; background:radial-gradient(ellipse at 30% 50%, #fff8e6 0%, #aec6d9 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(255,255,240,0.6); }
.scn-no-one-sick .sunbeam { position:absolute; top:0; left:15%; width:35%; height:100%; background:linear-gradient(180deg, rgba(255,255,220,0.4) 0%, rgba(255,255,220,0) 100%); transform:skewX(-10deg); filter:blur(4px); animation:beam-nos 8s ease-in-out infinite alternate; }
.scn-no-one-sick .table { position:absolute; bottom:20%; left:50%; width:40%; height:8%; background:linear-gradient(180deg, #5a3d2b 0%, #2c1a10 100%); border-radius:4px; transform:translateX(-50%); }
.scn-no-one-sick .chair { position:absolute; bottom:28%; left:35%; width:8%; height:15%; background:linear-gradient(180deg, #4a3020 0%, #2c1a10 100%); border-radius:2px; transform:skewY(5deg); }
.scn-no-one-sick .shadow-figure { position:absolute; bottom:30%; right:15%; width:15%; height:50%; background:linear-gradient(180deg, #1a1110 0%, #0a0505 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform:scaleX(-1); animation:sway-nos 4s ease-in-out infinite; }
@keyframes beam-nos { 0% { opacity:0.6; transform:skewX(-12deg) translateX(0); } 50% { opacity:1; transform:skewX(-8deg) translateX(10px); } 100% { opacity:0.7; transform:skewX(-15deg) translateX(-5px); } }
@keyframes sway-nos { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(5px) rotate(2deg); } 100% { transform:translateX(-5px) rotate(-2deg); } }

.scn-little-fellow-right { background: linear-gradient(180deg, #ffe4b5 0%, #ffcc80 40%, #f8b195 70%, #a8d8a8 100%); }
.scn-little-fellow-right .bg-sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #fff8e1 0%, #ffd54f 100%); }
.scn-little-fellow-right .sun-glow { position:absolute; top:10%; left:50%; width:60%; height:60%; background:radial-gradient(circle, rgba(255,255,200,0.8) 0%, rgba(255,200,100,0.2) 40%, transparent 70%); transform:translateX(-50%); animation:pulse-lfr 6s ease-in-out infinite alternate; }
.scn-little-fellow-right .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #81c784 0%, #4caf50 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; }
.scn-little-fellow-right .figure-woman { position:absolute; bottom:22%; left:30%; width:20%; height:55%; background:linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bob-lfr 4s ease-in-out infinite; }
.scn-little-fellow-right .figure-child { position:absolute; bottom:20%; left:55%; width:12%; height:35%; background:linear-gradient(180deg, #8d6e63 0%, #4e342e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bob-lfr 3s ease-in-out infinite reverse; }
.scn-little-fellow-right .halo-child { position:absolute; bottom:45%; left:55%; width:20%; height:20%; background:radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 70%); transform:translate(-25%, -25%); animation:glow-lfr 3s ease-in-out infinite alternate; }
.scn-little-fellow-right .foliage { position:absolute; bottom:15%; left:5%; width:30%; height:40%; background:radial-gradient(ellipse at 50% 100%, #66bb6a 0%, transparent 70%); filter:blur(8px); animation:sway-lfr 7s ease-in-out infinite alternate; }
@keyframes pulse-lfr { 0% { transform:translateX(-50%) scale(0.9); opacity:0.8; } 50% { transform:translateX(-50%) scale(1.1); opacity:1; } 100% { transform:translateX(-50%) scale(0.95); opacity:0.9; } }
@keyframes bob-lfr { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(1deg); } 100% { transform:translateY(2px) rotate(-1deg); } }
@keyframes glow-lfr { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:1; transform:scale(1.2); } }
@keyframes sway-lfr { 0% { transform:rotate(-3deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(3deg); } }

.scn-item-revolutionary-letter { background: linear-gradient(135deg, #1e1e2f 0%, #2a2a40 50%, #0f0f15 100%), radial-gradient(ellipse at 20% 50%, #4a4a6a 0%, transparent 70%); }
.scn-item-revolutionary-letter .bg-dark { position:absolute; inset:0; background:linear-gradient(180deg, #151525 0%, #0a0a10 100%); }
.scn-item-revolutionary-letter .desk { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
.scn-item-revolutionary-letter .letter { position:absolute; bottom:25%; left:50%; width:55%; height:35%; background:linear-gradient(135deg, #fdf5e6 0%, #eaddc5 100%); transform:translateX(-50%) rotate(-5deg); border-radius:2px; box-shadow:0 8px 24px rgba(0,0,0,0.6); animation:rustle-irl 5s ease-in-out infinite; }
.scn-item-revolutionary-letter .hand { position:absolute; bottom:20%; left:30%; width:25%; height:45%; background:linear-gradient(180deg, #d4b59a 0%, #8a6552 100%); border-radius:40% 60% 50% 50% / 60% 70% 40% 40%; transform-origin:bottom left; animation:tremble-irl 3s ease-in-out infinite; }
.scn-item-revolutionary-letter .seal { position:absolute; bottom:40%; left:65%; width:12%; height:8%; background:radial-gradient(circle, #b85c3a 0%, #702243 100%); border-radius:50%; box-shadow:0 0 15px 5px rgba(184,92,58,0.4); animation:burn-irl 4s ease-in-out infinite alternate; }
.scn-item-revolutionary-letter .shadow { position:absolute; bottom:25%; left:40%; width:50%; height:40%; background:linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 70%); transform:rotate(10deg); filter:blur(8px); animation:shift-irl 6s ease-in-out infinite; }
@keyframes rustle-irl { 0% { transform:translateX(-50%) rotate(-5deg) scale(1); } 50% { transform:translateX(-48%) rotate(-3deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-7deg) scale(1); } }
@keyframes tremble-irl { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-2deg) translateY(2px); } }
@keyframes burn-irl { 0% { box-shadow:0 0 10px 2px rgba(184,92,58,0.3); transform:scale(1); } 50% { box-shadow:0 0 25px 10px rgba(184,92,58,0.6); transform:scale(1.1); } 100% { box-shadow:0 0 15px 5px rgba(184,92,58,0.4); transform:scale(0.95); } }
@keyframes shift-irl { 0% { transform:rotate(10deg) translateX(0); opacity:0.8; } 50% { transform:rotate(12deg) translateX(10px); opacity:1; } 100% { transform:rotate(8deg) translateX(-5px); opacity:0.7; } }

.scn-little-chapel-guards { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); }
.scn-little-chapel-guards .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #4fa8d4 0%, #87ceeb 100%); }
.scn-little-chapel-guards .sun { position:absolute; top:5%; left:60%; width:15%; height:15%; background:radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; animation:shimmer-lcg 8s ease-in-out infinite alternate; }
.scn-little-chapel-guards .clouds { position:absolute; top:10%; left:0; right:0; height:30%; background:radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.6) 0%, transparent 50%), radial-gradient(ellipse at 80% 30%, rgba(255,255,255,0.4) 0%, transparent 40%); filter:blur(12px); animation:drift-lcg 25s linear infinite; }
.scn-little-chapel-guards .palace { position:absolute; bottom:35%; left:20%; width:60%; height:30%; background:linear-gradient(180deg, #fdf5e6 0%, #d4c4a8 100%); border-radius:4px; box-shadow:0 8px 16px rgba(0,0,0,0.2); animation:bob-lcg 6s ease-in-out infinite; }
.scn-little-chapel-guards .bridge { position:absolute; bottom:35%; left:5%; width:90%; height:10%; background:linear-gradient(180deg, #a0a0a0 0%, #606060 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; }
.scn-little-chapel-guards .water-back { position:absolute; bottom:15%; left:0; right:0; height:25%; background:linear-gradient(180deg, #5fa8d3 0%, #3a7dab 100%); }
.scn-little-chapel-guards .water-front { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #4a90a4 0%, #2c5f6e 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; animation:wave-lcg 7s ease-in-out infinite; }
.scn-little-chapel-guards .sparkle { position:absolute; bottom:25%; left:10%; width:80%; height:5%; background:linear-gradient(90deg, transparent, rgba(255,255,255,0.8) 10%, transparent 20%, rgba(255,255,255,0.6) 30%, transparent 40%); filter:blur(2px); animation:shimmer-lcg 3s ease-in-out infinite alternate; }
@keyframes shimmer-lcg { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(1); } }
@keyframes drift-lcg { 0% { transform:translateX(0); } 50% { transform:translateX(-25%); } 100% { transform:translateX(-50%); } }
@keyframes bob-lcg { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes wave-lcg { 0% { border-radius:60% 40% 0 0 / 40% 30% 0 0; } 50% { border-radius:50% 50% 0 0 / 30% 40% 0 0; } 100% { border-radius:70% 30% 0 0 / 50% 20% 0 0; } }

.scn-matrena-waits-anxiously{background:linear-gradient(180deg,#f2e6c9,#c9b384),radial-gradient(ellipse at 30% 50%,#fff4d6,transparent 60%);}
.scn-matrena-waits-anxiously .wall{position:absolute;inset:0 0 40% 0;background:linear-gradient(90deg,#b8a58a,#d4c2a8,#b8a58a);}
.scn-matrena-waits-anxiously .stairs{position:absolute;bottom:20%;left:40%;width:20%;height:40%;background:repeating-linear-gradient(0deg,#8b7355 0 4px,#a0896a 4px 8px);}
.scn-matrena-waits-anxiously .railing{position:absolute;bottom:35%;left:38%;width:24%;height:5%;background:#6b5740;border-radius:2px;}
.scn-matrena-waits-anxiously .figure{position:absolute;bottom:30%;left:45%;width:20px;height:50px;background:linear-gradient(180deg,#3a3028,#2a221c);border-radius:50%50%40%40%/60%60%40%40%;animation:mw1-f 4s ease-in-out infinite;}
.scn-matrena-waits-anxiously .window{position:absolute;top:10%;right:20%;width:80px;height:100px;background:linear-gradient(180deg,#b0d4f0,#e0f0ff);border:6px solid #6b5740;border-radius:4px;}
.scn-matrena-waits-anxiously .sunbeam{position:absolute;top:10%;left:30%;width:10%;height:60%;background:linear-gradient(180deg,rgba(255,255,200,0.4),transparent);transform:rotate(15deg);animation:mw1-s 6s ease-in-out infinite alternate;}
.scn-matrena-waits-anxiously .clock{position:absolute;top:15%;left:10%;width:30px;height:30px;background:radial-gradient(circle,#8b7355,#5a4a35 70%);border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,0.3);animation:mw1-c 2s ease-in-out infinite;}
@keyframes mw1-f{0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-2px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes mw1-s{0%{opacity:.3;transform:rotate(12deg) scaleX(1)}50%{opacity:.7;transform:rotate(18deg) scaleX(1.2)}100%{opacity:.4;transform:rotate(15deg) scaleX(1)}}
@keyframes mw1-c{0%{transform:rotate(0)}25%{transform:rotate(10deg)}50%{transform:rotate(0)}75%{transform:rotate(-10deg)}100%{transform:rotate(0)}}

.scn-general-charming-humor{background:linear-gradient(180deg,#f7e8c8,#d9cba4),radial-gradient(ellipse at 50% 30%,#ffe6a0,transparent 60%);}
.scn-general-charming-humor .chair{position:absolute;bottom:10%;left:20%;width:50%;height:60%;background:linear-gradient(180deg,#8b6f4a,#6a523a);border-radius:20%20%10%10%/40%40%20%20%;box-shadow:0 8px 12px rgba(0,0,0,0.3);animation:gc2-ch 8s ease-in-out infinite;}
.scn-general-charming-humor .figure{position:absolute;bottom:25%;left:35%;width:16%;height:35%;background:linear-gradient(180deg,#d4b896,#b89a78);border-radius:50%50%40%40%/60%60%40%40%;animation:gc2-fi 5s ease-in-out infinite;}
.scn-general-charming-humor .window{position:absolute;top:10%;right:5%;width:40%;height:50%;background:linear-gradient(180deg,#b8d8f0,#d8e8ff);border:8px solid #6b5740;border-radius:4px;}
.scn-general-charming-humor .curtain{position:absolute;top:8%;right:8%;width:10%;height:55%;background:linear-gradient(180deg,#c9a882,#a88b66);border-radius:4px;animation:gc2-cu 12s ease-in-out infinite alternate;}
.scn-general-charming-humor .table{position:absolute;bottom:10%;left:5%;width:30%;height:20%;background:linear-gradient(180deg,#7a5e40,#5a4430);border-radius:4px;}
.scn-general-charming-humor .glass{position:absolute;bottom:18%;left:8%;width:8%;height:12%;background:linear-gradient(180deg,#e0d8c8,#c0b8a8);border-radius:0 0 30%30%/0 0 60%60%;box-shadow:0 0 8px rgba(255,255,200,0.4);animation:gc2-gl 3s ease-in-out infinite;}
.scn-general-charming-humor .sunpatch{position:absolute;bottom:5%;left:20%;width:30%;height:15%;background:radial-gradient(ellipse,rgba(255,240,180,0.5),transparent 70%);animation:gc2-sp 20s linear infinite;}
@keyframes gc2-ch{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes gc2-fi{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes gc2-cu{0%{transform:translateX(0)}50%{transform:translateX(5px)}100%{transform:translateX(0)}}
@keyframes gc2-gl{0%{box-shadow:0 0 6px rgba(255,255,200,0.3)}50%{box-shadow:0 0 14px rgba(255,255,200,0.7)}100%{box-shadow:0 0 6px rgba(255,255,200,0.3)}}
@keyframes gc2-sp{0%{transform:translateX(0);opacity:.4}50%{transform:translateX(10px);opacity:.6}100%{transform:translateX(0);opacity:.4}}

.scn-dreadful-dreams{background:linear-gradient(180deg,#f2e8d8,#d9cfb8),radial-gradient(ellipse at 50% 70%,#fff4e0,transparent 60%);}
.scn-dreadful-dreams .wall{position:absolute;inset:0 0 30% 0;background:linear-gradient(180deg,#e6d9c4,#c4b59e);}
.scn-dreadful-dreams .bed{position:absolute;bottom:0;left:10%;width:80%;height:40%;background:linear-gradient(180deg,#b8a58a,#9a876a);border-radius:8%;}
.scn-dreadful-dreams .pillow{position:absolute;bottom:28%;left:20%;width:20%;height:12%;background:linear-gradient(180deg,#f0e6d0,#e0d6c0);border-radius:40%;animation:dd3-pi 4s ease-in-out infinite;}
.scn-dreadful-dreams .figure{position:absolute;bottom:15%;left:25%;width:14%;height:25%;background:linear-gradient(180deg,#c4b8a0,#a89880);border-radius:50%50%40%40%/60%60%40%40%;animation:dd3-fi 4s ease-in-out infinite;}
.scn-dreadful-dreams .window{position:absolute;top:5%;right:5%;width:30%;height:40%;background:linear-gradient(180deg,#b8d8f0,#d8e8ff);border:6px solid #a0896a;border-radius:4px;}
.scn-dreadful-dreams .sunbeam{position:absolute;top:3%;right:15%;width:20%;height:70%;background:linear-gradient(180deg,rgba(255,250,200,0.3),transparent);transform:rotate(-10deg);animation:dd3-sb 10s ease-in-out infinite alternate;}
.scn-dreadful-dreams .curtain{position:absolute;top:3%;right:2%;width:8%;height:40%;background:linear-gradient(180deg,#d4c0a8,#b09a82);border-radius:4px;animation:dd3-cu 15s ease-in-out infinite alternate;}
@keyframes dd3-pi{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
@keyframes dd3-fi{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(1deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes dd3-sb{0%{opacity:.2;transform:rotate(-12deg)}50%{opacity:.5;transform:rotate(-8deg)}100%{opacity:.3;transform:rotate(-10deg)}}
@keyframes dd3-cu{0%{transform:translateX(0)}50%{transform:translateX(3px)}100%{transform:translateX(0)}}

.scn-clear-away-police{background:linear-gradient(180deg,#8fc0e8,#b8d8f0 40%,#e0f0ff),radial-gradient(ellipse at 50% 0%,#fff8e8,transparent 50%);}
.scn-clear-away-police .sky{position:absolute;inset:0;background:linear-gradient(180deg,#6ea8d0,transparent);}
.scn-clear-away-police .path{position:absolute;bottom:0;left:20%;width:60%;height:30%;background:repeating-linear-gradient(90deg,#c8b89a 0 2px,#d4c4a8 2px 4px);transform:perspective(200px) rotateX(10deg);animation:cp4-pa 6s ease-in-out infinite alternate;}
.scn-clear-away-police .tree-left{position:absolute;bottom:20%;left:5%;width:15%;height:50%;background:linear-gradient(180deg,#3a6a3a,#2a4a2a);border-radius:40%40%0 0/60%60%0 0;animation:cp4-tr 8s ease-in-out infinite alternate;}
.scn-clear-away-police .tree-right{position:absolute;bottom:20%;right:5%;width:12%;height:45%;background:linear-gradient(180deg,#3a6a3a,#2a4a2a);border-radius:40%40%0 0/60%60%0 0;animation:cp4-tr 8s ease-in-out infinite alternate-reverse;}
.scn-clear-away-police .figure{position:absolute;bottom:15%;left:45%;width:12px;height:30px;background:linear-gradient(180deg,#3a3028,#2a221c);border-radius:50%50%40%40%/60%60%40%40%;animation:cp4-fi 5s ease-in-out infinite;}
.scn-clear-away-police .sun{position:absolute;top:10%;left:30%;width:40px;height:40px;background:radial-gradient(circle,#fff8d0,#ffe080 70%);border-radius:50%;box-shadow:0 0 30px rgba(255,224,128,0.5);animation:cp4-su 15s ease-in-out infinite alternate;}
.scn-clear-away-police .cloud{position:absolute;top:15%;right:20%;width:80px;height:20px;background:linear-gradient(180deg,rgba(255,255,255,0.6),rgba(255,255,255,0.1));border-radius:50%;filter:blur(4px);animation:cp4-cl 30s linear infinite;}
@keyframes cp4-pa{0%{transform:perspective(300px) rotateX(10deg) translateX(0)}50%{transform:perspective(300px) rotateX(10deg) translateX(5px)}100%{transform:perspective(300px) rotateX(10deg) translateX(0)}}
@keyframes cp4-tr{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}
@keyframes cp4-fi{0%{transform:translateX(0)}50%{transform:translateX(10px)}100%{transform:translateX(0)}}
@keyframes cp4-su{0%{transform:translateY(0)}50%{transform:translateY(-5px)}100%{transform:translateY(0)}}
@keyframes cp4-cl{0%{transform:translateX(0)}100%{transform:translateX(120vw)}}

.scn-rouletabille-on-legs {
  background: linear-gradient(90deg, #1a1210 0%, #2a1e1a 30%, #3a2a20 50%, #2a1e1a 70%, #1a1210 100%),
              radial-gradient(ellipse at 50% 80%, #c08040 0%, transparent 60%);
}
.scn-rouletabille-on-legs .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-top: 2px solid #3a2a20;
}
.scn-rouletabille-on-legs .corridor-wall-l {
  position: absolute; bottom: 40%; left: 0; width: 30%; top: 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e1a 100%);
  transform: skewY(3deg);
}
.scn-rouletabille-on-legs .corridor-wall-r {
  position: absolute; bottom: 40%; right: 0; width: 30%; top: 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e1a 100%);
  transform: skewY(-3deg);
}
.scn-rouletabille-on-legs .corridor-door {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a20 100%);
  border: 2px solid #2a1e1a;
  border-radius: 4px;
}
.scn-rouletabille-on-legs .figure-back {
  position: absolute; bottom: 42%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ol-walk 4s ease-in-out infinite;
}
.scn-rouletabille-on-legs .lamp-glow {
  position: absolute; top: 20%; left: 45%; width: 60px; height: 60px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(192,128,64,0.8) 0%, rgba(192,128,64,0.2) 40%, transparent 70%);
  animation: ol-glow 3s ease-in-out infinite alternate;
}
.scn-rouletabille-on-legs .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 50%;
  animation: ol-shadow 4s ease-in-out infinite;
}
.scn-rouletabille-on-legs .picture-frame {
  position: absolute; bottom: 50%; left: 10%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a20);
  border: 1px solid #1a1210;
  transform: skewY(3deg);
  animation: ol-frame 6s ease-in-out infinite;
}
@keyframes ol-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  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 ol-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes ol-shadow {
  0% { width: 80px; opacity: 0.4; }
  50% { width: 90px; opacity: 0.6; }
  100% { width: 80px; opacity: 0.4; }
}
@keyframes ol-frame {
  0% { transform: skewY(3deg) scale(1); }
  50% { transform: skewY(3.5deg) scale(1.02); }
  100% { transform: skewY(3deg) scale(1); }
}

.scn-onoto-carriage {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 60%);
}
.scn-onoto-carriage .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
}
.scn-onoto-carriage .carriage-body {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-onoto-carriage .carriage-wheel {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 30px;
  border-radius: 50%;
  border: 3px solid #2a2a3a;
  background: radial-gradient(circle, #1a1a2e 0%, #0a0a1a 60%, transparent 70%);
  animation: oc-wheel 2s linear infinite;
}
.scn-onoto-carriage .horse-silhouette {
  position: absolute; bottom: 30%; left: 55%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: oc-horse 1s ease-in-out infinite alternate;
}
.scn-onoto-carriage .figure-rouletabille {
  position: absolute; bottom: 38%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oc-figure 2s ease-in-out infinite;
}
.scn-onoto-carriage .figure-onoto {
  position: absolute; bottom: 38%; left: 40%; width: 13px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oc-figure 2s ease-in-out infinite reverse;
}
.scn-onoto-carriage .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
}
.scn-onoto-carriage .moon-glow {
  position: absolute; top: 15%; left: 70%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,200,255,0.3) 0%, transparent 70%);
  animation: oc-moon 8s ease-in-out infinite alternate;
}
@keyframes oc-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes oc-horse {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes oc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes oc-moon {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.8); }
}

.scn-dizzy-pace {
  background: linear-gradient(180deg, #0a0a14 0%, #12121e 30%, #1a1a2a 60%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-dizzy-pace .rush-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #12121e 100%);
  animation: dp-sky 10s linear infinite;
}
.scn-dizzy-pace .carriage-seat {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 20% 20% 0 0;
}
.scn-dizzy-pace .coachman {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dp-coachman 0.8s ease-in-out infinite alternate;
}
.scn-dizzy-pace .figure-r {
  position: absolute; bottom: 38%; left: 45%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dp-fig 0.8s ease-in-out infinite alternate;
}
.scn-dizzy-pace .horse-left {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: dp-horse 0.6s ease-in-out infinite alternate;
}
.scn-dizzy-pace .horse-right {
  position: absolute; bottom: 30%; left: 70%; width: 40px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: dp-horse 0.6s ease-in-out infinite alternate-reverse;
  animation-delay: 0.3s;
}
.scn-dizzy-pace .road-streak {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 5px;
  background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 10px, transparent 10px, transparent 20px);
  animation: dp-streak 2s linear infinite;
}
.scn-dizzy-pace .speed-lines {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(255,255,255,0.02) 30px, rgba(255,255,255,0.02) 31px);
  animation: dp-speed 1s linear infinite;
}
@keyframes dp-sky {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes dp-coachman {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dp-fig {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dp-horse {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes dp-streak {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}
@keyframes dp-speed {
  0% { transform: translateX(0); }
  100% { transform: translateX(100%); }
}

.scn-snake-through-reeds {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 60%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 20%, #aaccee 0%, transparent 60%);
}
.scn-snake-through-reeds .moonlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%);
  animation: sr-sky 15s ease-in-out infinite alternate;
}
.scn-snake-through-reeds .moon {
  position: absolute; top: 12%; left: 70%; width: 30px; height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle, #eeffff 0%, #aaccee 60%, transparent 80%);
  box-shadow: 0 0 20px 5px rgba(170,204,238,0.5);
  animation: sr-moon 12s ease-in-out infinite alternate;
}
.scn-snake-through-reeds .reed-fore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #1a3a2a 0px, #1a3a2a 8px, transparent 8px, transparent 20px);
  clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
  filter: blur(1px);
  animation: sr-reed 4s ease-in-out infinite;
}
.scn-snake-through-reeds .reed-mid {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 60%;
  background: repeating-linear-gradient(90deg, #2a4a3a 0px, #2a4a3a 5px, transparent 5px, transparent 15px);
  clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 0% 0%);
  filter: blur(2px);
  opacity: 0.6;
  animation: sr-reed 5s ease-in-out infinite reverse;
}
.scn-snake-through-reeds .figure-snake {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: sr-snake 3s ease-in-out infinite;
}
.scn-snake-through-reeds .villa-silhouette {
  position: absolute; bottom: 30%; left: 15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.05);
}
.scn-snake-through-reeds .birch-tree {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(1px);
}
.scn-snake-through-reeds .river-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  animation: sr-water 8s ease-in-out infinite alternate;
}
.scn-snake-through-reeds .web-fragments {
  position: absolute; top: 40%; left: 35%; width: 30px; height: 30px;
  border: 1px solid rgba(170,204,238,0.3);
  border-radius: 50%;
  background: transparent;
  transform: rotate(45deg);
  animation: sr-web 6s ease-in-out infinite;
}
@keyframes sr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sr-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 5px rgba(170,204,238,0.5); }
  50% { transform: translateY(-2px) scale(1.02); box-shadow: 0 0 30px 8px rgba(170,204,238,0.6); }
  100% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 5px rgba(170,204,238,0.5); }
}
@keyframes sr-reed {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes sr-snake {
  0% { transform: translateX(0) translateY(0) rotate(-10deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(-5deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(32px) translateY(0) rotate(10deg); }
}
@keyframes sr-water {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
@keyframes sr-web {
  0% { transform: rotate(45deg) scale(1); opacity: 0.3; }
  50% { transform: rotate(60deg) scale(1.1); opacity: 0.5; }
  100% { transform: rotate(45deg) scale(1); opacity: 0.3; }
}

.scn-after-michael-death {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 40%, #9c8c70 100%), radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 50%);
}
.scn-after-michael-death .bg-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%);
}
.scn-after-michael-death .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #8c7c60 0%, #6c5c40 100%);
}
.scn-after-michael-death .body {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 80px; background: #2a2a2a; border-radius: 40% 40% 20% 20%; transform: rotate(-10deg);
}
.scn-after-michael-death .door {
  position: absolute; bottom: 30%; right: 10%; width: 40px; height: 70px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius: 4px; animation: amd-door 6s ease-in-out infinite alternate;
}
.scn-after-michael-death .window {
  position: absolute; bottom: 40%; left: 15%; width: 50px; height: 60px; background: radial-gradient(circle, #fff0d0 0%, #f0e0c0 100%); border: 2px solid #6c5c40; box-shadow: 0 0 30px 10px #fff0d0, 0 0 60px 20px rgba(255,240,208,0.5); animation: amd-window 2s ease-in-out infinite alternate;
}
.scn-after-michael-death .lamp {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd080, #c08040); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.5); animation: amd-lamp 1.5s ease-in-out infinite alternate;
}
.scn-after-michael-death .shadow {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 10px; background: rgba(0,0,0,0.3); transform: skewX(-20deg); filter: blur(3px); animation: amd-shadow 10s linear infinite;
}
@keyframes amd-window {
  0% { opacity: 0.8; box-shadow: 0 0 30px 10px #fff0d0, 0 0 60px 20px rgba(255,240,208,0.5); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #fff0d0, 0 0 80px 30px rgba(255,240,208,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 30px 10px #fff0d0, 0 0 60px 20px rgba(255,240,208,0.5); }
}
@keyframes amd-lamp {
  0% { transform: scale(1); box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.5); }
  50% { transform: scale(1.1); box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.5); }
}
@keyframes amd-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes amd-shadow {
  0% { transform: translateX(0) skewX(-20deg); opacity: 0.3; }
  50% { transform: translateX(10px) skewX(-20deg); opacity: 0.5; }
  100% { transform: translateX(0) skewX(-20deg); opacity: 0.3; }
}

.scn-annouchka-signature {
  background: linear-gradient(180deg, #c8b08a 0%, #a08868 100%), radial-gradient(ellipse at 50% 50%, #ffffff 0%, transparent 60%);
}
.scn-annouchka-signature .desk {
  position: absolute; top: 50%; left: 10%; right: 10%; bottom: 0; background: linear-gradient(180deg, #a08868, #705840); border-radius: 8px 8px 0 0;
}
.scn-annouchka-signature .paper {
  position: absolute; top: 55%; left: 30%; width: 50px; height: 70px; background: linear-gradient(135deg, #fff0e0, #f0e0c0); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-annouchka-signature .hand {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 50px; background: #2a2a2a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(30deg); animation: as-hand 3s ease-in-out infinite;
}
.scn-annouchka-signature .pen {
  position: absolute; bottom: 22%; right: 32%; width: 4px; height: 40px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 0 0 50% 50%; transform: rotate(-20deg); transform-origin: bottom; animation: as-pen 3s ease-in-out infinite;
}
.scn-annouchka-signature .ink-bottle {
  position: absolute; bottom: 18%; right: 15%; width: 12px; height: 14px; background: linear-gradient(180deg, #1a2a3a, #0a1a2a); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-annouchka-signature .drop {
  position: absolute; top: 50%; right: 33%; width: 4px; height: 4px; background: #1a2a3a; border-radius: 50%; animation: as-drop 4s ease-in-out infinite;
}
.scn-annouchka-signature .lamp {
  position: absolute; top: 15%; left: 50%; width: 10px; height: 10px; background: radial-gradient(circle, #ffd080, #c08040); border-radius: 50%; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3); animation: as-lamp 2s ease-in-out infinite alternate;
}
@keyframes as-hand {
  0% { transform: translate(0, 0) rotate(30deg); }
  50% { transform: translate(10px, -5px) rotate(25deg); }
  100% { transform: translate(0, 0) rotate(30deg); }
}
@keyframes as-pen {
  0% { transform: translate(0, 0) rotate(-20deg); }
  50% { transform: translate(15px, -5px) rotate(-25deg); }
  100% { transform: translate(0, 0) rotate(-20deg); }
}
@keyframes as-drop {
  0% { transform: translateY(0); opacity: 0; }
  10% { opacity: 1; }
  90% { transform: translateY(80px); opacity: 1; }
  100% { transform: translateY(80px); opacity: 0; }
}
@keyframes as-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.3); }
}

.scn-tsar-still-doubts {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #fff0d0 0%, transparent 50%);
}
.scn-tsar-still-doubts .bg-left {
  position: absolute; inset: 0 70% 0 0; background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
}
.scn-tsar-still-doubts .bg-right {
  position: absolute; inset: 0 0 0 70%; background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
}
.scn-tsar-still-doubts .window {
  position: absolute; bottom: 20%; left: 30%; right: 30%; top: 10%; background: radial-gradient(ellipse at 50% 50%, #fff0d0 0%, #f0e0c0 100%); border: 2px solid #6c5c40; box-shadow: 0 0 60px 20px #fff0d0, 0 0 120px 40px rgba(255,240,208,0.5); animation: tsd-window 3s ease-in-out infinite alternate;
}
.scn-tsar-still-doubts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5c4c30, #3c2c18);
}
.scn-tsar-still-doubts .table {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 10px; background: linear-gradient(180deg, #8c7c60, #6c5c40); border-radius: 2px; animation: tsd-table 8s ease-in-out infinite alternate;
}
.scn-tsar-still-doubts .tsar {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 70px; background: #1a1a1a; border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: rotate(2deg); animation: tsd-tsar 5s ease-in-out infinite alternate;
}
.scn-tsar-still-doubts .roulet {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 60px; background: #1a1a1a; border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: rotate(-1deg); animation: tsd-roulet 5s ease-in-out infinite alternate;
}
@keyframes tsd-window {
  0% { opacity: 0.9; box-shadow: 0 0 60px 20px #fff0d0, 0 0 120px 40px rgba(255,240,208,0.5); }
  50% { opacity: 1; box-shadow: 0 0 80px 30px #fff0d0, 0 0 160px 60px rgba(255,240,208,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 60px 20px #fff0d0, 0 0 120px 40px rgba(255,240,208,0.5); }
}
@keyframes tsd-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tsd-tsar {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes tsd-roulet {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-reasoning-poison-theory {
  background: linear-gradient(180deg, #d4c4a8 0%, #c4b498 100%), radial-gradient(ellipse at 50% 50%, #ffffff 0%, transparent 60%);
}
.scn-reasoning-poison-theory .desk {
  position: absolute; top: 40%; left: 10%; right: 10%; bottom: 0; background: linear-gradient(180deg, #b8a88c, #9c8c70); border-radius: 8px 8px 0 0;
}
.scn-reasoning-poison-theory .paper1 {
  position: absolute; top: 45%; left: 25%; width: 40px; height: 50px; background: linear-gradient(135deg, #fff0e0, #f0e0c0); border-radius: 2px; transform: rotate(3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: rpt-paper1 15s ease-in-out infinite alternate;
}
.scn-reasoning-poison-theory .paper2 {
  position: absolute; top: 50%; left: 50%; width: 45px; height: 55px; background: linear-gradient(135deg, #fff0e0, #f0e0c0); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: rpt-paper2 18s ease-in-out infinite alternate;
}
.scn-reasoning-poison-theory .paper3 {
  position: absolute; top: 48%; left: 70%; width: 35px; height: 45px; background: linear-gradient(135deg, #fff0e0, #f0e0c0); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.15); animation: rpt-paper3 12s ease-in-out infinite alternate;
}
.scn-reasoning-poison-theory .lamp {
  position: absolute; top: 30%; left: 50%; width: 12px; height: 12px; background: radial-gradient(circle, #ffd080, #c08040); border-radius: 50%; box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.3); animation: rpt-lamp 6s ease-in-out infinite alternate;
}
.scn-reasoning-poison-theory .hands {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 20px; background: #2a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.8); animation: rpt-hands 10s ease-in-out infinite alternate;
}
.scn-reasoning-poison-theory .shadow {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 8px; background: rgba(0,0,0,0.2); filter: blur(4px); animation: rpt-shadow 14s ease-in-out infinite alternate;
}
@keyframes rpt-paper1 {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes rpt-paper2 {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes rpt-paper3 {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes rpt-lamp {
  0% { opacity: 0.9; box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px #ffd080, 0 0 100px 40px rgba(255,208,128,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.3); }
}
@keyframes rpt-hands {
  0% { transform: scaleX(0.8) translateY(0); }
  50% { transform: scaleX(0.85) translateY(-1px); }
  100% { transform: scaleX(0.8) translateY(0); }
}
@keyframes rpt-shadow {
  0% { transform: scaleY(1); opacity: 0.2; }
  50% { transform: scaleY(1.1); opacity: 0.3; }
  100% { transform: scaleY(1); opacity: 0.2; }
}

.scn-marshal-at-kiosque {
  background: 
    linear-gradient(180deg, #ffe9c4 0%, #ffd28a 30%, #d9a362 60%, #b2834a 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,250,210,0.6) 0%, transparent 60%);
}
.scn-marshal-at-kiosque .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f2dbb7 0%, #e8c48c 40%, #cba06b 100%);
  animation: mk-bg 12s ease-in-out infinite alternate;
}
.scn-marshal-at-kiosque .sunray {
  position: absolute; top: 10%; left: -20%; width: 50%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 70%);
  clip-path: polygon(10% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: mk-ray 8s ease-in-out infinite alternate;
}
.scn-marshal-at-kiosque .shadow {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(0deg, #4a3520 0%, transparent 100%);
  filter: blur(6px);
  animation: mk-shadow 5s ease-in-out infinite alternate;
}
.scn-marshal-at-kiosque .table {
  position: absolute; bottom: 12%; left: 50%; width: 180px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mk-table 3s ease-in-out infinite;
}
.scn-marshal-at-kiosque .box {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: #ede6d6;
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(180,140,100,0.4), inset 0 1px 3px rgba(0,0,0,0.1);
  animation: mk-box 6s ease-in-out infinite alternate;
}
.scn-marshal-at-kiosque .pink-string {
  position: absolute; bottom: 24%; left: calc(50% - 10px);
  width: 20px; height: 3px;
  background: #d67a6a;
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 0 4px #b86a5a;
  animation: mk-string 4s ease-in-out infinite;
}
.scn-marshal-at-kiosque .marshal {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mk-marshal 5s ease-in-out infinite;
}
.scn-marshal-at-kiosque .dust {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,235,180,0.6);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 20px 10px 8px 2px rgba(255,235,180,0.3), -10px 30px 12px 4px rgba(255,235,180,0.2);
  animation: mk-dust 9s linear infinite;
}

@keyframes mk-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mk-ray { 0% { opacity: 0.3; transform: translateX(-20px) rotate(-2deg); } 50% { opacity: 0.6; transform: translateX(10px) rotate(0deg); } 100% { opacity: 0.4; transform: translateX(-10px) rotate(1deg); } }
@keyframes mk-shadow { 0% { opacity: 0.5; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(0deg); } 100% { opacity: 0.6; transform: skewX(1deg); } }
@keyframes mk-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) scaleY(0.98); } }
@keyframes mk-box { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes mk-string { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } }
@keyframes mk-marshal { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(-1px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mk-dust { 0% { opacity: 0; transform: translateY(0) scale(1); } 20% { opacity: 1; } 80% { opacity: 0.8; } 100% { opacity: 0; transform: translateY(-80px) scale(0.5); } }

/* promise-to-sleep */
.scn-promise-to-sleep {
  background:
    linear-gradient(180deg, #fef9e0 0%, #f8e8b0 30%, #e8c880 50%, #c8a060 70%, #a08040 100%),
    radial-gradient(ellipse at 30% 50%, #fff8d0 0%, transparent 60%);
}
.scn-promise-to-sleep .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e0b0 0%, #dcc090 100%);
  border-bottom: 2px solid #b89870;
}
.scn-promise-to-sleep .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08040 0%, #7a5a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-promise-to-sleep .window {
  position: absolute; top: 12%; left: 18%; width: 28%; height: 38%;
  background: radial-gradient(ellipse at 50% 100%, #fffbe0 0%, #f0d888 60%, transparent 100%);
  border: 4px solid #b89870;
  border-radius: 4px;
  box-shadow: inset 0 0 40px 20px #fffaee, 0 0 60px 10px #ffe880;
  animation: sun-pulse-ps 6s ease-in-out infinite alternate;
}
.scn-promise-to-sleep .bed {
  position: absolute; bottom: 30%; left: 35%; width: 40%; height: 22%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 50%, #9a7a4a 100%);
  border-radius: 12px 12px 6px 6px;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.2);
  transform: scale(1.02);
}
.scn-promise-to-sleep .figure-matrena {
  position: absolute; bottom: 32%; left: 46%; width: 14%; height: 18%;
  background: linear-gradient(135deg, #c8a070 0%, #a08040 60%, #7a5a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: breathe-ps 5s ease-in-out infinite alternate;
}
.scn-promise-to-sleep .figure-feodor {
  position: absolute; bottom: 32%; left: 28%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #d8b888 0%, #b89860 60%, #8a6a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: breathe-ps 5s ease-in-out infinite alternate 1s;
}
.scn-promise-to-sleep .domovoi {
  position: absolute; bottom: 36%; left: 15%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 20%, #f0c070 0%, #c08040 60%, #8a5a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pipe-puff-ps 2s ease-in-out infinite;
}
.scn-promise-to-sleep .smoke {
  position: absolute; bottom: 42%; left: 16%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(255,235,200,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: drift-smoke-ps 4s ease-out infinite;
}
@keyframes sun-pulse-ps {
  0%   { opacity: 0.7; transform: scaleX(0.95); }
  50%  { opacity: 1;   transform: scaleX(1.05); box-shadow: 0 0 80px 30px #ffe880; }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes breathe-ps {
  0%   { transform: scale(1) translateY(0); }
  50%  { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(0.98) translateY(1px); }
}
@keyframes pipe-puff-ps {
  0%   { transform: scale(1) rotate(0deg); }
  25%  { transform: scale(1.1) rotate(3deg); }
  50%  { transform: scale(0.95) rotate(-2deg); }
  75%  { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(1) rotate(0deg); }
}
@keyframes drift-smoke-ps {
  0%   { transform: translateY(0) scale(1); opacity: 0.6; }
  50%  { transform: translateY(-30px) scale(2); opacity: 0.3; }
  100% { transform: translateY(-60px) scale(3); opacity: 0; }
}

/* general-carried-up */
.scn-general-carried-up {
  background:
    linear-gradient(180deg, #fef5e0 0%, #f0d8a0 30%, #d8b880 50%, #b8986050%, #9a7840 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-general-carried-up .wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 50%, #a88a60 100%);
  border-right: 4px solid #b09870;
}
.scn-general-carried-up .stairs {
  position: absolute; bottom: 0; left: 0; right: 30%; height: 100%;
  background: repeating-linear-gradient(0deg, #b89860 0px, #b89860 8px, #d8b880 8px, #d8b880 16px);
  background-size: 100% 16px;
  animation: stairs-shift-gc 12s linear infinite alternate;
}
.scn-general-carried-up .figure-carrier {
  position: absolute; bottom: 12%; left: 8%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #c8a070 0%, #a08040 60%, #7a5a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: center bottom;
  animation: carry-walk-gc 4s ease-in-out infinite;
}
.scn-general-carried-up .figure-rider {
  position: absolute; bottom: 14%; left: 10%; width: 14%; height: 20%;
  background: linear-gradient(135deg, #d8b888 0%, #b89860 60%, #8a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ride-bob-gc 4s ease-in-out infinite 0.2s;
}
.scn-general-carried-up .sunbeam {
  position: absolute; top: 0; left: 25%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,220,0.8) 0%, rgba(255,255,220,0.2) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: beam-sweep-gc 8s ease-in-out infinite alternate;
}
.scn-general-carried-up .railing {
  position: absolute; bottom: 0; left: 28%; width: 2%; height: 100%;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: railing-sway-gc 6s ease-in-out infinite alternate;
}
@keyframes stairs-shift-gc {
  0%   { background-position: 0 0; }
  50%  { background-position: 0 8px; }
  100% { background-position: 0 0; }
}
@keyframes carry-walk-gc {
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-4px) rotate(-2deg); }
  50%  { transform: translateY(-2px) rotate(0deg); }
  75%  { transform: translateY(-6px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ride-bob-gc {
  0%   { transform: translateY(0) rotate(0deg); }
  25%  { transform: translateY(-3px) rotate(1deg); }
  50%  { transform: translateY(-1px) rotate(0deg); }
  75%  { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes beam-sweep-gc {
  0%   { transform: translateX(-10%) skewX(2deg); opacity: 0.5; }
  50%  { transform: translateX(5%) skewX(-1deg); opacity: 1; }
  100% { transform: translateX(-8%) skewX(1deg); opacity: 0.6; }
}
@keyframes railing-sway-gc {
  0%   { transform: scaleX(1) translateY(0); }
  50%  { transform: scaleX(1.1) translateY(-4px); }
  100% { transform: scaleX(0.95) translateY(2px); }
}

.scn-matrena-weeps-for-general {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #1a0a1e 100%), radial-gradient(ellipse at 30% 60%, #c08040 0%, transparent 60%);
}
.scn-matrena-weeps-for-general .window-mwg {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #ffa040 40%, #806030 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(255,160,64,0.3);
  animation: mwg-window 6s ease-in-out infinite alternate;
}
.scn-matrena-weeps-for-general .curtain-left-mwg {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 10%;
  height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
  animation: mwg-curtain 8s ease-in-out infinite alternate;
}
.scn-matrena-weeps-for-general .curtain-right-mwg {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 10%;
  height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: inset 5px 0 10px rgba(0,0,0,0.5);
  animation: mwg-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-matrena-weeps-for-general .desk-mwg {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
  animation: mwg-desk 4s ease-in-out infinite;
}
.scn-matrena-weeps-for-general .lamp-mwg {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,160,64,0.6), 0 0 80px 30px rgba(255,160,64,0.3);
  animation: mwg-lamp 2s ease-in-out infinite alternate;
}
.scn-matrena-weeps-for-general .figure-mwg {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 10%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mwg-weep 3s ease-in-out infinite;
}
.scn-matrena-weeps-for-general .shadow-mwg {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 16%;
  height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mwg-shadow 3s ease-in-out infinite;
}
@keyframes mwg-window {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,160,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,100,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 10px rgba(255,160,64,0.4); }
}
@keyframes mwg-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes mwg-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mwg-lamp {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes mwg-weep {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  75% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mwg-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-matrena-relieved {
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0ff 40%, #f0e68c 80%, #deb887 100%), radial-gradient(ellipse at 50% 60%, #ffd700 0%, transparent 70%);
}
.scn-matrena-relieved .sky-mrr {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60%;
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0ff 60%, transparent 100%);
  animation: mrr-sky 15s ease-in-out infinite alternate;
}
.scn-matrena-relieved .sun-mrr {
  position: absolute;
  top: 10%;
  left: 40%;
  width: 20%;
  height: 25%;
  background: radial-gradient(circle, #fff5d0 0%, #ffd700 40%, #ffb347 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.5), 0 0 160px 60px rgba(255,215,0,0.2);
  animation: mrr-sun 8s ease-in-out infinite alternate;
}
.scn-matrena-relieved .rays-mrr {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 40%;
  height: 50%;
  background: radial-gradient(circle at 50% 30%, transparent 30%, rgba(255,230,150,0.3) 50%, transparent 70%);
  filter: blur(8px);
  animation: mrr-rays 6s ease-in-out infinite;
}
.scn-matrena-relieved .figure-mrr {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 12%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mrr-figure 4s ease-in-out infinite;
}
.scn-matrena-relieved .ground-mrr {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, #7cfc00 0%, #228b22 50%, #006400 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: mrr-ground 10s ease-in-out infinite alternate;
}
.scn-matrena-relieved .flowers-1-mrr,
.scn-matrena-relieved .flowers-2-mrr {
  position: absolute;
  bottom: 5%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #ff69b4 0%, #ff1493 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-matrena-relieved .flowers-1-mrr {
  left: 30%;
  animation: mrr-flower 3s ease-in-out infinite;
}
.scn-matrena-relieved .flowers-2-mrr {
  left: 60%;
  animation: mrr-flower 4s ease-in-out infinite reverse;
}
@keyframes mrr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mrr-sun {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); }
  50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 100px 40px rgba(255,215,0,0.6); }
  100% { transform: scale(0.98) translateY(2px); box-shadow: 0 0 70px 25px rgba(255,215,0,0.45); }
}
@keyframes mrr-rays {
  0% { opacity: 0.5; transform: rotate(0deg); }
  50% { opacity: 0.8; transform: rotate(10deg); }
  100% { opacity: 0.6; transform: rotate(-5deg); }
}
@keyframes mrr-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  75% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mrr-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes mrr-flower {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.2); }
  100% { transform: translateY(0) scale(1); }
}

.scn-marshal-at-kiosque {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 30%, #d4b896 60%, #c9a96e 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,240,200,0.6) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-marshal-at-kiosque .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f5e6d3 0%, #e8d5b8 40%, #d0b888 100%); }
.scn-marshal-at-kiosque .window-frame { position:absolute; top:8%; left:5%; width:34%; height:52%; border:8px solid #8b7355; border-radius:4px; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); }
.scn-marshal-at-kiosque .window-pane { position:absolute; top:2%; left:2%; width:96%; height:96%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #e0f0ff 100%); border-radius:2px; box-shadow: 0 0 40px 15px rgba(200,230,255,0.3); animation: mk-sunbeam 4s ease-in-out infinite alternate; }
.scn-marshal-at-kiosque .table { position:absolute; bottom:18%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6b4c2a 0%, #4a331f 100%); border-radius:8px 8px 4px 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.5); transform: perspective(600px) rotateX(5deg); }
.scn-marshal-at-kiosque .marshal { position:absolute; bottom:28%; left:28%; width:14%; height:48%; background: linear-gradient(180deg, #3d2b1f 0%, #1a110a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mk-shift 1.8s ease-in-out infinite; }
.scn-marshal-at-kiosque .marshal::after { content:''; position:absolute; top:-10%; left:30%; width:30%; height:20%; background: #2a1e13; border-radius:50%; transform:rotate(-20deg); }
.scn-marshal-at-kiosque .matrena { position:absolute; bottom:26%; right:22%; width:12%; height:44%; background: linear-gradient(180deg, #4a3322 0%, #2a1a10 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: mk-shift 2.2s ease-in-out infinite 0.4s; }
.scn-marshal-at-kiosque .box { position:absolute; bottom:37%; left:42%; width:8%; height:6%; background: linear-gradient(135deg, #fdfdfd 0%, #e0d6c8 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mk-boxhover 4s ease-in-out infinite; }
.scn-marshal-at-kiosque .box::before { content:''; position:absolute; left:30%; top:50%; width:40%; height:3px; background: #f4a6a5; border-radius:2px; transform:rotate(30deg); }
.scn-marshal-at-kiosque .shadow-desk { position:absolute; bottom:15%; left:15%; width:70%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.35) 0%, transparent 70%); animation: mk-shadow 3s ease-in-out infinite alternate; }
.scn-marshal-at-kiosque .dust { position:absolute; width:6px; height:6px; background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-marshal-at-kiosque .mote-1 { top:20%; left:40%; animation: mk-float 8s linear infinite; }
.scn-marshal-at-kiosque .mote-2 { top:35%; left:60%; animation: mk-float 10s linear infinite 3s; }
@keyframes mk-sunbeam {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.85; transform: scaleY(0.98); }
}
@keyframes mk-shift {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(0.5deg); }
  60% { transform: translateY(0) rotate(-0.3deg); }
  100% { transform: translateY(1px) rotate(0deg); }
}
@keyframes mk-boxhover {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-1px) scale(1.02); box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
  50% { transform: translateY(0) scale(1); }
  75% { transform: translateY(0.5px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes mk-shadow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.7; transform: scaleX(1.05); }
  100% { opacity:0.4; transform: scaleX(0.95); }
}
@keyframes mk-float {
  0% { transform: translate(0,0) scale(1); opacity:0.6; }
  25% { transform: translate(10px,-15px) scale(1.3); opacity:0.3; }
  50% { transform: translate(-5px,-30px) scale(0.8); opacity:0.7; }
  75% { transform: translate(15px,-10px) scale(1.1); opacity:0.4; }
  100% { transform: translate(0,0) scale(1); opacity:0.6; }
}

.scn-matrena-relieved {
  background: linear-gradient(180deg, #fce0b0 0%, #f5c27a 40%, #e6a452 100%),
              radial-gradient(ellipse at 30% 20%, #fff0d0 0%, transparent 60%);
}

.scn-matrena-relieved .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #e6c896 0%, #f5dbb0 40%, #fce0b0 60%, #e6c896 100%);
}

.scn-matrena-relieved .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c9a87a 0%, #a8835a 100%);
  border-top: 2px solid #b8965a;
}

.scn-matrena-relieved .window-frame {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 40%;
  background: transparent;
  border: 6px solid #8b6f4a;
  border-radius: 4px;
  box-shadow: inset 0 0 0 4px #a88a5a;
}

.scn-matrena-relieved .window-glass {
  position: absolute; top: 11%; left: 26%; width: 48%; height: 38%;
  background: linear-gradient(135deg, #fff8e0 0%, #ffe6b0 50%, #f5c27a 100%);
  opacity: 0.8;
  animation: mr-glass 6s ease-in-out infinite alternate;
}

.scn-matrena-relieved .sunbeam {
  position: absolute; top: 15%; left: 28%; width: 60%; height: 6%;
  background: linear-gradient(90deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  transform: rotate(-25deg);
  transform-origin: 0% 0%;
  border-radius: 50%;
  filter: blur(2px);
  animation: mr-beam 6s ease-in-out infinite alternate;
}

.scn-matrena-relieved .figure {
  position: absolute; bottom: 0; left: 38%; width: 22%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2c2219 40%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figure 4s ease-in-out infinite;
}

.scn-matrena-relieved .shadow {
  position: absolute; bottom: 28%; left: 36%; width: 26%; height: 4%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: mr-shadow 4s ease-in-out infinite;
}

.scn-matrena-relieved .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,255,200,0.6);
  border-radius: 50%;
  filter: blur(1px);
}

.scn-matrena-relieved .d1 {
  top: 20%; left: 20%;
  animation: mr-dust 12s linear infinite;
}

.scn-matrena-relieved .d2 {
  top: 35%; left: 60%;
  animation: mr-dust 15s linear infinite reverse;
}

@keyframes mr-glass {
  0%   { opacity: 0.7; transform: scaleY(1); }
  50%  { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.75; transform: scaleY(0.98); }
}

@keyframes mr-beam {
  0%   { opacity: 0.4; transform: rotate(-25deg) scaleX(0.8); }
  50%  { opacity: 0.8; transform: rotate(-20deg) scaleX(1.1); }
  100% { opacity: 0.5; transform: rotate(-28deg) scaleX(0.9); }
}

@keyframes mr-figure {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}

@keyframes mr-shadow {
  0%   { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50%  { transform: scaleX(1.1) translateX(5px); opacity: 0.2; }
  100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.35; }
}

@keyframes mr-dust {
  0%   { transform: translate(0,0); opacity: 0.3; }
  25%  { transform: translate(20px, -15px); opacity: 0.7; }
  50%  { transform: translate(40px, -30px); opacity: 0.5; }
  75%  { transform: translate(60px, -45px); opacity: 0.8; }
  100% { transform: translate(80px, -60px); opacity: 0.2; }
}

.scn-general-carried-up {
  background:
    radial-gradient(ellipse at 50% 0%, #ffebc0 0%, transparent 60%),
    linear-gradient(180deg, #f5d6a8 0%, #dba87a 50%, #b5784a 100%);
}
.scn-general-carried-up .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6cba3 0%, #c69a6a 100%);
  opacity: 0.6;
  animation: gc-wall 10s ease-in-out infinite alternate;
}
.scn-general-carried-up .staircase {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: gc-stairs 8s ease-in-out infinite;
}
.scn-general-carried-up .railing {
  position: absolute; bottom: 55%; left: 22%; right: 22%; height: 4px;
  background: #4a2a1a;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gc-rail 12s ease-in-out infinite alternate;
}
.scn-general-carried-up .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #fff8e0 0%, #f0d090 70%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(240,208,144,0.5);
  animation: gc-window 6s ease-in-out infinite alternate;
}
.scn-general-carried-up .sunbeam {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, rgba(255,248,224,0) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 65% 100%, 35% 100%);
  animation: gc-beam 8s ease-in-out infinite alternate;
}
.scn-general-carried-up .figure-carrier {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gc-climb 9s ease-in-out infinite;
}
.scn-general-carried-up .figure-carried {
  position: absolute; bottom: 43%; left: 42%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gc-ride 9s ease-in-out infinite;
}
.scn-general-carried-up .dust-particles {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 50%),
              radial-gradient(3px 3px at 50% 50%, #fff0c0 0%, transparent 50%),
              radial-gradient(2px 2px at 70% 20%, #fff 0%, transparent 50%);
  background-size: 10px 10px;
  animation: gc-dust 10s linear infinite;
}
@keyframes gc-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes gc-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gc-rail { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes gc-window { 0% { box-shadow: 0 0 30px 10px rgba(240,208,144,0.4); } 50% { box-shadow: 0 0 60px 30px rgba(255,240,200,0.6); } 100% { box-shadow: 0 0 40px 15px rgba(240,208,144,0.5); } }
@keyframes gc-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes gc-climb { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gc-ride { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes gc-dust { 0% { background-position: 0 0; } 50% { background-position: 10px 5px; } 100% { background-position: 20px 10px; } }

.scn-promise-to-sleep {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9b382 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,230,180,0.5) 0%, transparent 70%);
}
.scn-promise-to-sleep .window {
  position: absolute; left: 20%; top: 15%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #b0d0ff 0%, #ffffff 50%, #e0f0ff 100%);
  border: 4px solid #7a5a3a; border-radius: 6%;
  box-shadow: 0 0 8px 2px rgba(255,230,180,0.5), inset 0 0 5px rgba(255,255,255,0.3);
  animation: ps-glow 4s ease-in-out infinite alternate;
}
.scn-promise-to-sleep .sunbeam {
  position: absolute; left: 25%; bottom: 20%; width: 50%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 70%);
  transform: rotate(-10deg) scaleY(1); transform-origin: left bottom;
  animation: ps-beam 8s ease-in-out infinite alternate;
}
.scn-promise-to-sleep .bed {
  position: absolute; bottom: 8%; left: 18%; width: 64%; height: 22%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a87c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: ps-breath 3s ease-in-out infinite;
}
.scn-promise-to-sleep .figure {
  position: absolute; bottom: 16%; left: 36%; width: 14px; height: 18px;
  background: #4a3525; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps-turn 5s ease-in-out infinite;
}
.scn-promise-to-sleep .domovoi {
  position: absolute; bottom: 28%; right: 24%; width: 18px; height: 18px;
  background: #3a2a1a; border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ps-domovoi-bob 2s ease-in-out infinite alternate;
}
.scn-promise-to-sleep .domovoi::before {
  content: ''; position: absolute; bottom: -5px; left: 50%;
  width: 22px; height: 2px; background: #5e3a1a;
  border-radius: 1px; transform: translateX(-50%) rotate(12deg);
}
.scn-promise-to-sleep .domovoi::after {
  content: ''; position: absolute; top: -10px; left: 70%;
  width: 10px; height: 10px; background: rgba(200,200,200,0.25);
  border-radius: 50%; filter: blur(2px);
  animation: ps-puff 2.5s ease-out infinite;
}
.scn-promise-to-sleep .curtain {
  position: absolute; left: 0; top: 0; width: 12%; height: 100%;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%);
  animation: ps-sway 6s ease-in-out infinite;
}
.scn-promise-to-sleep .shelf {
  position: absolute; bottom: 27%; right: 20%; width: 30%; height: 3px;
  background: linear-gradient(90deg, #7a5a3a, #5a3a1a);
  border-radius: 2px;
}
@keyframes ps-glow {
  0% { box-shadow: 0 0 8px 2px rgba(255,230,180,0.5), inset 0 0 5px rgba(255,255,255,0.3); }
  50% { box-shadow: 0 0 20px 8px rgba(255,230,180,0.8), inset 0 0 10px rgba(255,255,255,0.5); }
  100% { box-shadow: 0 0 8px 2px rgba(255,230,180,0.5), inset 0 0 5px rgba(255,255,255,0.3); }
}
@keyframes ps-beam {
  0% { opacity: 0.4; transform: rotate(-8deg) scaleY(1); }
  50% { opacity: 0.8; transform: rotate(-12deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: rotate(-8deg) scaleY(1); }
}
@keyframes ps-breath {
  0% { border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: translateY(0); }
  50% { border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: translateY(-2px); }
  100% { border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: translateY(0); }
}
@keyframes ps-turn {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ps-domovoi-bob {
  0% { transform: translateY(0); }
  100% { transform: translateY(-3px); }
}
@keyframes ps-puff {
  0% { transform: scale(0.5) translateY(0); opacity: 0.6; }
  100% { transform: scale(2) translateY(-20px); opacity: 0; }
}
@keyframes ps-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bunting { position: absolute; pointer-events: none; }
.dim { position: absolute; pointer-events: none; }
.group { position: absolute; pointer-events: none; }
.shutter { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-departure-from-russia { 
  background: 
    radial-gradient(ellipse at 50% 20%, #f0d8a0 0%, #c8a870 60%, transparent 100%),
    linear-gradient(180deg, #c49a6c 0%, #8b6b4a 30%, #5a3d2a 100%);
}
.scn-departure-from-russia .compartment-bg {
  position: absolute; inset: 0;
  background: 
    linear-gradient(90deg, #b0845a 0%, #d4b28a 40%, #e8cfa0 60%, #d4b28a 80%, #b0845a 100%);
  opacity: 0.6;
}
.scn-departure-from-russia .window {
  position: absolute; top: 12%; left: 65%; width: 22%; height: 38%;
  background: linear-gradient(180deg, #e8f4ff 0%, #b0d0f0 100%);
  border: 6px solid #6b4a2a; border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: dfr-window 12s ease-in-out infinite alternate;
}
.scn-departure-from-russia .curtain-l,
.scn-departure-from-russia .curtain-r {
  position: absolute; top: 10%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #b87a4a 0%, #8a5a30 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: dfr-curtain 8s ease-in-out infinite alternate;
}
.scn-departure-from-russia .curtain-l { left: 63%; transform-origin: left center; }
.scn-departure-from-russia .curtain-r { left: 77%; transform-origin: right center; animation-delay: 0.5s; }
.scn-departure-from-russia .table {
  position: absolute; bottom: 18%; left: 20%; width: 50%; height: 16%;
  background: linear-gradient(180deg, #5a3d20 0%, #3e2a14 100%);
  border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(6deg);
}
.scn-departure-from-russia .bottle {
  position: absolute; bottom: 26%; left: 44%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #3d6b3a 0%, #2a4a28 50%, #1e331c 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: dfr-bottle 6s ease-in-out infinite alternate;
}
.scn-departure-from-russia .glass {
  position: absolute; bottom: 28%; width: 5%; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,245,200,0.4) 80%);
  border-radius: 2px 2px 12px 12px;
  box-shadow: 0 0 10px rgba(255,200,100,0.3);
}
.scn-departure-from-russia .glass-1 {
  left: 35%;
  animation: dfr-glass 2s ease-in-out infinite alternate;
}
.scn-departure-from-russia .glass-2 {
  left: 52%;
  animation: dfr-glass 2s ease-in-out infinite alternate-reverse;
  animation-delay: 0.3s;
}
.scn-departure-from-russia .figure {
  position: absolute; bottom: 20%; right: 14%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dfr-figure 5s ease-in-out infinite alternate;
}
.scn-departure-from-russia .lamp-glow {
  position: absolute; top: 4%; left: 38%; width: 18%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.8) 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  filter: blur(10px);
  animation: dfr-lamp 4s ease-in-out infinite alternate;
}
@keyframes dfr-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes dfr-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(2px) rotate(-1deg); }
}
@keyframes dfr-bottle {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg); }
}
@keyframes dfr-glass {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-4px) scale(1.02); }
  100% { opacity: 0.7; transform: translateY(2px); }
}
@keyframes dfr-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes dfr-lamp {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-leading-to-barracks {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c8a8 40%, #b89a78 100%),
              radial-gradient(ellipse at 50% 30%, #fdf4e3 0%, transparent 60%);
}
.scn-leading-to-barracks .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #efe2cc 0%, #f5e6d0 50%, #e8d6b8 100%); }
.scn-leading-to-barracks .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a878 0%, #a8865a 100%); }
.scn-leading-to-barracks .bed { position:absolute; bottom:30%; width:60px; height:35px; background: linear-gradient(180deg, #f0ece0 0%, #d8d0c0 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-leading-to-barracks .bed-1 { left:10%; }
.scn-leading-to-barracks .bed-2 { left:35%; }
.scn-leading-to-barracks .bed-3 { left:60%; }
.scn-leading-to-barracks .chapel-arch { position:absolute; bottom:20%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #d4c4a8 0%, #bca88a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); animation: ltb-breathe 8s ease-in-out infinite alternate; }
.scn-leading-to-barracks .saint-img { position:absolute; bottom:50%; right:15%; width:20px; height:30px; background: radial-gradient(circle, #f0d088 0%, #c8a060 80%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #f0d088; animation: ltb-glow 4s ease-in-out infinite alternate; }
.scn-leading-to-barracks .figure { position:absolute; bottom:28%; left:20%; width:18px; 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: ltb-walk 10s ease-in-out infinite; }
@keyframes ltb-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ltb-glow { 0% { opacity: 0.8; box-shadow: 0 0 10px 2px #f0d088; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #ffdd99; } 100% { opacity: 0.9; box-shadow: 0 0 15px 3px #e0c078; } }
@keyframes ltb-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }

.scn-confessing-to-koupriane {
  background: linear-gradient(180deg, #e8dcc8 0%, #cbbaa0 40%, #a89070 100%),
              radial-gradient(ellipse at 50% 60%, #faf2e0 0%, transparent 50%);
}
.scn-confessing-to-koupriane .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4c4ad 0%, #e0d2bc 50%, #c8b8a0 100%); animation: ctk-flicker 6s ease-in-out infinite alternate; }
.scn-confessing-to-koupriane .table { position:absolute; bottom:27%; left:30%; width:100px; height:20px; background: linear-gradient(180deg, #8a704a 0%, #6a5030 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-confessing-to-koupriane .lamp { position:absolute; bottom:40%; left:38%; width:12px; height:20px; background: radial-gradient(circle, #ffd080 0%, #c89050 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 12px #ffd080, 0 0 80px 25px rgba(255,208,128,0.3); animation: ctk-lamp 2s ease-in-out infinite alternate; }
.scn-confessing-to-koupriane .figure-ctk { position:absolute; bottom:25%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-confessing-to-koupriane .figure-a { left:22%; transform-origin: bottom center; animation: ctk-lean 4s ease-in-out infinite alternate; }
.scn-confessing-to-koupriane .figure-b { left:55%; transform-origin: bottom center; animation: ctk-lean 5s ease-in-out infinite alternate-reverse; }
.scn-confessing-to-koupriane .shadow-floor { position:absolute; bottom:0; left:20%; width:120px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: ctk-shake 3s ease-in-out infinite alternate; }
@keyframes ctk-flicker { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ctk-lamp { 0% { box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 18px rgba(255,208,128,0.2); } 50% { box-shadow: 0 0 50px 16px #ffdd99, 0 0 100px 30px rgba(255,221,153,0.4); } 100% { box-shadow: 0 0 35px 10px #e0b060, 0 0 70px 20px rgba(224,176,96,0.25); } }
@keyframes ctk-lean { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes ctk-shake { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(2px) scaleX(0.98); } }

.scn-grappling-iron-marks {
  background: linear-gradient(180deg, #d8cdb8 0%, #bcaa8c 40%, #9a8668 100%),
              radial-gradient(ellipse at 50% 70%, #f2e4d0 0%, transparent 50%);
}
.scn-grappling-iron-marks .window-gim { position:absolute; top:15%; left:30%; width:120px; height:160px; background: rgba(180,200,230,0.4); border: 6px solid #6a5a42; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); animation: gim-window 10s ease-in-out infinite alternate; }
.scn-grappling-iron-marks .balcony { position:absolute; bottom:20%; left:25%; right:25%; height:12px; background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%); border-radius: 4px; }
.scn-grappling-iron-marks .railing { position:absolute; bottom:22%; left:26%; right:26%; height:80px; border-left: 4px solid #5a4a32; border-right: 4px solid #5a4a32; border-bottom: 4px solid #5a4a32; border-radius: 0 0 8% 8%; }
.scn-grappling-iron-marks .grappling-hook { position:absolute; bottom:35%; left:48%; width:14px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform-origin: top center; animation: gim-swing 4s ease-in-out infinite alternate; }
.scn-grappling-iron-marks .mark { position:absolute; width:12px; height:8px; background: #4a3a2a; border-radius: 50%; opacity:0.6; animation: gim-pulse 3s ease-in-out infinite alternate; }
.scn-grappling-iron-marks .mark-1 { bottom:38%; left:43%; animation-delay: 0s; }
.scn-grappling-iron-marks .mark-2 { bottom:36%; left:50%; animation-delay: 1s; }
.scn-grappling-iron-marks .mark-3 { bottom:34%; left:57%; animation-delay: 2s; }
@keyframes gim-window { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(0.99); } }
@keyframes gim-swing { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(2px); } }
@keyframes gim-pulse { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }

.scn-koupriane-blames-natacha {
  background: linear-gradient(180deg, #e0d0b8 0%, #c4b096 40%, #a28c72 100%),
              radial-gradient(ellipse at 50% 50%, #f5e8d4 0%, transparent 60%);
}
.scn-koupriane-blames-natacha .room-kbn { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #d4c0a8 0%, #e0ceb6 50%, #c8b49c 100%); animation: kbn-flicker 8s ease-in-out infinite alternate; }
.scn-koupriane-blames-natacha .door { position:absolute; top:10%; right:15%; width:60px; height:100px; background: linear-gradient(180deg, #9a8668 0%, #7a6648 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); }
.scn-koupriane-blames-natacha .figure-kbn { position:absolute; bottom:25%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-koupriane-blames-natacha .figure-c { left:30%; transform-origin: bottom center; animation: kbn-point 2s ease-in-out infinite; }
.scn-koupriane-blames-natacha .figure-d { left:55%; transform-origin: bottom center; animation: kbn-cower 3s ease-in-out infinite alternate; }
.scn-koupriane-blames-natacha .shadow-kbn { position:absolute; bottom:0; left:20%; width:160px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: kbn-shake 4s ease-in-out infinite alternate; }
.scn-koupriane-blames-natacha .gesture-hand { position:absolute; bottom:40%; left:38%; width:10px; height:20px; background: #3a2a1a; border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: kbn-gesture 1.5s ease-in-out infinite alternate; }
.scn-koupriane-blames-natacha .heartbeat { position:absolute; bottom:35%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #8a3a3a 0%, #4a1a1a 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #8a3a3a; animation: kbn-beat 1s ease-in-out infinite alternate; }
@keyframes kbn-flicker { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes kbn-point { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes kbn-cower { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(0.95) translateX(4px); } 100% { transform: scaleY(0.98) translateX(2px); } }
@keyframes kbn-shake { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.02); } 100% { transform: translateX(3px) scaleX(0.98); } }
@keyframes kbn-gesture { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(1px); } }
@keyframes kbn-beat { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

.scn-kiosk-dinner-plan { background: linear-gradient(180deg, #fce8c8 0%, #f5dba8 40%, #e8c88a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%); }
.scn-kiosk-dinner-plan .sky-glow { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fff8e8 0%, #fce8c8 100%); animation: kdp-glow 8s ease-in-out infinite alternate; }
.scn-kiosk-dinner-plan .trellis-left { position:absolute; top:5%; left:2%; width:18%; height:55%; background: linear-gradient(90deg, #8a7a5a 10%, #6a5a3a 50%, #8a7a5a 90%); border-radius: 8% 8% 0% 0%; box-shadow: 0 4px 12px rgba(0,0,0,.15); animation: kdp-sway 14s ease-in-out infinite; }
.scn-kiosk-dinner-plan .trellis-right { position:absolute; top:5%; right:2%; width:18%; height:55%; background: linear-gradient(90deg, #8a7a5a 10%, #6a5a3a 50%, #8a7a5a 90%); border-radius: 8% 8% 0% 0%; box-shadow: 0 4px 12px rgba(0,0,0,.15); animation: kdp-sway 16s ease-in-out infinite reverse; }
.scn-kiosk-dinner-plan .roof { position:absolute; top:0; left:15%; right:15%; height:14%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 4% 4% / 60% 60% 20% 20%; box-shadow: 0 6px 18px rgba(0,0,0,.2); animation: kdp-roof 12s ease-in-out infinite alternate; }
.scn-kiosk-dinner-plan .table { position:absolute; bottom:22%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #c8a86a 0%, #a8884a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.15); }
.scn-kiosk-dinner-plan .cloth { position:absolute; bottom:24%; left:28%; right:28%; height:5%; background: linear-gradient(180deg, #f0e0c0 0%, #e0d0a8 100%); border-radius: 12% 12% 6% 6%; box-shadow: 0 2px 6px rgba(0,0,0,.1); animation: kdp-flutter 9s ease-in-out infinite; }
.scn-kiosk-dinner-plan .plate { position:absolute; bottom:26%; left:44%; right:44%; height:4%; background: radial-gradient(ellipse at 50% 40%, #f5f0e8 0%, #d8d0c0 60%, #b8a890 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.1); animation: kdp-rest 6s ease-in-out infinite; }
.scn-kiosk-dinner-plan .candle { position:absolute; bottom:31%; left:49%; width:2%; height:6%; background: linear-gradient(180deg, #f0e8d0 0%, #e8d8b0 100%); border-radius: 10% 10% 20% 20%; animation: kdp-flicker 3s ease-in-out infinite; }
.scn-kiosk-dinner-plan .seat-left { position:absolute; bottom:18%; left:28%; width:16%; height:18%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.scn-kiosk-dinner-plan .seat-right { position:absolute; bottom:18%; right:28%; width:16%; height:18%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.15); }
@keyframes kdp-glow { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes kdp-sway { 0% { transform: rotate(0deg); } 33% { transform: rotate(1deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes kdp-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kdp-flutter { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-1px) scaleX(1.01); } 75% { transform: translateY(1px) scaleX(0.99); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes kdp-rest { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.95; } }
@keyframes kdp-flicker { 0% { opacity:.7; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.05); } 50% { opacity:.8; transform: scaleY(.98); } 75% { opacity:.95; transform: scaleY(1.02); } 100% { opacity:.7; transform: scaleY(1); } }

.scn-private-word-with-natacha { background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 30%, #3a2a1a 100%), radial-gradient(ellipse at 30% 20%, #8a7a5a 0%, transparent 60%); }
.scn-private-word-with-natacha .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #8a7a5a 0%, #7a6a4a 50%, #8a7a5a 100%); }
.scn-private-word-with-natacha .wall-accent { position:absolute; top:10%; left:10%; right:10%; bottom:22%; background: linear-gradient(180deg, rgba(180,160,120,.08) 0%, transparent 100%); border-radius: 4% 4% 0% 0%; }
.scn-private-word-with-natacha .door-frame { position:absolute; top:5%; right:8%; width:22%; height:75%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 4% 4% 0% 0%; box-shadow: -4px 0 12px rgba(0,0,0,.3); }
.scn-private-word-with-natacha .door { position:absolute; top:8%; right:10%; width:18%; height:68%; background: linear-gradient(90deg, #4a3a1a 0%, #6a5a2a 40%, #4a3a1a 100%); border-radius: 2% 2% 0% 0%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-private-word-with-natacha .figure-left { position:absolute; bottom:18%; left:22%; width:10%; height:32%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwn-turn 14s ease-in-out infinite; }
.scn-private-word-with-natacha .figure-right { position:absolute; bottom:18%; right:32%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #3a2a2a 40%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwn-turn 16s ease-in-out infinite reverse; }
.scn-private-word-with-natacha .shadow-pool { position:absolute; bottom:18%; left:15%; right:25%; height:6%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); }
.scn-private-word-with-natacha .lamp { position:absolute; top:12%; left:14%; width:4%; height:6%; background: radial-gradient(circle, #f0d880 0%, #d8b860 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,216,128,.15), 0 0 80px 40px rgba(240,216,128,.08); animation: pwn-lamp 5s ease-in-out infinite alternate; }
@keyframes pwn-turn { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pwn-lamp { 0% { opacity:.8; transform: scale(1); } 33% { opacity:1; transform: scale(1.05); } 66% { opacity:.9; transform: scale(.97); } 100% { opacity:.8; transform: scale(1); } }

.scn-natacha-wont-believe { background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 40%, #3a2a1a 100%), radial-gradient(ellipse at 40% 60%, #8a7a6a 0%, transparent 60%); }
.scn-natacha-wont-believe .room-deep { position:absolute; inset:0; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); opacity: .5; }
.scn-natacha-wont-believe .wall-left { position:absolute; top:0; left:0; width:30%; bottom:24%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-right: 2px solid rgba(0,0,0,.1); }
.scn-natacha-wont-believe .wall-right { position:absolute; top:0; right:0; width:30%; bottom:24%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-left: 2px solid rgba(0,0,0,.1); }
.scn-natacha-wont-believe .floor { position:absolute; bottom:0; left:0; right:0; height:24%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-natacha-wont-believe .figure-natacha { position:absolute; bottom:20%; left:30%; width:12%; height:34%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 30%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nwb-shake 8s ease-in-out infinite; }
.scn-natacha-wont-believe .figure-roulet { position:absolute; bottom:20%; right:28%; width:12%; height:36%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nwb-reach 10s ease-in-out infinite; }
.scn-natacha-wont-believe .tear-glint { position:absolute; bottom:38%; left:34%; width:2%; height:2%; background: radial-gradient(circle, #c0d8e8 0%, #8098b8 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(128,152,184,.3); animation: nwb-tear 4s ease-in-out infinite; }
.scn-natacha-wont-believe .window-light { position:absolute; top:8%; left:40%; right:40%; height:30%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius: 4% 4% 8% 8% / 20% 20% 30% 30%; box-shadow: 0 0 40px 20px rgba(200,184,160,.1); animation: nwb-light 7s ease-in-out infinite alternate; }
@keyframes nwb-shake { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-3px) rotate(-2deg); } 40% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 80% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nwb-reach { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-6px) rotate(-3deg); } 60% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nwb-tear { 0% { opacity:0; transform: translateY(0) scale(1); } 30% { opacity:1; transform: translateY(6px) scale(1.5); } 60% { opacity:.7; transform: translateY(12px) scale(.8); } 100% { opacity:0; transform: translateY(18px) scale(.5); } }
@keyframes nwb-light { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }

.scn-only-one-window-climber { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-only-one-window-climber .wall-exterior { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); box-shadow: 0 0 40px rgba(0,0,0,.3); }
.scn-only-one-window-climber .window-recess { position:absolute; top:20%; left:30%; right:30%; bottom:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-only-one-window-climber .glass-pane { position:absolute; top:22%; left:32%; right:32%; bottom:32%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); box-shadow: inset 0 0 20px rgba(255,255,255,.05); animation: owc-glass 12s ease-in-out infinite alternate; }
.scn-only-one-window-climber .frame-left { position:absolute; top:20%; left:30%; width:2%; bottom:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); box-shadow: 2px 0 6px rgba(0,0,0,.2); }
.scn-only-one-window-climber .frame-right { position:absolute; top:20%; right:30%; width:2%; bottom:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); box-shadow: -2px 0 6px rgba(0,0,0,.2); }
.scn-only-one-window-climber .sill { position:absolute; bottom:30%; left:28%; right:28%; height:3%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2% 2% 0% 0%; }
.scn-only-one-window-climber .climber { position:absolute; bottom:32%; left:46%; width:8%; height:28%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: owc-climb 6s ease-in-out infinite; }
.scn-only-one-window-climber .shadow-cast { position:absolute; bottom:30%; left:40%; right:40%; height:4%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 80%); animation: owc-shadow 6s ease-in-out infinite; }
@keyframes owc-glass { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes owc-climb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-8px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes owc-shadow { 0% { opacity:.3; transform: scaleX(1); } 25% { opacity:.5; transform: scaleX(.95); } 50% { opacity:.4; transform: scaleX(1.05); } 75% { opacity:.6; transform: scaleX(.9); } 100% { opacity:.3; transform: scaleX(1); } }

.scn-moral-certainty {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a1a 0%, transparent 70%);
}
.scn-moral-certainty .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); }
.scn-moral-certainty .table { position:absolute; bottom:20%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-moral-certainty .figure-left { position:absolute; bottom:22%; left:28%; width:16%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tc-fig 6s ease-in-out infinite alternate; }
.scn-moral-certainty .figure-right { position:absolute; bottom:22%; right:28%; width:16%; height:55%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tc-fig 6s ease-in-out infinite alternate-reverse; }
.scn-moral-certainty .lamp { position:absolute; bottom:38%; left:50%; transform:translateX(-50%); width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #c08040 0%, #8a5a30 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px #c08040; animation: tc-lamp 3s ease-in-out infinite alternate; }
.scn-moral-certainty .lamp-glow { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, rgba(192,128,64,0.3) 0%, transparent 100%); border-radius:50%; animation: tc-glow 3s ease-in-out infinite alternate; }
.scn-moral-certainty .shadow { position:absolute; bottom:20%; left:26%; right:26%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: tc-shadow 6s ease-in-out infinite alternate; }
@keyframes tc-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes tc-lamp { 0% { opacity: 0.85; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.9; transform: translateX(-50%) scale(0.98); } }
@keyframes tc-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes tc-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.6; transform: scaleX(0.9); } }

.scn-do-not-move {
  background:
    linear-gradient(180deg, #12121e 0%, #1a1220 40%, #2a1a22 100%),
    radial-gradient(ellipse at 40% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-do-not-move .bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.4) 100%); }
.scn-do-not-move .wall { position:absolute; right:10%; top:15%; bottom:15%; width:30%; background: linear-gradient(180deg, #2a202a 0%, #1a121a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,0.5); animation: dn-wall 8s ease-in-out infinite alternate; }
.scn-do-not-move .figure-back { position:absolute; bottom:15%; left:35%; width:20%; height:65%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dn-fig 12s ease-in-out infinite alternate; }
.scn-do-not-move .hand { position:absolute; bottom:35%; left:38%; width:8%; height:15%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); transform-origin: bottom left; animation: dn-hand 4s ease-in-out infinite alternate; }
.scn-do-not-move .door { position:absolute; right:12%; top:20%; bottom:20%; width:18%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: dn-door 15s ease-in-out infinite alternate; }
.scn-do-not-move .crack { position:absolute; right:22%; top:30%; bottom:30%; width:2%; background: radial-gradient(ellipse, #c08040 0%, transparent 70%); opacity:0.3; animation: dn-crack 5s ease-in-out infinite alternate; }
@keyframes dn-fig { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-1%) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes dn-hand { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(12deg) scale(0.98); } }
@keyframes dn-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.96); } 100% { transform: scaleX(1); } }
@keyframes dn-crack { 0% { opacity: 0.2; width: 2%; } 50% { opacity: 0.5; width: 3%; } 100% { opacity: 0.3; width: 2%; } }
@keyframes dn-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-the-bolt-and-hole {
  background:
    linear-gradient(180deg, #0a0a18 0%, #1a1222 40%, #2a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 70%);
}
.scn-the-bolt-and-hole .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, rgba(0,0,0,0.5) 0%, transparent 100%); }
.scn-the-bolt-and-hole .door { position:absolute; left:20%; right:20%; top:10%; bottom:10%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-the-bolt-and-hole .bolt { position:absolute; left:48%; top:50%; width:4%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: bh-bolt 6s ease-in-out infinite alternate; }
.scn-the-bolt-and-hole .hole { position:absolute; left:50%; top:40%; width:2%; height:2%; background: radial-gradient(circle, #c08040 0%, #8a5a30 100%); border-radius:50%; box-shadow: 0 0 20px 6px #c08040; animation: bh-hole 3s ease-in-out infinite alternate; }
.scn-the-bolt-and-hole .light-beam { position:absolute; left:50%; top:40%; width:0.5%; height:40%; background: linear-gradient(180deg, rgba(192,128,64,0.4) 0%, transparent 100%); transform: rotate(5deg); transform-origin: top center; animation: bh-beam 4s ease-in-out infinite alternate; }
.scn-the-bolt-and-hole .figure-silhouette { position:absolute; right:10%; bottom:10%; width:15%; height:50%; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: bh-fig 8s ease-in-out infinite alternate; }
@keyframes bh-bolt { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5%) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes bh-hole { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px #c08040; } 50% { opacity: 1; box-shadow: 0 0 25px 8px #ffd060; } 100% { opacity: 0.8; box-shadow: 0 0 18px 5px #c08040; } }
@keyframes bh-beam { 0% { opacity: 0.3; transform: rotate(3deg) scaleX(1); } 50% { opacity: 0.8; transform: rotate(7deg) scaleX(1.2); } 100% { opacity: 0.4; transform: rotate(5deg) scaleX(0.9); } }
@keyframes bh-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5%) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

.scn-hotel-trick-explained {
  background:
    linear-gradient(180deg, #141420 0%, #1a1a2e 40%, #2a2030 100%),
    radial-gradient(ellipse at 50% 70%, #1a1a3a 0%, transparent 70%);
}
.scn-hotel-trick-explained .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); }
.scn-hotel-trick-explained .door-panel { position:absolute; left:25%; right:25%; top:15%; bottom:15%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-hotel-trick-explained .bolt { position:absolute; left:48%; top:55%; width:4%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: ht-bolt 7s ease-in-out infinite alternate; }
.scn-hotel-trick-explained .hole { position:absolute; left:50%; top:50%; width:1.5%; height:1.5%; background: radial-gradient(circle, #c08040 0%, #8a5a30 100%); border-radius:50%; box-shadow: 0 0 12px 4px #c08040; animation: ht-hole 3s ease-in-out infinite alternate; }
.scn-hotel-trick-explained .wire { position:absolute; left:45%; top:50%; width:0.8%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50%; transform: rotate(-10deg); transform-origin: top center; animation: ht-wire 5s ease-in-out infinite alternate; }
.scn-hotel-trick-explained .hand { position:absolute; left:30%; top:60%; width:12%; height:10%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(20deg); transform-origin: bottom left; animation: ht-hand 4s ease-in-out infinite alternate; }
@keyframes ht-bolt { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8%) scaleY(1.1); } 100% { transform: translateY(0) scaleY(0.9); } }
@keyframes ht-hole { 0% { opacity: 0.6; box-shadow: 0 0 10px 2px #c08040; } 50% { opacity: 1; box-shadow: 0 0 18px 6px #ffd060; } 100% { opacity: 0.7; box-shadow: 0 0 12px 3px #c08040; } }
@keyframes ht-wire { 0% { transform: rotate(-12deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.15); } 100% { transform: rotate(-14deg) scaleY(0.9); } }
@keyframes ht-hand { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(18deg) scale(0.98); } }

/* Scene: bordeaux-mixture-poison */
.scn-bordeaux-mixture-poison {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #c8b48c 100%),
              radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 60%);
}
.scn-bordeaux-mixture-poison .window {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #fffbe0 0%, #e8dcc0 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: bd-window 6s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture-poison .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 8px; box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  transform: perspective(200px) rotateX(10deg);
}
.scn-bordeaux-mixture-poison .bowl {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 24px;
  transform: translate(-50%, 0); background: radial-gradient(circle at 40% 30%, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bd-bowl 5s ease-in-out infinite;
}
.scn-bordeaux-mixture-poison .grapes {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  transform: translate(-50%, -2px); background: radial-gradient(circle at 40% 30%, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5), 0 0 0 2px #4a3a1a;
  animation: bd-grapes 4s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture-poison .bottle {
  position: absolute; bottom: 26%; left: 40%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: bd-bottle 7s ease-in-out infinite;
}
.scn-bordeaux-mixture-poison .shadow {
  position: absolute; bottom: 14%; left: 30%; right: 30%; height: 6%;
  background: rgba(0,0,0,0.15); filter: blur(6px); border-radius: 50%;
  animation: bd-shadow 5s ease-in-out infinite alternate;
}
.scn-bordeaux-mixture-poison .hand {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #c8a88a 0%, #a8886a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: bd-hand 2s ease-in-out infinite alternate;
}
@keyframes bd-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bd-bowl { 0%,100% { transform: translate(-50%, 0) rotate(0deg); } 50% { transform: translate(-50%, -2px) rotate(2deg); } }
@keyframes bd-grapes { 0% { transform: translate(-50%, -2px) scale(1); } 50% { transform: translate(-50%, -4px) scale(0.95); } 100% { transform: translate(-50%, -2px) scale(1); } }
@keyframes bd-bottle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes bd-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(0.95); } }
@keyframes bd-hand { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }

/* Scene: the-missing-grapes */
.scn-the-missing-grapes {
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b898 40%, #b8a888 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 60%);
}
.scn-the-missing-grapes .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #f0e6d0 0%, #d8ceb8 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: mg-wall 10s ease-in-out infinite alternate;
}
.scn-the-missing-grapes .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6px; box-shadow: 0 -8px 16px rgba(0,0,0,0.25);
  transform: perspective(300px) rotateX(15deg);
}
.scn-the-missing-grapes .grapes {
  position: absolute; bottom: 28%; left: 50%; width: 34px; height: 22px;
  transform: translateX(-50%); background: radial-gradient(circle at 30% 40%, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,0.4), 0 0 0 2px #4a3a1a;
  animation: mg-grapes 4s ease-in-out infinite alternate;
}
.scn-the-missing-grapes .figure {
  position: absolute; bottom: 22%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mg-figure 6s ease-in-out infinite;
}
.scn-the-missing-grapes .shadow {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.12); filter: blur(5px); border-radius: 50%;
  transform: translateX(-50%); animation: mg-shadow 6s ease-in-out infinite alternate;
}
.scn-the-missing-grapes .rug {
  position: absolute; bottom: 0%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #c8a868 0%, #a88848 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0; opacity: 0.6;
  animation: mg-rug 15s ease-in-out infinite alternate;
}
@keyframes mg-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mg-grapes { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes mg-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mg-shadow { 0%,100% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } }
@keyframes mg-rug { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }

/* Scene: officers-took-them */
.scn-officers-took-them {
  background: linear-gradient(180deg, #b8c8d8 0%, #9aacbe 40%, #7a8a9a 100%),
              radial-gradient(ellipse at 80% 30%, #d0e0f0 0%, transparent 50%);
}
.scn-officers-took-them .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d4e4f0 0%, #b0c4d8 100%);
  border-radius: 0 0 30% 30%; animation: ot-sky 12s ease-in-out infinite alternate;
}
.scn-officers-took-them .garden-wall {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-officers-took-them .table {
  position: absolute; bottom: 22%; left: 40%; width: 18%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px; transform: perspective(200px) rotateX(15deg);
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
}
.scn-officers-took-them .box {
  position: absolute; bottom: 26%; left: 45%; width: 8%; height: 5%;
  background: linear-gradient(180deg, #c8a868 0%, #a88848 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ot-box 5s ease-in-out infinite;
}
.scn-officers-took-them .figure-a {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: ot-figa 8s ease-in-out infinite;
}
.scn-officers-took-them .figure-b {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: ot-figb 8s ease-in-out infinite reverse;
}
.scn-officers-took-them .path {
  position: absolute; bottom: 0%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0; opacity: 0.7;
}
@keyframes ot-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ot-box { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ot-figa { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ot-figb { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* Scene: they-quarreled */
.scn-they-quarreled {
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 40%, #a09080 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%);
}
.scn-they-quarreled .room-bg {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #f0e0d0 0%, #d8c8b8 100%);
  border-radius: 0 0 30% 30%; animation: tq-room 10s ease-in-out infinite alternate;
}
.scn-they-quarreled .table {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 6px; transform: perspective(250px) rotateX(12deg);
  box-shadow: 0 -8px 16px rgba(0,0,0,0.2);
}
.scn-they-quarreled .grapes {
  position: absolute; bottom: 26%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%); background: radial-gradient(circle at 40% 30%, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4), 0 0 0 2px #4a3a1a;
  animation: tq-grapes 3s ease-in-out infinite alternate;
}
.scn-they-quarreled .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tq-figl 6s ease-in-out infinite;
}
.scn-they-quarreled .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tq-figr 6s ease-in-out infinite reverse;
}
.scn-they-quarreled .shadow-left {
  position: absolute; bottom: 17%; left: 28%; width: 20px; height: 6px;
  background: rgba(0,0,0,0.1); filter: blur(4px); border-radius: 50%;
  animation: tq-shadl 6s ease-in-out infinite;
}
.scn-they-quarreled .shadow-right {
  position: absolute; bottom: 17%; right: 28%; width: 20px; height: 6px;
  background: rgba(0,0,0,0.1); filter: blur(4px); border-radius: 50%;
  animation: tq-shadr 6s ease-in-out infinite reverse;
}
@keyframes tq-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tq-grapes { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.95); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes tq-figl { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tq-figr { 0% { transform: translateX(0) rotate(3deg); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(-10px) rotate(1deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes tq-shadl { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }
@keyframes tq-shadr { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

/* too-useful-to-both – tense, gaslit interior */
.scn-too-useful-to-both {
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1510 60%), linear-gradient(180deg, #2a1e12 0%, #0d0a07 100%);
  position: relative;
  overflow: hidden;
}
.scn-too-useful-to-both .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  animation: tub-wall 8s ease-in-out infinite alternate;
}
.scn-too-useful-to-both .lamp-glow {
  position: absolute; top: 15%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: tub-glow 2s ease-in-out infinite alternate;
}
.scn-too-useful-to-both .lamp-body {
  position: absolute; top: 18%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a, #2a1a0a);
  border-radius: 4px;
}
.scn-too-useful-to-both .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
  animation: tub-table 12s ease-in-out infinite alternate;
}
.scn-too-useful-to-both .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0805 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tub-figure 4s ease-in-out infinite;
}
.scn-too-useful-to-both .figure-right {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #0d0a06 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: tub-figure 5s ease-in-out infinite 1s;
}
.scn-too-useful-to-both .figure-center {
  position: absolute; bottom: 22%; left: 43%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: tub-centre 6s ease-in-out infinite;
}
.scn-too-useful-to-both .glass-shadow {
  position: absolute; bottom: 20%; left: 38%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, rgba(255,200,120,.3), transparent);
  border-radius: 20%;
  animation: tub-glass 3s ease-in-out infinite alternate;
}
@keyframes tub-wall { 0% { opacity:.6; filter:brightness(1); } 50% { opacity:.9; filter:brightness(1.1); } 100% { opacity:.7; filter:brightness(.95); } }
@keyframes tub-glow { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.7; transform: scale(1); } }
@keyframes tub-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tub-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-.5deg); } 75% { transform: translateX(3px) rotate(1.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes tub-centre { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes tub-glass { 0% { opacity:.4; transform: scaleX(1) scaleY(1); } 100% { opacity:.8; transform: scaleX(1.1) scaleY(1.2); } }

/* hooligan-stories – funny, gaslit street */
.scn-hooligan-stories {
  background: radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, #1a1510 60%), linear-gradient(180deg, #2a2018 0%, #0e0a07 100%);
  position: relative; overflow: hidden;
}
.scn-hooligan-stories .street-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
}
.scn-hooligan-stories .gas-lamp {
  position: absolute; top: 8%; left: 20%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #5a4a32, #2a1a0a);
  border-radius: 4px;
}
.scn-hooligan-stories .lamp-light {
  position: absolute; top: 10%; left: 16%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #ffd090 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  animation: hs-light 3s ease-in-out infinite alternate;
}
.scn-hooligan-stories .hooligan {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-hooligan 2s ease-in-out infinite;
}
.scn-hooligan-stories .girl {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1208 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hs-girl 4s ease-in-out infinite;
}
.scn-hooligan-stories .purse-flying {
  position: absolute; bottom: 40%; left: 45%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #6a5a3a, #3a2a1a);
  border-radius: 20%;
  animation: hs-purse 1.5s ease-in-out infinite alternate;
}
.scn-hooligan-stories .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1510 0%, #0d0905 100%);
  border-radius: 0 0 0 0;
}
@keyframes hs-light { 0% { opacity:.5; transform: scaleY(.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.6; transform: scaleY(1); } }
@keyframes hs-hooligan { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(10px) rotate(3deg); } 60% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hs-girl { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hs-purse { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(15px) translateY(-10px) rotate(20deg); } 100% { transform: translateX(30px) translateY(0) rotate(45deg); } }

/* hooligan-kiss-hand – funny, gaslit close-up */
.scn-hooligan-kiss-hand {
  background: radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, #1a1510 70%), linear-gradient(180deg, #2a1e12 0%, #0d0a07 100%);
  position: relative; overflow: hidden;
}
.scn-hooligan-kiss-hand .bg-dim {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, transparent 40%, rgba(0,0,0,.6) 100%);
  animation: hkh-dim 5s ease-in-out infinite alternate;
}
.scn-hooligan-kiss-hand .hand-knife {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #5a3a22 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: hkh-knife-hand 3s ease-in-out infinite;
}
.scn-hooligan-kiss-hand .hand-kissing {
  position: absolute; bottom: 22%; left: 48%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a18 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: hkh-kiss-hand 4s ease-in-out infinite;
}
.scn-hooligan-kiss-hand .wrist {
  position: absolute; bottom: 18%; left: 40%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #6a4a32, #2a1a0a);
  border-radius: 20%;
  animation: hkh-wrist 3s ease-in-out infinite alternate;
}
.scn-hooligan-kiss-hand .purse-drop {
  position: absolute; bottom: 10%; left: 55%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #5a4a2a, #2a1a0a);
  border-radius: 20%;
  animation: hkh-purse 2s ease-in-out infinite;
}
.scn-hooligan-kiss-hand .sparkle {
  position: absolute; top: 30%; left: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080, transparent);
  border-radius: 50%;
  animation: hkh-sparkle 1s ease-in-out infinite alternate;
}
@keyframes hkh-dim { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes hkh-knife-hand { 0% { transform: rotate(12deg) translateY(0); } 33% { transform: rotate(20deg) translateY(-5px); } 66% { transform: rotate(8deg) translateY(2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes hkh-kiss-hand { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes hkh-wrist { 0% { opacity:.3; } 100% { opacity:.7; } }
@keyframes hkh-purse { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-10px) rotate(30deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hkh-sparkle { 0% { opacity:.2; transform: scale(.5); } 100% { opacity:1; transform: scale(1.5); } }

/* locksmith-tries-revolver – funny, gaslit shop interior */
.scn-locksmith-tries-revolver {
  background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #1a1510 70%), linear-gradient(180deg, #2a2018 0%, #0e0a07 100%);
  position: relative; overflow: hidden;
}
.scn-locksmith-tries-revolver .shop-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
  animation: ltr-shop-bg 10s ease-in-out infinite alternate;
}
.scn-locksmith-tries-revolver .counter {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a4a32 0%, #2a1a12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
}
.scn-locksmith-tries-revolver .locksmith {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltr-locksmith 3s ease-in-out infinite;
}
.scn-locksmith-tries-revolver .revolver {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a, #2a1a0a);
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: ltr-revolver 2s ease-in-out infinite alternate;
}
.scn-locksmith-tries-revolver .grocer {
  position: absolute; bottom: 25%; left: 60%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1208 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ltr-grocer 5s ease-in-out infinite;
}
.scn-locksmith-tries-revolver .shelf {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 8px;
  background: linear-gradient(180deg, #3a2a1a, #1a1208);
  border-radius: 2px;
  animation: ltr-shelf 8s ease-in-out infinite alternate;
}
.scn-locksmith-tries-revolver .lamp-shop {
  position: absolute; top: 8%; left: 70%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #6a4a32, #2a1a0a);
  border-radius: 4px;
}
.scn-locksmith-tries-revolver .lamp-shop::after {
  content: '';
  position: absolute; top: -10px; left: -10px; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  animation: ltr-lamp 4s ease-in-out infinite alternate;
}
@keyframes ltr-shop-bg { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes ltr-locksmith { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes ltr-revolver { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-5px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ltr-grocer { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ltr-shelf { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes ltr-lamp { 0% { opacity:.5; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.6; transform: scale(1); } }

.scn-student-claims-dangerous {
  background: linear-gradient(180deg, #4a2c1a 0%, #2b1a0e 40%, #1a0e08 100%), radial-gradient(ellipse at 30% 80%, #7a4e2a 0%, transparent 60%);
}
.scn-student-claims-dangerous .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b55a2a 0%, #7a3e1e 50%, #4a2c1a 100%);
  animation: s1-sky 8s ease-in-out infinite alternate;
}
.scn-student-claims-dangerous .house {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #3a2210 0%, #1e1008 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: s1-house 6s ease-in-out infinite alternate;
}
.scn-student-claims-dangerous .wall {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 40px;
  background: #2a180e;
  border-radius: 0 0 4% 4%;
}
.scn-student-claims-dangerous .figure-student {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s1-walk 3s ease-in-out infinite alternate;
}
.scn-student-claims-dangerous .figure-landlord {
  position: absolute; bottom: 32%; left: 60%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a180e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: s1-standstill 4s ease-in-out infinite;
}
.scn-student-claims-dangerous .lantern {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffaa44 0%, #cc6600 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #cc6600, 0 0 40px 12px rgba(204,102,0,.4);
  animation: s1-glow 2.5s ease-in-out infinite alternate;
}
.scn-student-claims-dangerous .shadow {
  position: absolute; bottom: 28%; left: 35%; width: 80px; height: 10px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: s1-shadow 6s ease-in-out infinite alternate;
}
@keyframes s1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes s1-house {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes s1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes s1-standstill {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes s1-glow {
  0% { box-shadow: 0 0 15px 4px #cc6600; opacity: 0.85; }
  50% { box-shadow: 0 0 30px 10px #ffaa44; opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #cc6600; opacity: 0.9; }
}
@keyframes s1-shadow {
  0% { width: 80px; opacity: 0.5; }
  50% { width: 90px; opacity: 0.3; }
  100% { width: 80px; opacity: 0.5; }
}

.scn-student-fires-at-general {
  background: linear-gradient(180deg, #3a1a0a 0%, #2a1208 40%, #1a0a04 100%), radial-gradient(ellipse at 50% 90%, #5a2e14 0%, transparent 70%);
}
.scn-student-fires-at-general .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #8a3e1a 0%, #5a2a10 50%, #3a1a0a 100%);
  animation: s2-sky 10s ease-in-out infinite alternate;
}
.scn-student-fires-at-general .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1208 0%, #0e0602 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: s2-ground 12s ease-in-out infinite alternate;
}
.scn-student-fires-at-general .figure-student {
  position: absolute; bottom: 38%; left: 35%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #0e0604 0%, #060302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: s2-student 4s ease-in-out infinite;
}
.scn-student-fires-at-general .figure-general {
  position: absolute; bottom: 38%; left: 55%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: s2-general 3.5s ease-in-out infinite alternate;
}
.scn-student-fires-at-general .flash {
  position: absolute; bottom: 42%; left: 42%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffcc66 0%, #cc6600 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffcc66;
  animation: s2-flash 0.6s ease-in-out infinite;
}
.scn-student-fires-at-general .dust {
  position: absolute; bottom: 35%; left: 40%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(120,80,40,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s2-dust 3s ease-in-out infinite;
}
.scn-student-fires-at-general .smoke {
  position: absolute; bottom: 45%; left: 45%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,50,30,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: s2-smoke 5s ease-in-out infinite alternate;
}
@keyframes s2-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes s2-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes s2-student {
  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 s2-general {
  0% { transform: scale(1) translateY(0); }
  100% { transform: scale(0.95) translateY(-3px); }
}
@keyframes s2-flash {
  0%,100% { opacity: 0; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes s2-dust {
  0%,100% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-5px); }
}
@keyframes s2-smoke {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(10px) scale(1.3); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}

.scn-general-strikes-officer {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 40%, #0a0602 100%), radial-gradient(ellipse at 40% 100%, #4a2a12 0%, transparent 70%);
}
.scn-general-strikes-officer .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a3a1a 0%, #4a2210 50%, #2a1a0a 100%);
  animation: s3-sky 9s ease-in-out infinite alternate;
}
.scn-general-strikes-officer .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  animation: s3-ground 7s ease-in-out infinite alternate;
}
.scn-general-strikes-officer .figure-student {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #0e0604 0%, #060302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-45deg);
  animation: s3-fallen 5s ease-in-out infinite;
}
.scn-general-strikes-officer .figure-officer {
  position: absolute; bottom: 40%; left: 55%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: s3-kicking 4s ease-in-out infinite alternate;
}
.scn-general-strikes-officer .figure-subaltern {
  position: absolute; bottom: 40%; left: 65%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a0e08 0%, #0e0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: s3-striking 3.5s ease-in-out infinite;
}
.scn-general-strikes-officer .blow {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffaa44 0%, #cc6600 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #cc6600;
  animation: s3-blow 0.8s ease-in-out infinite;
}
.scn-general-strikes-officer .shadow {
  position: absolute; bottom: 30%; left: 25%; width: 100px; height: 8px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: s3-shadow 6s ease-in-out infinite alternate;
}
@keyframes s3-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes s3-ground {
  0% { transform: translateY(0); }
  100% { transform: translateY(1px); }
}
@keyframes s3-fallen {
  0% { transform: rotate(-45deg) translateY(0); }
  50% { transform: rotate(-40deg) translateY(-2px); }
  100% { transform: rotate(-45deg) translateY(0); }
}
@keyframes s3-kicking {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-6px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes s3-striking {
  0%,100% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-4px) rotate(-15deg); }
  75% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes s3-blow {
  0%,100% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.3); }
}
@keyframes s3-shadow {
  0% { width: 100px; opacity: 0.6; }
  50% { width: 120px; opacity: 0.3; }
  100% { width: 100px; opacity: 0.6; }
}

.scn-second-attempt-bomb-sleigh {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 80%);
  box-shadow: inset 0 0 60px rgba(0,0,20,0.8);
}
.scn-second-attempt-bomb-sleigh .sky-night {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 50%, #0a0a1a 100%);
  animation: s4-sky 15s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: s4-snow 20s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .sleigh {
  position: absolute; bottom: 25%; left: 30%; width: 160px; height: 40px;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a0e06 30%, #2a1a0e 70%, #1a0e06 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.8);
  animation: s4-sleigh 8s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .figure-dead {
  position: absolute; bottom: 26%; left: 35%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #0e0a12 0%, #06060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform: rotate(-45deg);
  animation: s4-dead 10s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .bomb {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 32px;
  background: radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(60,40,20,.6);
  animation: s4-bomb 5s ease-in-out infinite;
}
.scn-second-attempt-bomb-sleigh .blood {
  position: absolute; bottom: 24%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, #702243 0%, #3a1017 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s4-blood 12s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(20,20,40,0.6) 0%, transparent 70%);
  filter: blur(20px);
  animation: s4-fog 25s ease-in-out infinite alternate;
}
.scn-second-attempt-bomb-sleigh .star {
  position: absolute; top: 10%; right: 25%; width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,.5);
  animation: s4-star 3s ease-in-out infinite alternate;
}
@keyframes s4-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes s4-snow {
  0% { transform: translateY(0); }
  100% { transform: translateY(3px); }
}
@keyframes s4-sleigh {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes s4-dead {
  0% { transform: rotate(-45deg) translateY(0); }
  50% { transform: rotate(-50deg) translateY(2px); }
  100% { transform: rotate(-45deg) translateY(0); }
}
@keyframes s4-bomb {
  0% { transform: scale(1) rotate(0); }
  25% { transform: scale(1.05) rotate(5deg); }
  50% { transform: scale(1) rotate(0); }
  75% { transform: scale(0.95) rotate(-5deg); }
  100% { transform: scale(1) rotate(0); }
}
@keyframes s4-blood {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes s4-fog {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes s4-star {
  0% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}

/* Scene: natacha-returns-to-villa */
.scn-natacha-returns-to-villa { background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #b8a088 100%), radial-gradient(ellipse at 50% 30%, #ffe8a0 0%, transparent 70%); }
.scn-natacha-returns-to-villa .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8fc8ff 0%, #d0e8ff 100%); animation: sv1-sky 14s ease-in-out infinite alternate; }
.scn-natacha-returns-to-villa .villa-wall { position:absolute; bottom:20%; left:50%; width:180px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #f0d8b0 0%, #d4b88c 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.15), 6px 0 12px rgba(0,0,0,.2); }
.scn-natacha-returns-to-villa .villa-door { position:absolute; bottom:20%; left:calc(50% - 18px); width:36px; height:60px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:12% 12% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.4); }
.scn-natacha-returns-to-villa .wheelchair { position:absolute; bottom:18%; left:40%; width:40px; height:50px; background: linear-gradient(180deg, #808080 0%, #505050 100%); border-radius:30% 30% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sv1-wheel 6s ease-in-out infinite alternate; }
.scn-natacha-returns-to-villa .wheelchair::after { content:''; position:absolute; bottom:-10px; left:8px; width:20px; height:30px; background: #606060; border-radius:50%; }
.scn-natacha-returns-to-villa .natacha { position:absolute; bottom:16%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 60%, #806040 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv1-walk 8s ease-in-out infinite; }
.scn-natacha-returns-to-villa .shadow { position:absolute; bottom:16%; left:28%; width:30px; height:8px; background: rgba(0,0,0,.3); border-radius:50%; filter:blur(3px); animation: sv1-shadow 8s ease-in-out infinite; }
.scn-natacha-returns-to-villa .dust { position:absolute; bottom:15%; left:35%; width:4px; height:4px; background: #c0b090; border-radius:50%; box-shadow: 0 0 6px #c0b090; animation: sv1-dust 4s ease-in-out infinite; }
@keyframes sv1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sv1-wheel { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-2deg) translateX(-2px) } 100% { transform: rotate(2deg) translateX(2px) } }
@keyframes sv1-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes sv1-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.5) translateX(10px) } 100% { transform: scaleX(1) translateX(40px) } }
@keyframes sv1-dust { 0%,100% { opacity:0; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-10px) } }

/* Scene: inheritance-and-love */
.scn-inheritance-and-love { background: linear-gradient(180deg, #fff3d6 0%, #f0d8a0 30%, #d4b878 70%, #b89860 100%); }
.scn-inheritance-and-love .garden-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%, #e0c898 0%, #c0a878 100%); animation: sv2-bg 10s ease-in-out infinite alternate; }
.scn-inheritance-and-love .tree { position:absolute; bottom:20%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:60% 30% 20% 20% / 80% 40% 30% 30%; transform-origin: bottom; animation: sv2-tree 15s ease-in-out infinite alternate; }
.scn-inheritance-and-love .tree::before { content:''; position:absolute; top:-30px; left:-10px; width:80px; height:60px; background: radial-gradient(circle, #6a8a3a 0%, #4a6a2a 100%); border-radius:50%; }
.scn-inheritance-and-love .mother { position:absolute; bottom:15%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #d8c0a0 0%, #b89a78 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv2-fig 7s ease-in-out infinite; }
.scn-inheritance-and-love .daughter { position:absolute; bottom:15%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #e8d0b8 0%, #c8a888 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv2-fig 7s ease-in-out infinite reverse; }
.scn-inheritance-and-love .light-ray { position:absolute; top:5%; left:45%; width:80px; height:200px; background: linear-gradient(135deg, rgba(255,240,200,.6) 0%, transparent 100%); filter:blur(8px); animation: sv2-light 12s ease-in-out infinite alternate; }
.scn-inheritance-and-love .flower { position:absolute; bottom:14%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #c0553d 0%, #a0461a 100%); border-radius:50%; box-shadow: 0 0 6px #c0553d; animation: sv2-flower 5s ease-in-out infinite; }
@keyframes sv2-bg { 0% { opacity:.8 } 100% { opacity:1 } }
@keyframes sv2-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes sv2-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sv2-light { 0% { opacity:.3; transform: rotate(-5deg) scaleX(1) } 50% { opacity:.6; transform: rotate(0deg) scaleX(1.1) } 100% { opacity:.4; transform: rotate(5deg) scaleX(0.9) } }
@keyframes sv2-flower { 0%,100% { opacity:1; transform: scale(1) } 50% { opacity:.8; transform: scale(1.3) } }

/* Scene: at-the-gulf-finland */
.scn-at-the-gulf-finland { background: linear-gradient(180deg, #a0c8e8 0%, #d0e8f8 30%, #e8f0f8 60%, #c0d8e8 100%), radial-gradient(ellipse at 50% 80%, #f0f8ff 0%, transparent 60%); }
.scn-at-the-gulf-finland .seaside-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #78aad8 0%, #b0d8f0 100%); animation: sv3-sky 20s ease-in-out infinite alternate; }
.scn-at-the-gulf-finland .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #78b0d8 0%, #4a80a8 100%); animation: sv3-sea 12s ease-in-out infinite alternate; }
.scn-at-the-gulf-finland .ship { position:absolute; bottom:45%; left:20%; width:60px; height:25px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 30%  0 0; transform-origin: bottom center; animation: sv3-ship 18s ease-in-out infinite; }
.scn-at-the-gulf-finland .ship::after { content:''; position:absolute; top:-30px; left:10px; width:30px; height:35px; background: linear-gradient(135deg, #f0e8d8 0%, #c8b8a0 100%); clip-path: polygon(0 0, 100% 30%, 100% 70%, 0 100%); }
.scn-at-the-gulf-finland .wave-1 { position:absolute; bottom:30%; left:-5%; width:110%; height:15px; background: linear-gradient(180deg, #a0d0e8 0%, transparent 100%); border-radius:50%; filter:blur(2px); animation: sv3-wave1 6s ease-in-out infinite; }
.scn-at-the-gulf-finland .wave-2 { position:absolute; bottom:45%; left:-5%; width:110%; height:12px; background: linear-gradient(180deg, #90c0d8 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation: sv3-wave2 8s ease-in-out infinite reverse; }
.scn-at-the-gulf-finland .figure { position:absolute; bottom:40%; left:70%; width:18px; height:50px; background: linear-gradient(180deg, #d8c0a8 0%, #b09880 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv3-figure 10s ease-in-out infinite; }
.scn-at-the-gulf-finland .parasol { position:absolute; bottom:55%; left:72%; width:30px; height:20px; background: radial-gradient(circle at 50% 20%, #f0d8a0 0%, #c8a878 100%); border-radius:50% 50% 30% 30%; filter:blur(1px); animation: sv3-parasol 14s ease-in-out infinite alternate; }
@keyframes sv3-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sv3-sea { 0% { transform: translateY(0) } 100% { transform: translateY(2px) } }
@keyframes sv3-ship { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sv3-wave1 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.05) } 100% { transform: translateX(-10px) scaleY(0.95) } }
@keyframes sv3-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-8px) scaleY(1.1) } 100% { transform: translateX(8px) scaleY(0.9) } }
@keyframes sv3-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes sv3-parasol { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(0deg) scale(1.05) } 100% { transform: rotate(5deg) scale(0.95) } }

/* Scene: koupriane-confronts */
.scn-koupriane-confronts { background: linear-gradient(180deg, #c0b8a0 0%, #a89878 40%, #8a7a5a 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%); }
.scn-koupriane-confronts .street-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b898 100%); animation: sv4-bg 10s ease-in-out infinite alternate; }
.scn-koupriane-confronts .building { position:absolute; bottom:20%; left:5%; width:90%; height:60%; background: linear-gradient(180deg, #a09078 0%, #807060 100%); border-radius:2% 2% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.2); }
.scn-koupriane-confronts .building::before { content:''; position:absolute; top:10%; left:10%; width:80%; height:60%; background: linear-gradient(180deg, #b0a088 0%, #908070 100%); box-shadow: inset 0 0 10px rgba(0,0,0,.15); }
.scn-koupriane-confronts .koupriane { position:absolute; bottom:18%; left:30%; width:28px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv4-fig1 8s ease-in-out infinite; }
.scn-koupriane-confronts .gounsovski { position:absolute; bottom:18%; left:55%; width:24px; height:65px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: sv4-fig2 8s ease-in-out infinite reverse; }
.scn-koupriane-confronts .lamp { position:absolute; bottom:30%; left:40%; width:6px; height:30px; background: #4a3a2a; border-radius:4px; }
.scn-koupriane-confronts .lamp::after { content:''; position:absolute; top:-8px; left:-4px; width:14px; height:14px; background: radial-gradient(circle, #ffe080 0%, #d0a060 100%); border-radius:50%; box-shadow: 0 0 20px 4px rgba(255,224,128,.6); animation: sv4-lamp 4s ease-in-out infinite alternate; }
.scn-koupriane-confronts .shadow-k { position:absolute; bottom:17%; left:28%; width:40px; height:10px; background: rgba(0,0,0,.35); border-radius:50%; filter:blur(3px); animation: sv4-shadow 8s ease-in-out infinite; }
@keyframes sv4-bg { 0% { opacity:.85 } 100% { opacity:1 } }
@keyframes sv4-fig1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes sv4-fig2 { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sv4-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(0.95) } }
@keyframes sv4-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }

/* rouletabille-simple-plan — tense dim-interior */
.scn-rouletabille-simple-plan {
  background:
    linear-gradient(180deg, #1f1c28 0%, #2b2633 40%, #3d3545 70%, #2c2533 100%),
    radial-gradient(ellipse at 50% 80%, #3d2f45 0%, transparent 70%);
}
.scn-rouletabille-simple-plan .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2b2633 0%, #1f1c28 100%);
  animation: rs-room 15s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .table {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3d30 0%, #2e241c 100%);
  border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: rs-table 12s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .lamp-glow {
  position: absolute; bottom: 38%; left: 40%; width: 15%; height: 10%;
  background: radial-gradient(circle, rgba(230,190,140,0.9) 0%, rgba(180,130,80,0.5) 50%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: rs-lamp 4s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .figure-left {
  position: absolute; bottom: 12%; left: 20%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a1620 0%, #0e0c12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-fig-left 5s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .figure-right {
  position: absolute; bottom: 14%; right: 20%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #1f1c22 0%, #120f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-fig-right 6s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .plan-paper {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 3%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 100%);
  border-radius: 4% 4% 8% 8%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: rs-paper 8s ease-in-out infinite alternate;
}
.scn-rouletabille-simple-plan .shadow-arch {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #0f0d12 0%, transparent 70%);
  animation: rs-shadow 10s ease-in-out infinite alternate;
}
@keyframes rs-room { 0% { opacity:0.9 } 50% { opacity:0.95 } 100% { opacity:0.9 } }
@keyframes rs-table { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rs-lamp { 0% { box-shadow: 0 0 20px 6px rgba(230,190,140,0.6), 0 0 40px 12px rgba(180,130,80,0.3); opacity:0.85 } 50% { box-shadow: 0 0 30px 10px rgba(255,210,160,0.8), 0 0 60px 20px rgba(200,150,100,0.5); opacity:1 } 100% { box-shadow: 0 0 22px 7px rgba(230,190,140,0.6), 0 0 44px 14px rgba(180,130,80,0.3); opacity:0.85 } }
@keyframes rs-fig-left { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rs-fig-right { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(0.97) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rs-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rs-shadow { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.8 } }

/* assassins-have-moved — tense dim-interior */
.scn-assassins-have-moved {
  background:
    linear-gradient(180deg, #1f1c28 0%, #2b2633 40%, #1a1620 100%),
    radial-gradient(ellipse at 40% 60%, #2e2535 0%, transparent 60%);
}
.scn-assassins-have-moved .corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2b2633 0%, #3a3045 30%, #2b2633 70%, #1f1c28 100%);
  animation: am-corridor 20s ease-in-out infinite alternate;
}
.scn-assassins-have-moved .stair-rail {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 1%;
  background: linear-gradient(90deg, transparent 0%, #4a3f55 10%, #4a3f55 90%, transparent 100%);
  border-radius: 0% 0% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: am-rail 10s ease-in-out infinite alternate;
}
.scn-assassins-have-moved .door-frame {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #3a3045 0%, #1f1c28 100%);
  border-radius: 4% 4% 2% 2%; border: 2px solid #4a3f55; box-shadow: inset 0 0 12px #0f0d12;
  animation: am-door 8s ease-in-out infinite alternate;
}
.scn-assassins-have-moved .group-figures {
  position: absolute; bottom: 8%; left: 20%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #1a1620 0%, #0e0c12 100%);
  border-radius: 60% 60% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-group 6s ease-in-out infinite alternate;
}
.scn-assassins-have-moved .single-figure {
  position: absolute; bottom: 10%; right: 25%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #1f1c22 0%, #120f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-single 5s ease-in-out infinite alternate;
}
.scn-assassins-have-moved .lantern-swing {
  position: absolute; bottom: 60%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle, rgba(230,190,140,0.8) 0%, rgba(180,130,80,0.4) 60%, transparent 80%);
  border-radius: 50%; filter: blur(3px);
  animation: am-lantern 3s ease-in-out infinite alternate;
}
@keyframes am-corridor { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes am-rail { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) translateY(-1px) } 100% { transform: scaleY(1) } }
@keyframes am-door { 0% { box-shadow: inset 0 0 12px #0f0d12 } 50% { box-shadow: inset 0 0 16px #1a1620 } 100% { box-shadow: inset 0 0 12px #0f0d12 } }
@keyframes am-group { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes am-single { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes am-lantern { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }

/* national-anthem-descending — tense dim-interior */
.scn-national-anthem-descending {
  background:
    linear-gradient(180deg, #1a1a28 0%, #2a2a40 50%, #1a1a28 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a40 0%, transparent 70%);
}
.scn-national-anthem-descending .staircase {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a3a50 0%, #2a2a40 30%, #1a1a28 100%);
  border-radius: 20% 20% 0% 0% / 60% 60% 0% 0%;
  box-shadow: inset 0 8px 20px #0f0f18;
  animation: na-stair 14s ease-in-out infinite alternate;
}
.scn-national-anthem-descending .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a28 100%);
  border-right: 2px solid #3a3a50;
}
.scn-national-anthem-descending .wall-right {
  position: absolute; inset: 0 0 0 60%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a28 100%);
  border-left: 2px solid #3a3a50;
}
.scn-national-anthem-descending .general {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-general 7s ease-in-out infinite alternate;
}
.scn-national-anthem-descending .group-oval {
  position: absolute; bottom: 8%; left: 35%; width: 30%; height: 15%;
  background: radial-gradient(ellipse, #1a1a28 0%, #0f0f18 100%);
  border-radius: 50%;
  animation: na-group 10s ease-in-out infinite alternate;
}
.scn-national-anthem-descending .window-slits {
  position: absolute; top: 15%; left: 25%; width: 4%; height: 20%;
  background: linear-gradient(180deg, rgba(200,200,255,0.2) 0%, rgba(200,200,255,0.1) 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(200,200,255,0.3);
  animation: na-slits 8s ease-in-out infinite alternate;
}
.scn-national-anthem-descending .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.03) 0%, transparent 50%);
  animation: na-dust 20s linear infinite;
}
@keyframes na-stair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes na-general { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes na-group { 0% { opacity:0.7; transform: scale(0.98) } 50% { opacity:0.85; transform: scale(1) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes na-slits { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes na-dust { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-10px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* the-explosion — dark firelit */
.scn-the-explosion {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a0e0e 30%, #3a1515 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #5c2020 0%, transparent 70%);
}
.scn-the-explosion .burst-bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 40%, #b84a1a 0%, #7a2a0a 40%, #3a1515 70%, #1a0a0a 100%);
  animation: te-burst 8s ease-in-out infinite alternate;
}
.scn-the-explosion .flame-core {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 25%;
  background: radial-gradient(circle, #f5a060 0%, #d06020 40%, #8a3010 70%, transparent 100%);
  border-radius: 50%;
  animation: te-flame 2s ease-in-out infinite alternate;
}
.scn-the-explosion .debris-1 {
  position: absolute; bottom: 50%; left: 20%; width: 5%; height: 5%;
  background: linear-gradient(135deg, #5a2a1a 0%, #3a1515 100%);
  border-radius: 20% 50% 50% 20%;
  animation: te-deb1 3s ease-in-out infinite alternate;
}
.scn-the-explosion .debris-2 {
  position: absolute; bottom: 45%; right: 25%; width: 4%; height: 4%;
  background: linear-gradient(45deg, #5a2a1a 0%, #3a1515 100%);
  border-radius: 50% 20% 20% 50%;
  animation: te-deb2 4s ease-in-out infinite alternate;
}
.scn-the-explosion .debris-3 {
  position: absolute; top: 30%; left: 30%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1515 100%);
  border-radius: 20% 20% 50% 50%;
  animation: te-deb3 5s ease-in-out infinite alternate;
}
.scn-the-explosion .smoke-cloud {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(80,60,50,0.6) 0%, rgba(40,30,25,0.3) 60%, transparent 100%);
  filter: blur(8px);
  animation: te-smoke 12s ease-in-out infinite alternate;
}
.scn-the-explosion .sparks {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 30% 50%, rgba(255,200,100,0.3) 0%, transparent 10%), radial-gradient(circle at 70% 30%, rgba(255,180,80,0.2) 0%, transparent 10%);
  animation: te-spark 0.6s steps(2) infinite;
}
.scn-the-explosion .falling-figure {
  position: absolute; bottom: 40%; left: 50%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #2a1515 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: te-fall 4s ease-in-out infinite alternate;
}
@keyframes te-burst { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:0.95; transform: scale(1.02) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes te-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.3) translateY(-5px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes te-deb1 { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(10px, -15px) rotate(45deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes te-deb2 { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(-15px, -10px) rotate(-30deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes te-deb3 { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 50% { transform: translate(5px, -20px) rotate(60deg) scale(0.8) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes te-smoke { 0% { opacity:0.3; transform: scale(0.9) translateY(0) } 50% { opacity:0.6; transform: scale(1.1) translateY(-5px) } 100% { opacity:0.3; transform: scale(0.9) translateY(0) } }
@keyframes te-spark { 0%,100% { opacity:0.3 } 50% { opacity:0.7 } }
@keyframes te-fall { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-10px) rotate(-3deg) } 100% { transform: translateY(0) rotate(5deg) } }

.scn-rope-breaks { background: linear-gradient(180deg, #1c1a1a 0%, #0e0c0c 50%, #1a1818 100%), radial-gradient(ellipse at 30% 50%, #2a2222 0%, transparent 70%); }
.scn-rope-breaks .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2420 0%, #12100e 100%); animation: rbr-wall 20s ease-in-out infinite alternate; }
.scn-rope-breaks .beam { position:absolute; top:0; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #4a3e30 0%, #2a2218 100%); border-radius: 0 0 8px 8px; box-shadow: 0 4px 12px rgba(0,0,0,.8); }
.scn-rope-breaks .ring-bolt { position:absolute; top:5%; left:40%; width:8px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e20 100%); border-radius: 50% 50% 0 0; transform: rotate(10deg); animation: rbr-ring 6s ease-in-out infinite; }
.scn-rope-breaks .table { position:absolute; bottom:20%; left:25%; right:25%; height:14%; background: linear-gradient(180deg, #5a4a38 0%, #2a1e14 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.7); }
.scn-rope-breaks .rope { position:absolute; top:5%; left:40%; width:4px; height:70%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 2px; transform-origin: top center; animation: rbr-rope 4s ease-in-out infinite; }
.scn-rope-breaks .figure-struggle { position:absolute; bottom:20%; left:38%; width:20px; height:60px; background: linear-gradient(180deg, #1a1814 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rbr-figure 3s ease-in-out infinite; }
.scn-rope-breaks .shadow { position:absolute; bottom:18%; left:30%; right:30%; height:8%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(10px); animation: rbr-shadow 5s ease-in-out infinite; }
@keyframes rbr-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rbr-ring { 0%,100% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.05) } }
@keyframes rbr-rope { 0% { transform: rotate(-2deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes rbr-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-8px) rotate(5deg) } 50% { transform: translateY(2px) rotate(-1deg) } 75% { transform: translateY(-5px) rotate(4deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes rbr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-rouletabille-weeps { background: linear-gradient(135deg, #181520 0%, #0e0c14 50%, #1c1824 100%), radial-gradient(ellipse at 70% 30%, #2c2238 0%, transparent 60%); }
.scn-rouletabille-weeps .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1c1824 0%, #0c0a10 100%); animation: rwe-room 12s ease-in-out infinite alternate; }
.scn-rouletabille-weeps .sack-left { position:absolute; bottom:10%; left:8%; width:60px; height:70px; background: radial-gradient(ellipse at 40% 30%, #5a4e3c 0%, #2a2218 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 30%; transform: rotate(-15deg); animation: rwe-sack 8s ease-in-out infinite; }
.scn-rouletabille-weeps .sack-right { position:absolute; bottom:8%; right:12%; width:50px; height:60px; background: radial-gradient(ellipse at 60% 40%, #4a3e2c 0%, #1e1810 100%); border-radius: 30% 40% 50% 40% / 40% 50% 30% 40%; transform: rotate(10deg); animation: rwe-sack 9s ease-in-out infinite reverse; }
.scn-rouletabille-weeps .icon-st-luke { position:absolute; top:15%; left:20%; width:16px; height:22px; background: radial-gradient(circle, #c8a868 0%, #8a6a38 70%); border-radius: 4px; box-shadow: 0 0 12px 3px rgba(200,168,104,.5); animation: rwe-icon 6s ease-in-out infinite alternate; }
.scn-rouletabille-weeps .icon-virgin { position:absolute; top:15%; right:25%; width:14px; height:20px; background: radial-gradient(circle, #c0a070 0%, #7a5a30 70%); border-radius: 4px; box-shadow: 0 0 10px 2px rgba(192,160,112,.4); animation: rwe-icon 7s ease-in-out infinite alternate; }
.scn-rouletabille-weeps .figure-kneeling { position:absolute; bottom:20%; left:38%; width:18px; height:40px; background: linear-gradient(180deg, #1a1620 0%, #0a0810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rwe-kneel 4s ease-in-out infinite; }
.scn-rouletabille-weeps .glow-candle { position:absolute; top:40%; left:30%; width:6px; height:10px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,208,128,.6), 0 0 40px 12px rgba(255,208,128,.3); animation: rwe-candle 3s ease-in-out infinite alternate; }
.scn-rouletabille-weeps .shadow-voice { position:absolute; bottom:40%; right:15%; width:30px; height:40px; background: rgba(0,0,0,.6); border-radius: 50% 30% 30% 50% / 60% 40% 60% 40%; filter: blur(8px); animation: rwe-voice 5s ease-in-out infinite; }
@keyframes rwe-room { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rwe-sack { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.03) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes rwe-icon { 0% { box-shadow: 0 0 8px 2px rgba(200,168,104,.4); opacity:.8 } 50% { box-shadow: 0 0 16px 5px rgba(200,168,104,.7); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(200,168,104,.5); opacity:.9 } }
@keyframes rwe-kneel { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes rwe-candle { 0% { opacity:.7; filter: brightness(0.8) } 50% { opacity:1; filter: brightness(1.2) } 100% { opacity:.8; filter: brightness(0.9) } }
@keyframes rwe-voice { 0% { transform: translateX(0) scale(1); opacity:.4 } 50% { transform: translateX(-5px) scale(1.05); opacity:.6 } 100% { transform: translateX(0) scale(1); opacity:.4 } }

.scn-confessing-to-tribunal { background: linear-gradient(180deg, #1e1c22 0%, #141218 50%, #1a1820 100%), radial-gradient(ellipse at 40% 50%, #2c2840 0%, transparent 60%); }
.scn-confessing-to-tribunal .bg-court { position:absolute; inset:0; background: linear-gradient(180deg, #2a2632 0%, #12101a 100%); animation: ctr-bg 15s ease-in-out infinite alternate; }
.scn-confessing-to-tribunal .desk { position:absolute; bottom:15%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #5a4a38 0%, #2a1e14 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-confessing-to-tribunal .figure-writing { position:absolute; bottom:15%; left:38%; width:18px; height:50px; background: linear-gradient(180deg, #1a1822 0%, #0a0812 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ctr-write 3s ease-in-out infinite; }
.scn-confessing-to-tribunal .letter-stack { position:absolute; bottom:24%; left:45%; width:12px; height:6px; background: linear-gradient(180deg, #c0b08a 0%, #9a8a6a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ctr-letter 4s ease-in-out infinite alternate; }
.scn-confessing-to-tribunal .shadows-audience { position:absolute; bottom:10%; left:5%; right:5%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 70%); filter: blur(12px); animation: ctr-shadows 6s ease-in-out infinite; }
.scn-confessing-to-tribunal .lamplight { position:absolute; top:45%; left:35%; width:8px; height:12px; background: radial-gradient(circle, #ffe0a0 0%, #c08040 70%); border-radius: 4px; box-shadow: 0 0 24px 8px rgba(255,224,160,.5), 0 0 48px 16px rgba(255,224,160,.2); animation: ctr-lamp 5s ease-in-out infinite; }
@keyframes ctr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ctr-write { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes ctr-letter { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ctr-shadows { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.5; transform: scaleY(1) } }
@keyframes ctr-lamp { 0% { filter: brightness(0.9); box-shadow: 0 0 20px 6px rgba(255,224,160,.4) } 50% { filter: brightness(1.1); box-shadow: 0 0 30px 10px rgba(255,224,160,.6) } 100% { filter: brightness(0.95); box-shadow: 0 0 22px 7px rgba(255,224,160,.45) } }

.scn-the-execution-interrupted { background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 50%, #141212 100%), radial-gradient(ellipse at 50% 20%, #2a2222 0%, transparent 80%); }
.scn-the-execution-interrupted .bg-damage { position:absolute; inset:0; background: linear-gradient(180deg, #242020 0%, #121010 100%); animation: tei-bg 12s ease-in-out infinite alternate; }
.scn-the-execution-interrupted .broken-beam { position:absolute; top:0; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 0 0 12px 12px; box-shadow: 0 4px 12px rgba(0,0,0,.8); animation: tei-beam 5s ease-in-out infinite; }
.scn-the-execution-interrupted .broken-ring { position:absolute; top:7%; left:40%; width:12px; height:8px; background: linear-gradient(180deg, #6a5a48 0%, #3a2e1e 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: tei-ring 4s ease-in-out infinite; }
.scn-the-execution-interrupted .rope-dangle { position:absolute; top:6%; left:40%; width:4px; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 2px; transform-origin: top center; animation: tei-rope 6s ease-in-out infinite; }
.scn-the-execution-interrupted .figure-rouletabille { position:absolute; bottom:15%; left:35%; width:18px; height:50px; background: linear-gradient(180deg, #1a1818 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: tei-figure 3s ease-in-out infinite; }
.scn-the-execution-interrupted .debris { position:absolute; bottom:10%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 0 0 20px 20px; filter: blur(2px); animation: tei-debris 8s ease-in-out infinite; }
@keyframes tei-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tei-beam { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tei-ring { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(30deg) scale(1.05) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes tei-rope { 0% { transform: rotate(-3deg) } 33% { transform: rotate(5deg) } 66% { transform: rotate(-2deg) } 100% { transform: rotate(-3deg) } }
@keyframes tei-figure { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes tei-debris { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.6 } }

/* Scene: confrontation-with-prince (cp) */
.scn-confrontation-with-prince {
  background: 
    linear-gradient(180deg, #f7d9aa 0%, #e8c08a 30%, #b8946a 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 30% 100%, #d4a87a 0%, transparent 70%);
}
.scn-confrontation-with-prince .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f9dbb0 0%, #f0c8a0 40%, transparent 100%);
  animation: cp-sky 10s ease-in-out infinite alternate;
}
.scn-confrontation-with-prince .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-confrontation-with-prince .building-back {
  position: absolute; bottom: 35%; left: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: cp-buiding 14s ease-in-out infinite alternate;
}
.scn-confrontation-with-prince .prince {
  position: absolute; bottom: 28%; left: 42%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 3s ease-in-out infinite alternate;
}
.scn-confrontation-with-prince .protagonist {
  position: absolute; bottom: 29%; left: 54%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cp-figure 3s ease-in-out infinite alternate-reverse;
}
.scn-confrontation-with-prince .lamp {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 14px;
  background: #c8a060;
  border-radius: 20% 20% 50% 50%;
  box-shadow: 0 0 0 2px #a08040;
  animation: cp-lamp 4s ease-in-out infinite alternate;
}
.scn-confrontation-with-prince .lamp-glow {
  position: absolute; bottom: 34%; left: 47.5%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0c868 0%, #d4a050 40%, transparent 70%);
  border-radius: 50%;
  animation: cp-glow 2s ease-in-out infinite alternate;
}
@keyframes cp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cp-buiding { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes cp-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes cp-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }
@keyframes cp-glow { 0% { opacity: 0.6; box-shadow: 0 0 8px 4px #d4a050; } 50% { opacity: 1; box-shadow: 0 0 16px 8px #f0c868; } 100% { opacity: 0.7; box-shadow: 0 0 10px 5px #c89040; } }

/* Scene: rouletabille-explains-action (re) */
.scn-rouletabille-explains-action {
  background:
    linear-gradient(180deg, #f7d9aa 0%, #e0b880 35%, #a07a5a 65%, #5a3a2a 100%),
    radial-gradient(ellipse at 60% 80%, #c8a87a 0%, transparent 70%);
}
.scn-rouletabille-explains-action .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fde6c0 0%, #f0c8a0 50%, transparent 100%);
  animation: re-sky 12s ease-in-out infinite alternate;
}
.scn-rouletabille-explains-action .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 80% / 0 0 30% 40%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: re-road 18s ease-in-out infinite alternate;
}
.scn-rouletabille-explains-action .carriage {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a301a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: re-carriage 4s ease-in-out infinite alternate;
}
.scn-rouletabille-explains-action .wheel-left {
  position: absolute; bottom: 22%; left: 38%; width: 16px; height: 16px;
  background: radial-gradient(circle, #2a1a0a 40%, #1a0a0a 60%, transparent 80%);
  border-radius: 50%;
  border: 2px solid #1a0a0a;
  animation: re-wheel 2s linear infinite;
}
.scn-rouletabille-explains-action .wheel-right {
  position: absolute; bottom: 22%; left: 58%; width: 16px; height: 16px;
  background: radial-gradient(circle, #2a1a0a 40%, #1a0a0a 60%, transparent 80%);
  border-radius: 50%;
  border: 2px solid #1a0a0a;
  animation: re-wheel 2s linear infinite reverse;
}
.scn-rouletabille-explains-action .horse {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 30px;
  background: linear-gradient(135deg, #5a4020 0%, #3a2010 100%);
  border-radius: 30% 50% 20% 40% / 40% 60% 30% 30%;
  transform-origin: center bottom;
  animation: re-horse 0.8s ease-in-out infinite alternate;
}
.scn-rouletabille-explains-action .speaker {
  position: absolute; bottom: 35%; left: 60%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: re-speaker 3s ease-in-out infinite;
}
@keyframes re-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes re-road { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes re-carriage { 0% { transform: translateX(0) rotate(-0.5deg) } 50% { transform: translateX(3px) rotate(0.5deg) } 100% { transform: translateX(-2px) rotate(-0.3deg) } }
@keyframes re-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes re-horse { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes re-speaker { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(3deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: i-did-it-on-purpose (id) */
.scn-i-did-it-on-purpose {
  background:
    linear-gradient(180deg, #f7d9aa 0%, #d4b88a 30%, #8a7a5a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 40% 80%, #c0a870 0%, transparent 70%);
}
.scn-i-did-it-on-purpose .dawn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fde6c0 0%, #f0c8a0 40%, transparent 100%);
  animation: id-sky 11s ease-in-out infinite alternate;
}
.scn-i-did-it-on-purpose .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 60%, #2a3a2a 100%);
  border-radius: 0 0 30% 70% / 0 0 10% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: id-river 15s ease-in-out infinite alternate;
}
.scn-i-did-it-on-purpose .bank {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-i-did-it-on-purpose .bench {
  position: absolute; bottom: 34%; left: 40%; width: 50px; height: 14px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: id-bench 8s ease-in-out infinite alternate;
}
.scn-i-did-it-on-purpose .figure-sitting {
  position: absolute; bottom: 32%; left: 44%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: id-figure 5s ease-in-out infinite;
}
.scn-i-did-it-on-purpose .tree {
  position: absolute; bottom: 20%; left: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 20% 40% / 60% 80% 20% 20%;
  filter: blur(2px);
  animation: id-tree 20s ease-in-out infinite alternate;
}
.scn-i-did-it-on-purpose .reflection {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(50,70,50,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: id-reflect 6s ease-in-out infinite alternate;
}
@keyframes id-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes id-river { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes id-bench { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes id-figure { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(1deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes id-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes id-reflect { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* Scene: never (ne) */
.scn-never {
  background:
    linear-gradient(180deg, #f7d9aa 0%, #d4a87a 30%, #7a5a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 20% 80%, #b8905a 0%, transparent 70%);
}
.scn-never .dawn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fde6c0 0%, #f0c8a0 40%, transparent 100%);
  animation: ne-sky 9s ease-in-out infinite alternate;
}
.scn-never .wall-left {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: ne-wall 12s ease-in-out infinite alternate;
}
.scn-never .wall-right {
  position: absolute; bottom: 0; right: 0; width: 40%; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 0 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: ne-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-never .doorway {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: ne-door 7s ease-in-out infinite alternate;
}
.scn-never .figure-turning {
  position: absolute; bottom: 15%; left: 48%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ne-figure 4s ease-in-out infinite;
}
.scn-never .shadow {
  position: absolute; bottom: 0; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: ne-shadow 3s ease-in-out infinite alternate;
}
.scn-never .light-spark {
  position: absolute; bottom: 55%; left: 48%; width: 6px; height: 6px;
  background: #f0d080;
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(240,208,128,0.6);
  animation: ne-spark 2s ease-in-out infinite alternate;
}
@keyframes ne-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ne-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ne-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ne-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-4px) rotate(-5deg) } 70% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ne-shadow { 0% { transform: scaleX(1) opacity: 0.4; } 50% { transform: scaleX(0.8) opacity: 0.6; } 100% { transform: scaleX(1.1) opacity: 0.3; } }
@keyframes ne-spark { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.5; transform: scale(0.8); } }

.scn-pretending-to-know-him {
  background: 
    radial-gradient(ellipse at 50% 40%, rgba(80,50,30,0.6) 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0a 0%, #1a1008 60%, #0f0804 100%);
}
.scn-pretending-to-know-him .wall-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  animation: prt-wall 12s ease-in-out infinite alternate;
}
.scn-pretending-to-know-him .door-opening {
  position:absolute; left:30%; bottom:10%; width:40%; height:70%; background: #0f0804;
  border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
  animation: prt-door 8s ease-in-out infinite alternate;
}
.scn-pretending-to-know-him .chandelier {
  position:absolute; top:8%; left:50%; transform:translateX(-50%); width:60px; height:40px;
  background: radial-gradient(ellipse, #b08040 0%, #4a3010 60%, transparent 70%);
  border-radius: 50%; filter: blur(4px); box-shadow: 0 0 80px 20px #b08040;
  animation: prt-chande 6s ease-in-out infinite alternate;
}
.scn-pretending-to-know-him .light-oval {
  position:absolute; top:12%; left:50%; transform:translateX(-50%); width:120px; height:80px;
  background: radial-gradient(ellipse, #d0a060 0%, transparent 60%);
  filter: blur(10px); opacity:0.6; animation: prt-light 5s ease-in-out infinite alternate;
}
.scn-pretending-to-know-him .figure-left {
  position:absolute; bottom:12%; left:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0604 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 40% 40%;
  transform: rotate(5deg); animation: prt-fig-l 4s ease-in-out infinite;
}
.scn-pretending-to-know-him .figure-right {
  position:absolute; bottom:12%; right:20%; width:35px; height:75px;
  background: linear-gradient(180deg, #2a1a10 0%, #0f0804 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 40% 40%;
  transform: rotate(-5deg); animation: prt-fig-r 4s ease-in-out infinite;
}
.scn-pretending-to-know-him .floor-shadow {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
}
@keyframes prt-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes prt-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes prt-chande { 0% { filter: blur(3px); opacity:0.7 } 50% { filter: blur(5px); opacity:0.9 } 100% { filter: blur(4px); opacity:0.8 } }
@keyframes prt-light { 0% { opacity:0.4; transform:translateX(-50%) scale(1) } 50% { opacity:0.7; transform:translateX(-50%) scale(1.05) } 100% { opacity:0.5; transform:translateX(-50%) scale(0.98) } }
@keyframes prt-fig-l { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes prt-fig-r { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-sending-police-away {
  background: 
    radial-gradient(ellipse at 50% 60%, #1a1008 0%, transparent 60%),
    linear-gradient(180deg, #0f0a05 0%, #1a1208 40%, #0f0804 100%);
}
.scn-sending-police-away .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a140e 0%, #0f0a05 100%);
  animation: spa-bg 15s ease-in-out infinite alternate;
}
.scn-sending-police-away .door-panel {
  position:absolute; right:10%; bottom:5%; width:30%; height:75%; 
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 4% 4% 0 0 / 6% 6% 0 0; box-shadow: -4px 0 20px rgba(0,0,0,0.6);
  animation: spa-door 6s ease-in-out infinite alternate;
}
.scn-sending-police-away .crack-of-light {
  position:absolute; right:12%; bottom:25%; width:4px; height:30px;
  background: #d0a060; box-shadow: 0 0 20px 8px #d0a060; filter: blur(3px);
  animation: spa-crack 3s ease-in-out infinite alternate;
}
.scn-sending-police-away .figure-back {
  position:absolute; bottom:8%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-2deg); animation: spa-fig-b 5s ease-in-out infinite;
}
.scn-sending-police-away .hand-on-door {
  position:absolute; bottom:45%; right:20%; width:12px; height:20px;
  background: #2a1a10; border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(20deg); animation: spa-hand 4s ease-in-out infinite alternate;
}
.scn-sending-police-away .floor-planks {
  position:absolute; bottom:0; left:0; right:0; height:8%;
  background: repeating-linear-gradient(90deg, #1a1008 0px, #1a1008 20px, #0f0804 20px, #0f0804 25px);
  opacity:0.5;
}
.scn-sending-police-away .waiting-shadow {
  position:absolute; bottom:5%; right:5%; width:25px; height:60px;
  background: rgba(0,0,0,0.4); filter: blur(8px);
  animation: spa-shadow 7s ease-in-out infinite alternate;
}
@keyframes spa-bg { 0% { opacity:0.8 } 50% { opacity:0.6 } 100% { opacity:0.75 } }
@keyframes spa-door { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(0.99) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes spa-crack { 0% { opacity:0.6; height:28px } 50% { opacity:1; height:32px } 100% { opacity:0.7; height:30px } }
@keyframes spa-fig-b { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes spa-hand { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(15deg) translateX(1px) } 100% { transform: rotate(20deg) translateX(0) } }
@keyframes spa-shadow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

.scn-rouletabille-orders-removal {
  background: 
    radial-gradient(ellipse at 50% 20%, #4a3020 0%, transparent 70%),
    linear-gradient(180deg, #1a0e08 0%, #1a1008 50%, #0f0804 100%);
}
.scn-rouletabille-orders-removal .corridor-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  animation: ror-bg 14s ease-in-out infinite alternate;
}
.scn-rouletabille-orders-removal .flooring-holes {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: repeating-conic-gradient(#1a0e08 0%, #0f0804 0.5%, transparent 0.5%) 0 0 / 20px 20px;
  opacity:0.3;
}
.scn-rouletabille-orders-removal .woman-silhouette {
  position:absolute; bottom:10%; left:30%; width:35px; height:75px;
  background: linear-gradient(180deg, #0f0a05 0%, #050301 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(3deg); animation: ror-woman 5s ease-in-out infinite;
}
.scn-rouletabille-orders-removal .rusty-lamp {
  position:absolute; top:15%; left:40%; width:20px; height:30px;
  background: radial-gradient(ellipse, #c08040 0%, #4a3010 60%, transparent 70%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 0 40px 10px #b07030;
  animation: ror-lamp 8s ease-in-out infinite alternate;
}
.scn-rouletabille-orders-removal .policeman-statue {
  position:absolute; bottom:8%; right:15%; width:30px; height:85px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(0.8); animation: ror-statue 10s ease-in-out infinite alternate;
}
.scn-rouletabille-orders-removal .window-sunset {
  position:absolute; top:18%; right:10%; width:60px; height:90px;
  background: linear-gradient(180deg, #a06030 0%, #503018 40%, #1a0e08 80%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ror-window 9s ease-in-out infinite alternate;
}
.scn-rouletabille-orders-removal .watching-eye {
  position:absolute; top:42%; right:16%; width:8px; height:4px;
  background: #d0a060; border-radius: 50%; box-shadow: 0 0 10px 3px #d0a060;
  animation: ror-eye 3s ease-in-out infinite alternate;
}
@keyframes ror-bg { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.8 } }
@keyframes ror-woman { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes ror-lamp { 0% { filter: blur(5px); opacity:0.7 } 50% { filter: blur(8px); opacity:0.9 } 100% { filter: blur(6px); opacity:0.8 } }
@keyframes ror-statue { 0% { transform: scaleX(0.8) translateY(0) } 50% { transform: scaleX(0.82) translateY(-1px) } 100% { transform: scaleX(0.8) translateY(0) } }
@keyframes ror-window { 0% { background-position: 0% 0% } 50% { background-position: 0% 30% } 100% { background-position: 0% 0% } }
@keyframes ror-eye { 0% { opacity:0.3; transform: scaleY(0.5) } 50% { opacity:0.8; transform: scaleY(1) } 100% { opacity:0.4; transform: scaleY(0.6) } }

.scn-police-protest-orders {
  background: 
    radial-gradient(ellipse at 50% 50%, #2a1a0e 0%, transparent 50%),
    linear-gradient(180deg, #1a1008 0%, #0f0804 100%);
}
.scn-police-protest-orders .office-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0f0a05 100%);
  animation: ppo-bg 16s ease-in-out infinite alternate;
}
.scn-police-protest-orders .desk-outline {
  position:absolute; bottom:12%; left:10%; width:80%; height:10%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  animation: ppo-desk 7s ease-in-out infinite alternate;
}
.scn-police-protest-orders .figure-seated {
  position:absolute; bottom:16%; left:30%; width:40px; height:60px;
  background: linear-gradient(180deg, #2a1a10 0%, #0f0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-3deg); animation: ppo-seat 4s ease-in-out infinite;
}
.scn-police-protest-orders .figure-standing {
  position:absolute; bottom:10%; right:25%; width:35px; height:80px;
  background: linear-gradient(180deg, #1a0f08 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(2deg); animation: ppo-stand 5s ease-in-out infinite alternate;
}
.scn-police-protest-orders .lamp-glow {
  position:absolute; top:20%; left:50%; transform:translateX(-50%); width:80px; height:60px;
  background: radial-gradient(ellipse, #b08040 0%, #4a3010 60%, transparent 70%);
  filter: blur(8px); box-shadow: 0 0 60px 20px #b08040; opacity:0.6;
  animation: ppo-lamp 9s ease-in-out infinite alternate;
}
.scn-police-protest-orders .paper-stack {
  position:absolute; bottom:16%; left:15%; width:50px; height:8px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ppo-paper 6s ease-in-out infinite alternate;
}
.scn-police-protest-orders .flicker-shadows {
  position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 40%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.1) 42%);
  animation: ppo-flicker 2s steps(2) infinite;
}
@keyframes ppo-bg { 0% { filter: brightness(1) } 50% { filter: brightness(0.9) } 100% { filter: brightness(1) } }
@keyframes ppo-desk { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ppo-seat { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ppo-stand { 0% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(3px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes ppo-lamp { 0% { opacity:0.5; filter: blur(6px) } 50% { opacity:0.8; filter: blur(10px) } 100% { opacity:0.6; filter: blur(8px) } }
@keyframes ppo-paper { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes ppo-flicker { 0% { opacity:0 } 50% { opacity:0.1 } 100% { opacity:0 } }

.scn-dinner-and-cynical-tranquility {
  background: linear-gradient(180deg, #3a2a1a 0%, #6a5535 40%, #9a7a4a 100%), radial-gradient(ellipse at 40% 30%, #ffe080 0%, transparent 60%);
}
.scn-dinner-and-cynical-tranquility .wall {
  position: absolute; inset:0 0 45% 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #7a6a4a 50%, #4a3a2a 100%);
  animation: dct-wall 15s ease-in-out infinite alternate;
}
.scn-dinner-and-cynical-tranquility .table {
  position: absolute; bottom:20%; left:10%; width:80%; height:12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: dct-table 12s ease-in-out infinite;
}
.scn-dinner-and-cynical-tranquility .plate {
  position: absolute; bottom:28%; width:12%; height:4%;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 70%);
  border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-dinner-and-cynical-tranquility .plate-left {
  left:20%; animation: dct-plate 8s ease-in-out infinite;
}
.scn-dinner-and-cynical-tranquility .plate-right {
  right:20%; animation: dct-plate 8s ease-in-out infinite 2s;
}
.scn-dinner-and-cynical-tranquility .figure-left {
  position: absolute; bottom:24%; left:15%; width:14%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dct-fig-l 6s ease-in-out infinite alternate;
}
.scn-dinner-and-cynical-tranquility .figure-right {
  position: absolute; bottom:24%; right:15%; width:14%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dct-fig-r 6s ease-in-out infinite alternate 1s;
}
.scn-dinner-and-cynical-tranquility .cat {
  position: absolute; bottom:22%; left:42%; width:10%; height:8%;
  background: radial-gradient(ellipse at 30% 40%, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: dct-cat 4s ease-in-out infinite;
}
.scn-dinner-and-cynical-tranquility .window {
  position: absolute; top:10%; right:15%; width:20%; height:30%;
  background: radial-gradient(ellipse, rgba(255,230,180,0.15) 0%, transparent 70%);
  border: 2px solid #4a3a2a; border-radius: 4%;
  animation: dct-window 20s ease-in-out infinite alternate;
}
.scn-dinner-and-cynical-tranquility .shadow {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: dct-shadow 10s ease-in-out infinite alternate;
}
@keyframes dct-wall {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes dct-table {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes dct-plate {
  0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes dct-fig-l {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dct-fig-r {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dct-cat {
  0%,100% { transform: translateX(0) scale(1); }
  25% { transform: translateX(8px) scale(0.95); }
  75% { transform: translateX(-8px) scale(0.95); }
}
@keyframes dct-window {
  0% { opacity:0.1; } 50% { opacity:0.25; } 100% { opacity:0.1; }
}
@keyframes dct-shadow {
  0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; }
}
/* ====== GOODNIGHT AND WATCH ====== */
.scn-goodnight-and-watch {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 30%, #0a0a1a 100%), radial-gradient(ellipse at 60% 40%, #3a3a5a 0%, transparent 70%);
}
.scn-goodnight-and-watch .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: gnw-floor 12s ease-in-out infinite alternate;
}
.scn-goodnight-and-watch .bed {
  position: absolute; bottom:18%; left:10%; width:50%; height:35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: gnw-bed 9s ease-in-out infinite;
}
.scn-goodnight-and-watch .figure-bed {
  position: absolute; bottom:20%; left:25%; width:20%; height:25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gnw-fig-bed 7s ease-in-out infinite alternate;
}
.scn-goodnight-and-watch .figure-standing {
  position: absolute; bottom:22%; right:20%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gnw-fig-stand 5s ease-in-out infinite;
}
.scn-goodnight-and-watch .lamp {
  position: absolute; bottom:30%; right:10%; width:6%; height:10%;
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,96,0.3), 0 0 60px 20px rgba(255,208,96,0.1);
  animation: gnw-lamp 4s ease-in-out infinite alternate;
}
.scn-goodnight-and-watch .door {
  position: absolute; bottom:10%; left:75%; width:15%; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: gnw-door 10s ease-in-out infinite;
}
.scn-goodnight-and-watch .shadow {
  position: absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: gnw-shadow 8s ease-in-out infinite alternate;
}
@keyframes gnw-floor {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes gnw-bed {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes gnw-fig-bed {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(-1deg); }
}
@keyframes gnw-fig-stand {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-3px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes gnw-lamp {
  0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(255,208,96,0.2); }
  50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,208,96,0.4); }
  100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(255,208,96,0.3); }
}
@keyframes gnw-door {
  0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); }
}
@keyframes gnw-shadow {
  0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; }
}
/* ====== DEDUCTION ON CLOCKWORK ====== */
.scn-deduction-on-clockwork {
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a5e 30%, #1a1a2a 100%), radial-gradient(ellipse at 30% 40%, #4a4a6e 0%, transparent 70%);
}
.scn-deduction-on-clockwork .wall {
  position: absolute; inset:0 0 50% 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 50%, #2a2a3a 100%);
  animation: doc-wall 14s ease-in-out infinite alternate;
}
.scn-deduction-on-clockwork .chair {
  position: absolute; bottom:20%; left:40%; width:20%; height:30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 15px rgba(0,0,0,0.5);
  animation: doc-chair 11s ease-in-out infinite;
}
.scn-deduction-on-clockwork .figure-sitting {
  position: absolute; bottom:22%; left:40%; width:16%; height:28%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: doc-fig-sit 6s ease-in-out infinite alternate;
}
.scn-deduction-on-clockwork .bouquet {
  position: absolute; bottom:45%; left:55%; width:12%; height:15%;
  background: radial-gradient(ellipse at 50% 30%, #a04030 0%, #602020 50%, #3a1010 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(3px);
  animation: doc-bouquet 5s ease-in-out infinite;
}
.scn-deduction-on-clockwork .hatpin {
  position: absolute; bottom:42%; width:1%; height:20%;
  background: linear-gradient(180deg, #b0a090 0%, #706050 100%);
  border-radius: 20% 20% 0 0; transform-origin: top;
}
.scn-deduction-on-clockwork .hatpin-1 {
  left:60%; transform: rotate(15deg); animation: doc-hatpin 3s ease-in-out infinite;
}
.scn-deduction-on-clockwork .hatpin-2 {
  left:65%; transform: rotate(-10deg); animation: doc-hatpin 3s ease-in-out infinite 1s;
}
.scn-deduction-on-clockwork .table-desk {
  position: absolute; bottom:15%; left:50%; width:30%; height:8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: doc-desk 9s ease-in-out infinite;
}
.scn-deduction-on-clockwork .shadow {
  position: absolute; bottom:0; left:0; right:0; height:12%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: doc-shadow 10s ease-in-out infinite alternate;
}
@keyframes doc-wall {
  0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; }
}
@keyframes doc-chair {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes doc-fig-sit {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes doc-bouquet {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(5deg); }
}
@keyframes doc-hatpin {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
}
@keyframes doc-desk {
  0%,100% { transform: translateX(-50%); }
  50% { transform: translateX(-48%) translateY(-2px); }
}
@keyframes doc-shadow {
  0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; }
}
/* ====== LOGIC OF IMPOSSIBILITY ====== */
.scn-logic-of-impossibility {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-logic-of-impossibility .wall {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 30%, #2a2a3a 100%);
  animation: loi-wall 16s ease-in-out infinite alternate;
}
.scn-logic-of-impossibility .stairs {
  position: absolute; bottom:30%; left:10%; width:40%; height:50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: loi-stairs 8s ease-in-out infinite alternate;
}
.scn-logic-of-impossibility .door-left {
  position: absolute; bottom:10%; left:5%; width:18%; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: loi-door-l 10s ease-in-out infinite;
}
.scn-logic-of-impossibility .door-right {
  position: absolute; bottom:10%; right:5%; width:18%; height:60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: loi-door-r 10s ease-in-out infinite 2s;
}
.scn-logic-of-impossibility .figure-stairs {
  position: absolute; bottom:35%; left:25%; width:12%; height:35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: loi-fig 5s ease-in-out infinite alternate;
}
.scn-logic-of-impossibility .lamp {
  position: absolute; bottom:20%; left:50%; width:5%; height:8%;
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 25px 8px rgba(255,208,96,0.2);
  animation: loi-lamp 4s ease-in-out infinite alternate;
}
.scn-logic-of-impossibility .shadow {
  position: absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: loi-shadow 9s ease-in-out infinite alternate;
}
@keyframes loi-wall {
  0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; }
}
@keyframes loi-stairs {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes loi-door-l {
  0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); }
}
@keyframes loi-door-r {
  0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); }
}
@keyframes loi-fig {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes loi-lamp {
  0% { opacity:0.6; box-shadow: 0 0 15px 3px rgba(255,208,96,0.15); }
  50% { opacity:1; box-shadow: 0 0 35px 12px rgba(255,208,96,0.35); }
  100% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(255,208,96,0.2); }
}
@keyframes loi-shadow {
  0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; }
}

.scn-matrena-reveals-all { background: linear-gradient(180deg, #0b0d1a 0%, #1a1f3a 50%, #2a2f4a 100%), radial-gradient(ellipse at 70% 30%, #2a3f5a 0%, transparent 60%); }
.scn-matrena-reveals-all .night-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0b0d1a 0%, #141730 100%); animation: mr-sky 20s ease-in-out infinite alternate; }
.scn-matrena-reveals-all .moon { position:absolute; top:15%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 35% 35%, #d4d8e8 0%, #9ea8c0 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(158,168,192,0.4), 0 0 80px 40px rgba(158,168,192,0.2); animation: mr-moon 8s ease-in-out infinite alternate; }
.scn-matrena-reveals-all .mist { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(180,190,200,0.3) 0%, transparent 100%); filter: blur(10px); animation: mr-mist 12s ease-in-out infinite alternate; }
.scn-matrena-reveals-all .balcony-rail { position:absolute; bottom:30%; left:30%; right:30%; height:8px; background: linear-gradient(90deg, #2a2f3a 0%, #3a4050 50%, #2a2f3a 100%); border-radius:4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); animation: mr-rail 6s ease-in-out infinite; }
.scn-matrena-reveals-all .figure-matrena { position:absolute; bottom:30%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a1f2a 0%, #2a2f3a 80%, #0a0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 3s ease-in-out infinite; }
.scn-matrena-reveals-all .lantern-glow { position:absolute; bottom:32%; left:35%; width:8px; height:8px; background: radial-gradient(circle, #e0c878 0%, rgba(224,200,120,0.6) 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(224,200,120,0.3); animation: mr-lantern 2s ease-in-out infinite alternate; }
.scn-matrena-reveals-all .cloud-drift { position:absolute; top:12%; left:10%; width:100px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.3) 50%, transparent 100%); border-radius:50%; filter: blur(8px); animation: mr-cloud 40s linear infinite; }
@keyframes mr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mr-moon { 0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(158,168,192,0.4); } 50% { transform: translate(-2px, -2px) scale(1.02); box-shadow: 0 0 60px 30px rgba(158,168,192,0.5); } 100% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 20px rgba(158,168,192,0.4); } }
@keyframes mr-mist { 0% { opacity:0.2; transform: translateX(-5px); } 50% { opacity:0.5; transform: translateX(5px); } 100% { opacity:0.2; transform: translateX(-5px); } }
@keyframes mr-rail { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mr-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mr-lantern { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes mr-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

.scn-general-demands-name { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%); }
.scn-general-demands-name .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: gdn-wall 10s ease-in-out infinite; }
.scn-general-demands-name .floor-shadow { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0; animation: gdn-floor 12s ease-in-out infinite alternate; }
.scn-general-demands-name .general-figure { position:absolute; bottom:15%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 80%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gdn-general 4s ease-in-out infinite; }
.scn-general-demands-name .matrena-figure { position:absolute; bottom:15%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 80%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gdn-matrena 4s ease-in-out infinite 0.5s; }
.scn-general-demands-name .stick { position:absolute; bottom:30%; left:38%; width:4px; height:30px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius:2px; transform-origin: bottom center; transform: rotate(-15deg); animation: gdn-stick 3s ease-in-out infinite; }
.scn-general-demands-name .rouletabille-shadow { position:absolute; bottom:10%; right:15%; width:20px; height:40px; background: #1a1a2a; border-radius:50%; filter: blur(4px); opacity:0.6; animation: gdn-shadow 5s ease-in-out infinite; }
.scn-general-demands-name .candle-flame { position:absolute; bottom:45%; left:55%; width:6px; height:8px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px rgba(255,208,128,0.6); animation: gdn-candle 2s ease-in-out infinite alternate; }
@keyframes gdn-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gdn-floor { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.7; transform: translateY(-2px); } 100% { opacity:0.5; transform: translateY(0); } }
@keyframes gdn-general { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes gdn-matrena { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes gdn-stick { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes gdn-shadow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes gdn-candle { 0% { transform: scale(0.9) rotate(-5deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.9) rotate(-5deg); } }

.scn-natacha-confesses { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 70%); }
.scn-natacha-confesses .window-frame { position:absolute; top:10%; left:30%; width:60px; height:80px; background: transparent; border: 4px solid #3a3a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: nc-frame 10s ease-in-out infinite; }
.scn-natacha-confesses .window-glass { position:absolute; top:12%; left:32%; width:56px; height:76px; background: linear-gradient(180deg, rgba(100,100,120,0.4) 0%, rgba(60,60,80,0.6) 100%); border-radius:2px; animation: nc-glass 8s ease-in-out infinite alternate; }
.scn-natacha-confesses .curtain { position:absolute; top:10%; left:28%; width:12px; height:80px; background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%); border-radius:0 50% 50% 0; filter: blur(2px); animation: nc-curtain 6s ease-in-out infinite; }
.scn-natacha-confesses .natacha-silhouette { position:absolute; bottom:20%; left:45%; width:22px; height:50px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nc-natacha 4s ease-in-out infinite; }
.scn-natacha-confesses .chair { position:absolute; bottom:10%; left:40%; width:24px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:4px; transform: skewX(-5deg); animation: nc-chair 7s ease-in-out infinite; }
.scn-natacha-confesses .floor-plank { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); border-top:2px solid #3a3a4a; animation: nc-plank 15s ease-in-out infinite; }
.scn-natacha-confesses .moonbeam { position:absolute; top:12%; left:32%; width:56px; height:76px; background: linear-gradient(135deg, rgba(200,200,220,0.2) 0%, transparent 100%); filter: blur(6px); animation: nc-beam 12s ease-in-out infinite alternate; }
@keyframes nc-frame { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nc-glass { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.02); } 100% { opacity:0.5; transform: scaleY(1); } }
@keyframes nc-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nc-natacha { 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 nc-chair { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-1px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes nc-plank { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: 0 0; } }
@keyframes nc-beam { 0% { opacity:0.2; transform: rotate(0deg); } 50% { opacity:0.5; transform: rotate(5deg); } 100% { opacity:0.2; transform: rotate(0deg); } }

.scn-natacha-defends-michael { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 70%); }
.scn-natacha-defends-michael .table-top { position:absolute; bottom:20%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ndm-table 8s ease-in-out infinite; }
.scn-natacha-defends-michael .table-leg { position:absolute; bottom:0; left:15%; width:6px; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:2px; animation: ndm-leg 10s ease-in-out infinite; }
.scn-natacha-defends-michael .poison-vial { position:absolute; bottom:23%; left:35%; width:8px; height:14px; background: radial-gradient(ellipse at 30% 30%, #b0a080 0%, #7a6040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: ndm-vial 5s ease-in-out infinite; }
.scn-natacha-defends-michael .matrena-hand { position:absolute; bottom:22%; left:30%; width:10px; height:16px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: ndm-hand 3s ease-in-out infinite alternate; }
.scn-natacha-defends-michael .natacha-figure { position:absolute; bottom:10%; right:20%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 80%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ndm-natacha 4s ease-in-out infinite; }
.scn-natacha-defends-michael .wall-timber { position:absolute; top:0; left:0; right:0; height:5%; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); animation: ndm-timber 12s ease-in-out infinite; }
.scn-natacha-defends-michael .candle-flicker { position:absolute; bottom:25%; left:50%; width:6px; height:8px; background: radial-gradient(circle, #e0a060 0%, #c08040 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 10px 4px rgba(192,128,64,0.5); animation: ndm-candle 2s ease-in-out infinite alternate; }
@keyframes ndm-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ndm-leg { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ndm-vial { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ndm-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ndm-natacha { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ndm-timber { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ndm-candle { 0% { transform: scale(0.9) rotate(-3deg); } 50% { transform: scale(1.1) rotate(3deg); } 100% { transform: scale(0.9) rotate(-3deg); } }

/* Scene 1: rouletabille-threatens-departure */
.scn-rouletabille-threatens-departure {
  background: linear-gradient(180deg, #f8e8c8 0%, #d4c4a0 30%, #a09070 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-rouletabille-threatens-departure .window-frame {
  position: absolute; inset: 5% 20% 50% 20%; border: 12px solid #6a5a40;
  background: linear-gradient(180deg, #eaf4ff 0%, #b8d0e8 60%, #8098b0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
}
.scn-rouletabille-threatens-departure .sky-glow {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fffce0 0%, transparent 100%);
  animation: rtd-glow 6s ease-in-out infinite alternate;
}
.scn-rouletabille-threatens-departure .sill {
  position: absolute; bottom: 48%; left: 18%; right: 18%; height: 3%;
  background: #7a6a50; border-radius: 2px;
}
.scn-rouletabille-threatens-departure .suitcase {
  position: absolute; bottom: 28%; left: 38%; width: 14%; height: 20%;
  background: linear-gradient(135deg, #b87860 0%, #8a6048 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 4px 4px 12px rgba(0,0,0,0.25);
  transform: rotate(-2deg); animation: rtd-suitcase 8s ease-in-out infinite;
}
.scn-rouletabille-threatens-departure .figure {
  position: absolute; bottom: 20%; left: 50%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  transform: translateX(-50%); animation: rtd-figure 4s ease-in-out infinite alternate;
}
.scn-rouletabille-threatens-departure .hat {
  position: absolute; bottom: 68%; left: 46%; width: 12%; height: 10%;
  background: #2a1a10; border-radius: 50% 50% 10% 10%;
  transform: rotate(8deg); animation: rtd-hat 5s ease-in-out infinite;
}
.scn-rouletabille-threatens-departure .coat-tail {
  position: absolute; bottom: 18%; left: 44%; width: 10%; height: 25%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a1210 50%, #2a1a10 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: rtd-tail 4s ease-in-out infinite alternate;
}
.scn-rouletabille-threatens-departure .dust-mote {
  position: absolute; top: 15%; left: 60%; width: 3px; height: 3px;
  background: rgba(255,240,200,0.5); border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,240,200,0.3);
  animation: rtd-dust 12s infinite;
}
@keyframes rtd-glow {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes rtd-suitcase {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg) translateY(-2px); }
}
@keyframes rtd-figure {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes rtd-hat {
  0%, 100% { transform: rotate(8deg); }
  50% { transform: rotate(12deg); }
}
@keyframes rtd-tail {
  0% { clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); }
  100% { clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); }
}
@keyframes rtd-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  20% { opacity: 0.6; }
  80% { opacity: 0.6; }
  100% { transform: translate(30vw, -10vh) scale(2); opacity: 0; }
}

/* Scene 2: koupriane-begs-him-stay */
.scn-koupriane-begs-him-stay {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #908060 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 50%);
}
.scn-koupriane-begs-him-stay .room-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b898 0%, #b0a080 50%, #a09070 100%);
}
.scn-koupriane-begs-him-stay .door {
  position: absolute; bottom: 10%; right: 10%; width: 14%; height: 70%;
  background: linear-gradient(90deg, #6a5a42 0%, #4a3a2a 100%);
  border-radius: 6% 0 0 6%; box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: kps-door 9s ease-in-out infinite alternate;
}
.scn-koupriane-begs-him-stay .figure-left {
  position: absolute; bottom: 12%; left: 30%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(3deg); animation: kps-left 6s ease-in-out infinite;
}
.scn-koupriane-begs-him-stay .figure-right {
  position: absolute; bottom: 12%; left: 60%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(-5deg); animation: kps-right 5s ease-in-out infinite alternate;
}
.scn-koupriane-begs-him-stay .arm-extend {
  position: absolute; bottom: 40%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: kps-arm 4s ease-in-out infinite alternate;
}
.scn-koupriane-begs-him-stay .shadow-pool {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: kps-shadow 6s ease-in-out infinite alternate;
}
.scn-koupriane-begs-him-stay .light-shaft {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,220,0.15) 0%, transparent 50%);
  animation: kps-shaft 10s ease-in-out infinite;
}
@keyframes kps-door {
  0%, 100% { transform: scaleX(1); } 50% { transform: scaleX(0.95); }
}
@keyframes kps-left {
  0%, 100% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-48%) rotate(5deg) translateY(-2px); }
}
@keyframes kps-right {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-52%) rotate(-7deg) translateY(2px); }
  100% { transform: translateX(-50%) rotate(-5deg); }
}
@keyframes kps-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes kps-shadow {
  0%, 100% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.2); }
}
@keyframes kps-shaft {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.6; }
}

/* Scene 3: brag-about-discovery */
.scn-brag-about-discovery {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #b09070 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 60%);
}
.scn-brag-about-discovery .desk-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-brag-about-discovery .map-spread {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(135deg, #c8b080 0%, #b09860 40%, #908050 100%);
  border-radius: 2px; transform: perspective(400px) rotateX(10deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
  animation: bad-map 8s ease-in-out infinite alternate;
}
.scn-brag-about-discovery .paper-scroll {
  position: absolute; bottom: 25%; left: 40%; width: 8%; height: 12%;
  background: linear-gradient(90deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 4px; transform: rotate(-15deg);
  box-shadow: 1px 2px 6px rgba(0,0,0,0.2);
  animation: bad-scroll 6s ease-in-out infinite;
}
.scn-brag-about-discovery .figure-torso {
  position: absolute; bottom: 35%; left: 50%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform: translateX(-50%) rotate(2deg);
  animation: bad-torso 5s ease-in-out infinite alternate;
}
.scn-brag-about-discovery .arm-point {
  position: absolute; bottom: 48%; left: 58%; width: 3%; height: 25%;
  background: linear-gradient(90deg, #2a1a10 0%, #1a1210 100%);
  border-radius: 20%; transform: rotate(40deg); transform-origin: bottom center;
  animation: bad-point 4s ease-in-out infinite alternate;
}
.scn-brag-about-discovery .lamp-glow {
  position: absolute; top: 10%; left: 30%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, transparent 70%);
  animation: bad-lamp 7s ease-in-out infinite;
}
.scn-brag-about-discovery .shadow-leg {
  position: absolute; bottom: 12%; left: 45%; width: 8%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  border-radius: 20%; transform: rotate(-5deg); opacity: 0.5;
  animation: bad-leg 5s ease-in-out infinite;
}
@keyframes bad-map {
  0%, 100% { transform: perspective(400px) rotateX(10deg); }
  50% { transform: perspective(400px) rotateX(15deg) translateY(-3px); }
}
@keyframes bad-scroll {
  0%, 100% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg) translateX(4px); }
}
@keyframes bad-torso {
  0% { transform: translateX(-50%) rotate(2deg); }
  50% { transform: translateX(-48%) rotate(4deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes bad-point {
  0% { transform: rotate(40deg); }
  50% { transform: rotate(50deg); }
  100% { transform: rotate(40deg); }
}
@keyframes bad-lamp {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes bad-leg {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(3deg); }
}

/* Scene 4: condition-for-staying */
.scn-condition-for-staying {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 40%, #a89878 100%),
              radial-gradient(ellipse at 80% 30%, #fff8e8 0%, transparent 50%);
}
.scn-condition-for-staying .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #9a8a6a 0px, #9a8a6a 30px, #b0a080 30px, #b0a080 60px);
  opacity: 0.4;
}
.scn-condition-for-staying .wall-slit {
  position: absolute; top: 10%; left: 40%; right: 40%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,240,200,0.3) 50%, transparent 100%);
  animation: cfs-slit 8s ease-in-out infinite alternate;
}
.scn-condition-for-staying .hand-reaching {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #d0b898 0%, #a08868 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: translateX(-30%) rotate(-10deg);
  box-shadow: inset 2px 2px 6px rgba(0,0,0,0.2);
  animation: cfs-hand 5s ease-in-out infinite alternate;
}
.scn-condition-for-staying .document {
  position: absolute; bottom: 40%; left: 52%; width: 12%; height: 15%;
  background: #f0e0c0; border-radius: 3px;
  transform: rotate(5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: cfs-doc 4s ease-in-out infinite alternate;
}
.scn-condition-for-staying .second-hand {
  position: absolute; bottom: 38%; left: 60%; width: 7%; height: 12%;
  background: linear-gradient(180deg, #d0b898 0%, #a08868 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(15deg);
}
.scn-condition-for-staying .cuff {
  position: absolute; bottom: 45%; left: 48%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 20%; transform: rotate(5deg);
  animation: cfs-cuff 5s ease-in-out infinite;
}
.scn-condition-for-staying .back-figure {
  position: absolute; bottom: 15%; left: 30%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(3deg);
  animation: cfs-back 6s ease-in-out infinite alternate;
}
.scn-condition-for-staying .ceiling-light {
  position: absolute; top: 2%; left: 35%; right: 35%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.6) 0%, transparent 80%);
  animation: cfs-light 9s ease-in-out infinite;
}
@keyframes cfs-slit {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.7; }
}
@keyframes cfs-hand {
  0% { transform: translateX(-30%) rotate(-10deg); }
  50% { transform: translateX(-25%) rotate(-5deg) translateY(4px); }
  100% { transform: translateX(-30%) rotate(-10deg); }
}
@keyframes cfs-doc {
  0%, 100% { transform: rotate(5deg); }
  50% { transform: rotate(10deg) translateY(-3px); }
}
@keyframes cfs-cuff {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes cfs-back {
  0% { transform: translateX(-50%) rotate(3deg); }
  50% { transform: translateX(-52%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes cfs-light {
  0%, 100% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.3); }
}

/* proofs-wiped-out */
.scn-proofs-wiped-out {
  background: 
    linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #3a2e26 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a30 0%, transparent 70%);
}
.scn-proofs-wiped-out .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%); animation: pw-wall 12s ease-in-out infinite alternate; }
.scn-proofs-wiped-out .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2e26 0%, #1e1a18 100%); }
.scn-proofs-wiped-out .ladder { position:absolute; bottom:30%; left:20%; width:8px; height:40%; background: linear-gradient(0deg, #5a3e2e 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 3px 0 0 #3a2a1a, 6px 0 0 #5a3e2e; animation: pw-ladder 6s ease-in-out infinite; }
.scn-proofs-wiped-out .feodor-torso { position:absolute; bottom:28%; left:45%; width:60px; height:80px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: pw-figure 5s ease-in-out infinite; }
.scn-proofs-wiped-out .rouletabille { position:absolute; bottom:30%; right:30%; width:50px; height:70px; background: linear-gradient(180deg, #1e1a18 0%, #100c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: pw-figure2 7s ease-in-out infinite; }
.scn-proofs-wiped-out .hand-grip { position:absolute; bottom:35%; left:52%; width:18px; height:10px; background: #3a2a20; border-radius:30%; transform: rotate(-20deg); animation: pw-grip 4s ease-in-out infinite alternate; }
.scn-proofs-wiped-out .candle { position:absolute; top:30%; left:10%; width:12px; height:24px; background: linear-gradient(180deg, #e8d0a0 0%, #c0a080 100%); border-radius:3px 3px 2px 2px; animation: pw-candle 8s ease-in-out infinite; }
.scn-proofs-wiped-out .candle-glow { position:absolute; top:28%; left:8%; width:50px; height:50px; background: radial-gradient(circle, #e8c080 0%, rgba(200,160,100,0.3) 60%, transparent 100%); border-radius:50%; animation: pw-glow 3s ease-in-out infinite alternate; }
@keyframes pw-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pw-ladder { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pw-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pw-figure2 { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) translateY(2px) } 100% { transform: rotate(10deg) } }
@keyframes pw-grip { 0% { transform: rotate(-20deg) scale(1) } 100% { transform: rotate(0deg) scale(1.1) } }
@keyframes pw-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes pw-glow { 0% { opacity:0.7; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

/* natacha-kneels-to-father */
.scn-natacha-kneels-to-father {
  background:
    linear-gradient(180deg, #1a1418 0%, #2a2024 40%, #1e181c 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a30 0%, transparent 70%);
}
.scn-natacha-kneels-to-father .bg-interior { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2024 0%, #1a1418 100%); animation: nk-bg 10s ease-in-out infinite alternate; }
.scn-natacha-kneels-to-father .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e181c 0%, #0e0a0c 100%); }
.scn-natacha-kneels-to-father .chair { position:absolute; bottom:25%; left:30%; width:70px; height:90px; background: linear-gradient(180deg, #4a3a34 0%, #2a1e1c 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; animation: nk-chair 8s ease-in-out infinite; }
.scn-natacha-kneels-to-father .feodor-sitting { position:absolute; bottom:30%; left:32%; width:50px; height:60px; background: linear-gradient(180deg, #2a1e1c 0%, #1a1210 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: nk-feodor 5s ease-in-out infinite; }
.scn-natacha-kneels-to-father .natacha-standing { position:absolute; bottom:20%; right:20%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a30 0%, #1a1418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: nk-natacha 6s ease-in-out infinite; }
.scn-natacha-kneels-to-father .table { position:absolute; bottom:20%; left:15%; width:80px; height:10px; background: linear-gradient(0deg, #4a3a34 0%, #3a2a24 100%); border-radius:2px; }
.scn-natacha-kneels-to-father .lamp { position:absolute; top:15%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius:5px 5px 2px 2px; animation: nk-lamp 12s ease-in-out infinite; }
.scn-natacha-kneels-to-father .lamp-glow { position:absolute; top:10%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #b09868 0%, rgba(160,140,100,0.3) 60%, transparent 100%); border-radius:50%; animation: nk-glow 4s ease-in-out infinite alternate; }
@keyframes nk-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nk-chair { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes nk-feodor { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes nk-natacha { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes nk-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes nk-glow { 0% { opacity:0.6; transform: scale(0.9) } 100% { opacity:0.9; transform: scale(1.2) } }

/* natacha-begs-silence */
.scn-natacha-begs-silence {
  background:
    linear-gradient(180deg, #0e0a0c 0%, #1a1418 40%, #0e0a0c 100%),
    radial-gradient(ellipse at 50% 50%, #1a1418 0%, transparent 70%);
}
.scn-natacha-begs-silence .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a0c 0%, #1a1418 100%); animation: nb-bg 8s ease-in-out infinite alternate; }
.scn-natacha-begs-silence .floor-planks { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1418 0%, #0e0a0c 100%); }
.scn-natacha-begs-silence .father-standing { position:absolute; bottom:35%; left:25%; width:60px; height:120px; background: linear-gradient(180deg, #2a1e1c 0%, #1a1210 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; animation: nb-father 4s ease-in-out infinite; }
.scn-natacha-begs-silence .natacha-kneeling { position:absolute; bottom:20%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #3a2a30 0%, #1a1418 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(0.8); animation: nb-natacha 5s ease-in-out infinite; }
.scn-natacha-begs-silence .arms-begging { position:absolute; bottom:30%; left:28%; width:70px; height:20px; background: radial-gradient(ellipse, #4a3a3c 0%, transparent 100%); border-radius:50%; transform: rotate(-20deg); animation: nb-arms 3s ease-in-out infinite alternate; }
.scn-natacha-begs-silence .ikon { position:absolute; top:10%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%); border-radius:4px; box-shadow: 0 0 12px #8a7050; animation: nb-ikon 10s ease-in-out infinite; }
.scn-natacha-begs-silence .ikon-glow { position:absolute; top:8%; right:18%; width:50px; height:60px; background: radial-gradient(circle, #b09878 0%, rgba(140,110,70,0.3) 60%, transparent 100%); border-radius:50%; animation: nb-glow 6s ease-in-out infinite alternate; }
@keyframes nb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nb-father { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes nb-natacha { 0% { transform: scaleY(0.8) translateX(0) } 50% { transform: scaleY(0.85) translateX(2px) } 100% { transform: scaleY(0.8) translateX(0) } }
@keyframes nb-arms { 0% { transform: rotate(-20deg) scale(1) } 100% { transform: rotate(10deg) scale(1.1) } }
@keyframes nb-ikon { 0% { opacity:0.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes nb-glow { 0% { opacity:0.5; transform: scale(0.8) } 100% { opacity:0.8; transform: scale(1.2) } }

/* father-believes-daughter */
.scn-father-believes-daughter {
  background:
    linear-gradient(180deg, #3a2e20 0%, #4a3e30 40%, #3a2e20 100%),
    radial-gradient(ellipse at 50% 30%, #5a4e3a 0%, transparent 70%);
}
.scn-father-believes-daughter .bg-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3e30 0%, #3a2e20 100%); animation: fb-bg 12s ease-in-out infinite alternate; }
.scn-father-believes-daughter .chair-back { position:absolute; bottom:30%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; animation: fb-chair 7s ease-in-out infinite; }
.scn-father-believes-daughter .father-torso { position:absolute; bottom:35%; left:42%; width:60px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fb-father 5s ease-in-out infinite; }
.scn-father-believes-daughter .natacha-head { position:absolute; bottom:25%; left:44%; width:30px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: fb-natacha 6s ease-in-out infinite; }
.scn-father-believes-daughter .hair-mass { position:absolute; bottom:20%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 0%, #1a0e0a 0%, #0e0604 100%); border-radius:50%; opacity:0.9; animation: fb-hair 8s ease-in-out infinite alternate; }
.scn-father-believes-daughter .father-hand { position:absolute; bottom:30%; left:45%; width:20px; height:15px; background: #3a2a1e; border-radius:40%; transform: rotate(-10deg); animation: fb-hand 4s ease-in-out infinite alternate; }
.scn-father-believes-daughter .tear-drop { position:absolute; bottom:20%; left:42%; width:6px; height:10px; background: radial-gradient(ellipse, #e0c8b0 0%, transparent 100%); border-radius:50%; animation: fb-tear 3s ease-in-out infinite; }
.scn-father-believes-daughter .tear-glow { position:absolute; bottom:18%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #e0c8b0 0%, rgba(200,170,140,0.3) 60%, transparent 100%); border-radius:50%; animation: fb-tearglow 3s ease-in-out infinite; }
@keyframes fb-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fb-chair { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes fb-father { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes fb-natacha { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(15deg) } }
@keyframes fb-hair { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes fb-hand { 0% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) scale(1.05) } }
@keyframes fb-tear { 0% { opacity:0.6; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:0.6; transform: translateY(0) } }
@keyframes fb-tearglow { 0% { opacity:0.4; transform: scale(0.8) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.8) } }

.scn-consoling-matrena {
  background: linear-gradient(180deg, #4a6070 0%, #8a9aa0 40%, #bcc8d0 100%), radial-gradient(ellipse at 70% 60%, rgba(200,180,140,0.3) 0%, transparent 70%);
}
.scn-consoling-matrena .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #3a4a55 0%, #5a6b78 30%, #7a8a95 60%, #4a5a65 100%); }
.scn-consoling-matrena .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #3a3028 0%, #5a4a38 100%); }
.scn-consoling-matrena .figure-rouletabille { position:absolute; bottom:20%; left:25%; width:50px; height:85px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cm1-idle 6s ease-in-out infinite; }
.scn-consoling-matrena .figure-matrena { position:absolute; bottom:20%; right:20%; width:55px; height:80px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 50%, #1a0a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: cm1-idle 6s ease-in-out infinite 1s; }
.scn-consoling-matrena .hand-touch { position:absolute; bottom:38%; left:38%; width:14px; height:20px; background: radial-gradient(circle at 30% 20%, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30% 40% 20% 30% / 40% 50% 20% 30%; transform-origin: bottom left; animation: cm1-hand 4s ease-in-out infinite; }
.scn-consoling-matrena .window-dawn { position:absolute; top:12%; right:15%; width:60px; height:50px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 60%, #b0a890 100%); border: 4px solid #4a3a2a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(240,232,208,0.5); animation: cm1-dawn 12s ease-in-out infinite alternate; }
.scn-consoling-matrena .shadow-streak { position:absolute; top:5%; left:10%; width:120%; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(40,40,50,0.6) 30%, transparent 70%); filter: blur(2px); animation: cm1-streak 8s ease-in-out infinite alternate; }
@keyframes cm1-idle { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cm1-hand { 0% { transform: translate(0,0) rotate(0deg) scaleX(1) } 25% { transform: translate(2px,-1px) rotate(5deg) scaleX(0.95) } 50% { transform: translate(0,0) rotate(0deg) scaleX(1) } 75% { transform: translate(1px,-2px) rotate(-3deg) scaleX(0.98) } 100% { transform: translate(0,0) rotate(0deg) scaleX(1) } }
@keyframes cm1-dawn { 0% { opacity:0.3; box-shadow: inset 0 0 10px rgba(240,232,208,0.2) } 50% { opacity:0.6; box-shadow: inset 0 0 40px rgba(240,232,208,0.6) } 100% { opacity:0.4; box-shadow: inset 0 0 20px rgba(240,232,208,0.3) } }
@keyframes cm1-streak { 0% { transform: translateX(-20px) rotate(-2deg) } 100% { transform: translateX(10px) rotate(2deg) } }

.scn-someone-left-by-boat {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a6a7a 30%, #7a9aaa 60%, #9aaaba 80%, #aabac0 100%), radial-gradient(ellipse at 40% 80%, #7a9aaa 0%, transparent 60%);
}
.scn-someone-left-by-boat .water-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a3a4a 0%, #4a6a7a 40%, #7a9aaa 100%); animation: slb1-sky 20s ease-in-out infinite alternate; }
.scn-someone-left-by-boat .shoreline { position:absolute; bottom:45%; left:0; right:0; height:10%; background: linear-gradient(0deg, #4a5a4a 0%, #6a7a5a 100%); border-radius: 50% 40% 0 0 / 40% 30% 0 0; }
.scn-someone-left-by-boat .boat-hull { position:absolute; bottom:40%; left:65%; width:70px; height:18px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; transform-origin: center bottom; animation: slb1-boat 6s ease-in-out infinite; }
.scn-someone-left-by-boat .boat-sail { position:absolute; bottom:42%; left:68%; width:4px; height:40px; background: #5a4a3a; transform-origin: bottom center; animation: slb1-sail 7s ease-in-out infinite; }
.scn-someone-left-by-boat .boat-sail::after { content:''; position:absolute; bottom:0; left:0; width:30px; height:30px; background: linear-gradient(135deg, #e0d8c0 0%, #c0b8a0 100%); border-radius: 30% 0 40% 0 / 30% 0 40% 0; }
.scn-someone-left-by-boat .figure-shore { position:absolute; bottom:35%; left:20%; width:30px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: slb1-figure 5s ease-in-out infinite; }
.scn-someone-left-by-boat .figure-boat { position:absolute; bottom:38%; left:68%; width:20px; height:35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: slb1-figure 5s ease-in-out infinite reverse; }
.scn-someone-left-by-boat .mist { position:absolute; bottom:50%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 60% 100%, rgba(200,220,230,0.2) 0%, transparent 70%); filter: blur(8px); animation: slb1-mist 15s ease-in-out infinite alternate; }
.scn-someone-left-by-boat .gull { position:absolute; top:12%; left:10%; width:20px; height:8px; background: radial-gradient(circle at 30% 50%, #ffffff 0%, #d0d8e0 80%); border-radius: 50%; animation: slb1-gull 12s linear infinite; }
.scn-someone-left-by-boat .ripple-1 { position:absolute; bottom:42%; left:30%; width:40px; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(140,180,200,0.4) 50%, transparent 100%); border-radius: 50%; animation: slb1-ripple 4s ease-in-out infinite; }
.scn-someone-left-by-boat .ripple-2 { position:absolute; bottom:44%; left:55%; width:30px; height:3px; background: linear-gradient(90deg, transparent 0%, rgba(140,180,200,0.3) 50%, transparent 100%); border-radius: 50%; animation: slb1-ripple 4s ease-in-out infinite 0.5s; }
@keyframes slb1-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes slb1-boat { 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 slb1-sail { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes slb1-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes slb1-mist { 0% { opacity:0.2; transform: scaleX(1) } 100% { opacity:0.5; transform: scaleX(1.2) } }
@keyframes slb1-gull { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes slb1-ripple { 0% { transform: scaleX(0.5); opacity:0 } 50% { opacity:1; transform: scaleX(1) } 100% { transform: scaleX(0.5); opacity:0 } }

.scn-the-broken-reeds {
  background: linear-gradient(180deg, #1a2a2a 0%, #3a4a3a 40%, #5a6a4a 70%, #7a8a5a 100%), radial-gradient(ellipse at 50% 100%, #5a6a4a 0%, transparent 70%);
}
.scn-the-broken-reeds .garden-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a3a2a 0%, #4a5a3a 50%, #6a7a4a 100%); }
.scn-the-broken-reeds .reeds-left { position:absolute; bottom:25%; left:10%; width:8px; height:70px; background: linear-gradient(0deg, #4a5a2a 0%, #6a7a3a 40%, #8a9a5a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; transform-origin: bottom center; animation: br1-reeds 6s ease-in-out infinite; }
.scn-the-broken-reeds .reeds-right { position:absolute; bottom:25%; right:15%; width:6px; height:60px; background: linear-gradient(0deg, #3a4a2a 0%, #5a6a3a 50%, #7a8a5a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; transform-origin: bottom center; animation: br1-reeds 6s ease-in-out infinite 0.5s; }
.scn-the-broken-reeds .figure-crouch { position:absolute; bottom:20%; left:40%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: br1-crouch 7s ease-in-out infinite; }
.scn-the-broken-reeds .web-strand { position:absolute; top:20%; left:35%; width:80px; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(200,200,200,0.5) 30%, rgba(200,200,200,0.2) 70%, transparent 100%); border-radius: 1px; filter: blur(1px); animation: br1-web 12s ease-in-out infinite; }
.scn-the-broken-reeds .web-strand::before { content:''; position:absolute; top:-10px; left:40%; width:2px; height:20px; background: linear-gradient(0deg, transparent 0%, rgba(200,200,200,0.4) 50%, transparent 100%); }
.scn-the-broken-reeds .river-gleam { position:absolute; bottom:18%; left:0; right:0; height:8%; background: linear-gradient(90deg, transparent 0%, rgba(180,200,210,0.3) 30%, rgba(180,200,210,0.6) 50%, rgba(180,200,210,0.3) 70%, transparent 100%); filter: blur(4px); animation: br1-gleam 5s ease-in-out infinite alternate; }
.scn-the-broken-reeds .shadow-pool { position:absolute; bottom:10%; left:10%; width:80%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%); }
@keyframes br1-reeds { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes br1-crouch { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.97) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes br1-web { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.05) } 100% { opacity:0.3; transform: scaleX(1) } }
@keyframes br1-gleam { 0% { opacity:0.2; transform: translateX(-10px) } 100% { opacity:0.6; transform: translateX(10px) } }

.scn-why-no-ambush-below {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 80%, #4a4a5a 100%), radial-gradient(ellipse at 40% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-why-no-ambush-below .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 100%); }
.scn-why-no-ambush-below .door-frame { position:absolute; bottom:30%; left:30%; width:50px; height:110px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border: 3px solid #1a0a0a; border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-why-no-ambush-below .door-panel { position:absolute; bottom:30%; left:32%; width:40px; height:90px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 2px; transform-origin: left center; animation: amb1-door 8s ease-in-out infinite alternate; }
.scn-why-no-ambush-below .crack-light { position:absolute; bottom:30%; left:32%; width:40px; height:90px; background: linear-gradient(0deg, transparent 0%, rgba(255,200,100,0.4) 20%, rgba(255,200,100,0.8) 50%, rgba(255,200,100,0.4) 80%, transparent 100%); clip-path: inset(10% 0 10% 0); filter: blur(3px); animation: amb1-light 3s ease-in-out infinite alternate; }
.scn-why-no-ambush-below .figure-shadow { position:absolute; bottom:25%; left:60%; width:35px; height:70px; background: radial-gradient(ellipse at 50% 30%, #0a0a1a 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: amb1-shadow 6s ease-in-out infinite; }
.scn-why-no-ambush-below .stair-top { position:absolute; bottom:10%; left:50%; width:80px; height:10px; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 50%, #3a3a2a 100%); transform: rotate(-5deg); }
.scn-why-no-ambush-below .lamp-glow { position:absolute; top:15%; right:20%; width:12px; height:12px; background: radial-gradient(circle, #e0c080 0%, #c0a060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,160,96,0.4); animation: amb1-lamp 5s ease-in-out infinite alternate; }
.scn-why-no-ambush-below .floor-boards { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #2a2218 0px, #2a2218 20px, #3a3228 20px, #3a3228 22px); }
@keyframes amb1-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-15deg) } 100% { transform: rotateY(0deg) } }
@keyframes amb1-light { 0% { opacity:0.2 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes amb1-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes amb1-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,160,96,0.3); opacity:0.7 } 50% { box-shadow: 0 0 40px 15px rgba(192,160,96,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(192,160,96,0.4); opacity:0.8 } }

.scn-meeting-boris-at-shop {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4b89a 60%, #a67c5b 100%),
    radial-gradient(ellipse at 60% 50%, #e8d5b0 0%, transparent 70%),
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.05) 50%, transparent 100%);
}
.scn-meeting-boris-at-shop .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e0d0b8 0%, #c4a882 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: mbs-wall 15s ease-in-out infinite alternate;
}
.scn-meeting-boris-at-shop .counter {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #8b6f47 0%, #6d5538 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-meeting-boris-at-shop .shelf-s {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(90deg, #7a603f 0%, #5e4a30 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-meeting-boris-at-shop .shelf-b {
  position: absolute; top: 25%; left: 10%; right: 10%; height: 5%;
  background: linear-gradient(90deg, #7a603f 0%, #5e4a30 100%);
  border-radius: 2px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.4);
}
.scn-meeting-boris-at-shop .ikon {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(circle, #f0d080 0%, #b8862d 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(184,134,45,0.6), 0 0 40px 12px rgba(184,134,45,0.3);
  animation: mbs-ikon 4s ease-in-out infinite alternate;
}
.scn-meeting-boris-at-shop .figure-boris {
  position: absolute; bottom: 15%; left: 40%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mbs-boris 6s ease-in-out infinite;
}
.scn-meeting-boris-at-shop .figure-roulet {
  position: absolute; bottom: 15%; left: 55%;
  width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mbs-roulet 5s ease-in-out infinite;
}
.scn-meeting-boris-at-shop .door-arch {
  position: absolute; bottom: 30%; right: 8%; width: 40px; height: 70px;
  background: linear-gradient(135deg, #5e4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: mbs-door 12s ease-in-out infinite alternate;
}
@keyframes mbs-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mbs-ikon { 0% { box-shadow: 0 0 15px 4px #b8862d, 0 0 30px 8px rgba(184,134,45,0.3); } 50% { box-shadow: 0 0 30px 10px #f0d080, 0 0 60px 20px rgba(240,208,128,0.5); } 100% { box-shadow: 0 0 20px 6px #b8862d, 0 0 40px 12px rgba(184,134,45,0.4); } }
@keyframes mbs-boris { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(4px) rotate(-1deg); } 50% { transform: translateX(8px) rotate(3deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes mbs-roulet { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(-3px) rotate(2deg); } 66% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mbs-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-boris-in-despair {
  background: 
    linear-gradient(180deg, #f0e2d0 0%, #d0b8a0 40%, #b09880 100%),
    radial-gradient(ellipse at 40% 30%, #f5eee6 0%, transparent 60%),
    repeating-linear-gradient(45deg, transparent 0px, transparent 4px, rgba(0,0,0,0.03) 4px, rgba(0,0,0,0.03) 5px);
}
.scn-boris-in-despair .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8d9c8 0%, #b8a894 100%);
}
.scn-boris-in-despair .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
.scn-boris-in-despair .window {
  position: absolute; top: 15%; right: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.2);
  animation: bid-window 8s ease-in-out infinite alternate;
}
.scn-boris-in-despair .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-boris-in-despair .chair {
  position: absolute; bottom: 15%; left: 35%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: bid-chair 10s ease-in-out infinite;
}
.scn-boris-in-despair .figure-boris-slump {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bid-boris 6s ease-in-out infinite;
}
.scn-boris-in-despair .shadow-sharp {
  position: absolute; bottom: 18%; left: 35%; right: 45%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: bid-shadow 4s ease-in-out infinite alternate;
}
@keyframes bid-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bid-chair { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes bid-boris { 0% { transform: translateY(0) rotate(5deg); } 30% { transform: translateY(-4px) rotate(-3deg); } 60% { transform: translateY(2px) rotate(7deg); } 100% { transform: translateY(0) rotate(4deg); } }
@keyframes bid-shadow { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.2); opacity: 0.3; } 100% { transform: scaleY(1); opacity: 0.6; } }

.scn-advice-to-go-to-orel {
  background: 
    linear-gradient(180deg, #fff8f0 0%, #f0e8d8 50%, #d8c8b8 100%),
    radial-gradient(ellipse at 20% 30%, #ffffff 0%, transparent 70%);
}
.scn-advice-to-go-to-orel .wall-light {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f5f0e8 0%, #ded0c0 100%);
}
.scn-advice-to-go-to-orel .map-table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 8px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.2);
}
.scn-advice-to-go-to-orel .map-roll {
  position: absolute; bottom: 26%; left: 35%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a480 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: ago-map 30s linear infinite;
}
.scn-advice-to-go-to-orel .figure-roulet-talk {
  position: absolute; bottom: 15%; left: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ago-roulet 8s ease-in-out infinite;
}
.scn-advice-to-go-to-orel .figure-boris-listen {
  position: absolute; bottom: 15%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ago-boris 12s ease-in-out infinite;
}
.scn-advice-to-go-to-orel .window-calm {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 5px solid #7a6a5a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: ago-window 20s ease-in-out infinite alternate;
}
.scn-advice-to-go-to-orel .curtain {
  position: absolute; top: 8%; left: 58%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #d0b898 0%, #a08060 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: ago-curtain 15s ease-in-out infinite;
}
@keyframes ago-map { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(8px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ago-roulet { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ago-boris { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ago-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ago-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }

.scn-boris-departs {
  background: 
    linear-gradient(180deg, #f5ead5 0%, #e0d0b8 50%, #c0a88a 100%),
    radial-gradient(ellipse at 70% 40%, #fff5e0 0%, transparent 50%);
}
.scn-boris-departs .doorway {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-boris-departs .figure-boris-depart {
  position: absolute; bottom: 20%; left: 35%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bde-boris 7s ease-in-out infinite;
}
.scn-boris-departs .luggage {
  position: absolute; bottom: 18%; left: 55%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: bde-luggage 10s ease-in-out infinite;
}
.scn-boris-departs .lantern-hang {
  position: absolute; top: 15%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0d080 0%, #b8862d 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(240,208,128,0.7), 0 0 32px 12px rgba(240,208,128,0.3);
  animation: bde-lantern 3s ease-in-out infinite alternate;
}
.scn-boris-departs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
}
.scn-boris-departs .step {
  position: absolute; bottom: 20%; left: 20%; right: 40%; height: 6%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  animation: bde-step 12s ease-in-out infinite alternate;
}
@keyframes bde-boris { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bde-luggage { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bde-lantern { 0% { box-shadow: 0 0 12px 4px #f0d080, 0 0 24px 8px rgba(240,208,128,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 24px 8px #ffecb3, 0 0 48px 16px rgba(255,236,179,0.6); opacity: 1; } 100% { box-shadow: 0 0 16px 6px #f0d080, 0 0 32px 12px rgba(240,208,128,0.4); opacity: 0.85; } }
@keyframes bde-step { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }

/* Scene: on-the-riverbank */
.scn-on-the-riverbank {
  background: linear-gradient(180deg, #0f1730 0%, #1a2440 40%, #2a3a5a 100%),
              radial-gradient(ellipse at 50% 20%, #2a4a7a 0%, transparent 60%);
}
.scn-on-the-riverbank .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2850 0%, transparent 100%);
  animation: riv-sky 8s ease-in-out infinite alternate;
}
.scn-on-the-riverbank .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8f0ff 0%, #c0d0f0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,208,240,0.3);
  animation: riv-moon 12s ease-in-out infinite;
}
.scn-on-the-riverbank .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0f1a30 100%);
  animation: riv-water 6s ease-in-out infinite alternate;
}
.scn-on-the-riverbank .reeds-left {
  position: absolute; bottom: 30%; left: 10%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #2a3a20 0%, #1a2a10 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: riv-reeds 4s ease-in-out infinite;
}
.scn-on-the-riverbank .reeds-right {
  position: absolute; bottom: 30%; right: 15%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #2a3a20 0%, #1a2a10 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: riv-reeds 5s ease-in-out infinite;
  animation-delay: 1.2s;
}
.scn-on-the-riverbank .villa {
  position: absolute; bottom: 45%; left: 40%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: riv-villa 10s ease-in-out infinite alternate;
}
.scn-on-the-riverbank .figure {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: riv-figure 6s ease-in-out infinite;
}
.scn-on-the-riverbank .ripple {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 6px;
  background: radial-gradient(ellipse, rgba(192,208,240,0.2) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: riv-ripple 3s ease-in-out infinite;
}
@keyframes riv-sky { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes riv-moon { 0%,100% { transform:translate(0,0) scale(1) } 33% { transform:translate(2px,-1px) scale(1.02) } 66% { transform:translate(-1px,1px) scale(0.98) } }
@keyframes riv-water { 0% { transform:translateY(0) } 100% { transform:translateY(3px) } }
@keyframes riv-reeds { 0%,100% { transform:rotate(-4deg) } 50% { transform:rotate(4deg) } }
@keyframes riv-villa { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(2px) scale(0.99) } }
@keyframes riv-figure { 0% { transform:translate(0,0) rotate(-2deg) } 25% { transform:translate(4px,-2px) rotate(2deg) } 50% { transform:translate(8px,0) rotate(-1deg) } 75% { transform:translate(4px,-1px) rotate(1deg) } 100% { transform:translate(0,0) rotate(0deg) } }
@keyframes riv-ripple { 0% { width:60px; opacity:0.4 } 50% { width:80px; opacity:0.1 } 100% { width:60px; opacity:0.4 } }

/* Scene: koupriane-surveillance-plan */
.scn-koupriane-surveillance-plan {
  background: linear-gradient(180deg, #0f1420 0%, #1a2030 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 60% 15%, #2a4a6a 0%, transparent 50%);
}
.scn-koupriane-surveillance-plan .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2030 0%, #0a0f18 100%);
  animation: kou-street 10s ease-in-out infinite;
}
.scn-koupriane-surveillance-plan .building-left {
  position: absolute; bottom: 35%; left: 0; width: 35%; height: 65%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 2% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: kou-build 15s ease-in-out infinite alternate;
}
.scn-koupriane-surveillance-plan .building-right {
  position: absolute; bottom: 35%; right: 0; width: 40%; height: 55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-radius: 10% 2% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.4);
  animation: kou-build 18s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-koupriane-surveillance-plan .lamppost {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  transform: translateX(-50%);
}
.scn-koupriane-surveillance-plan .lamppost::before {
  content: ''; position: absolute; top: -6px; left: -6px; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(160,176,192,0.5);
  animation: kou-lamp 4s ease-in-out infinite alternate;
}
.scn-koupriane-surveillance-plan .figure-a {
  position: absolute; bottom: 30%; left: 25%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kou-figure-a 5s ease-in-out infinite;
}
.scn-koupriane-surveillance-plan .figure-b {
  position: absolute; bottom: 30%; right: 20%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kou-figure-b 6s ease-in-out infinite;
}
.scn-koupriane-surveillance-plan .moon {
  position: absolute; top: 6%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0ecff 0%, #c0d0f0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(192,208,240,0.25);
  animation: kou-moon 20s linear infinite;
}
@keyframes kou-street { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes kou-build { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } }
@keyframes kou-lamp { 0% { box-shadow: 0 0 20px 8px rgba(160,176,192,0.5); opacity:0.9 } 100% { box-shadow: 0 0 30px 12px rgba(160,176,192,0.8); opacity:1 } }
@keyframes kou-figure-a { 0% { transform:translate(0,0) rotate(-2deg) } 33% { transform:translate(3px,-1px) rotate(2deg) } 66% { transform:translate(-2px,0) rotate(-1deg) } 100% { transform:translate(0,0) rotate(0) } }
@keyframes kou-figure-b { 0% { transform:translate(0,0) rotate(0) } 33% { transform:translate(-2px,-1px) rotate(-2deg) } 66% { transform:translate(3px,1px) rotate(1deg) } 100% { transform:translate(0,0) rotate(0) } }
@keyframes kou-moon { 0% { transform:translateX(0) } 100% { transform:translateX(20px) } }

/* Scene: boat-on-the-water */
.scn-boat-on-the-water {
  background: linear-gradient(180deg, #0f1a2a 0%, #1a2a40 40%, #2a3a5a 100%),
              radial-gradient(ellipse at 30% 20%, #2a4a7a 0%, transparent 60%);
}
.scn-boat-on-the-water .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0f1a30 100%);
  animation: bot-water 8s ease-in-out infinite alternate;
}
.scn-boat-on-the-water .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a1525 0%, #1a2a4a 100%);
  animation: bot-sky 10s ease-in-out infinite;
}
.scn-boat-on-the-water .moon {
  position: absolute; top: 8%; left: 25%; width: 36px; height: 36px;
  background: radial-gradient(circle, #e0ecff 0%, #c0d4f0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(192,212,240,0.3);
  animation: bot-moon 15s ease-in-out infinite;
}
.scn-boat-on-the-water .boat {
  position: absolute; bottom: 30%; left: 40%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bot-boat 4s ease-in-out infinite alternate;
}
.scn-boat-on-the-water .oar {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  transform-origin: 50% 100%;
  border-radius: 2px;
  animation: bot-oar 2s ease-in-out infinite;
}
.scn-boat-on-the-water .figure {
  position: absolute; bottom: 34%; left: 43%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bot-figure 5s ease-in-out infinite;
}
.scn-boat-on-the-water .ripple {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(192,212,240,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: bot-ripple 3s ease-in-out infinite;
}
@keyframes bot-water { 0% { transform:translateY(0) } 100% { transform:translateY(4px) } }
@keyframes bot-sky { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes bot-moon { 0%,100% { transform:translate(0,0) } 50% { transform:translate(2px,-1px) } }
@keyframes bot-boat { 0% { transform:translateX(-2px) rotate(-1deg) } 50% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(-2px) rotate(-1deg) } }
@keyframes bot-oar { 0%,100% { transform:rotate(-20deg) } 50% { transform:rotate(20deg) } }
@keyframes bot-figure { 0% { transform:translate(0,0) rotate(-2deg) } 25% { transform:translate(2px,-1px) rotate(2deg) } 50% { transform:translate(4px,0) rotate(-1deg) } 75% { transform:translate(2px,-1px) rotate(1deg) } 100% { transform:translate(0,0) rotate(0) } }
@keyframes bot-ripple { 0% { width:80px; opacity:0.3 } 50% { width:100px; opacity:0.1 } 100% { width:80px; opacity:0.3 } }

/* Scene: ambush-in-drawing-room */
.scn-ambush-in-drawing-room {
  background: linear-gradient(180deg, #0a0a14 0%, #12121e 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 70%, #2a3a5a 0%, transparent 70%);
}
.scn-ambush-in-drawing-room .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #12121e 0%, #1a1a2a 100%);
  border-bottom: 2px solid #2a2a3a;
  animation: amb-wall 14s ease-in-out infinite alternate;
}
.scn-ambush-in-drawing-room .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  animation: amb-floor 12s ease-in-out infinite;
}
.scn-ambush-in-drawing-room .window {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  border: 2px solid #2a2a4a;
  border-radius: 4%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: amb-window 8s ease-in-out infinite;
}
.scn-ambush-in-drawing-room .moonbeam {
  position: absolute; top: 15%; left: 48%; width: 40px; height: 100px;
  background: linear-gradient(180deg, rgba(200,210,240,0.15) 0%, transparent 100%);
  filter: blur(6px);
  transform: translateX(-50%) rotate(5deg);
  animation: amb-beam 10s ease-in-out infinite alternate;
}
.scn-ambush-in-drawing-room .chair {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: amb-chair 9s ease-in-out infinite;
}
.scn-ambush-in-drawing-room .figure {
  position: absolute; bottom: 20%; left: 42%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amb-figure 5s ease-in-out infinite;
}
.scn-ambush-in-drawing-room .revolver {
  position: absolute; bottom: 28%; left: 52%; width: 16px; height: 8px;
  background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 50% 50% 10%;
  transform: rotate(-10deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.6);
  animation: amb-revolver 3s ease-in-out infinite alternate;
}
@keyframes amb-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes amb-floor { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } }
@keyframes amb-window { 0%,100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8); } }
@keyframes amb-beam { 0% { opacity:0.3; transform:translateX(-50%) rotate(5deg) } 100% { opacity:0.6; transform:translateX(-50%) rotate(8deg) } }
@keyframes amb-chair { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes amb-figure { 0% { transform:translate(0,0) rotate(-1deg) } 33% { transform:translate(1px,-1px) rotate(1deg) } 66% { transform:translate(-1px,0) rotate(-1deg) } 100% { transform:translate(0,0) rotate(0) } }
@keyframes amb-revolver { 0% { transform:rotate(-12deg) } 100% { transform:rotate(-8deg) } }

/* footprints-and-kidnap */
.scn-footprints-and-kidnap {
  background:
    linear-gradient(180deg, #2a334a 0%, #4a5a6a 40%, #6a7a6a 70%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a7a 0%, transparent 60%);
}
.scn-footprints-and-kidnap .sky-dawn {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #8a9a7a 50%, #b0a080 100%);
  animation: fk-sky 15s ease-in-out infinite alternate;
}
.scn-footprints-and-kidnap .hills-away {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.4);
  animation: fk-hills 10s ease-in-out infinite;
}
.scn-footprints-and-kidnap .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
}
.scn-footprints-and-kidnap .footprint {
  position: absolute; bottom: 15%; width: 12px; height: 18px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: #1a1a1a;
  box-shadow: inset 0 0 4px #0a0a0a;
}
.scn-footprints-and-kidnap .fp-1 {
  left: 20%; animation: fk-print 5s ease-in-out infinite;
}
.scn-footprints-and-kidnap .fp-2 {
  left: 30%; bottom: 13%; animation: fk-print 5s ease-in-out infinite 1s;
}
.scn-footprints-and-kidnap .fp-3 {
  left: 40%; bottom: 14%; animation: fk-print 5s ease-in-out infinite 2s;
}
.scn-footprints-and-kidnap .struggle-mark {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at center, #3a3a3a 0%, transparent 80%);
  border-radius: 50%;
  animation: fk-struggle 4s ease-in-out infinite;
}
.scn-footprints-and-kidnap .distant-figure {
  position: absolute; bottom: 25%; right: 15%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fk-walk 6s ease-in-out infinite;
}
.scn-footprints-and-kidnap .branch-broken {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 6px;
  background: #4a3a2a;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: fk-branch 8s ease-in-out infinite;
}
@keyframes fk-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fk-hills { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes fk-print { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes fk-struggle { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.1) } 100% { opacity: 0.3; transform: scale(1) } }
@keyframes fk-walk { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-8px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fk-branch { 0% { transform: rotate(30deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(30deg) } }

/* bay-of-lachtka */
.scn-bay-of-lachtka {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 30%, #7a8a8a 60%, #4a5a5a 100%),
    radial-gradient(ellipse at 30% 40%, #8a9aaa 0%, transparent 70%);
}
.scn-bay-of-lachtka .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #9aaaab 50%, #c0b0a0 100%);
  animation: bl-sky 12s ease-in-out infinite alternate;
}
.scn-bay-of-lachtka .water-bay {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.3);
  animation: bl-water 8s ease-in-out infinite;
}
.scn-bay-of-lachtka .barque-hull {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bl-hull 6s ease-in-out infinite;
}
.scn-bay-of-lachtka .barque-sail {
  position: absolute; bottom: 40%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: bl-sail 5s ease-in-out infinite;
}
.scn-bay-of-lachtka .wave {
  position: absolute; bottom: 20%; height: 16px; border-radius: 50%;
  background: rgba(255,255,255,.08);
  filter: blur(3px);
}
.scn-bay-of-lachtka .w1 { left: 10%; width: 120px; animation: bl-wave 4s linear infinite; }
.scn-bay-of-lachtka .w2 { left: 50%; width: 100px; animation: bl-wave 4s linear infinite 2s; }
.scn-bay-of-lachtka .runner-silhouette {
  position: absolute; bottom: 22%; right: 20%; width: 14px; height: 28px;
  background: #1a1a1a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bl-run 0.8s steps(2) infinite;
}
.scn-bay-of-lachtka .jetty {
  position: absolute; bottom: 23%; left: 5%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
@keyframes bl-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes bl-water { 0% { background-position: 0 0 } 50% { background-position: -10px 0 } 100% { background-position: 0 0 } }
@keyframes bl-hull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bl-sail { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes bl-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes bl-run { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }

/* little-wooden-restaurant */
.scn-little-wooden-restaurant {
  background:
    linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%),
    radial-gradient(ellipse at 40% 60%, #c0a060 0%, transparent 80%);
}
.scn-little-wooden-restaurant .wall-wood {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, #7a6a4a 0px, #7a6a4a 2px, #6a5a3a 2px, #6a5a3a 4px);
  opacity: 0.4;
  animation: lr-wall 10s ease-in-out infinite;
}
.scn-little-wooden-restaurant .window-sea {
  position: absolute; top: 15%; right: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border: 4px solid #5a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.2);
  animation: lr-window 8s ease-in-out infinite alternate;
}
.scn-little-wooden-restaurant .table-wood {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-little-wooden-restaurant .plate-food {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 10px;
  background: #d0c0a0;
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.scn-little-wooden-restaurant .glass-beer {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #d0b060 0%, #c0a050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px rgba(200,180,100,.3);
}
.scn-little-wooden-restaurant .chair-empty {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 0 #2a1a0a;
}
.scn-little-wooden-restaurant .proprietor-back {
  position: absolute; bottom: 10%; left: 70%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lr-busy 3s ease-in-out infinite;
}
@keyframes lr-wall { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }
@keyframes lr-window { 0% { border-color: #5a4a2a; box-shadow: inset 0 0 20px rgba(255,255,200,.2); } 50% { border-color: #7a6a4a; box-shadow: inset 0 0 30px rgba(255,255,200,.4); } 100% { border-color: #5a4a2a; } }
@keyframes lr-busy { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }

/* i-come-to-capture-her */
.scn-i-come-to-capture-her {
  background:
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, #4a5a5a 100%),
    radial-gradient(ellipse at 50% 30%, #9ab0b0 0%, transparent 70%);
}
.scn-i-come-to-capture-her .station-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.3);
}
.scn-i-come-to-capture-her .platform-edge {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 4px;
  background: #a0a090;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.scn-i-come-to-capture-her .pillar-iron {
  position: absolute; bottom: 20%; left: 25%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
}
.scn-i-come-to-capture-her .train-car {
  position: absolute; bottom: 32%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,.4);
}
.scn-i-come-to-capture-her .figure-sling {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ic-sling 4s ease-in-out infinite;
}
.scn-i-come-to-capture-her .figure-sling::after {
  content: ''; position: absolute; top: 25%; left: -30%; width: 8px; height: 4px;
  background: #6a5a4a;
  border-radius: 20%;
}
.scn-i-come-to-capture-her .figure-slumped {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: center bottom;
  animation: ic-slump 6s ease-in-out infinite;
}
.scn-i-come-to-capture-her .luggage-cart {
  position: absolute; bottom: 28%; left: 60%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
@keyframes ic-sling { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes ic-slump { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) translateY(2px) } 100% { transform: rotate(0deg) } }
/* additional keyframes for train and pillar? not required but can add for visual interest */
.scn-i-come-to-capture-her .pillar-iron { animation: ic-pillar 12s linear infinite; }
@keyframes ic-pillar { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }

/* Scene 1: general-in-nightmare (gn) */
.scn-general-in-nightmare {
  background: radial-gradient(ellipse at 50% 60%, #2a1f2a 0%, #0f0a12 60%, #050308 100%),
              linear-gradient(180deg, #1a121f 0%, #0f0a14 50%, #08050a 100%);
}
.scn-general-in-nightmare .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1620 0%, #0f0c15 100%);
  animation: gn-wall 20s ease-in-out infinite;
}
.scn-general-in-nightmare .stair-tread {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 3%;
  background: linear-gradient(180deg, #2a2528 0%, #1a171a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: gn-stair 8s ease-in-out infinite alternate;
}
.scn-general-in-nightmare .stair-riser {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(180deg, #1f1b1f 0%, #141014 100%);
  border-radius: 1px;
}
.scn-general-in-nightmare .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a151a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-walk-left 5s ease-in-out infinite;
}
.scn-general-in-nightmare .figure-right {
  position: absolute; bottom: 30%; left: 32%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1a151a 0%, #0a080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-walk-right 5s ease-in-out infinite 0.2s;
}
.scn-general-in-nightmare .lamp-glow {
  position: absolute; bottom: 40%; left: 65%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b08040 0%, #704820 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.5), 0 0 60px 20px rgba(176,128,64,0.2);
  animation: gn-lamp 4s ease-in-out infinite alternate;
}
.scn-general-in-nightmare .shadow-pulse {
  position: absolute; inset: 0;
  background: rgba(10,5,10,0.3);
  pointer-events: none;
  animation: gn-pulse 12s ease-in-out infinite;
}
@keyframes gn-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; }
}
@keyframes gn-stair {
  0% { transform: translateY(0); opacity: 0.7; }
  100% { transform: translateY(-2px); opacity: 0.9; }
}
@keyframes gn-walk-left {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes gn-walk-right {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(-6px) translateY(0) rotate(1deg); }
  75% { transform: translateX(-9px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-12px) translateY(0) rotate(0); }
}
@keyframes gn-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(176,128,64,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 14px rgba(176,128,64,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(176,128,64,0.5); }
}
@keyframes gn-pulse {
  0% { opacity: 0.1; }
  50% { opacity: 0.3; }
  100% { opacity: 0.1; }
}

/* Scene 2: the-youth-of-moscow (ym) */
.scn-the-youth-of-moscow {
  background: radial-gradient(ellipse at 30% 40%, #1a1a2e 0%, #0e0a1a 60%, #040208 100%),
              linear-gradient(180deg, #12101e 0%, #0a0812 100%);
}
.scn-the-youth-of-moscow .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1422 0%, #0e0a14 60%, #060410 100%);
  animation: ym-room 18s ease-in-out infinite alternate;
}
.scn-the-youth-of-moscow .bed-frame {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #2a2228 0%, #1a141a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.6);
}
.scn-the-youth-of-moscow .figure-seated {
  position: absolute; bottom: 30%; left: 40%; width: 28px; 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: ym-figure 6s ease-in-out infinite;
}
.scn-the-youth-of-moscow .doorway {
  position: absolute; top: 15%; right: 15%; width: 20%; height: 50%;
  background: #08060a;
  border: 2px solid #1a1620;
  border-radius: 0 0 8px 8px;
  box-shadow: inset 0 0 30px rgba(10,5,10,.8);
  animation: ym-door 15s ease-in-out infinite alternate;
}
.scn-the-youth-of-moscow .ruin-haze {
  position: absolute; top: 0; right: 15%; width: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 70%, rgba(40,30,50,0.4) 0%, transparent 70%);
  pointer-events: none;
}
.scn-the-youth-of-moscow .fist-shadow {
  position: absolute; bottom: 45%; left: 45%; width: 12px; height: 18px;
  background: #0a080a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: ym-fist 4s ease-in-out infinite alternate;
}
@keyframes ym-room {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.7; }
}
@keyframes ym-figure {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ym-door {
  0% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(10,5,10,.8); }
  50% { opacity: 0.6; box-shadow: inset 0 0 60px rgba(10,5,10,.9); }
  100% { opacity: 0.8; box-shadow: inset 0 0 40px rgba(10,5,10,.7); }
}
@keyframes ym-fist {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}

/* Scene 3: natacha-poem-haunts (np) */
.scn-natacha-poem-haunts {
  background: radial-gradient(ellipse at 70% 50%, #1a1820 0%, #0c0a14 60%, #040308 100%),
              linear-gradient(180deg, #14111a 0%, #0a0810 50%, #040206 100%);
}
.scn-natacha-poem-haunts .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12101a 0%, #0a0812 100%);
  animation: np-chamber 20s ease-in-out infinite alternate;
}
.scn-natacha-poem-haunts .bed-rumpled {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(180deg, #2a2226 0%, #1a1418 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 8px 12px rgba(0,0,0,.4);
}
.scn-natacha-poem-haunts .figure-weeping {
  position: absolute; bottom: 25%; left: 38%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #1a1a26 0%, #0a0a14 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: np-weep 5s ease-in-out infinite;
}
.scn-natacha-poem-haunts .window-shard {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(135deg, rgba(100,120,140,0.2) 0%, transparent 60%);
  border: 1px solid rgba(100,120,140,0.3);
  border-radius: 4px;
  transform: skewX(5deg);
  animation: np-window 30s linear infinite alternate;
}
.scn-natacha-poem-haunts .moon-road {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,220,0.15) 30%, rgba(180,200,220,0.3) 50%, rgba(180,200,220,0.15) 70%, transparent 100%);
  filter: blur(2px);
  animation: np-moon 40s linear infinite;
}
.scn-natacha-poem-haunts .tear-drop {
  position: absolute; bottom: 30%; left: 48%; width: 3px; height: 6px;
  background: radial-gradient(circle, rgba(180,200,220,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: np-tear 3s ease-in-out infinite;
}
.scn-natacha-poem-haunts .sob-vibration {
  position: absolute; inset: 0;
  background: transparent;
  pointer-events: none;
  animation: np-sob 2s ease-in-out infinite;
}
@keyframes np-chamber {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes np-weep {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(4deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes np-window {
  0% { opacity: 0.3; transform: skewX(5deg) scale(1); }
  50% { opacity: 0.6; transform: skewX(-2deg) scale(1.02); }
  100% { opacity: 0.2; transform: skewX(7deg) scale(0.98); }
}
@keyframes np-moon {
  0% { transform: translateX(-10vw); opacity: 0.4; }
  50% { transform: translateX(10vw); opacity: 0.8; }
  100% { transform: translateX(-10vw); opacity: 0.4; }
}
@keyframes np-tear {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(4px); opacity: 0.5; }
  100% { transform: translateY(0); opacity: 0; }
}
@keyframes np-sob {
  0% { transform: translateX(0); }
  25% { transform: translateX(0.5px); }
  50% { transform: translateX(0); }
  75% { transform: translateX(-0.5px); }
  100% { transform: translateX(0); }
}

/* Scene 4: narcotic-and-delirium (nd) */
.scn-narcotic-and-delirium {
  background: radial-gradient(ellipse at 40% 40%, #1a1420 0%, #0a0812 60%, #020106 100%),
              linear-gradient(180deg, #120e18 0%, #08060c 100%);
}
.scn-narcotic-and-delirium .corner-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #14101c 0%, #0a0810 100%);
  animation: nd-corner 18s ease-in-out infinite alternate;
}
.scn-narcotic-and-delirium .bed-lower {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #2a2026 0%, #1a141a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 10px 20px rgba(0,0,0,.5);
}
.scn-narcotic-and-delirium .figure-thrashing {
  position: absolute; bottom: 25%; left: 35%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #1a1622 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nd-thrash 3s ease-in-out infinite;
}
.scn-narcotic-and-delirium .nightstand {
  position: absolute; bottom: 28%; right: 20%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-narcotic-and-delirium .glass-soporific {
  position: absolute; bottom: 32%; right: 22%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 30%, rgba(120,140,160,0.3) 0%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  border: 1px solid rgba(120,140,160,0.2);
  box-shadow: 0 0 10px rgba(120,140,160,0.2);
  animation: nd-glass 4s ease-in-out infinite alternate;
}
.scn-narcotic-and-delirium .hand-push {
  position: absolute; bottom: 30%; right: 30%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #1a1620 0%, #0a0810 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom right;
  animation: nd-hand 4s ease-in-out infinite;
}
@keyframes nd-corner {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.75; }
}
@keyframes nd-thrash {
  0% { transform: translateY(0) rotate(0) scale(1); }
  20% { transform: translateY(-3px) rotate(5deg) scale(1.03); }
  40% { transform: translateY(0) rotate(-3deg) scale(1); }
  60% { transform: translateY(-2px) rotate(4deg) scale(1.02); }
  80% { transform: translateY(0) rotate(-2deg) scale(1); }
  100% { transform: translateY(0) rotate(0) scale(1); }
}
@keyframes nd-glass {
  0% { opacity: 0.3; box-shadow: 0 0 5px rgba(120,140,160,0.1); }
  50% { opacity: 0.7; box-shadow: 0 0 20px rgba(120,140,160,0.3); }
  100% { opacity: 0.4; box-shadow: 0 0 10px rgba(120,140,160,0.2); }
}
@keyframes nd-hand {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(-6px) translateY(-2px) rotate(-10deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-4px) translateY(-1px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}

.scn-final-doubt {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #4a3020 100%), radial-gradient(ellipse at 70% 60%, #8a7050 0%, transparent 60%);
  overflow: hidden;
}
.scn-final-doubt .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #6a5040 100%); }
.scn-final-doubt .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-final-doubt .lamp { position:absolute; bottom:30%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #c0a060 0%, #806030 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px #d0b070; animation: fd-lamp 3s ease-in-out infinite alternate; }
.scn-final-doubt .light-cone { position:absolute; bottom:30%; left:50%; width:120px; height:200px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(220,200,160,.3) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: fd-cone 5s ease-in-out infinite alternate; }
.scn-final-doubt .figure-left { position:absolute; bottom:15%; left:25%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fd-figures 4s ease-in-out infinite; }
.scn-final-doubt .figure-right { position:absolute; bottom:15%; right:25%; width:28px; height:85px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: fd-figures 4s ease-in-out infinite reverse; }
.scn-final-doubt .papers { position:absolute; bottom:20%; left:50%; width:50px; height:10px; transform: translateX(-50%); background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: fd-papers 6s ease-in-out infinite alternate; }
.scn-final-doubt .inkwell { position:absolute; bottom:18%; left:46%; width:10px; height:14px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; }
@keyframes fd-lamp { 0% { box-shadow: 0 0 25px 6px #d0b070; opacity: 0.8; } 50% { box-shadow: 0 0 45px 15px #ffe0a0; opacity: 1; } 100% { box-shadow: 0 0 30px 8px #d0b070; opacity: 0.85; } }
@keyframes fd-cone { 0% { opacity: 0.6; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.9; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.5; transform: translateX(-50%) scaleY(0.95); } }
@keyframes fd-figures { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes fd-papers { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.05); } 100% { transform: translateX(-50%) scaleX(0.95); } }

.scn-i-accept-your-gift {
  background: linear-gradient(180deg, #1a1020 0%, #3a2a3a 30%, #2a1a2a 100%), radial-gradient(ellipse at 50% 70%, #5a3a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-i-accept-your-gift .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a2030 0%, #4a3040 100%); }
.scn-i-accept-your-gift .icon-wall { position:absolute; bottom:40%; left:35%; right:35%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,.5); }
.scn-i-accept-your-gift .candle-left { position:absolute; bottom:25%; left:30%; width:6px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 10px #f0c080; animation: iag-candle 4s ease-in-out infinite alternate; }
.scn-i-accept-your-gift .candle-right { position:absolute; bottom:25%; right:30%; width:6px; height:30px; background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 10px #f0c080; animation: iag-candle 4s ease-in-out infinite alternate 2s; }
.scn-i-accept-your-gift .figure-kneeling { position:absolute; bottom:15%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iag-kneel 3s ease-in-out infinite; }
.scn-i-accept-your-gift .shadow-cross { position:absolute; bottom:40%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: #1a1020; border-radius: 2px; opacity: 0.6; animation: iag-cross 8s ease-in-out infinite; }
.scn-i-accept-your-gift .halo-glow { position:absolute; bottom:45%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle, rgba(255,200,150,.3) 0%, transparent 70%); border-radius: 50%; animation: iag-halo 6s ease-in-out infinite alternate; }
@keyframes iag-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px #f0c080; } 50% { opacity: 1; box-shadow: 0 0 30px 12px #f0c080; } 100% { opacity: 0.8; box-shadow: 0 0 20px 8px #f0c080; } }
@keyframes iag-kneel { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes iag-cross { 0% { opacity: 0.4; transform: translateX(-50%) scaleY(0.9); } 50% { opacity: 0.8; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.5; transform: translateX(-50%) scaleY(1); } }
@keyframes iag-halo { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.8); } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }

.scn-the-gentleman-of-the-neva {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5040 30%, #5a4030 100%), radial-gradient(ellipse at 40% 60%, #8a7060 0%, transparent 70%);
  overflow: hidden;
}
.scn-the-gentleman-of-the-neva .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #6a5a4a 100%); }
.scn-the-gentleman-of-the-neva .window { position:absolute; top:10%; left:60%; width:80px; height:120px; background: linear-gradient(180deg, #c8d8e8 0%, #a0b0c0 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
.scn-the-gentleman-of-the-neva .curtain-left { position:absolute; top:10%; left:55%; width:20px; height:130px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 0 4px 4px 0; animation: gn-curtain 6s ease-in-out infinite alternate; }
.scn-the-gentleman-of-the-neva .curtain-right { position:absolute; top:10%; left:78%; width:20px; height:130px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 4px 0 0 4px; animation: gn-curtain 6s ease-in-out infinite alternate 3s; }
.scn-the-gentleman-of-the-neva .table { position:absolute; bottom:25%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-the-gentleman-of-the-neva .figure-seated { position:absolute; bottom:28%; left:35%; width:35px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: gn-figure 5s ease-in-out infinite; }
.scn-the-gentleman-of-the-neva .ikons { position:absolute; bottom:32%; left:50%; width:20px; height:30px; transform: translateX(-50%); background: radial-gradient(ellipse, #d0b080 0%, #a08060 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: gn-ikons 4s ease-in-out infinite alternate; }
.scn-the-gentleman-of-the-neva .tea-cup { position:absolute; bottom:26%; left:48%; width:10px; height:12px; background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 100%); border-radius: 50% 50% 10% 10%; }
@keyframes gn-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes gn-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(1px); } }
@keyframes gn-ikons { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(0.98); } }

.scn-self-invitation {
  background: linear-gradient(180deg, #1a1a2a 0%, #3a3a4a 30%, #2a2a3a 100%), radial-gradient(ellipse at 50% 40%, #5a5a6a 0%, transparent 70%);
  overflow: hidden;
}
.scn-self-invitation .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #4a4a5a 100%); }
.scn-self-invitation .door { position:absolute; top:20%; left:15%; width:60px; height:140px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10px 10px 0 0; border: 3px solid #3a2a1a; box-shadow: inset -4px 0 10px rgba(0,0,0,.5); }
.scn-self-invitation .figure-priest { position:absolute; bottom:20%; left:30%; width:30px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: si-priest 3s ease-in-out infinite; }
.scn-self-invitation .figures-armed { position:absolute; bottom:20%; right:20%; width:80px; height:80px; background: radial-gradient(ellipse at 30% 50%, #1a1a2a 0%, transparent 70%); animation: si-armed 5s ease-in-out infinite; }
.scn-self-invitation .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); }
.scn-self-invitation .chandelier { position:absolute; top:5%; left:50%; width:40px; height:20px; transform: translateX(-50%); background: radial-gradient(ellipse, #c0a060 0%, #805030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 15px #d0b070; animation: si-chandelier 4s ease-in-out infinite alternate; }
.scn-self-invitation .light-spot { position:absolute; top:10%; left:50%; width:100px; height:200px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(220,200,160,.15) 0%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%); animation: si-spot 7s ease-in-out infinite alternate; }
@keyframes si-priest { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes si-armed { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes si-chandelier { 0% { box-shadow: 0 0 30px 10px #d0b070; opacity: 0.8; } 50% { box-shadow: 0 0 50px 20px #e0c080; opacity: 1; } 100% { box-shadow: 0 0 35px 12px #d0b070; opacity: 0.85; } }
@keyframes si-spot { 0% { opacity: 0.3; transform: translateX(-50%) scaleY(1); } 50% { opacity: 0.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scaleY(0.9); } }

/* Scene 1: natacha-improvises-song */
.scn-natacha-improvises-song {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e6c9a8 30%, #c9a66b 70%, #a07840 100%),
    radial-gradient(ellipse at 30% 60%, #fff5e0 0%, transparent 60%);
}
.scn-natacha-improvises-song .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d9ba85 0%, #b8926a 100%);
  animation: nis-wall 8s ease-in-out infinite alternate;
}
.scn-natacha-improvises-song .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f45 0%, #5c482a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-natacha-improvises-song .window {
  position: absolute; top: 10%; left: 55%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #ffeccc 0%, #ffd780 50%, #c8a05a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 30px 10px rgba(255,215,128,0.4);
  animation: nis-window 6s ease-in-out infinite alternate;
}
.scn-natacha-improvises-song .piano {
  position: absolute; bottom: 20%; left: 25%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 0 2px #6a4a2a;
  transform: perspective(200px) rotateX(10deg);
}
.scn-natacha-improvises-song .singer {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 40%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nis-singer 4s ease-in-out infinite;
}
.scn-natacha-improvises-song .listener {
  position: absolute; bottom: 25%; right: 18%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 60% 40%;
  transform-origin: bottom center;
  animation: nis-listener 6s ease-in-out infinite alternate;
}
.scn-natacha-improvises-song .lamp-glow {
  position: absolute; top: 5%; left: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #ffb040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.3);
  animation: nis-lamp 3s ease-in-out infinite alternate;
}
@keyframes nis-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes nis-window { 0% { opacity: 0.75; box-shadow: 0 0 20px 5px rgba(255,215,128,0.3) } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,215,128,0.5) } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,215,128,0.35) } }
@keyframes nis-singer { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-3px) scaleY(1.02) } 50% { transform: translateY(1px) scaleY(0.98) } 75% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes nis-listener { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes nis-lamp { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.3); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }

/* Scene 2: toast-to-imperial-service */
.scn-toast-to-imperial-service {
  background: 
    linear-gradient(180deg, #ecd9b0 0%, #d9b88a 40%, #b88a5a 70%, #9a6a3a 100%),
    radial-gradient(ellipse at 50% 30%, #fff3d0 0%, transparent 60%);
}
.scn-toast-to-imperial-service .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #c9a66b 0%, #a07840 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.2);
}
.scn-toast-to-imperial-service .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(5deg);
}
.scn-toast-to-imperial-service .glasses {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 15%;
  background: linear-gradient(135deg, #ffe8c0 0%, #ffd090 50%, #c89050 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 0 15px 5px rgba(255,220,100,0.3);
  animation: tis-glasses 4s ease-in-out infinite alternate;
}
.scn-toast-to-imperial-service .toastmaster {
  position: absolute; bottom: 10%; left: 6%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: tis-toast 5s ease-in-out infinite;
}
.scn-toast-to-imperial-service .guest {
  position: absolute; bottom: 8%; right: 8%; width: 12%; height: 46%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: tis-guest 6s ease-in-out infinite alternate;
}
.scn-toast-to-imperial-service .chandelier {
  position: absolute; top: 2%; left: 30%; width: 40%; height: 15%;
  background: 
    radial-gradient(ellipse at 50% 0%, #ffd090 0%, transparent 60%),
    linear-gradient(180deg, transparent 0%, #8a6a3a 50%, #5a3a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.2);
  animation: tis-chandelier 8s ease-in-out infinite alternate;
}
.scn-toast-to-imperial-service .sparkle {
  position: absolute; top: 5%; left: 20%; width: 3%; height: 3%;
  background: radial-gradient(circle, #fff 0%, #ffd090 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,255,200,0.6);
  animation: tis-sparkle 2s ease-in-out infinite;
}
@keyframes tis-glasses { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-7deg) translateY(0) } }
@keyframes tis-toast { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tis-guest { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes tis-chandelier { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes tis-sparkle { 0% { opacity: 0; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: 0; transform: scale(0.5) } }

/* Scene 3: general-laughs-and-weeps */
.scn-general-laughs-and-weeps {
  background: 
    linear-gradient(180deg, #e6d4b0 0%, #d4b890 40%, #b89060 70%, #906840 100%),
    radial-gradient(ellipse at 40% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-general-laughs-and-weeps .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #c9a66b 0%, #a07840 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15);
}
.scn-general-laughs-and-weeps .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6030 0%, #4a3820 100%);
  border-radius: 30% 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-general-laughs-and-weeps .general-figure {
  position: absolute; bottom: 8%; left: 15%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: glw-general 3s ease-in-out infinite;
}
.scn-general-laughs-and-weeps .listener-figure {
  position: absolute; bottom: 5%; right: 12%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: glw-listener 4s ease-in-out infinite alternate;
}
.scn-general-laughs-and-weeps .champagne-bottle {
  position: absolute; bottom: 30%; left: 42%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #a08850 0%, #705830 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 10px 2px rgba(255,200,80,0.3);
  animation: glw-bottle 5s ease-in-out infinite;
}
.scn-general-laughs-and-weeps .tear-drop {
  position: absolute; top: 20%; left: 25%; width: 2%; height: 4%;
  background: radial-gradient(circle, #c0e0ff 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(192,224,255,0.4);
  animation: glw-tear 2s ease-in-out infinite alternate;
}
.scn-general-laughs-and-weeps .laugh-line {
  position: absolute; top: 15%; right: 20%; width: 10%; height: 2%;
  background: linear-gradient(90deg, transparent, #d08060 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: glw-laugh 6s ease-in-out infinite;
}
@keyframes glw-general { 0% { transform: translateY(0) rotate(-2deg) scaleY(1) } 25% { transform: translateY(-5px) rotate(3deg) scaleY(1.03) } 50% { transform: translateY(2px) rotate(-1deg) scaleY(0.97) } 75% { transform: translateY(-3px) rotate(1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(-2deg) scaleY(1) } }
@keyframes glw-listener { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes glw-bottle { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(17deg) translateY(0) } }
@keyframes glw-tear { 0% { opacity: 0.3; transform: translateY(0) scale(1) } 50% { opacity: 0.8; transform: translateY(8px) scale(1.2) } 100% { opacity: 0.3; transform: translateY(0) scale(0.8) } }
@keyframes glw-laugh { 0% { opacity: 0.2; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(2) } 100% { opacity: 0.2; transform: scaleX(1) } }

/* Scene 4: observing-the-general (tense, bright interior) */
.scn-observing-the-general {
  background: 
    linear-gradient(180deg, #e0d8c8 0%, #c8bca0 30%, #a89878 70%, #807060 100%),
    radial-gradient(ellipse at 20% 40%, #ffffff 0%, transparent 70%),
    linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 50%);
}
.scn-observing-the-general .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #d0c8b0 0%, #b8a890 100%);
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.1);
}
.scn-observing-the-general .shadows {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(40,30,20,0.3) 60%, rgba(20,10,0,0.5) 100%);
  pointer-events: none;
  animation: otg-shadows 6s ease-in-out infinite alternate;
}
.scn-observing-the-general .general-silhouette {
  position: absolute; bottom: 10%; left: 55%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.3);
  animation: otg-general 5s ease-in-out infinite alternate;
}
.scn-observing-the-general .observer-silhouette {
  position: absolute; bottom: 5%; left: 12%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  transform: rotate(5deg);
  animation: otg-observer 4s ease-in-out infinite alternate;
}
.scn-observing-the-general .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-observing-the-general .cigarette-smoke {
  position: absolute; bottom: 15%; left: 22%; width: 4%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: otg-smoke 8s ease-in-out infinite;
}
@keyframes otg-shadows { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes otg-general { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(-1deg) } 60% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes otg-observer { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-4px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes otg-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-20px) scale(2); opacity: 0.1 } 100% { transform: translateY(-40px) scale(3); opacity: 0 } }

/* Scene: the-poison-ruse – tense bright interior, poison ruse */
.scn-the-poison-ruse {
  background:
    linear-gradient(135deg, #f5e6d3 0%, #d9c4a9 50%, #b89b7a 100%),
    radial-gradient(ellipse at 70% 30%, #c8553d 0%, transparent 60%);
}
.scn-the-poison-ruse .wall-left    { position:absolute; inset:0 50% 0 0; background: linear-gradient(180deg, #e8d8c0 0%, #cbb59b 100%); }
.scn-the-poison-ruse .wall-right   { position:absolute; inset:0 0 0 50%; background: linear-gradient(180deg, #dccbb2 0%, #b8a48a 100%); }
.scn-the-poison-ruse .floor        { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4d3521 100%); }
.scn-the-poison-ruse .table        { position:absolute; bottom:18%; left:40%; width:100px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-the-poison-ruse .glass        { position:absolute; bottom:24%; left:45%; width:16px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(180,160,140,0.3) 100%); border-radius:0 0 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: pr-glass 4s ease-in-out infinite; }
.scn-the-poison-ruse .figure-pr    { position:absolute; bottom:15%; left:55%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pr-figure 3s ease-in-out infinite; }
.scn-the-poison-ruse .shadow-pr    { position:absolute; bottom:10%; left:50%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: pr-shadow 3s ease-in-out infinite; }
.scn-the-poison-ruse .lamp-pr      { position:absolute; top:15%; right:25%; width:12px; height:24px; background: radial-gradient(circle, #ffd680 0%, #c08040 80%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.4); animation: pr-lamp 6s ease-in-out infinite alternate; }
.scn-the-poison-ruse .shelf-pr     { position:absolute; top:20%; left:15%; width:80px; height:8px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: pr-shelf 10s ease-in-out infinite; }
@keyframes pr-glass {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pr-figure {
  0% { transform: translateX(0) rotate(-2deg); opacity:0.9; }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); opacity:1; }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); opacity:0.9; }
}
@keyframes pr-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.5; }
  50% { transform: scaleX(1.2) translateX(10px); opacity:0.3; }
  100% { transform: scaleX(1) translateX(0); opacity:0.5; }
}
@keyframes pr-lamp {
  0% { box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.3); opacity:0.8; }
  50% { box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 20px rgba(255,208,96,0.5); opacity:1; }
  100% { box-shadow: 0 0 25px 8px #c08040, 0 0 50px 12px rgba(192,128,64,0.35); opacity:0.85; }
}
@keyframes pr-shelf {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

/* Scene: the-time-experiment – tense bright interior, hanging device */
.scn-the-time-experiment {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #cbb29a 40%, #a88f78 100%),
    radial-gradient(ellipse at 50% 20%, #c8553d 0%, transparent 60%);
}
.scn-the-time-experiment .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #d4c4b0 0%, #a09078 100%); }
.scn-the-time-experiment .platform  { position:absolute; bottom:20%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-the-time-experiment .noose     { position:absolute; bottom:38%; left:50%; width:4px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; animation: te-noose 6s ease-in-out infinite; }
.scn-the-time-experiment .rope      { position:absolute; bottom:45%; left:50%; width:30px; height:4px; transform:translateX(-50%); background: #4a3a2a; border-radius:2px; animation: te-rope 6s ease-in-out infinite; }
.scn-the-time-experiment .pendulum  { position:absolute; bottom:25%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: te-pendulum 2s ease-in-out infinite alternate; }
.scn-the-time-experiment .figure-te { position:absolute; bottom:10%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: te-figure 3s ease-in-out infinite; }
.scn-the-time-experiment .clock-te  { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #f5e6d3 0%, #cbb59b 80%); border-radius:50%; border:3px solid #5a4a3a; box-shadow: 0 0 20px 5px rgba(0,0,0,0.2); animation: te-clock 12s linear infinite; }
.scn-the-time-experiment .shadow-te { position:absolute; bottom:8%; left:25%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: te-shad 3s ease-in-out infinite; }
@keyframes te-noose {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes te-rope {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes te-pendulum {
  0% { transform: translateX(-50%) rotate(-10deg); }
  100% { transform: translateX(-50%) rotate(10deg); }
}
@keyframes te-figure {
  0% { transform: translateX(0) rotate(-1deg); opacity:0.9; }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(-1deg); opacity:1; }
  75% { transform: translateX(10px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); opacity:0.9; }
}
@keyframes te-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes te-shad {
  0% { transform: scaleX(1) translateX(0); opacity:0.4; }
  50% { transform: scaleX(1.3) translateX(15px); opacity:0.2; }
  100% { transform: scaleX(1) translateX(0); opacity:0.4; }
}

/* Scene: ipecac-proof – tense bright interior, Tsar and reporter */
.scn-ipecac-proof {
  background:
    linear-gradient(135deg, #f5efe8 0%, #ddd0c0 40%, #b8a898 100%),
    radial-gradient(ellipse at 40% 30%, #c8553d 0%, transparent 50%);
}
.scn-ipecac-proof .wall-ipecac      { position:absolute; inset:0; background: linear-gradient(180deg, #e8ddc8 0%, #c4b49c 100%); }
.scn-ipecac-proof .window-ip        { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #b0c8e0 0%, #e0e8f0 50%, #c0d8e8 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); border:4px solid #5a4a3a; animation: ip-window 8s ease-in-out infinite alternate; }
.scn-ipecac-proof .desk             { position:absolute; bottom:15%; left:35%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-ipecac-proof .bottle-ip        { position:absolute; bottom:25%; left:40%; width:14px; height:24px; background: linear-gradient(180deg, #a0866a 0%, #6a5a4a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: ip-bottle 5s ease-in-out infinite; }
.scn-ipecac-proof .tsar-ip          { position:absolute; bottom:15%; left:55%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ip-tsar 4s ease-in-out infinite; }
.scn-ipecac-proof .rouletabille-ip  { position:absolute; bottom:15%; right:25%; width:30px; height:85px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ip-roule 4s ease-in-out infinite reverse; }
.scn-ipecac-proof .shadow-ip        { position:absolute; bottom:8%; left:50%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: ip-shadow 4s ease-in-out infinite; }
@keyframes ip-window {
  0% { opacity:0.8; }
  50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,255,255,0.4); }
  100% { opacity:0.9; }
}
@keyframes ip-bottle {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ip-tsar {
  0% { transform: translateX(0) rotate(-1deg); opacity:0.95; }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); opacity:1; }
  75% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); opacity:0.95; }
}
@keyframes ip-roule {
  0% { transform: translateX(0) rotate(1deg); opacity:0.9; }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(-10px) rotate(1deg); opacity:1; }
  75% { transform: translateX(-5px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); opacity:0.9; }
}
@keyframes ip-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.4; }
  50% { transform: scaleX(1.1) translateX(10px); opacity:0.2; }
  100% { transform: scaleX(1) translateX(0); opacity:0.4; }
}

/* Scene: matrena-confesses – tense bright interior, clock and staircase */
.scn-matrena-confesses {
  background:
    linear-gradient(180deg, #e0d5c8 0%, #c0b0a0 50%, #a09080 100%),
    radial-gradient(ellipse at 60% 20%, #a0461a 0%, transparent 70%);
}
.scn-matrena-confesses .room-mc              { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4b0 0%, #b8a48a 100%); }
.scn-matrena-confesses .stair-mc             { position:absolute; left:10%; bottom:0; width:20%; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 20% 0 0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: mc-stair 10s ease-in-out infinite alternate; }
.scn-matrena-confesses .grandfather-clock-mc { position:absolute; right:15%; bottom:20%; width:40px; height:120px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-matrena-confesses .figure-mc            { position:absolute; bottom:10%; left:55%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: mc-figure 3s ease-in-out infinite; }
.scn-matrena-confesses .watch-mc             { position:absolute; top:35%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #f5e6d3 0%, #cbb59b 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(192,128,64,0.5); animation: mc-watch 1s ease-in-out infinite; }
.scn-matrena-confesses .shadow-mc            { position:absolute; bottom:5%; left:45%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: mc-shadow 3s ease-in-out infinite; }
.scn-matrena-confesses .door-mc              { position:absolute; left:5%; top:20%; width:30px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); animation: mc-door 8s ease-in-out infinite alternate; }
@keyframes mc-stair {
  0% { transform: translateY(0); opacity:0.9; }
  100% { transform: translateY(-2px); opacity:1; }
}
@keyframes mc-figure {
  0% { transform: translateX(0) rotate(-2deg); opacity:0.9; }
  25% { transform: translateX(6px) rotate(2deg); }
  50% { transform: translateX(12px) rotate(-1deg); opacity:1; }
  75% { transform: translateX(6px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); opacity:0.9; }
}
@keyframes mc-watch {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.5); opacity:1; }
  100% { transform: scale(1); opacity:0.8; }
}
@keyframes mc-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.4; }
  50% { transform: scaleX(1.2) translateX(15px); opacity:0.2; }
  100% { transform: scaleX(1) translateX(0); opacity:0.4; }
}
@keyframes mc-door {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}

/* the-phial-of-poison */
.scn-the-phial-of-poison {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #3a1a1a 100%),
    radial-gradient(ellipse at 70% 20%, #4a2a2a 0%, transparent 60%);
}
.scn-the-phial-of-poison .wall-back {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: tpp-wall 15s ease-in-out infinite alternate;
}
.scn-the-phial-of-poison .wall-shadow {
  position: absolute; inset: 0 0 45% 0;
  background: rgba(0,0,0,0.4);
  animation: tpp-shadow 6s ease-in-out infinite alternate;
}
.scn-the-phial-of-poison .table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0/ 10% 10% 0 0;
  transform: perspective(600px) rotateX(10deg);
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-the-phial-of-poison .phial {
  position: absolute; bottom: 20%; left: 45%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #a07040 0%, #604020 100%);
  border-radius: 30% 30% 20% 20%/ 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: tpp-phial 4s ease-in-out infinite;
}
.scn-the-phial-of-poison .glass {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 10% 10% 20% 20%/ 30% 30% 40% 40%;
  border: 1px solid rgba(255,255,255,0.15);
  animation: tpp-glass 5s ease-in-out infinite alternate;
}
.scn-the-phial-of-poison .hand {
  position: absolute; bottom: 10%; left: 40%; width: 28px; height: 38px;
  background: radial-gradient(ellipse at 50% 30%, #704030 0%, #502020 70%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: tpp-hand 3s ease-in-out infinite alternate;
}
.scn-the-phial-of-poison .candle {
  position: absolute; bottom: 25%; left: 15%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #b08050 0%, #704020 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.3);
  animation: tpp-candle 4s ease-in-out infinite;
}
.scn-the-phial-of-poison .candle-glow {
  position: absolute; bottom: 28%; left: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,180,80,0.6) 0%, rgba(255,180,80,0.1) 60%, transparent 100%);
  filter: blur(8px);
  animation: tpp-glow 2s ease-in-out infinite alternate;
}
@keyframes tpp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tpp-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes tpp-phial { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes tpp-glass { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tpp-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(4px); } 100% { transform: rotate(12deg) translateX(-2px); } }
@keyframes tpp-candle { 0% { transform: scaley(1); } 50% { transform: scaley(0.95); } 100% { transform: scaley(1.02); } }
@keyframes tpp-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

/* analysis-of-phial */
.scn-analysis-of-phial {
  background:
    linear-gradient(180deg, #1e1a2a 0%, #2a202a 50%, #1a1010 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-analysis-of-phial .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 100%);
  animation: aop-bg 12s ease-in-out infinite alternate;
}
.scn-analysis-of-phial .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0/ 20% 20% 0 0;
  transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-analysis-of-phial .phial-center {
  position: absolute; bottom: 18%; left: 48%; width: 12px; height: 32px;
  background: linear-gradient(180deg, #a06030 0%, #603010 100%);
  border-radius: 30% 30% 20% 20%/ 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(160,96,48,0.4);
  animation: aop-phial 5s ease-in-out infinite;
}
.scn-analysis-of-phial .paper {
  position: absolute; bottom: 12%; left: 35%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 4% 4% 8% 8%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: aop-paper 8s ease-in-out infinite alternate;
}
.scn-analysis-of-phial .lamp-glow {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,200,150,0.5) 0%, rgba(255,200,150,0.1) 60%, transparent 100%);
  filter: blur(10px);
  animation: aop-lamp 3s ease-in-out infinite alternate;
}
.scn-analysis-of-phial .chair {
  position: absolute; bottom: 8%; left: 60%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%/ 30% 30% 20% 20%;
  transform: perspective(200px) rotateY(-10deg);
}
.scn-analysis-of-phial .figure-seated {
  position: absolute; bottom: 15%; left: 62%; width: 24px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  animation: aop-figure 6s ease-in-out infinite alternate;
}
.scn-analysis-of-phial .arm-hand {
  position: absolute; bottom: 16%; left: 52%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #503020 0%, #301010 100%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: aop-arm 4s ease-in-out infinite alternate;
}
@keyframes aop-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes aop-phial { 0% { transform: translateY(0) scale(1); } 30% { transform: translateY(-2px) scale(1.02); } 70% { transform: translateY(0) scale(0.98); } 100% { transform: translateY(1px) scale(1); } }
@keyframes aop-paper { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-12deg) translateX(-2px); } }
@keyframes aop-lamp { 0% { opacity: 0.6; transform: scale(1) translate(0,0); } 50% { opacity: 1; transform: scale(1.1) translate(5px, -3px); } 100% { opacity: 0.5; transform: scale(0.9) translate(-3px, 2px); } }
@keyframes aop-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes aop-arm { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(3px); } 100% { transform: rotate(18deg) translateX(-2px); } }

/* the-assassin-is-an-acrobat */
.scn-the-assassin-is-an-acrobat {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-the-assassin-is-an-acrobat .stage-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%);
  animation: tia-sky 10s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .stage-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 0 0/ 30% 30% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-the-assassin-is-an-acrobat .trapeze {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 4px;
  background: linear-gradient(90deg, transparent, #706050 20%, #706050 80%, transparent);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: tia-trapeze 4s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .acrobat-body {
  position: absolute; top: 15%; left: 48%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  animation: tia-acrobat 3s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .cape {
  position: absolute; top: 12%; left: 44%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 20% 20%/ 60% 60% 30% 30%;
  transform-origin: top center;
  animation: tia-cape 2s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .spotlight {
  position: absolute; top: 0; left: 40%; right: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,200,100,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: tia-spotlight 5s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .shadow-figure {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  filter: blur(3px);
  animation: tia-shadow 3s ease-in-out infinite alternate;
}
.scn-the-assassin-is-an-acrobat .rope {
  position: absolute; top: 5%; left: 50%; width: 2px; height: 20%;
  background: linear-gradient(180deg, #605040 0%, transparent);
  transform: translateX(-50%);
  animation: tia-rope 6s ease-in-out infinite alternate;
}
@keyframes tia-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes tia-trapeze { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes tia-acrobat { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(5deg); } 70% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes tia-cape { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes tia-spotlight { 0% { opacity: 0.8; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(0.95); } }
@keyframes tia-shadow { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.05); } 100% { transform: translate(-2px, 1px) scale(0.95); } }
@keyframes tia-rope { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }

/* arsenic-analysis */
.scn-arsenic-analysis {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8dcc8 30%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 40%, #d8c8a8 0%, transparent 70%);
}
.scn-arsenic-analysis .lab-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d8c8a8 100%);
  animation: aa-wall 20s ease-in-out infinite alternate;
}
.scn-arsenic-analysis .workbench {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #907050 100%);
  border-radius: 4% 4% 0 0/ 10% 10% 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.15);
  transform: perspective(500px) rotateX(8deg);
}
.scn-arsenic-analysis .phial-arsenic {
  position: absolute; bottom: 16%; left: 48%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 30% 30% 20% 20%/ 40% 40% 30% 30%;
  box-shadow: 0 0 6px 2px rgba(160,112,48,0.3);
  animation: aa-phial 6s ease-in-out infinite;
}
.scn-arsenic-analysis .flame {
  position: absolute; bottom: 12%; left: 42%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #ffa040 50%, #803000 100%);
  border-radius: 50% 50% 20% 20%/ 60% 60% 30% 30%;
  animation: aa-flame 2s ease-in-out infinite alternate;
}
.scn-arsenic-analysis .tool {
  position: absolute; bottom: 10%; left: 35%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #806060 0%, #403030 100%);
  border-radius: 20% 20% 10% 10%/ 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: aa-tool 8s ease-in-out infinite alternate;
}
.scn-arsenic-analysis .hand-glove {
  position: absolute; bottom: 12%; left: 54%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c0a080 0%, #907050 70%);
  border-radius: 40% 40% 30% 30%/ 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: aa-hand 4s ease-in-out infinite alternate;
}
.scn-arsenic-analysis .bright-spot {
  position: absolute; bottom: 30%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.1) 50%, transparent 100%);
  filter: blur(15px);
  animation: aa-spot 7s ease-in-out infinite alternate;
}
.scn-arsenic-analysis .shadow-stripe {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  animation: aa-stripe 9s ease-in-out infinite alternate;
}
@keyframes aa-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes aa-phial { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aa-flame { 0% { transform: scaleY(1) translateX(0); opacity: 0.9; } 50% { transform: scaleY(1.2) translateX(2px); opacity: 1; } 100% { transform: scaleY(0.8) translateX(-1px); opacity: 0.8; } }
@keyframes aa-tool { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(1px); } }
@keyframes aa-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(12deg) translateX(3px); } 100% { transform: rotate(8deg) translateX(-2px); } }
@keyframes aa-spot { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes aa-stripe { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }

/* officers-live-together (warm, sunlit, interior) */
.scn-officers-live-together {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a88a 100%),
              radial-gradient(ellipse at 60% 20%, #fff4dc 0%, transparent 70%);
}
.scn-officers-live-together .wall { position:absolute; inset:0; background: linear-gradient(90deg, #d9cdb5 0%, #e4d6be 100%); }
.scn-officers-live-together .sunlight { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(135deg, rgba(255,235,200,0.6) 0%, transparent 100%); animation: olta-sun 12s ease-in-out infinite alternate; }
.scn-officers-live-together .window { position:absolute; top:15%; left:35%; width:30%; height:40%; border:6px solid #71614a; background: linear-gradient(135deg, #b8d0e0 0%, #8ab0c8 100%); border-radius:4px; box-shadow: inset 0 0 20px #a0c0d0; }
.scn-officers-live-together .table { position:absolute; bottom:22%; left:10%; width:80%; height:28%; background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-officers-live-together .chair-left { position:absolute; bottom:12%; left:20%; width:18%; height:35%; background: linear-gradient(180deg, #624e3a 0%, #3e2e1e 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,0.2); animation: olta-chair 8s ease-in-out infinite; }
.scn-officers-live-together .chair-right { position:absolute; bottom:12%; right:20%; width:18%; height:35%; background: linear-gradient(180deg, #624e3a 0%, #3e2e1e 100%); border-radius: 20% 20% 10% 10%; box-shadow: -2px 0 6px rgba(0,0,0,0.2); animation: olta-chair 8s ease-in-out infinite reverse; }
.scn-officers-live-together .figure-left { position:absolute; bottom:25%; left:22%; width:14%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: olta-figure-l 6s ease-in-out infinite; }
.scn-officers-live-together .figure-right { position:absolute; bottom:25%; right:22%; width:14%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: olta-figure-r 6s ease-in-out infinite; }
.scn-officers-live-together .camp-bed { position:absolute; bottom:5%; left:5%; width:35%; height:18%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 3px 6px rgba(0,0,0,0.3); animation: olta-bed 20s ease-in-out infinite; }
@keyframes olta-sun { 0% { opacity:0.4; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.05); } 100% { opacity:0.5; transform:scale(0.98); } }
@keyframes olta-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes olta-figure-l { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(1deg); } }
@keyframes olta-figure-r { 0% { transform: rotate(1deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes olta-bed { 0% { opacity:0.9; } 50% { opacity:0.95; } 100% { opacity:0.85; } }

/* promenade-plan-announced (warm, sunlit, hallway interior) */
.scn-promenade-plan-announced {
  background: linear-gradient(180deg, #d6c9b4 0%, #c2b39e 40%, #a6937e 100%),
              radial-gradient(ellipse at 80% 30%, #fceac8 0%, transparent 70%);
}
.scn-promenade-plan-announced .hallway { position:absolute; inset:0; background: linear-gradient(90deg, #b2a28c 0%, #c8b6a0 30%, #b8a690 70%, #a0907a 100%); }
.scn-promenade-plan-announced .door { position:absolute; bottom:10%; left:30%; width:25%; height:70%; background: linear-gradient(180deg, #6b5b4b 0%, #4b3b2b 100%); border-radius:4px; border:4px solid #5a4a3a; box-shadow: -6px 0 12px rgba(0,0,0,0.2); }
.scn-promenade-plan-announced .keyhole { position:absolute; bottom:45%; left:40%; width:6px; height:6px; background: #2a1a0a; border-radius:50%; box-shadow: 0 0 8px #ffd080; animation: ppa-key-glow 3s ease-in-out infinite alternate; }
.scn-promenade-plan-announced .figure-daughter { position:absolute; bottom:8%; right:15%; width:20%; height:55%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppa-run 4s ease-in-out infinite; }
.scn-promenade-plan-announced .arm-outstretched { position:absolute; bottom:30%; right:32%; width:15%; height:8%; background: linear-gradient(90deg, #4a2a12 0%, #7a5a3a 100%); border-radius: 0 50% 50% 0; transform-origin: left center; animation: ppa-arm 2s ease-in-out infinite alternate; }
.scn-promenade-plan-announced .papers { position:absolute; bottom:15%; left:10%; width:20%; height:12%; background: linear-gradient(135deg, #f5edd0 0%, #e8dbb0 100%); border-radius:2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: ppa-papers 6s ease-in-out infinite; }
.scn-promenade-plan-announced .sunbeam { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(135deg, rgba(255,245,200,0.5) 0%, transparent 60%); animation: ppa-beam 10s ease-in-out infinite alternate; }
@keyframes ppa-key-glow { 0% { box-shadow: 0 0 4px #ffd080; } 50% { box-shadow: 0 0 16px #ffd080, 0 0 32px #e8b060; } 100% { box-shadow: 0 0 6px #ffd080; } }
@keyframes ppa-run { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(20px) rotate(-3deg); } 75% { transform: translateX(10px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ppa-arm { 0% { transform: rotate(-10deg); } 100% { transform: rotate(30deg); } }
@keyframes ppa-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ppa-beam { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* plan-to-save-general (tense, sunlit, interior close-up) */
.scn-plan-to-save-general {
  background: linear-gradient(180deg, #4a4030 0%, #2e281c 50%, #1a1610 100%),
              radial-gradient(ellipse at 50% 40%, #c8a050 0%, transparent 80%);
}
.scn-plan-to-save-general .bg-desk { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%); border-radius: 20% 20% 0 0; }
.scn-plan-to-save-general .shadow-left { position:absolute; top:0; left:0; width:50%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: psg-shadow 5s ease-in-out infinite alternate; }
.scn-plan-to-save-general .shadow-right { position:absolute; top:0; right:0; width:50%; height:100%; background: linear-gradient(225deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: psg-shadow 6s ease-in-out infinite alternate-reverse; }
.scn-plan-to-save-general .figure-rouletabille { position:absolute; bottom:18%; left:10%; width:20%; height:60%; background: linear-gradient(180deg, #2a2020 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psg-figure-l 3s ease-in-out infinite; }
.scn-plan-to-save-general .figure-madame { position:absolute; bottom:18%; right:10%; width:22%; height:58%; background: linear-gradient(180deg, #3a3028 0%, #1e1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psg-figure-r 3.5s ease-in-out infinite; }
.scn-plan-to-save-general .hand-gesture { position:absolute; bottom:40%; left:28%; width:12%; height:10%; background: linear-gradient(90deg, #2a2018 0%, #4a3828 100%); border-radius: 0 40% 40% 0; transform-origin: left center; animation: psg-hand 1.5s ease-in-out infinite; }
.scn-plan-to-save-general .clock { position:absolute; top:8%; right:8%; width:12%; height:12%; background: radial-gradient(circle, #d0c0a0 0%, #a09070 60%, #807050 100%); border-radius:50%; border:3px solid #605030; animation: psg-clock 2s ease-in-out infinite; }
.scn-plan-to-save-general .urgency-ray { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 30%, #f0a040 0%, transparent 70%); mix-blend-mode: overlay; opacity:0.3; animation: psg-ray 4s ease-in-out infinite alternate; }
@keyframes psg-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes psg-figure-l { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes psg-figure-r { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes psg-hand { 0% { transform: rotate(-20deg); } 50% { transform: rotate(40deg) scaleX(1.2); } 100% { transform: rotate(-15deg); } }
@keyframes psg-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes psg-ray { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(0.98); } }

/* trusting-rouletabille-again (tense, sunlit, close-up with hope) */
.scn-trusting-rouletabille-again {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 50%, #1e1410 100%),
              radial-gradient(ellipse at 50% 40%, #d0a060 0%, transparent 80%);
}
.scn-trusting-rouletabille-again .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2e 0%, #2a1e14 100%); }
.scn-trusting-rouletabille-again .light-spot { position:absolute; top:20%; left:30%; width:40%; height:60%; background: radial-gradient(circle, #e8c080 0%, transparent 70%); animation: tra-light 6s ease-in-out infinite alternate; }
.scn-trusting-rouletabille-again .figure-trustor { position:absolute; bottom:15%; left:12%; width:22%; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tra-figure-l 4s ease-in-out infinite; }
.scn-trusting-rouletabille-again .figure-trustee { position:absolute; bottom:15%; right:12%; width:22%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tra-figure-r 4s ease-in-out infinite reverse; }
.scn-trusting-rouletabille-again .handshake-left { position:absolute; bottom:35%; left:30%; width:15%; height:8%; background: linear-gradient(90deg, #3a2818 0%, #6a5030 100%); border-radius: 0 40% 40% 0; transform-origin: left center; animation: tra-hand-l 3s ease-in-out infinite; }
.scn-trusting-rouletabille-again .handshake-right { position:absolute; bottom:35%; right:30%; width:15%; height:8%; background: linear-gradient(90deg, #6a5030 0%, #3a2818 100%); border-radius: 40% 0 0 40%; transform-origin: right center; animation: tra-hand-r 3s ease-in-out infinite; }
.scn-trusting-rouletabille-again .shadow-cast { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 80%); animation: tra-shadow 8s ease-in-out infinite; }
.scn-trusting-rouletabille-again .hope-glint { position:absolute; top:30%; left:42%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, transparent 70%); animation: tra-glint 2s ease-in-out infinite alternate; }
@keyframes tra-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes tra-figure-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tra-figure-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tra-hand-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes tra-hand-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes tra-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes tra-glint { 0% { opacity:0.2; transform: scale(0.5); } 100% { opacity:0.9; transform: scale(1.2); } }

.scn-gounsovski-about-priemkof {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 60%, #b89a7a 100%),
              radial-gradient(ellipse at 40% 30%, #ffebb0 0%, transparent 60%);
  animation: s1-bg 10s ease-in-out infinite alternate;
}
.scn-gounsovski-about-priemkof .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b2 0%, #c4a882 100%);
  opacity: 0.6;
}
.scn-gounsovski-about-priemkof .lamp-glow {
  position: absolute; top: 15%; left: 35%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffdd99 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,220,100,0.5);
  animation: s1-lamp 3s ease-in-out infinite alternate;
}
.scn-gounsovski-about-priemkof .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b533a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -8px 15px rgba(0,0,0,0.3);
}
.scn-gounsovski-about-priemkof .chessboard {
  position: absolute; bottom: 32%; left: 38%; width: 24%; height: 18%;
  background: linear-gradient(45deg, #2b2b2b 25%, #f0d9b5 25%, #f0d9b5 50%, #2b2b2b 50%, #2b2b2b 75%, #f0d9b5 75%, #f0d9b5 100%);
  background-size: 20% 20%;
  transform: perspective(400px) rotateX(60deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-gounsovski-about-priemkof .pawn-1 {
  position: absolute; bottom: 35%; left: 42%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #e8c391 0%, #b8936a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-pawn 4s ease-in-out infinite alternate;
}
.scn-gounsovski-about-priemkof .pawn-2 {
  position: absolute; bottom: 36%; left: 50%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 30%, #333333 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-pawn 4s ease-in-out infinite alternate-reverse;
}
.scn-gounsovski-about-priemkof .hand {
  position: absolute; bottom: 34%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #dbb894 0%, #b08060 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-10deg);
  animation: s1-hand 5s ease-in-out infinite;
}
.scn-gounsovski-about-priemkof .shadow-figure {
  position: absolute; bottom: 15%; right: 5%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #3b2a1a 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.7;
  filter: blur(2px);
  animation: s1-figure 8s ease-in-out infinite alternate;
}

@keyframes s1-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s1-lamp { 0% { opacity: 0.7; transform: scale(0.95); } 100% { opacity: 1; transform: scale(1.05); } }
@keyframes s1-pawn { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes s1-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes s1-figure { 0% { transform: scale(1) translateX(0); opacity: 0.6; } 50% { transform: scale(1.02) translateX(-2px); opacity: 0.8; } 100% { transform: scale(1) translateX(0); opacity: 0.7; } }

.scn-gounsovski-warns-about-priemkof {
  background: linear-gradient(135deg, #e3d1b0 0%, #c9b08a 50%, #a68860 100%),
              radial-gradient(ellipse at 60% 20%, #ffe090 0%, transparent 60%);
}
.scn-gounsovski-warns-about-priemkof .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #dac3a0 0%, #b3946a 100%);
  opacity: 0.5;
}
.scn-gounsovski-warns-about-priemkof .window {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c0d4e8 0%, #8aaac8 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  animation: s2-window 6s ease-in-out infinite alternate;
}
.scn-gounsovski-warns-about-priemkof .desk {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a3020 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-gounsovski-warns-about-priemkof .cigar-box {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #8b6914 0%, #5c4510 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: s2-box 4s ease-in-out infinite;
}
.scn-gounsovski-warns-about-priemkof .hand {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #c9a582 0%, #a07858 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(15deg);
  animation: s2-hand 3s ease-in-out infinite;
}
.scn-gounsovski-warns-about-priemkof .silhouette {
  position: absolute; bottom: 10%; right: 10%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #2f2218 0%, #150e08 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 40% 40%;
  filter: blur(1px);
  animation: s2-silhouette 10s ease-in-out infinite alternate;
}
.scn-gounsovski-warns-about-priemkof .vial {
  position: absolute; bottom: 33%; left: 30%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #6ab060 0%, #3a7a30 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(60,180,60,0.4);
  animation: s2-vial 2s ease-in-out infinite alternate;
}

@keyframes s2-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes s2-box { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.03) rotate(2deg); } 50% { transform: scale(1) rotate(-1deg); } 75% { transform: scale(0.98) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes s2-hand { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(4px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes s2-silhouette { 0% { transform: scale(1) translateX(0); opacity: 0.6; } 50% { transform: scale(1.02) translateX(-3px); opacity: 0.8; } 100% { transform: scale(1) translateX(0); opacity: 0.65; } }
@keyframes s2-vial { 0% { opacity: 0.5; box-shadow: 0 0 5px 1px rgba(60,180,60,0.3); } 100% { opacity: 1; box-shadow: 0 0 15px 4px rgba(60,180,60,0.7); } }

.scn-between-us {
  background: linear-gradient(135deg, #f0e0c0 0%, #d4b890 50%, #b89470 100%),
              radial-gradient(ellipse at 50% 30%, #ffeecc 0%, transparent 60%);
}
.scn-between-us .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e6cfad 0%, #c4a87f 100%);
  opacity: 0.4;
}
.scn-between-us .spotlight {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 50% 20%, #ffefd0 0%, transparent 80%);
  mix-blend-mode: overlay;
  animation: s3-spot 8s ease-in-out infinite alternate;
}
.scn-between-us .figure-left {
  position: absolute; bottom: 10%; left: 15%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1c1108 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(5deg);
  animation: s3-figleft 5s ease-in-out infinite;
}
.scn-between-us .figure-right {
  position: absolute; bottom: 10%; right: 15%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a05 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: s3-figright 5s ease-in-out infinite;
}
.scn-between-us .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-between-us .candle {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #d4b060 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: s3-candle 3s ease-in-out infinite alternate;
}
.scn-between-us .shadow-1 {
  position: absolute; bottom: 8%; left: 20%; width: 60px; height: 100px;
  background: rgba(0,0,0,0.2);
  filter: blur(4px);
  animation: s3-shadow 6s ease-in-out infinite alternate;
}
.scn-between-us .shadow-2 {
  position: absolute; bottom: 8%; right: 20%; width: 60px; height: 100px;
  background: rgba(0,0,0,0.2);
  filter: blur(4px);
  animation: s3-shadow 6s ease-in-out infinite alternate-reverse;
}

@keyframes s3-spot { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes s3-figleft { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(-2px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes s3-figright { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(2px); } 50% { transform: rotate(-5deg) translateX(0); } 75% { transform: rotate(-7deg) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes s3-candle { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes s3-shadow { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.05); opacity: 0.3; } 100% { transform: scale(1); opacity: 0.2; } }

.scn-servants-stories {
  background: linear-gradient(180deg, #d8c098 0%, #b89870 40%, #9a7c58 100%),
              radial-gradient(ellipse at 50% 80%, #ffd6a0 0%, transparent 60%);
}
.scn-servants-stories .curtains {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #6b3a2a 0%, #8b5a4a 20%, transparent 50%, #8b5a4a 80%, #6b3a2a 100%);
  opacity: 0.5;
}
.scn-servants-stories .chandelier {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #d4b060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.3);
  animation: s4-chand 10s ease-in-out infinite alternate;
}
.scn-servants-stories .servant-left {
  position: absolute; bottom: 10%; left: 12%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(10deg);
}
.scn-servants-stories .servant-right {
  position: absolute; bottom: 10%; right: 12%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1008 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(-10deg);
}
.scn-servants-stories .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-servants-stories .wine {
  position: absolute; bottom: 28%; left: 42%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #b84848 0%, #8b2828 100%);
  border-radius: 20% 20% 30% 30%;
  animation: s4-wine 6s ease-in-out infinite;
}
.scn-servants-stories .candelabra {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c9a860 0%, #a08040 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(200,170,80,0.4);
  animation: s4-candel 4s ease-in-out infinite alternate;
}

@keyframes s4-chand { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes s4-wine { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes s4-candel { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.06) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); } }

/* Scene 1: bargain-accepted */
.scn-bargain-accepted { background: linear-gradient(135deg, #f5ecd0 0%, #d9c8a0 50%, #b89060 100%), radial-gradient(ellipse at 30% 70%, rgba(255,235,180,.5) 0%, transparent 60%); }
.scn-bargain-accepted .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a4030 0%, #8a6a4a 100%); border-radius: 20% 15% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-bargain-accepted .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #f5ecd0 0%, #e8d6b0 80%, #d4bb90 100%); }
.scn-bargain-accepted .window { position:absolute; top:10%; left:20%; width:30%; height:45%; background: linear-gradient(180deg, #b0d0e0 0%, #d0e0f0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 0 30px rgba(200,180,140,.4); }
.scn-bargain-accepted .light-beam { position:absolute; top:10%; left:20%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,235,180,.25) 0%, transparent 100%); transform-origin: top left; animation: ba-beam 6s ease-in-out infinite alternate; filter: blur(8px); }
.scn-bargain-accepted .table { position:absolute; bottom:22%; left:35%; width:40%; height:10%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-bargain-accepted .figure-left { position:absolute; bottom:18%; left:25%; width:10%; height:50%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-pace 4s ease-in-out infinite; }
.scn-bargain-accepted .figure-right { position:absolute; bottom:16%; right:25%; width:10%; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-seat 5s ease-in-out infinite; }
.scn-bargain-accepted .lamp { position:absolute; top:12%; left:50%; width:18%; height:8%; background: radial-gradient(ellipse, #ffe0a0 0%, #b08050 100%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,220,150,.5); animation: ba-glow 3s ease-in-out infinite alternate; }
@keyframes ba-beam { 0% { transform: scaleX(1) scaleY(1); opacity:.6 } 50% { transform: scaleX(1.05) scaleY(1.1); opacity:1 } 100% { transform: scaleX(0.95) scaleY(0.9); opacity:.5 } }
@keyframes ba-pace { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(0) } 75% { transform: translateX(8px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ba-seat { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes ba-glow { 0% { box-shadow: 0 0 30px 10px rgba(255,220,150,.4); opacity:.8 } 50% { box-shadow: 0 0 60px 25px rgba(255,220,150,.7); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(255,220,150,.5); opacity:.85 } }

/* Scene 2: alone-against-natacha */
.scn-alone-against-natacha { background: linear-gradient(135deg, #e8dcc0 0%, #d0bfa0 50%, #a08860 100%), radial-gradient(ellipse at 60% 50%, rgba(255,245,200,.6) 0%, transparent 70%); }
.scn-alone-against-natacha .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-alone-against-natacha .wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #f0e6d0 0%, #d4c8a8 80%, #b8a888 100%); }
.scn-alone-against-natacha .doorway { position:absolute; bottom:15%; left:10%; width:25%; height:75%; background: #3a2a1a; border-radius: 0 3px 3px 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 4px 0 10px rgba(0,0,0,.2); }
.scn-alone-against-natacha .lamp { position:absolute; top:15%; left:70%; width:15%; height:10%; background: radial-gradient(ellipse, #ffe8b0 0%, #c08850 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,210,150,.5); animation: an-glow 3s ease-in-out infinite alternate; }
.scn-alone-against-natacha .figure-a { position:absolute; bottom:18%; left:35%; width:12%; height:55%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: an-turn 5s ease-in-out infinite; }
.scn-alone-against-natacha .figure-b { position:absolute; bottom:18%; right:30%; width:12%; height:55%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: an-lean 4s ease-in-out infinite; }
.scn-alone-against-natacha .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 100%); border-radius: 50%; filter: blur(6px); animation: an-shad 6s ease-in-out infinite alternate; }
@keyframes an-glow { 0% { box-shadow: 0 0 30px 10px rgba(255,210,150,.4); opacity:.85 } 50% { box-shadow: 0 0 55px 20px rgba(255,210,150,.7); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(255,210,150,.5); opacity:.9 } }
@keyframes an-turn { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(3deg) translateX(4px) } 50% { transform: rotate(0) translateX(0) } 75% { transform: rotate(-3deg) translateX(-4px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes an-lean { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes an-shad { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.7 } 100% { transform: scaleX(0.9); opacity:.4 } }

/* Scene 3: natacha-has-fled */
.scn-natacha-has-fled { background: linear-gradient(180deg, #f5ecd0 0%, #dfd0b8 50%, #b8a888 100%), radial-gradient(ellipse at 20% 80%, rgba(255,240,200,.4) 0%, transparent 70%); }
.scn-natacha-has-fled .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #4a3a2a 0%, #7a6a4a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); }
.scn-natacha-has-fled .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #f0e6d0 0%, #d4c8a8 80%, #c8b898 100%); }
.scn-natacha-has-fled .window { position:absolute; top:10%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #b8d0e0 0%, #d0e0f0 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 30px rgba(255,255,255,.3), 0 0 40px rgba(200,180,140,.3); }
.scn-natacha-has-fled .chair { position:absolute; bottom:28%; left:35%; width:15%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: nf-rock 8s ease-in-out infinite; }
.scn-natacha-has-fled .table { position:absolute; bottom:30%; left:50%; width:20%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-natacha-has-fled .plate { position:absolute; bottom:34%; left:55%; width:6%; height:3%; background: radial-gradient(ellipse, #e0d0b0 0%, #c0a080 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: nf-shine 4s ease-in-out infinite alternate; }
.scn-natacha-has-fled .vine { position:absolute; top:5%; left:10%; width:25%; height:50%; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 0 60% 60% 0 / 0 100% 100% 0; filter: blur(2px); transform-origin: top left; animation: nf-sway 12s ease-in-out infinite alternate; }
@keyframes nf-rock { 0%,100% { transform: rotate(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(0) translateY(0) } 75% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes nf-shine { 0% { opacity:.6; box-shadow: 0 0 10px rgba(255,255,200,.2) } 50% { opacity:1; box-shadow: 0 0 20px rgba(255,255,200,.5) } 100% { opacity:.7; box-shadow: 0 0 10px rgba(255,255,200,.2) } }
@keyframes nf-sway { 0% { transform: rotate(-2deg) scaleY(1) } 30% { transform: rotate(4deg) scaleY(1.05) } 60% { transform: rotate(-1deg) scaleY(0.95) } 100% { transform: rotate(2deg) scaleY(1) } }

/* Scene 4: search-for-natacha */
.scn-search-for-natacha { background: linear-gradient(135deg, #f0e6d0 0%, #d4c8a8 50%, #b8a888 100%), radial-gradient(ellipse at 80% 20%, rgba(255,245,210,.5) 0%, transparent 60%); }
.scn-search-for-natacha .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 100%); border-radius: 15% 15% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-search-for-natacha .wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #f5ecd0 0%, #e0d4b8 80%, #c8b898 100%); }
.scn-search-for-natacha .sofa { position:absolute; bottom:20%; left:15%; width:35%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-search-for-natacha .lamp { position:absolute; top:12%; left:40%; width:12%; height:8%; background: radial-gradient(ellipse, #ffe0a0 0%, #b08050 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,210,150,.5); animation: sn-glow 3s ease-in-out infinite alternate; }
.scn-search-for-natacha .figure-matrena { position:absolute; bottom:18%; left:30%; width:10%; height:50%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-speak 4s ease-in-out infinite; }
.scn-search-for-natacha .figure-rouletabille { position:absolute; bottom:18%; right:25%; width:10%; height:52%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-listen 5s ease-in-out infinite; }
.scn-search-for-natacha .carpet { position:absolute; bottom:12%; left:10%; width:80%; height:8%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 30%, #4a3a2a 70%, #3a2a1a 100%); border-radius: 50%; filter: blur(6px); opacity:.6; animation: sn-fade 7s ease-in-out infinite alternate; }
.scn-search-for-natacha .door { position:absolute; bottom:15%; left:5%; width:12%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 4px 4px 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 3px 0 8px rgba(0,0,0,.2); }
@keyframes sn-glow { 0% { box-shadow: 0 0 30px 10px rgba(255,210,150,.4); opacity:.85 } 50% { box-shadow: 0 0 55px 20px rgba(255,210,150,.7); opacity:1 } 100% { box-shadow: 0 0 40px 15px rgba(255,210,150,.5); opacity:.9 } }
@keyframes sn-speak { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes sn-listen { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sn-fade { 0% { opacity:.4; filter: blur(8px) } 50% { opacity:.7; filter: blur(4px) } 100% { opacity:.5; filter: blur(7px) } }

.scn-natacha-hat-pins-demanded { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 40%, #b89a7a 100%), radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 70%); }
.scn-natacha-hat-pins-demanded .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(245,230,208,.3) 0%, transparent 50%, rgba(184,154,122,.2) 100%); animation: nhp-breath 8s ease-in-out infinite alternate; }
.scn-natacha-hat-pins-demanded .wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #d4b896 0%, #c4a886 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.2); animation: nhp-shadow 6s ease-in-out infinite alternate; }
.scn-natacha-hat-pins-demanded .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-natacha-hat-pins-demanded .table { position:absolute; bottom:25%; left:35%; width:30%; height:12%; background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform: perspective(200px) rotateX(5deg); animation: nhp-table 12s ease-in-out infinite; }
.scn-natacha-hat-pins-demanded .pins { position:absolute; bottom:32%; left:42%; width:16%; height:4%; background: repeating-linear-gradient(90deg, #c8a040 0px, #c8a040 4px, transparent 4px, transparent 8px); border-radius: 50% / 20%; box-shadow: 0 0 8px rgba(200,160,64,.6); animation: nhp-pins 3s ease-in-out infinite; }
.scn-natacha-hat-pins-demanded .figure { position:absolute; bottom:20%; left:55%; width:16%; height:45%; background: linear-gradient(180deg, #503a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: nhp-figure 5s ease-in-out infinite; }
.scn-natacha-hat-pins-demanded .shadow { position:absolute; bottom:0; left:50%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform: translateX(-15%); animation: nhp-shadow-floor 5s ease-in-out infinite; }
@keyframes nhp-breath { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nhp-shadow { 0% { opacity:.9 } 50% { opacity:.5 } 100% { opacity:.8 } }
@keyframes nhp-table { 0%,100% { transform: perspective(200px) rotateX(5deg) translateY(0) } 50% { transform: perspective(200px) rotateX(5deg) translateY(-2px) } }
@keyframes nhp-pins { 0% { transform: scaleY(1) rotate(2deg); opacity:.9 } 50% { transform: scaleY(.95) rotate(-2deg); opacity:1 } 100% { transform: scaleY(1) rotate(2deg); opacity:.9 } }
@keyframes nhp-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3%) rotate(.5deg) } 50% { transform: translateX(5%) rotate(-.5deg) } 75% { transform: translateX(2%) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes nhp-shadow-floor { 0%,100% { transform: translateX(-15%) scale(1) } 50% { transform: translateX(-10%) scale(1.05) } }

.scn-examining-the-pins { background: linear-gradient(180deg, #f0dcc0 0%, #d4b896 50%, #b89a7a 100%), radial-gradient(ellipse at 50% 100%, #e8d4b0 0%, transparent 70%); }
.scn-examining-the-pins .bg { position:absolute; inset:0; background: radial-gradient(circle at 50% 60%, #fff8e7 0%, transparent 60%); animation: exp-breath 9s ease-in-out infinite alternate; }
.scn-examining-the-pins .table-close { position:absolute; bottom:0; left:10%; right:10%; height:55%; background: linear-gradient(180deg, #806040 0%, #5a4020 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.5); }
.scn-examining-the-pins .pins-group { position:absolute; bottom:40%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, #d4a030 0%, #b08020 60%, #8a6010 100%); border-radius: 50%; box-shadow: 0 0 20px rgba(200,160,64,.5), 0 0 40px rgba(200,160,64,.2); animation: exp-pins 4s ease-in-out infinite; }
.scn-examining-the-pins .hand { position:absolute; bottom:35%; right:30%; width:18%; height:30%; background: linear-gradient(180deg, #c8a88a 0%, #a08060 100%); border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%; transform: rotate(15deg); transform-origin: 80% 100%; animation: exp-hand 6s ease-in-out infinite; }
.scn-examining-the-pins .hand-shadow { position:absolute; bottom:30%; right:25%; width:15%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); transform: rotate(20deg); animation: exp-hand-shadow 6s ease-in-out infinite; }
.scn-examining-the-pins .glow { position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(255,230,180,.6) 0%, transparent 70%); pointer-events: none; animation: exp-glow 5s ease-in-out infinite alternate; }
@keyframes exp-breath { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes exp-pins { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px rgba(200,160,64,.5); } 50% { transform: scale(1.05) rotate(3deg); box-shadow: 0 0 30px rgba(200,160,64,.7); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px rgba(200,160,64,.5); } }
@keyframes exp-hand { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(18deg) translateX(2%) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes exp-hand-shadow { 0% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(22deg) scale(1.1) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes exp-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-natacha-hat-pin-in-toque { background: linear-gradient(180deg, #f2e2cc 0%, #d4b896 40%, #b89a7a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }
.scn-natacha-hat-pin-in-toque .bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(245,230,208,.2) 0%, transparent 60%, rgba(184,154,122,.15) 100%); animation: npt-breath 10s ease-in-out infinite alternate; }
.scn-natacha-hat-pin-in-toque .stand { position:absolute; bottom:25%; left:50%; width:20%; height:45%; background: linear-gradient(180deg, #a08060 0%, #705030 100%); border-radius: 6% 6% 10% 10% / 20% 20% 40% 40%; transform: translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-natacha-hat-pin-in-toque .toque { position:absolute; bottom:60%; left:50%; width:25%; height:18%; background: linear-gradient(135deg, #c8a88a 0%, #a08060 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 -4px 8px rgba(0,0,0,.3); animation: npt-toque 7s ease-in-out infinite; }
.scn-natacha-hat-pin-in-toque .pin { position:absolute; bottom:72%; left:57%; width:3%; height:15%; background: linear-gradient(180deg, #d4a030 0%, #b07010 100%); border-radius: 30% 30% 10% 10% / 30% 30% 60% 60%; transform: rotate(-20deg); box-shadow: 0 0 6px rgba(200,160,64,.7); animation: npt-pin 4s ease-in-out infinite; }
.scn-natacha-hat-pin-in-toque .silhouette { position:absolute; bottom:15%; left:30%; width:20%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: npt-silhouette 8s ease-in-out infinite; }
.scn-natacha-hat-pin-in-toque .hair { position:absolute; bottom:55%; left:28%; width:22%; height:20%; background: radial-gradient(ellipse at 50% 80%, #1a0a00 0%, transparent 70%); border-radius: 50%; animation: npt-hair 8s ease-in-out infinite; }
.scn-natacha-hat-pin-in-toque .shoulder { position:absolute; bottom:10%; left:28%; width:25%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 40% 40% 30% 30%; transform: perspective(100px) rotateX(10deg); animation: npt-shoulder 8s ease-in-out infinite; }
@keyframes npt-breath { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes npt-toque { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes npt-pin { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.05) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes npt-silhouette { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-3%) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes npt-hair { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes npt-shoulder { 0% { transform: perspective(100px) rotateX(10deg) } 50% { transform: perspective(100px) rotateX(12deg) } 100% { transform: perspective(100px) rotateX(10deg) } }

.scn-plan-for-open-doors { background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 45%, #b89a7a 100%), radial-gradient(ellipse at 50% 100%, #e8d4b0 0%, transparent 70%); }
.scn-plan-for-open-doors .bg { position:absolute; inset:0; background: radial-gradient(circle at 40% 50%, #fff8e7 0%, transparent 70%); animation: pod-breath 11s ease-in-out infinite alternate; }
.scn-plan-for-open-doors .table { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #806040 0%, #5a4020 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.5); }
.scn-plan-for-open-doors .toque { position:absolute; bottom:35%; left:45%; width:22%; height:15%; background: linear-gradient(135deg, #c8a88a 0%, #a08060 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: pod-toque 6s ease-in-out infinite; }
.scn-plan-for-open-doors .pin { position:absolute; bottom:45%; left:55%; width:3%; height:14%; background: linear-gradient(180deg, #d4a030 0%, #b07010 100%); border-radius: 30% 30% 10% 10% / 20% 20% 50% 50%; transform: rotate(-25deg); box-shadow: 0 0 8px rgba(200,160,64,.6); animation: pod-pin 4.5s ease-in-out infinite; }
.scn-plan-for-open-doors .hand-examining { position:absolute; bottom:30%; right:35%; width:16%; height:28%; background: linear-gradient(180deg, #c8a88a 0%, #a08060 100%); border-radius: 60% 40% 30% 70% / 50% 40% 60% 50%; transform: rotate(-10deg); transform-origin: 20% 100%; animation: pod-hand 7s ease-in-out infinite; }
.scn-plan-for-open-doors .glow { position:absolute; top:25%; left:35%; width:30%; height:35%; background: radial-gradient(circle, rgba(255,230,180,.5) 0%, transparent 70%); pointer-events: none; animation: pod-glow 5s ease-in-out infinite alternate; }
.scn-plan-for-open-doors .shadow { position:absolute; bottom:0; left:35%; width:30%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); transform: translateX(10%); animation: pod-shadow 7s ease-in-out infinite; }
@keyframes pod-breath { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pod-toque { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2%) } }
@keyframes pod-pin { 0% { transform: rotate(-25deg) scaleY(1); opacity:.85 } 50% { transform: rotate(-20deg) scaleY(1.08); opacity:1 } 100% { transform: rotate(-25deg) scaleY(1); opacity:.85 } }
@keyframes pod-hand { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2%) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes pod-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes pod-shadow { 0% { transform: translateX(10%) scale(1) } 50% { transform: translateX(12%) scale(1.05) } 100% { transform: translateX(10%) scale(1) } }

/* before-the-revolutionary-tribunal */
.scn-before-the-revolutionary-tribunal { background: linear-gradient(135deg, #f5e6c8 0%, #d4b88c 40%, #b89a6a 100%), radial-gradient(ellipse at 80% 30%, #ffe4a0 0%, transparent 60%); }
.scn-before-the-revolutionary-tribunal .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4b0 0%, #c8a878 100%); }
.scn-before-the-revolutionary-tribunal .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-top: 2px solid #4a2a1a; }
.scn-before-the-revolutionary-tribunal .window { position:absolute; top:12%; left:20%; width:20%; height:40%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border: 4px solid #6a4a2a; border-radius: 4px; }
.scn-before-the-revolutionary-tribunal .note { position:absolute; top:45%; left:55%; width:12%; height:10%; background: #fcf8e8; border: 1px solid #b0a080; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: brt-note 4s ease-in-out infinite; }
.scn-before-the-revolutionary-tribunal .figure { position:absolute; bottom:30%; left:35%; width:12%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brt-figure 6s ease-in-out infinite; }
.scn-before-the-revolutionary-tribunal .shadow { position:absolute; bottom:30%; left:30%; width:20%; height:8%; background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(4px); animation: brt-shadow 6s ease-in-out infinite; }
.scn-before-the-revolutionary-tribunal .clock { position:absolute; top:10%; right:15%; width:12%; height:12%; background: radial-gradient(circle at 50% 50%, #d4c0a0 0%, #b8a080 70%, #8a7050 100%); border-radius: 50%; border: 4px solid #4a3a2a; }
.scn-before-the-revolutionary-tribunal .clock::after { content:''; position:absolute; top:30%; left:48%; width:3%; height:40%; background: #2a1a0a; border-radius: 2px; transform-origin: bottom center; animation: brt-hand 2s linear infinite; }
.scn-before-the-revolutionary-tribunal .light-ray { position:absolute; top:12%; left:20%; width:20%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 100%); pointer-events: none; animation: brt-ray 8s ease-in-out infinite alternate; }
@keyframes brt-note { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes brt-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes brt-shadow { 0% { transform: scaleX(1); opacity:0.8; } 50% { transform: scaleX(0.8); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.8; } }
@keyframes brt-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes brt-ray { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* luncheon-with-marshal */
.scn-luncheon-with-marshal { background: linear-gradient(160deg, #f8ecd4 0%, #e0c8a8 35%, #c8a880 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 50%); }
.scn-luncheon-with-marshal .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #f0dcc0 0%, #d0b898 100%); }
.scn-luncheon-with-marshal .table { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #b89a6a 0%, #9a7a4a 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.scn-luncheon-with-marshal .plate { position:absolute; bottom:22%; left:25%; width:15%; height:15%; background: radial-gradient(circle at 50% 50%, #f8f0e0 0%, #e0d0b0 70%, #c0b090 100%); border-radius: 50%; border: 2px solid #a09080; animation: lwm-plate 3s ease-in-out infinite; }
.scn-luncheon-with-marshal .goblet { position:absolute; bottom:28%; left:45%; width:6%; height:18%; background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%); border-radius: 0 0 4px 4px; clip-path: polygon(20% 0, 80% 0, 80% 40%, 100% 60%, 100% 100%, 0 100%, 0 60%, 20% 40%); animation: lwm-goblet 5s ease-in-out infinite alternate; }
.scn-luncheon-with-marshal .chandelier { position:absolute; top:5%; left:50%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 0%, #f0d090 0%, transparent 60%); border-radius: 50%; filter: blur(4px); animation: lwm-chandelier 4s ease-in-out infinite; }
.scn-luncheon-with-marshal .chandelier::before { content:''; position:absolute; top:0; left:40%; width:20%; height:80%; background: linear-gradient(180deg, #f0c080 0%, transparent 100%); border-radius: 50%; }
.scn-luncheon-with-marshal .waiter { position:absolute; bottom:15%; right:20%; width:10%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lwm-waiter 8s ease-in-out infinite; }
.scn-luncheon-with-marshal .splint { position:absolute; bottom:20%; right:35%; width:2%; height:25%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 2px; transform: rotate(15deg); animation: lwm-splint 2s ease-in-out infinite alternate; }
.scn-luncheon-with-marshal .chair { position:absolute; bottom:15%; left:60%; width:12%; height:20%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 10% 10% 0 0; }
@keyframes lwm-plate { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes lwm-goblet { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes lwm-chandelier { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lwm-waiter { 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 lwm-splint { 0% { transform: rotate(15deg); } 100% { transform: rotate(20deg); } }

/* imperial-displeasure */
.scn-imperial-displeasure { background: linear-gradient(135deg, #ddd0b8 0%, #c0a888 40%, #a08868 100%), radial-gradient(ellipse at 70% 40%, #f8e8d0 0%, transparent 60%); }
.scn-imperial-displeasure .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 20%, #e8d8c0 0%, transparent 70%); }
.scn-imperial-displeasure .desk { position:absolute; bottom:15%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-imperial-displeasure .paper { position:absolute; bottom:22%; left:30%; width:20%; height:12%; background: #fcf8e8; border: 1px solid #b0a080; transform: rotate(-2deg); animation: imp-paper 3s ease-in-out infinite; }
.scn-imperial-displeasure .seal { position:absolute; bottom:24%; left:45%; width:8%; height:8%; background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 60%, #702243 100%); border-radius: 50%; box-shadow: 0 0 6px rgba(200,80,60,0.5); animation: imp-seal 2s ease-in-out infinite alternate; }
.scn-imperial-displeasure .figure-left { position:absolute; bottom:15%; left:20%; width:12%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imp-figure-l 6s ease-in-out infinite; }
.scn-imperial-displeasure .figure-right { position:absolute; bottom:15%; right:20%; width:12%; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: imp-figure-r 6s ease-in-out infinite reverse; }
.scn-imperial-displeasure .window { position:absolute; top:10%; left:10%; width:25%; height:40%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%); border: 4px solid #6a4a2a; border-radius: 4px; }
.scn-imperial-displeasure .shadow-stripe { position:absolute; top:0; left:40%; width:8%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.2) 50%, transparent 100%); animation: imp-stripe 5s ease-in-out infinite alternate; }
@keyframes imp-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes imp-seal { 0% { transform: scale(1); box-shadow: 0 0 6px rgba(200,80,60,0.3); } 100% { transform: scale(1.1); box-shadow: 0 0 12px rgba(200,80,60,0.6); } }
@keyframes imp-figure-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imp-figure-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-1deg); } 50% { transform: translateX(-10px) rotate(0deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imp-stripe { 0% { opacity:0; } 50% { opacity:0.5; } 100% { opacity:0; } }

/* the-eider-downs */
.scn-the-eider-downs { background: linear-gradient(160deg, #f8ecd4 0%, #e0c8a8 35%, #c8a880 100%), radial-gradient(ellipse at 30% 50%, #fff0d0 0%, transparent 60%); }
.scn-the-eider-downs .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f0dcc0 0%, #d0b898 100%); }
.scn-the-eider-downs .tablecloth { position:absolute; bottom:10%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #f8f0e0 0%, #e8d8c0 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.scn-the-eider-downs .plate { position:absolute; bottom:20%; left:25%; width:14%; height:14%; background: radial-gradient(circle at 50% 50%, #f8f0e0 0%, #e0d0b0 70%, #c0b090 100%); border-radius: 50%; border: 2px solid #a09080; animation: eid-plate 3s ease-in-out infinite; }
.scn-the-eider-downs .goblet { position:absolute; bottom:28%; left:45%; width:5%; height:16%; background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%); border-radius: 0 0 4px 4px; clip-path: polygon(20% 0, 80% 0, 80% 40%, 100% 60%, 100% 100%, 0 100%, 0 60%, 20% 40%); animation: eid-goblet 4s ease-in-out infinite alternate; }
.scn-the-eider-downs .napkin { position:absolute; bottom:24%; left:55%; width:10%; height:6%; background: #f8f4ec; border: 1px solid #c0b8a8; transform: rotate(10deg); border-radius: 2px; animation: eid-napkin 6s ease-in-out infinite; }
.scn-the-eider-downs .letter { position:absolute; bottom:22%; left:35%; width:12%; height:8%; background: #fcf8e8; border: 1px solid #b0a080; transform: rotate(-3deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.2); animation: eid-letter 5s ease-in-out infinite; }
.scn-the-eider-downs .hand { position:absolute; bottom:18%; left:40%; width:4%; height:15%; background: linear-gradient(180deg, #c8a888 0%, #a88a6a 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: eid-hand 2s ease-in-out infinite; }
.scn-the-eider-downs .candle { position:absolute; bottom:30%; left:70%; width:3%; height:12%; background: linear-gradient(180deg, #f0d0a0 0%, #b09070 100%); border-radius: 2px; }
.scn-the-eider-downs .candle::after { content:''; position:absolute; top:-10%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #ffd680 0%, #ffb040 60%, transparent 100%); border-radius: 50%; animation: eid-flame 0.8s ease-in-out infinite alternate; }
.scn-the-eider-downs .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(6px); animation: eid-shadow 5s ease-in-out infinite; }
@keyframes eid-plate { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes eid-goblet { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes eid-napkin { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes eid-letter { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes eid-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes eid-flame { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.3); opacity:1; } }
@keyframes eid-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(0.9); } 100% { opacity:0.5; transform: scaleX(1); } }

/* Scene: natacha-stopped-duel */
.scn-natacha-stopped-duel {
  background: 
    linear-gradient(180deg, #e8c088 0%, #c89a60 40%, #a07040 100%),
    radial-gradient(ellipse at 80% 20%, #f0d0a0 0%, transparent 70%);
}
.scn-natacha-stopped-duel .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #c8905e 0%, #b07848 50%, #8a6034 100%);
  animation: nsd-room 12s ease-in-out infinite alternate;
}
.scn-natacha-stopped-duel .window {
  position: absolute; top: 12%; left: 10%; width: 35%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #dec090 60%, transparent 100%);
  border-radius: 4%; box-shadow: inset 0 0 30px #ffd890;
  animation: nsd-window 8s ease-in-out infinite;
}
.scn-natacha-stopped-duel .table {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8a5a34 0%, #6a4020 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateX(12deg);
}
.scn-natacha-stopped-duel .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd890 0%, #d09050 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,200,100,0.6), 0 0 80px 24px rgba(255,200,100,0.3);
  animation: nsd-lamp 3s ease-in-out infinite alternate;
}
.scn-natacha-stopped-duel .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0c0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsd-fig-left 5s ease-in-out infinite;
}
.scn-natacha-stopped-duel .figure-right {
  position: absolute; bottom: 20%; right: 18%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #1e1c18 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsd-fig-right 5s ease-in-out infinite reverse;
}
.scn-natacha-stopped-duel .curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #7a5030 0%, #5a3820 50%, #3a2210 100%);
  border-radius: 0 0 0 40%; box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: nsd-curtain 15s ease-in-out infinite alternate;
}
@keyframes nsd-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes nsd-window { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes nsd-lamp { 0% { box-shadow: 0 0 30px 8px rgba(255,200,100,0.5); opacity:0.9 } 50% { box-shadow: 0 0 50px 16px rgba(255,220,120,0.8); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(255,200,100,0.6); opacity:0.95 } }
@keyframes nsd-fig-left { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(2px) rotate(2deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nsd-fig-right { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 33% { transform: translateX(-2px) rotate(-2deg) scaleY(1.01) } 66% { transform: translateX(1px) rotate(1deg) scaleY(1) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes nsd-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* Scene: grapes-mystery-unsolved */
.scn-grapes-mystery-unsolved {
  background: 
    linear-gradient(180deg, #b08050 0%, #8a6030 40%, #5a3a1a 100%),
    radial-gradient(ellipse at 60% 50%, #d0a070 0%, transparent 60%);
}
.scn-grapes-mystery-unsolved .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a5028 0%, #5a3818 50%, #3a2010 100%);
  animation: gmu-room 10s ease-in-out infinite alternate;
}
.scn-grapes-mystery-unsolved .bed {
  position: absolute; bottom: 10%; left: 15%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-grapes-mystery-unsolved .nightstand {
  position: absolute; bottom: 18%; right: 20%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px;
}
.scn-grapes-mystery-unsolved .bowl-grapes {
  position: absolute; bottom: 36%; right: 22%; width: 10%; height: 8%;
  background: radial-gradient(circle at 50% 60%, #604830 0%, #3a2820 70%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gmu-bowl 6s ease-in-out infinite;
}
.scn-grapes-mystery-unsolved .figure-sitting {
  position: absolute; bottom: 12%; left: 20%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #181410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gmu-fig 4s ease-in-out infinite;
}
.scn-grapes-mystery-unsolved .lamp-sharp {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 16px;
  background: radial-gradient(circle, #e0b060 0%, #a08030 70%);
  border-radius: 50%; box-shadow: 0 0 30px 6px rgba(200,160,80,0.5), 0 0 60px 12px rgba(200,160,80,0.2);
  animation: gmu-lamp 2s ease-in-out infinite alternate;
}
.scn-grapes-mystery-unsolved .shadow-sharp {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: gmu-shadow 5s ease-in-out infinite alternate;
}
@keyframes gmu-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gmu-bowl { 0% { transform: rotate(0deg) } 33% { transform: rotate(2deg) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes gmu-fig { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 33% { transform: translateX(3px) rotate(1deg) scaleY(1.005) } 66% { transform: translateX(-2px) rotate(-1deg) scaleY(1) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes gmu-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 4px rgba(200,160,80,0.3) } 50% { opacity:1; box-shadow: 0 0 40px 10px rgba(200,160,80,0.7) } 100% { opacity:0.8; box-shadow: 0 0 25px 6px rgba(200,160,80,0.4) } }
@keyframes gmu-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }

/* Scene: warning-letter */
.scn-warning-letter {
  background: 
    linear-gradient(180deg, #c09868 0%, #a07840 40%, #7a5020 100%),
    radial-gradient(ellipse at 70% 30%, #e0b080 0%, transparent 60%);
}
.scn-warning-letter .desk {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%);
  border-radius: 8px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(15deg);
}
.scn-warning-letter .letter {
  position: absolute; bottom: 30%; left: 30%; width: 25%; height: 18%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 60%, #b09878 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wlt-letter 7s ease-in-out infinite;
}
.scn-warning-letter .hand {
  position: absolute; bottom: 28%; left: 55%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #c8a080 0%, #a07858 50%, #805840 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%;
  transform-origin: bottom left;
  animation: wlt-hand 4s ease-in-out infinite;
}
.scn-warning-letter .inkwell {
  position: absolute; bottom: 32%; right: 15%; width: 6%; height: 8%;
  background: radial-gradient(circle, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}
.scn-warning-letter .candle {
  position: absolute; bottom: 36%; left: 18%; width: 4px; height: 14%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 40%, #a08068 100%);
  border-radius: 2px; box-shadow: 0 0 20px 6px rgba(240,200,160,0.6);
  animation: wlt-candle 3s ease-in-out infinite alternate;
}
.scn-warning-letter .shadow-letter {
  position: absolute; bottom: 10%; left: 28%; width: 28%; height: 4%;
  background: rgba(0,0,0,0.3);
  filter: blur(6px);
  animation: wlt-shadow 8s ease-in-out infinite alternate;
}
.scn-warning-letter .envelope {
  position: absolute; bottom: 30%; right: 22%; width: 10%; height: 12%;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b890 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(12deg);
  animation: wlt-env 6s ease-in-out infinite;
}
@keyframes wlt-letter { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(2px) rotate(1deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wlt-hand { 0% { transform: rotate(0deg) } 33% { transform: rotate(5deg) } 66% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes wlt-candle { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(240,200,160,0.4) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(240,200,160,0.7) } 100% { opacity:0.9; box-shadow: 0 0 20px 6px rgba(240,200,160,0.5) } }
@keyframes wlt-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.35 } }
@keyframes wlt-env { 0% { transform: rotate(12deg) translateX(0) } 50% { transform: rotate(15deg) translateX(3px) } 100% { transform: rotate(12deg) translateX(0) } }

/* Scene: VIII-THE-LITTLE-CHAPEL */
.scn-VIII-THE-LITTLE-CHAPEL {
  background: 
    linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 40%, #78a8c8 100%),
    radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 70%);
}
.scn-VIII-THE-LITTLE-CHAPEL .sky-sunlit {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e0f0ff 0%, #b0d0e8 60%, #90b8d0 100%);
  animation: tlc-sky 20s ease-in-out infinite alternate;
}
.scn-VIII-THE-LITTLE-CHAPEL .sun {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe0a0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,240,180,0.4);
  animation: tlc-sun 15s ease-in-out infinite;
}
.scn-VIII-THE-LITTLE-CHAPEL .cloud-slow {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: tlc-cloud 40s linear infinite;
}
.scn-VIII-THE-LITTLE-CHAPEL .chapel {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 50%, #887058 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: tlc-chapel 12s ease-in-out infinite alternate;
}
.scn-VIII-THE-LITTLE-CHAPEL .trees {
  position: absolute; bottom: 22%; left: 10%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: tlc-trees 8s ease-in-out infinite alternate;
}
.scn-VIII-THE-LITTLE-CHAPEL .path {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #c0a880 0%, #a08860 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(200px) rotateX(20deg);
  animation: tlc-path 14s ease-in-out infinite;
}
.scn-VIII-THE-LITTLE-CHAPEL .figure-small {
  position: absolute; bottom: 16%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tlc-fig 9s ease-in-out infinite;
}
@keyframes tlc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes tlc-sun { 0% { transform: translateX(0) scale(1); opacity:0.9 } 33% { transform: translateX(4px) scale(1.02); opacity:1 } 66% { transform: translateX(-2px) scale(0.98); opacity:0.95 } 100% { transform: translateX(0) scale(1); opacity:0.9 } }
@keyframes tlc-cloud { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes tlc-chapel { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tlc-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes tlc-path { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.9 } }
@keyframes tlc-fig { 0% { transform: translateX(0) } 33% { transform: translateX(5px) } 66% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

.scn-koupriane-on-young-girls {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #5a4030 30%, #8a6a50 60%, #4a3020 100%),
    radial-gradient(ellipse at 70% 30%, #d0a070 0%, transparent 60%),
    linear-gradient(135deg, #1a120e 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-koupriane-on-young-girls .wall { position: absolute; inset: 0 0 0 0; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); opacity: 0.8; }
.scn-koupriane-on-young-girls .lamp { position: absolute; top: 15%; right: 20%; width: 30px; height: 40px; background: radial-gradient(circle at 50% 0%, #ffd090 0%, #b08050 60%, transparent 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 30px rgba(255,200,100,0.4), 0 0 120px 60px rgba(255,200,100,0.2); animation: koyg-lamp 5s ease-in-out infinite alternate; }
.scn-koupriane-on-young-girls .girl-side { position: absolute; bottom: 15%; left: 30%; width: 40px; height: 80px; background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: koyg-girl 6s ease-in-out infinite; }
.scn-koupriane-on-young-girls .book { position: absolute; bottom: 20%; left: 35%; width: 30px; height: 24px; background: linear-gradient(180deg, #8a6040 0%, #5a3820 100%); border-radius: 4px; transform: rotate(-10deg); animation: koyg-book 6s ease-in-out infinite; }
.scn-koupriane-on-young-girls .desk { position: absolute; bottom: 12%; left: 20%; right: 40%; height: 10px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-koupriane-on-young-girls .curtain { position: absolute; top: 0; right: 0; width: 40%; height: 100%; background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0e 100%); border-radius: 60% 0 0 60%; opacity: 0.7; animation: koyg-curtain 12s ease-in-out infinite alternate; }
.scn-koupriane-on-young-girls .shadow-bookshelf { position: absolute; left: 5%; top: 10%; width: 25%; height: 70%; background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-koupriane-on-young-girls .air-dust { position: absolute; top: 30%; left: 40%; width: 4px; height: 4px; background: rgba(255,220,160,0.3); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,220,160,0.2); animation: koyg-dust 10s linear infinite; }
@keyframes koyg-lamp { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes koyg-girl { 0% { transform: translate(0, 0) rotate(5deg) } 25% { transform: translate(2px, -1px) rotate(6deg) } 50% { transform: translate(-1px, 1px) rotate(4deg) } 75% { transform: translate(0, -2px) rotate(5deg) } 100% { transform: translate(0, 0) rotate(5deg) } }
@keyframes koyg-book { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-8deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes koyg-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes koyg-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.2 } 50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.6 } 100% { transform: translate(40px, -60px) scale(2); opacity: 0 } }

.scn-arrest-at-lachtka {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 30%, #4a3a5a 55%, #6a5a3a 75%, #8a7a3a 100%),
    radial-gradient(ellipse at 70% 20%, #6a5a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-arrest-at-lachtka .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 60%, #6a5a3a 100%); animation: alat-sky 20s ease-in-out infinite alternate; }
.scn-arrest-at-lachtka .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); animation: alat-sea 12s ease-in-out infinite; }
.scn-arrest-at-lachtka .yacht { position: absolute; bottom: 40%; left: 60%; width: 120px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 20% 0 0; transform: rotate(-5deg); animation: alat-yacht 8s ease-in-out infinite; }
.scn-arrest-at-lachtka .canoe { position: absolute; bottom: 35%; left: 20%; width: 60px; height: 12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%; transform: rotate(10deg); animation: alat-canoe 10s ease-in-out infinite; }
.scn-arrest-at-lachtka .men { position: absolute; bottom: 35%; left: 22%; width: 40px; height: 20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: alat-men 10s ease-in-out infinite; }
.scn-arrest-at-lachtka .natacha-bound { position: absolute; bottom: 35%; left: 28%; width: 20px; height: 35px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: alat-natacha 10s ease-in-out infinite; }
.scn-arrest-at-lachtka .rope { position: absolute; bottom: 37%; left: 28%; width: 18px; height: 4px; background: #5a4a3a; border-radius: 2px; transform: rotate(-15deg); animation: alat-rope 10s ease-in-out infinite; }
.scn-arrest-at-lachtka .shore-dune { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 50% 40% 0 0 / 100% 80% 0 0; }
@keyframes alat-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes alat-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes alat-yacht { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-4deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes alat-canoe { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes alat-men { 0% { transform: translate(0, 0) } 50% { transform: translate(3px, -2px) } 100% { transform: translate(0, 0) } }
@keyframes alat-natacha { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(5deg) } }
@keyframes alat-rope { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }

.scn-natacha-captured {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 30%, #4a3a5a 60%, #6a5a3a 80%, #8a7a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-natacha-captured .horizon-sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a3a 0%, #4a3a5a 60%, #6a5a3a 100%); animation: nac-hsky 20s ease-in-out infinite alternate; }
.scn-natacha-captured .horizon-sea { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); animation: nac-hsea 12s ease-in-out infinite; }
.scn-natacha-captured .yacht-black { position: absolute; bottom: 40%; right: 10%; width: 100px; height: 40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 0 0; transform: rotate(-10deg); animation: nac-yacht 10s ease-in-out infinite; }
.scn-natacha-captured .agents-row { position: absolute; bottom: 20%; left: 10%; right: 30%; height: 30px; background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 8px, transparent 8px, transparent 12px); animation: nac-agents 8s ease-in-out infinite; }
.scn-natacha-captured .natacha-stoic { position: absolute; bottom: 22%; left: 40%; width: 30px; height: 50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(0deg); animation: nac-natacha 6s ease-in-out infinite; }
.scn-natacha-captured .arms-folded { position: absolute; bottom: 30%; left: 39%; width: 20px; height: 10px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(10deg); animation: nac-arms 6s ease-in-out infinite; }
.scn-natacha-captured .sand { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-natacha-captured .footprints { position: absolute; bottom: 0; left: 30%; width: 50%; height: 10px; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #3a2a1a 8px, #3a2a1a 10px, transparent 10px, transparent 18px); opacity: 0.5; animation: nac-foot 15s linear infinite; }
@keyframes nac-hsky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes nac-hsea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes nac-yacht { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes nac-agents { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes nac-natacha { 0% { transform: translate(0, 0) } 25% { transform: translate(2px, -1px) } 50% { transform: translate(-2px, 0) } 75% { transform: translate(0, -2px) } 100% { transform: translate(0, 0) } }
@keyframes nac-arms { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(10deg) } }
@keyframes nac-foot { 0% { background-position: 0 0 } 100% { background-position: -20px 0 } }

.scn-rouletabille-fired-shot {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 30%, #2a2a4a 60%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-rouletabille-fired-shot .dungeon-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); opacity: 0.9; }
.scn-rouletabille-fired-shot .cell-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; }
.scn-rouletabille-fired-shot .lantern-flash { position: absolute; top: 20%; left: 40%; width: 40px; height: 50px; background: radial-gradient(circle at 50% 50%, #ffc080 0%, #b06020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,192,128,0.5), 0 0 160px 80px rgba(255,192,128,0.3); animation: rbs-flash 4s ease-in-out infinite alternate; }
.scn-rouletabille-fired-shot .rouletabille-silhouette { position: absolute; bottom: 10%; left: 20%; width: 40px; height: 80px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: rbs-roulet 3s ease-in-out infinite; }
.scn-rouletabille-fired-shot .gun-muzzle { position: absolute; bottom: 25%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, #ffa060 0%, #ff4040 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,100,50,0.6); animation: rbs-muzzle 3s ease-in-out infinite; }
.scn-rouletabille-fired-shot .natacha-cell { position: absolute; bottom: 15%; right: 25%; width: 30px; height: 45px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: rbs-natacha 6s ease-in-out infinite; }
.scn-rouletabille-fired-shot .shadow-bars { position: absolute; top: 0; left: 60%; width: 5%; height: 100%; background: linear-gradient(180deg, transparent 0%, #1a1a2a 20%, transparent 40%, #1a1a2a 60%, transparent 80%, #1a1a2a 100%); opacity: 0.6; animation: rbs-bars 8s ease-in-out infinite; }
.scn-rouletabille-fired-shot .spark-particle { position: absolute; top: 20%; left: 45%; width: 3px; height: 3px; background: #ffd060; border-radius: 50%; box-shadow: 0 0 6px 2px #ffd060; animation: rbs-spark 2s ease-in-out infinite alternate; }
@keyframes rbs-flash { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.95) } }
@keyframes rbs-roulet { 0% { transform: translate(0, 0) rotate(10deg) } 25% { transform: translate(2px, -1px) rotate(12deg) } 50% { transform: translate(-2px, 0) rotate(8deg) } 75% { transform: translate(0, -1px) rotate(10deg) } 100% { transform: translate(0, 0) rotate(10deg) } }
@keyframes rbs-muzzle { 0% { opacity: 0.3; transform: scale(0.5) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(0.6) } }
@keyframes rbs-natacha { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes rbs-bars { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.4 } }
@keyframes rbs-spark { 0% { transform: translate(0, 0) } 100% { transform: translate(10px, -15px) } }

.scn-barinnia-announces-stranger {
  background: linear-gradient(180deg, #f0eed8 0%, #d8d4b8 60%, #b8b498 100%), radial-gradient(ellipse at 30% 40%, #ffffe0 0%, transparent 70%);
}
.scn-barinnia-announces-stranger .wall-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8d4b8 0%, #c8c4a8 100%); box-shadow: inset 0 -4px 12px rgba(0,0,0,0.1); }
.scn-barinnia-announces-stranger .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7e6a 0%, #6a5e4a 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.3); }
.scn-barinnia-announces-stranger .window { position:absolute; top:12%; left:10%; width:20%; height:40%; background: linear-gradient(180deg, #e8f0ff 0%, #c8d8f0 100%); border: 4px solid #6a5e4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.4); animation: bi-window 6s ease-in-out infinite alternate; }
.scn-barinnia-announces-stranger .door { position:absolute; bottom:25%; right:15%; width:18%; height:55%; background: linear-gradient(180deg, #4a3e2a 0%, #3a2e1a 100%); border: 3px solid #2a1e0a; border-radius: 0 0 4px 4px; box-shadow: -8px 0 12px rgba(0,0,0,0.5); transform-origin: right center; animation: bi-door 8s ease-in-out infinite; }
.scn-barinnia-announces-stranger .barinia { position:absolute; bottom:25%; left:35%; width:12%; height:45%; background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,0.4); transform-origin: bottom center; animation: bi-barinia 4s ease-in-out infinite; }
.scn-barinnia-announces-stranger .servant { position:absolute; bottom:25%; left:55%; width:10%; height:42%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,0.3); transform-origin: bottom center; animation: bi-servant 5s ease-in-out infinite; }
.scn-barinnia-announces-stranger .candle { position:absolute; bottom:30%; left:28%; width:2%; height:8%; background: linear-gradient(180deg, #e8d8a0 0%, #c8b880 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(232,216,160,0.7); animation: bi-candle 2s ease-in-out infinite alternate; }
.scn-barinnia-announces-stranger .shadow-loom { position:absolute; bottom:25%; right:33%; width:20%; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 60%); filter: blur(8px); animation: bi-shadow 6s ease-in-out infinite; }

@keyframes bi-window { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes bi-door    { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } }
@keyframes bi-barinia { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes bi-servant { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes bi-candle  { 0% { opacity:0.8; box-shadow: 0 0 15px 4px #e8d8a0; } 100% { opacity:1; box-shadow: 0 0 25px 8px #f0e0b0; } }
@keyframes bi-shadow  { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }

.scn-dining-room-revelry {
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #c08040 0%, transparent 60%);
}
.scn-dining-room-revelry .room-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); box-shadow: inset 0 8px 24px rgba(0,0,0,0.5); }
.scn-dining-room-revelry .table { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: dr-table 12s ease-in-out infinite; }
.scn-dining-room-revelry .general-sofa { position:absolute; bottom:28%; left:60%; width:25%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(255,255,200,0.1); animation: dr-sofa 6s ease-in-out infinite; }
.scn-dining-room-revelry .general-fig { position:absolute; bottom:30%; left:65%; width:10%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-general 4s ease-in-out infinite; }
.scn-dining-room-revelry .guests { position:absolute; bottom:25%; left:15%; right:45%; height:30%; background: radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 60%); filter: blur(4px); animation: dr-guests 10s ease-in-out infinite; }
.scn-dining-room-revelry .chandelier { position:absolute; top:8%; left:35%; width:30%; height:10%; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c08040 60%, transparent 80%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 20px rgba(255,208,128,0.5); animation: dr-chandelier 5s ease-in-out infinite alternate; }
.scn-dining-room-revelry .wine { position:absolute; bottom:28%; left:20%; width:6%; height:12%; background: linear-gradient(180deg, #a04020 0%, #602010 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: dr-wine 8s ease-in-out infinite; }

@keyframes dr-table   { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes dr-sofa    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dr-general { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes dr-guests  { 0%,100% { opacity:0.7; } 50% { opacity:0.9; } }
@keyframes dr-chandelier { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dr-wine    { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }

.scn-councilor-cubat-story {
  background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 50%, #b0a898 100%), radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 70%);
}
.scn-councilor-cubat-story .bg-taproom { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c8c0b0 0%, #a8a090 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.1); }
.scn-councilor-cubat-story .table-round { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #6a5e4a 0%, #4a3e2a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: cc-table 15s ease-in-out infinite; }
.scn-councilor-cubat-story .councilor { position:absolute; bottom:24%; left:25%; width:15%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-councilor 3s ease-in-out infinite; }
.scn-councilor-cubat-story .listener-a { position:absolute; bottom:26%; left:50%; width:12%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cc-listener-a 5s ease-in-out infinite; }
.scn-councilor-cubat-story .listener-b { position:absolute; bottom:28%; left:65%; width:10%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cc-listener-b 4s ease-in-out infinite; }
.scn-councilor-cubat-story .wine-bottle { position:absolute; bottom:20%; left:40%; width:4%; height:15%; background: linear-gradient(180deg, #703020 0%, #401010 100%); border-radius: 0 0 10% 10%; box-shadow: 2px 0 4px rgba(0,0,0,0.3); animation: cc-bottle 8s ease-in-out infinite; }
.scn-councilor-cubat-story .lamp { position:absolute; top:15%; left:45%; width:10%; height:8%; background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #c08040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.6); animation: cc-lamp 4s ease-in-out infinite alternate; }

@keyframes cc-table       { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes cc-councilor   { 0%,100% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-5px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-3px) rotate(0deg); } }
@keyframes cc-listener-a  { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes cc-listener-b  { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cc-bottle      { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes cc-lamp        { 0% { opacity:0.8; box-shadow: 0 0 20px 8px #ffd080; } 100% { opacity:1; box-shadow: 0 0 40px 16px #ffd080; } }

.scn-cubat-champagne-horses {
  background: linear-gradient(180deg, #4a6a8a 0%, #7a8a9a 30%, #c8a880 60%, #e8d0a0 100%), radial-gradient(ellipse at 70% 20%, #ffd0a0 0%, transparent 60%);
}
.scn-cubat-champagne-horses .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a5a7a 0%, #6a8a9a 40%, #c8a880 80%, #e8d0a0 100%); animation: ch-sky 15s ease-in-out infinite alternate; }
.scn-cubat-champagne-horses .horizon-hills { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: ch-hills 20s ease-in-out infinite; }
.scn-cubat-champagne-horses .cubat-house { position:absolute; bottom:40%; left:60%; width:20%; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: ch-house 10s ease-in-out infinite; }
.scn-cubat-champagne-horses .horse-a { position:absolute; bottom:42%; left:15%; width:12%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; transform-origin: bottom center; animation: ch-horse-a 4s ease-in-out infinite; }
.scn-cubat-champagne-horses .horse-b { position:absolute; bottom:44%; left:30%; width:10%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; transform-origin: bottom center; animation: ch-horse-b 5s ease-in-out infinite; animation-delay: -2s; }
.scn-cubat-champagne-horses .cossack-a { position:absolute; bottom:48%; left:18%; width:6%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ch-cossack-a 3s ease-in-out infinite; }
.scn-cubat-champagne-horses .cossack-b { position:absolute; bottom:50%; left:33%; width:5%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ch-cossack-b 3.5s ease-in-out infinite; animation-delay: -1.5s; }
.scn-cubat-champagne-horses .champagne-glass { position:absolute; bottom:48%; left:25%; width:3%; height:10%; background: linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 100%); border-radius: 0 0 10% 10%; box-shadow: 0 0 8px 2px rgba(255,224,160,0.5); animation: ch-glass 2s ease-in-out infinite alternate; }

@keyframes ch-sky      { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ch-hills    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ch-house    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ch-horse-a  { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(2deg); } }
@keyframes ch-horse-b  { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ch-cossack-a { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ch-cossack-b { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ch-glass    { 0% { opacity:0.7; } 100% { opacity:1; } }

/* Scene: matrena-watches-over-general */
.scn-matrena-watches-over-general {
  background: 
    linear-gradient(180deg, #1e1a30 0%, #2c243a 40%, #1a1220 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-matrena-watches-over-general .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  animation: mwg-room 15s ease-in-out infinite alternate;
}
.scn-matrena-watches-over-general .window-frame {
  position: absolute;
  left: 20%;
  right: 50%;
  top: 10%;
  bottom: 40%;
  border: 6px solid #3a2a1a;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(0,0,0,0.5);
  animation: mwg-frame 8s ease-in-out infinite;
}
.scn-matrena-watches-over-general .garden-path {
  position: absolute;
  left: 22%;
  right: 52%;
  top: 15%;
  bottom: 45%;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 40% 0% 0% 0% / 40% 0% 0% 0%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: mwg-garden 20s ease-in-out infinite alternate;
}
.scn-matrena-watches-over-general .matrena-silhouette {
  position: absolute;
  left: 50%;
  bottom: 20%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #0a0a14 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: mwg-figure 4s ease-in-out infinite;
}
.scn-matrena-watches-over-general .general-portrait {
  position: absolute;
  right: 10%;
  top: 15%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  opacity: 0.6;
  animation: mwg-portrait 12s ease-in-out infinite;
}
.scn-matrena-watches-over-general .shadow-bar {
  position: absolute;
  left: 0;
  right: 0;
  top: 70%;
  bottom: 0;
  background: linear-gradient(180deg, transparent 0%, #0a0a14 60%, #000 100%);
  animation: mwg-shadow 6s ease-in-out infinite alternate;
}
@keyframes mwg-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes mwg-frame {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes mwg-garden {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}
@keyframes mwg-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 mwg-portrait {
  0% { opacity: 0.5; transform: scale(0.98); }
  50% { opacity: 0.7; transform: scale(1); }
  100% { opacity: 0.4; transform: scale(0.97); }
}
@keyframes mwg-shadow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

/* Scene: nihilist-placard-threat */
.scn-nihilist-placard-threat {
  background:
    linear-gradient(180deg, #1a1a28 0%, #12121a 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 60%);
}
.scn-nihilist-placard-threat .wall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a1a24 0%, #12121c 100%);
  animation: npt-wall 20s linear infinite;
}
.scn-nihilist-placard-threat .placard {
  position: absolute;
  left: 30%;
  right: 30%;
  top: 20%;
  bottom: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border: 2px solid #3a1a0a;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7), inset 0 0 10px rgba(0,0,0,0.3);
  animation: npt-placard 5s ease-in-out infinite;
}
.scn-nihilist-placard-threat .placard-pin {
  position: absolute;
  left: 48%;
  top: 22%;
  width: 10px;
  height: 10px;
  background: #4a3a2a;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.8);
  animation: npt-pin 3s ease-in-out infinite;
}
.scn-nihilist-placard-threat .nihilist-figure {
  position: absolute;
  left: 10%;
  bottom: 15%;
  width: 35px;
  height: 60px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
  animation: npt-figure 9s ease-in-out infinite;
}
.scn-nihilist-placard-threat .flicker-light {
  position: absolute;
  left: 40%;
  right: 40%;
  top: 30%;
  bottom: 40%;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: npt-flicker 2s ease-in-out infinite alternate;
}
.scn-nihilist-placard-threat .portrait-shadow {
  position: absolute;
  right: 10%;
  bottom: 20%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5%;
  opacity: 0.3;
  animation: npt-shadow 12s linear infinite;
}
@keyframes npt-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes npt-placard {
  0% { transform: scale(1) rotate(-1deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(0deg); }
}
@keyframes npt-pin {
  0% { box-shadow: 0 1px 3px rgba(0,0,0,0.8); }
  50% { box-shadow: 0 2px 6px rgba(0,0,0,0.9); }
  100% { box-shadow: 0 1px 3px rgba(0,0,0,0.8); }
}
@keyframes npt-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(3deg); }
  66% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes npt-flicker {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.1; }
}
@keyframes npt-shadow {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* Scene: reporter-arrives-at-datcha */
.scn-reporter-arrives-at-datcha {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4b898 100%),
    radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 70%);
}
.scn-reporter-arrives-at-datcha .sunny-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f0e0c8 0%, #e0ccb0 100%);
  animation: rad-wall 12s ease-in-out infinite alternate;
}
.scn-reporter-arrives-at-datcha .datcha-window {
  position: absolute;
  left: 20%;
  right: 55%;
  top: 10%;
  bottom: 50%;
  border: 6px solid #8a7a6a;
  background: linear-gradient(180deg, #a0c8d0 0%, #7090a0 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 0 15px rgba(200,180,150,0.5);
  animation: rad-window 8s ease-in-out infinite;
}
.scn-reporter-arrives-at-datcha .sunbeam {
  position: absolute;
  left: 15%;
  right: 60%;
  top: 15%;
  bottom: 25%;
  background: linear-gradient(135deg, rgba(255,240,200,0.25) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  animation: rad-beam 25s linear infinite;
}
.scn-reporter-arrives-at-datcha .reporter-silhouette {
  position: absolute;
  right: 12%;
  bottom: 18%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
  animation: rad-reporter 9s ease-in-out infinite;
}
.scn-reporter-arrives-at-datcha .dust-motes {
  position: absolute;
  left: 20%;
  right: 20%;
  top: 10%;
  bottom: 30%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.1) 0%, transparent 50%);
  animation: rad-dust 30s linear infinite;
}
.scn-reporter-arrives-at-datcha .warm-floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 25%;
  background: linear-gradient(180deg, #c8a880 0%, #a88868 100%);
  border-radius: 10% 10% 0% 0% / 20% 20% 0% 0%;
  animation: rad-floor 6s ease-in-out infinite alternate;
}
@keyframes rad-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes rad-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.99); }
  100% { transform: scaleY(1); }
}
@keyframes rad-beam {
  0% { transform: translateX(-20px) scaleX(1); }
  50% { transform: translateX(0) scaleX(1.05); }
  100% { transform: translateX(20px) scaleX(0.95); }
}
@keyframes rad-reporter {
  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 rad-dust {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes rad-floor {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}

/* Scene: rouletabille-eats-caviare */
.scn-rouletabille-eats-caviare {
  background:
    linear-gradient(180deg, #ffe8d0 0%, #f0d4b8 50%, #e0c0a0 100%),
    radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-rouletabille-eats-caviare .table-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e8c8a8 0%, #d4b490 100%);
  animation: rec-table 10s ease-in-out infinite alternate;
}
.scn-rouletabille-eats-caviare .caviare-jar-a {
  position: absolute;
  left: 30%;
  bottom: 35%;
  width: 30px;
  height: 45px;
  background: linear-gradient(180deg, #4a7a5a 0%, #2a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 0 8px rgba(0,0,0,0.2);
  animation: rec-jar-a 3s ease-in-out infinite;
}
.scn-rouletabille-eats-caviare .caviare-jar-b {
  position: absolute;
  left: 55%;
  bottom: 30%;
  width: 28px;
  height: 42px;
  background: linear-gradient(180deg, #4a7a5a 0%, #2a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 0 8px rgba(0,0,0,0.2);
  animation: rec-jar-b 3.5s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-rouletabille-eats-caviare .spoon {
  position: absolute;
  left: 42%;
  bottom: 38%;
  width: 8px;
  height: 55px;
  background: linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rec-spoon 2s ease-in-out infinite;
}
.scn-rouletabille-eats-caviare .rouletabille-hand {
  position: absolute;
  right: 10%;
  bottom: 20%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #d4a080 0%, #b87860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
  animation: rec-hand 4s ease-in-out infinite;
}
.scn-rouletabille-eats-caviare .hopping-mote {
  position: absolute;
  left: 20%;
  top: 15%;
  width: 6px;
  height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(255,208,128,0.6);
  animation: rec-mote 3s ease-in-out infinite;
  animation-delay: 0.2s;
}
@keyframes rec-table {
  0% { transform: scale(0.99); }
  50% { transform: scale(1); }
  100% { transform: scale(0.99); }
}
@keyframes rec-jar-a {
  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); }
}
@keyframes rec-jar-b {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rec-spoon {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rec-hand {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-4px) rotate(5deg); }
  66% { transform: translateX(2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rec-mote {
  0% { transform: translate(0,0); }
  25% { transform: translate(4px,-6px); }
  50% { transform: translate(-3px,4px); }
  75% { transform: translate(2px,-2px); }
  100% { transform: translate(0,0); }
}

/* boot-print-to-stairway */
.scn-boot-print-to-stairway {
  background: 
    linear-gradient(135deg, #1e1a24 0%, #2a2232 40%, #1e1a24 100%),
    radial-gradient(ellipse at 30% 70%, #3a3244 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-boot-print-to-stairway .wall-dark {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #16131c 0%, #1e1a24 100%);
  animation: bp-wall-pulse 14s ease-in-out infinite alternate;
}
.scn-boot-print-to-stairway .stairway {
  position: absolute; bottom: 0; right: 0; width: 55%; height: 70%;
  background: linear-gradient(180deg, #2f2838 0%, #1e1a24 100%);
  clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 0 0 0 0;
  transform: skewX(-5deg);
  animation: bp-stair-shift 9s ease-in-out infinite;
}
.scn-boot-print-to-stairway .door {
  position: absolute; bottom: 25%; left: 8%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3c3448 0%, #241e30 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,.5);
  animation: bp-door-breathe 12s ease-in-out infinite alternate;
}
.scn-boot-print-to-stairway .boot-print {
  position: absolute; bottom: 18%; left: 36%; width: 7%; height: 11%;
  background: radial-gradient(ellipse at 50% 30%, #4a4258 0%, #1e1a24 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
  animation: bp-print-fade 6s ease-in-out infinite;
}
.scn-boot-print-to-stairway .lantern-glow {
  position: absolute; top: 20%; left: 50%; width: 30%; height: 30%;
  background: radial-gradient(circle at 50% 50%, rgba(200,180,120,0.35) 0%, transparent 60%);
  animation: bp-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-boot-print-to-stairway .figure-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #0d0b14 0%, #1a1624 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: bp-figure-step 8s ease-in-out infinite;
}
.scn-boot-print-to-stairway .shadow-bar {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(0deg, #0d0b14 0%, transparent 100%);
  animation: bp-shadow-flicker 5s ease-in-out infinite alternate;
}
@keyframes bp-wall-pulse { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes bp-stair-shift { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-3deg) translateX(-5px) } 100% { transform: skewX(-5deg) translateX(0) } }
@keyframes bp-door-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes bp-print-fade { 0% { opacity: .3 } 30% { opacity: .8 } 70% { opacity: .6 } 100% { opacity: .4 } }
@keyframes bp-glow-pulse { 0% { opacity: .4; transform: scale(.95) } 50% { opacity: .7; transform: scale(1.05) } 100% { opacity: .5; transform: scale(1) } }
@keyframes bp-figure-step { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bp-shadow-flicker { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

/* two-hat-pin-holes */
.scn-two-hat-pin-holes {
  background: 
    linear-gradient(90deg, #1c182c 0%, #282240 50%, #1c182c 100%),
    radial-gradient(ellipse at 40% 30%, #3e3658 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-two-hat-pin-holes .wall-texture {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(40,34,64,0.3) 0px, rgba(40,34,64,0.3) 2px, transparent 2px, transparent 4px);
  animation: tph-wall-dither 20s linear infinite;
}
.scn-two-hat-pin-holes .door-panel {
  position: absolute; top: 15%; left: 25%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #2c2444 0%, #1c142c 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 8px 16px rgba(0,0,0,.5);
  animation: tph-door-creak 10s ease-in-out infinite alternate;
}
.scn-two-hat-pin-holes .hole-old {
  position: absolute; top: 40%; left: 42%; width: 3%; height: 4.5%;
  background: radial-gradient(circle, #ffecb0 0%, #806840 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,236,176,0.6);
  animation: tph-hole-glow-old 6s ease-in-out infinite;
}
.scn-two-hat-pin-holes .hole-new {
  position: absolute; top: 43%; left: 46%; width: 2.5%; height: 4%;
  background: radial-gradient(circle, #ffe080 0%, #705830 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(255,224,128,0.8);
  animation: tph-hole-glow-new 4s ease-in-out infinite alternate;
}
.scn-two-hat-pin-holes .light-beam {
  position: absolute; top: 20%; left: 30%; width: 25%; height: 60%;
  background: linear-gradient(135deg, rgba(200,180,120,0.08) 0%, transparent 100%);
  transform: rotate(-10deg);
  animation: tph-beam-sweep 12s ease-in-out infinite alternate;
}
.scn-two-hat-pin-holes .figure-examining {
  position: absolute; bottom: 10%; left: 35%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a162c 0%, #0e0c1c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tph-figure-lean 7s ease-in-out infinite;
}
.scn-two-hat-pin-holes .candle {
  position: absolute; bottom: 8%; left: 55%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #b89860 50%, #402820 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 0 30px 8px rgba(232,208,160,0.4);
  animation: tph-candle-flicker 3s ease-in-out infinite alternate;
}
@keyframes tph-wall-dither { 0% { background-position: 0 0 } 100% { background-position: 0 40px } }
@keyframes tph-door-creak { 0% { transform: rotate(0) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(0) } }
@keyframes tph-hole-glow-old { 0% { opacity: .5; box-shadow: 0 0 8px 2px rgba(255,236,176,.4) } 50% { opacity: 1; box-shadow: 0 0 18px 6px rgba(255,236,176,.8) } 100% { opacity: .6; box-shadow: 0 0 12px 4px rgba(255,236,176,.5) } }
@keyframes tph-hole-glow-new { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .8; transform: scale(.9) } }
@keyframes tph-beam-sweep { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(5px) } 100% { transform: rotate(-15deg) translateX(-5px) } }
@keyframes tph-figure-lean { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(3deg) } 70% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tph-candle-flicker { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.95) } }

/* the-broken-pin */
.scn-the-broken-pin {
  background: 
    linear-gradient(180deg, #1c1424 0%, #2c2440 50%, #1c1424 100%),
    radial-gradient(ellipse at 60% 40%, #403860 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-the-broken-pin .table-top {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 45%;
  background: linear-gradient(180deg, #2c2440 0%, #181028 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(12deg);
  animation: bp2-table-shimmer 15s ease-in-out infinite;
}
.scn-the-broken-pin .pin-shaft {
  position: absolute; bottom: 42%; left: 48%; width: 30%; height: 1.5%;
  background: linear-gradient(90deg, #b0a8a0 0%, #80786c 50%, #b0a8a0 100%);
  border-radius: 50% 40% 40% 50%;
  transform: rotate(-25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: bp2-pin-roll 20s linear infinite;
}
.scn-the-broken-pin .pin-head {
  position: absolute; bottom: 43%; left: 76%; width: 5%; height: 4%;
  background: radial-gradient(circle at 40% 40%, #c0b0a0 0%, #604030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.3);
  animation: bp2-head-glow 6s ease-in-out infinite alternate;
}
.scn-the-broken-pin .pin-shadow {
  position: absolute; bottom: 38%; left: 42%; width: 35%; height: 2%;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(3px);
  transform: rotate(-20deg);
  animation: bp2-shadow-stretch 10s ease-in-out infinite;
}
.scn-the-broken-pin .candlelight {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(circle at 50% 40%, rgba(240,210,160,0.3) 0%, transparent 60%);
  animation: bp2-light-flicker 3s ease-in-out infinite alternate;
}
.scn-the-broken-pin .hand-reach {
  position: absolute; bottom: 25%; left: 30%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #1c1628 0%, #2c2040 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(10deg);
  animation: bp2-hand-dart 7s ease-in-out infinite;
}
.scn-the-broken-pin .scatter-dots {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 12%;
  background: radial-gradient(circle at 30% 60%, #605040 0%, transparent 60%);
  filter: blur(2px);
  animation: bp2-dots-twinkle 8s ease-in-out infinite;
}
@keyframes bp2-table-shimmer { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes bp2-pin-roll { 0% { transform: rotate(-25deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(5px) } 100% { transform: rotate(-25deg) translateX(-5px) } }
@keyframes bp2-head-glow { 0% { opacity: .6; box-shadow: 0 0 4px 1px rgba(200,180,140,.2) } 50% { opacity: 1; box-shadow: 0 0 14px 4px rgba(200,180,140,.5) } 100% { opacity: .7; box-shadow: 0 0 8px 2px rgba(200,180,140,.3) } }
@keyframes bp2-shadow-stretch { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-15deg) scaleX(1.1) } 100% { transform: rotate(-20deg) scaleX(1) } }
@keyframes bp2-light-flicker { 0% { opacity: .4; transform: scale(.9) } 50% { opacity: .7; transform: scale(1.05) } 100% { opacity: .5; transform: scale(1) } }
@keyframes bp2-hand-dart { 0% { transform: translateY(0) rotate(10deg) } 20% { transform: translateY(-5px) rotate(15deg) } 80% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(10deg) } }
@keyframes bp2-dots-twinkle { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }

/* the-ordinary-pin-guard */
.scn-the-ordinary-pin-guard {
  background: 
    linear-gradient(135deg, #1e1c2c 0%, #2c2844 50%, #1e1c2c 100%),
    radial-gradient(ellipse at 80% 60%, #3c3458 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-the-ordinary-pin-guard .corridor-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(30,28,44,0.6) 1px, transparent 1px, transparent 30px);
  animation: opg-wall-move 30s linear infinite;
}
.scn-the-ordinary-pin-guard .guard-silhouette {
  position: absolute; bottom: 10%; left: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #0c0a18 0%, #1a162c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 20px rgba(0,0,0,.6);
  animation: opg-guard-stance 9s ease-in-out infinite;
}
.scn-the-ordinary-pin-guard .pin-mark {
  position: absolute; top: 45%; left: 38%; width: 2%; height: 3.5%;
  background: radial-gradient(circle, #908060 0%, #3c2c1c 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(144,128,96,0.4);
  animation: opg-pin-blink 5s ease-in-out infinite;
}
.scn-the-ordinary-pin-guard .door-arch {
  position: absolute; top: 20%; left: 40%; width: 35%; height: 65%;
  background: linear-gradient(180deg, #2c2844 0%, #1e1c30 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 6px 12px rgba(0,0,0,.4);
  animation: opg-door-pulse 12s ease-in-out infinite alternate;
}
.scn-the-ordinary-pin-guard .lantern-swing {
  position: absolute; top: 10%; left: 15%; width: 15%; height: 20%;
  background: radial-gradient(circle at 50% 30%, rgba(240,200,140,0.25) 0%, transparent 60%);
  transform-origin: top center;
  animation: opg-lantern-swing 8s ease-in-out infinite;
}
.scn-the-ordinary-pin-guard .floor-plank {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: linear-gradient(180deg, #1a1628 0%, #0e0c18 100%);
  border-top: 2px solid #3c3050;
  animation: opg-plank-creak 14s ease-in-out infinite alternate;
}
.scn-the-ordinary-pin-guard .motes {
  position: absolute; top: 35%; left: 10%; width: 60%; height: 40%;
  background: radial-gradient(circle at 20% 40%, rgba(200,200,180,0.04) 0%, transparent 60%);
  filter: blur(4px);
  animation: opg-motes-drift 50s linear infinite;
}
@keyframes opg-wall-move { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes opg-guard-stance { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes opg-pin-blink { 0% { opacity: .4; transform: scale(.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .5; transform: scale(.9) } }
@keyframes opg-door-pulse { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes opg-lantern-swing { 0% { transform: rotate(0) } 25% { transform: rotate(5deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }
@keyframes opg-plank-creak { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes opg-motes-drift { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(-20px) } }

/* five-minutes-to-think — tense, dim interior, hanging chamber */
.scn-five-minutes-to-think {
  background:
    radial-gradient(ellipse at 50% 80%, #2a2030 0%, transparent 60%),
    linear-gradient(180deg, #1f1a2e 0%, #2a2238 40%, #1e1828 100%);
}
.scn-five-minutes-to-think .walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(32,28,42,.3) 15%, transparent 30%, rgba(32,28,42,.2) 70%, transparent 85%);
  animation: ftt-shimmer 8s ease-in-out infinite alternate;
}
.scn-five-minutes-to-think .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a2430 0%, #1c1824 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-five-minutes-to-think .beam {
  position: absolute; top: 8%; left: 20%; right: 20%; height: 6px;
  background: linear-gradient(90deg, #3a2e3a 0%, #4a3e4a 50%, #3a2e3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-five-minutes-to-think .rope {
  position: absolute; top: 7%; left: 50%; width: 4px; height: 35%;
  background: linear-gradient(180deg, #5a4e4a 0%, #4a3e3a 100%);
  transform: translateX(-50%);
  box-shadow: 1px 0 3px rgba(0,0,0,.4);
  animation: ftt-sway 3s ease-in-out infinite;
}
.scn-five-minutes-to-think .stool {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-five-minutes-to-think .figure {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ftt-figure 4s ease-in-out infinite;
}
.scn-five-minutes-to-think .watch-chain {
  position: absolute; top: 28%; left: 62%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #c0a050 0%, #806030 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: top center;
  animation: ftt-chain 2s ease-in-out infinite alternate;
}
.scn-five-minutes-to-think .watch-face {
  position: absolute; top: 36%; left: 63%; width: 18px; height: 18px;
  background: radial-gradient(circle, #e0d0a0 0%, #c0a870 60%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(192,168,96,.3);
  animation: ftt-tick 1s steps(2) infinite;
}
.scn-five-minutes-to-think .lamp-glow {
  position: absolute; top: 14%; right: 22%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,80,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ftt-lamp 6s ease-in-out infinite alternate;
}
@keyframes ftt-shimmer { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .4; } }
@keyframes ftt-sway { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1.5deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ftt-figure { 0% { transform: translateX(-50%) translateY(0); } 25% { transform: translateX(-50%) translateY(-2px); } 50% { transform: translateX(-50%) translateY(0); } 75% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ftt-chain { 0% { transform: rotate(12deg); } 100% { transform: rotate(18deg); } }
@keyframes ftt-tick { 0% { opacity: 1; } 50% { opacity: .85; } 100% { opacity: .95; } }
@keyframes ftt-lamp { 0% { opacity: .5; transform: scale(.9); } 50% { opacity: .9; transform: scale(1.1); } 100% { opacity: .6; transform: scale(.95); } }

/* i-have-found-it — tense, dim interior, watch on nail */
.scn-i-have-found-it {
  background:
    radial-gradient(ellipse at 50% 70%, #2a2438 0%, transparent 65%),
    linear-gradient(180deg, #1c1828 0%, #221e30 40%, #181420 100%);
}
.scn-i-have-found-it .cell-walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(24,20,32,.4) 0%, transparent 20%, transparent 80%, rgba(24,20,32,.4) 100%);
}
.scn-i-have-found-it .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #282430 0%, #1c1820 100%);
  box-shadow: inset 0 6px 16px rgba(0,0,0,.5);
}
.scn-i-have-found-it .nail {
  position: absolute; top: 18%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-i-have-found-it .watch-hanging {
  position: absolute; top: 19%; left: 50%; width: 4px; height: 48px;
  background: linear-gradient(180deg, #b0a080 0%, #807050 100%);
  transform: translateX(-50%);
  border-radius: 1px;
  animation: ihf-sway 3s ease-in-out infinite;
}
.scn-i-have-found-it .watch-face {
  position: absolute; top: 32%; left: 50%; width: 26px; height: 26px;
  background: radial-gradient(circle, #e8d8b0 0%, #c8b080 50%, #a08860 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 16px 4px rgba(200,176,128,.25), 0 0 32px 8px rgba(200,176,128,.1);
  animation: ihf-glow 4s ease-in-out infinite alternate;
}
.scn-i-have-found-it .figure {
  position: absolute; bottom: 14%; left: 50%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #14101e 0%, #0a0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ihf-figure 6s ease-in-out infinite;
}
.scn-i-have-found-it .arm-up {
  position: absolute; bottom: 44%; left: 52%; width: 4px; height: 32px;
  background: linear-gradient(180deg, #14101e 0%, #0a0812 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(-20deg);
  animation: ihf-arm 4s ease-in-out infinite alternate;
}
.scn-i-have-found-it .shadow-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,.15) 20px, rgba(0,0,0,.15) 22px, transparent 22px, transparent 42px);
  filter: blur(2px);
  animation: ihf-bars 10s ease-in-out infinite alternate;
}
@keyframes ihf-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ihf-glow { 0% { box-shadow: 0 0 12px 3px rgba(200,176,128,.2), 0 0 24px 6px rgba(200,176,128,.08); } 50% { box-shadow: 0 0 20px 6px rgba(200,176,128,.35), 0 0 40px 12px rgba(200,176,128,.15); } 100% { box-shadow: 0 0 14px 4px rgba(200,176,128,.25), 0 0 28px 8px rgba(200,176,128,.1); } }
@keyframes ihf-figure { 0% { transform: translateX(-50%) translateY(0); } 33% { transform: translateX(-50%) translateY(-2px); } 66% { transform: translateX(-50%) translateY(1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ihf-arm { 0% { transform: rotate(-25deg); } 100% { transform: rotate(-15deg); } }
@keyframes ihf-bars { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }

/* experiment-in-court — tense, dim interior, staircase and cupboard */
.scn-experiment-in-court {
  background:
    radial-gradient(ellipse at 50% 60%, #1e1a2c 0%, transparent 70%),
    linear-gradient(180deg, #16121e 0%, #1e1a2a 30%, #282438 60%, #1c1824 100%);
}
.scn-experiment-in-court .court-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(16,12,24,.5) 0%, transparent 15%, transparent 85%, rgba(16,12,24,.5) 100%);
}
.scn-experiment-in-court .staircase {
  position: absolute; bottom: 0; left: 35%; width: 160px; height: 70%;
  background: repeating-linear-gradient(0deg, #3a3040 0px, #3a3040 8px, #2a2230 8px, #2a2230 10px);
  transform: skewX(-8deg);
  transform-origin: bottom left;
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: eic-stairs 8s ease-in-out infinite alternate;
}
.scn-experiment-in-court .railing {
  position: absolute; bottom: 60%; left: 36%; width: 140px; height: 4px;
  background: linear-gradient(90deg, #5a4a4a 0%, #4a3a3a 100%);
  transform: skewX(-8deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
}
.scn-experiment-in-court .cupboard {
  position: absolute; bottom: 6%; right: 18%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.05);
  animation: eic-cupboard 12s ease-in-out infinite;
}
.scn-experiment-in-court .figure {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #0e0a16 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eic-climb 5s ease-in-out infinite;
}
.scn-experiment-in-court .shadow {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: eic-shadow 5s ease-in-out infinite;
}
.scn-experiment-in-court .doorway {
  position: absolute; bottom: 2%; right: 12%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #1a1620 0%, #0e0a14 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-experiment-in-court .keyhole-glow {
  position: absolute; bottom: 42%; right: 14.5%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(255,208,128,.3), 0 0 24px 6px rgba(255,208,128,.1);
  animation: eic-keyhole 3s ease-in-out infinite alternate;
}
@keyframes eic-stairs { 0% { transform: skewX(-8deg) scaleY(1); } 50% { transform: skewX(-8deg) scaleY(1.02); } 100% { transform: skewX(-8deg) scaleY(.98); } }
@keyframes eic-cupboard { 0% { transform: translateY(0); } 33% { transform: translateY(-1px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes eic-climb { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(8px) translateY(-1px); } 75% { transform: translateX(4px) translateY(-4px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes eic-shadow { 0% { transform: translateX(0) scale(1); opacity: .5; } 50% { transform: translateX(6px) scale(1.1); opacity: .7; } 100% { transform: translateX(0) scale(1); opacity: .5; } }
@keyframes eic-keyhole { 0% { box-shadow: 0 0 10px 2px rgba(255,208,128,.2), 0 0 20px 4px rgba(255,208,128,.08); } 100% { box-shadow: 0 0 16px 5px rgba(255,208,128,.4), 0 0 32px 10px rgba(255,208,128,.15); } }

/* twenty-four-hours-given — tense, dim interior, committee departure */
.scn-twenty-four-hours-given {
  background:
    radial-gradient(ellipse at 50% 80%, #2a2438 0%, transparent 65%),
    radial-gradient(ellipse at 20% 30%, #1e1a2c 0%, transparent 50%),
    linear-gradient(180deg, #14101e 0%, #1c182a 30%, #221e30 60%, #181420 100%);
}
.scn-twenty-four-hours-given .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(20,16,30,.6) 0%, transparent 10%, transparent 90%, rgba(20,16,30,.6) 100%);
}
.scn-twenty-four-hours-given .committee-left {
  position: absolute; bottom: 8%; left: 8%; width: 60px; height: 72px;
  background: linear-gradient(180deg, #0e0a16 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tfg-left 6s ease-in-out infinite alternate;
}
.scn-twenty-four-hours-given .committee-right {
  position: absolute; bottom: 12%; right: 12%; width: 48px; height: 66px;
  background: linear-gradient(180deg, #0e0a16 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tfg-right 6s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-twenty-four-hours-given .central-figure {
  position: absolute; bottom: 14%; left: 50%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #161220 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(0,0,0,.3);
  animation: tfg-central 4s ease-in-out infinite;
}
.scn-twenty-four-hours-given .departing-figure {
  position: absolute; bottom: 12%; left: 70%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #181420 0%, #0c0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tfg-depart 8s linear infinite;
}
.scn-twenty-four-hours-given .lamp-overhead {
  position: absolute; top: 6%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,160,80,.2) 0%, rgba(200,160,80,.05) 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(4px);
  animation: tfg-lamp 5s ease-in-out infinite alternate;
}
.scn-twenty-four-hours-given .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: tfg-pool 7s ease-in-out infinite alternate;
}
.scn-twenty-four-hours-given .door-open {
  position: absolute; bottom: 2%; right: 2%; width: 50px; height: 80px;
  background: linear-gradient(90deg, #1a1624 0%, #0e0a14 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 16px rgba(0,0,0,.5);
  transform: skewY(2deg);
  animation: tfg-door 10s ease-in-out infinite;
}
@keyframes tfg-left { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tfg-right { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tfg-central { 0% { transform: translateX(-50%) translateY(0); } 33% { transform: translateX(-50%) translateY(-2px); } 66% { transform: translateX(-50%) translateY(1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes tfg-depart { 0% { transform: translateX(0) translateY(0); opacity: 1; } 30% { transform: translateX(20px) translateY(-1px); opacity: .8; } 60% { transform: translateX(40px) translateY(-2px); opacity: .6; } 100% { transform: translateX(80px) translateY(-3px); opacity: 0; } }
@keyframes tfg-lamp { 0% { opacity: .4; transform: translateX(-50%) scale(.9); } 50% { opacity: .8; transform: translateX(-50%) scale(1.1); } 100% { opacity: .5; transform: translateX(-50%) scale(.95); } }
@keyframes tfg-pool { 0% { opacity: .3; transform: scaleX(1); } 50% { opacity: .5; transform: scaleX(1.05); } 100% { opacity: .35; transform: scaleX(.98); } }
@keyframes tfg-door { 0% { transform: skewY(2deg) scaleX(1); } 33% { transform: skewY(2deg) scaleX(1.02); } 66% { transform: skewY(2deg) scaleX(.98); } 100% { transform: skewY(2deg) scaleX(1); } }

/* ----- scene: the-hat-pin-relief ----- */
.scn-the-hat-pin-relief {
  background:
    linear-gradient(180deg, #14101e 0%, #1a1628 40%, #0d0a14 100%),
    radial-gradient(ellipse at 50% 20%, #2a2440 0%, transparent 70%);
}
.scn-the-hat-pin-relief .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1628 0%, #0e0a18 60%, #06040a 100%);
  animation: hpr-ambient 12s ease-in-out infinite alternate;
}
.scn-the-hat-pin-relief .wall-shadow {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 40%;
  background: radial-gradient(ellipse at 40% 50%, #1e1a2e 0%, transparent 70%);
  border-radius: 40% 30% 50% 30%;
  filter: blur(6px);
  animation: hpr-shadow 8s ease-in-out infinite alternate;
}
.scn-the-hat-pin-relief .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #2a223a 0%, #1a1228 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-the-hat-pin-relief .figure-torso {
  position: absolute; bottom: 26%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpr-breathe 5s ease-in-out infinite;
}
.scn-the-hat-pin-relief .figure-hand {
  position: absolute; bottom: 42%; left: 50%; width: 14px; height: 12px;
  background: radial-gradient(circle at 30% 40%, #2a1e32 0%, #100c1c 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: hpr-hand 4s ease-in-out infinite alternate;
}
.scn-the-hat-pin-relief .hatpin-glow {
  position: absolute; bottom: 48%; left: 54%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d0c480 0%, #a09060 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b0a060, 0 0 40px 12px rgba(176,160,96,.3);
  animation: hpr-glow 3s ease-in-out infinite alternate;
}
.scn-the-hat-pin-relief .hatpin-body {
  position: absolute; bottom: 50%; left: 54%; width: 2px; height: 14px;
  background: linear-gradient(180deg, #d0c480 0%, #8a7a40 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  box-shadow: 0 0 4px #908040;
}
.scn-the-hat-pin-relief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0e0a14 0%, #06040a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-the-hat-pin-relief .edge-light {
  position: absolute; top: 30%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 100% 50%, rgba(200,180,120,.08) 0%, transparent 70%);
  filter: blur(10px);
}
@keyframes hpr-ambient {
  0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 }
}
@keyframes hpr-shadow {
  0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(1.02) } 100% { transform: translateX(2px) scale(.98) }
}
@keyframes hpr-breathe {
  0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) }
}
@keyframes hpr-hand {
  0% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(25deg) translate(1px,-1px) } 100% { transform: rotate(20deg) translate(0,0) }
}
@keyframes hpr-glow {
  0% { box-shadow: 0 0 14px 4px #b0a060, 0 0 30px 8px rgba(176,160,96,.2); opacity: .8 } 50% { box-shadow: 0 0 26px 8px #d0c480, 0 0 50px 16px rgba(208,196,128,.4); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #b0a060, 0 0 36px 10px rgba(176,160,96,.25); opacity: .85 }
}

/* ----- scene: story-of-boris-and-students ----- */
.scn-story-of-boris-and-students {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 50% 30%, #f0ece0 0%, transparent 70%);
}
.scn-story-of-boris-and-students .lecture-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 60%, #a09888 100%);
}
.scn-story-of-boris-and-students .window-bright {
  position: absolute; top: 5%; left: 60%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #fffef0 0%, #f0e8d0 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 12px rgba(0,0,0,.1), 0 0 40px 20px rgba(255,254,240,.3);
  animation: bs-window 7s ease-in-out infinite alternate;
}
.scn-story-of-boris-and-students .seat-row {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #8a7a66 0%, #6a5a46 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
}
.scn-story-of-boris-and-students .student-silhouette {
  position: absolute; bottom: 32%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a3228 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-students 5s ease-in-out infinite;
}
.scn-story-of-boris-and-students .boris-figure {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,.2);
  animation: bs-boris 6s ease-in-out infinite alternate;
}
.scn-story-of-boris-and-students .chalkboard {
  position: absolute; top: 15%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-story-of-boris-and-students .shadow-stripe {
  position: absolute; top: 0; left: 50%; width: 6%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 50%, rgba(0,0,0,.1) 100%);
  transform: skewX(-10deg);
  filter: blur(2px);
  animation: bs-stripe 10s ease-in-out infinite;
}
@keyframes bs-window {
  0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 }
}
@keyframes bs-students {
  0% { transform: translateX(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-1px) translateY(0) rotate(-1deg) } 75% { transform: translateX(1px) translateY(-2px) rotate(0) } 100% { transform: translateX(0) }
}
@keyframes bs-boris {
  0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) }
}
@keyframes bs-stripe {
  0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .2 }
}

/* ----- scene: natacha-morning-freshness ----- */
.scn-natacha-morning-freshness {
  background:
    linear-gradient(180deg, #b0d8e8 0%, #d0e8f0 30%, #e8f0e8 60%, #c0d8c0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-natacha-morning-freshness .sky-sunny {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90c0e0 0%, #b0d8f0 100%);
  animation: nmf-sky 15s ease-in-out infinite alternate;
}
.scn-natacha-morning-freshness .sunburst {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8a0 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(8px);
  animation: nmf-sun 20s ease-in-out infinite;
}
.scn-natacha-morning-freshness .garden-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #80a860 0%, #508030 40%, #306020 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
}
.scn-natacha-morning-freshness .natacha-figure {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #f0ece0 0%, #d0c8b8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmf-figure 5s ease-in-out infinite;
}
.scn-natacha-morning-freshness .white-voile {
  position: absolute; bottom: 40%; left: 28%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffffff 0%, #d0d0c0 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: nmf-voile 6s ease-in-out infinite alternate;
}
.scn-natacha-morning-freshness .flower-bush {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #c0a060 0%, #70a050 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: nmf-bush 4s ease-in-out infinite;
}
.scn-natacha-morning-freshness .butterfly {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 6px;
  background: radial-gradient(circle, #c86840 0%, #a04830 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: nmf-butterfly 12s linear infinite;
}
.scn-natacha-morning-freshness .dew-drop {
  position: absolute; bottom: 32%; left: 50%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffffff 0%, #b8d8f0 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,.4);
  animation: nmf-dew 2s ease-in-out infinite alternate;
}
.scn-natacha-morning-freshness .ground-path {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(180deg, #b09870 0%, #908058 100%);
  border-radius: 10px;
}
@keyframes nmf-sky {
  0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 }
}
@keyframes nmf-sun {
  0% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02) } 100% { transform: translateX(-50%) translateY(0) scale(1) }
}
@keyframes nmf-figure {
  0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes nmf-voile {
  0% { transform: translateY(0) scaleY(1) opacity(.7) } 50% { transform: translateY(-1px) scaleY(1.05) opacity(.9) } 100% { transform: translateY(0) scaleY(1) opacity(.7) }
}
@keyframes nmf-bush {
  0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) }
}
@keyframes nmf-butterfly {
  0% { transform: translateX(-20px) translateY(0) rotate(0) } 25% { transform: translateX(-10px) translateY(-8px) rotate(10deg) } 50% { transform: translateX(0) translateY(-4px) rotate(-5deg) } 75% { transform: translateX(10px) translateY(-10px) rotate(8deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) }
}
@keyframes nmf-dew {
  0% { transform: scale(1) opacity(.6) } 100% { transform: scale(1.2) opacity(1) }
}

/* ----- scene: talk-of-marriage ----- */
.scn-talk-of-marriage {
  background:
    linear-gradient(180deg, #b8d8e0 0%, #c8e0d8 40%, #b0c8a8 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-talk-of-marriage .garden-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a0c8d8 0%, #c8e0e8 100%);
  animation: tm-sky 20s ease-in-out infinite alternate;
}
.scn-talk-of-marriage .sunlight {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: tm-sun 15s ease-in-out infinite;
}
.scn-talk-of-marriage .garden-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #70a050 0%, #408030 40%, #205020 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
}
.scn-talk-of-marriage .khorma-figure {
  position: absolute; bottom: 26%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-khor 4s ease-in-out infinite;
}
.scn-talk-of-marriage .natacha-figure {
  position: absolute; bottom: 28%; left: 50%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-natacha 5s ease-in-out infinite alternate;
}
.scn-talk-of-marriage .bench {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.scn-talk-of-marriage .rose-hedge {
  position: absolute; bottom: 15%; left: 60%; width: 25px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #b87878 0%, #a06050 40%, #408030 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: tm-hedge 6s ease-in-out infinite;
}
.scn-talk-of-marriage .distant-tree {
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #509040 0%, #306820 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(5px);
}
@keyframes tm-sky {
  0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 }
}
@keyframes tm-sun {
  0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-1px) scale(1.01) } 100% { transform: translate(-1px,0) scale(1) }
}
@keyframes tm-khor {
  0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes tm-natacha {
  0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) }
}
@keyframes tm-hedge {
  0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(1) }
}

/* police-withdrawn-news */
.scn-police-withdrawn-news {
  background: 
    linear-gradient(180deg, #f5c674 0%, #e89b4a 40%, #8a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #f5c674 0%, transparent 60%);
}
.scn-police-withdrawn-news .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f5b85a 0%, #c87a3a 60%);
  animation: pwn-sky 12s ease-in-out infinite alternate;
}
.scn-police-withdrawn-news .villa {
  position: absolute; bottom: 30%; left: 10%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: pwn-villa 8s ease-in-out infinite;
}
.scn-police-withdrawn-news .hedge {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 10%;
  background: linear-gradient(180deg, #5a6a3a 0%, #2a3a1a 100%);
  border-radius: 30% 30% 50% 50%;
  animation: pwn-hedge 14s ease-in-out infinite alternate;
}
.scn-police-withdrawn-news .path {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: pwn-path 6s ease-in-out infinite;
}
.scn-police-withdrawn-news .figure-michael {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pwn-walk 4s ease-in-out infinite;
}
.scn-police-withdrawn-news .gate {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: pwn-gate 10s ease-in-out infinite;
}
.scn-police-withdrawn-news .pwn-c1,
.scn-police-withdrawn-news .pwn-c2 {
  position: absolute; top: 12%; height: 12px;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: pwn-drift 40s linear infinite;
}
.scn-police-withdrawn-news .pwn-c1 { left: 10%; width: 50px; }
.scn-police-withdrawn-news .pwn-c2 { left: 60%; width: 70px; animation-delay: -20s; animation-direction: reverse; }
@keyframes pwn-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pwn-villa { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pwn-hedge { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes pwn-path { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pwn-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes pwn-gate { 0% { transform: scaleX(1); } 25% { transform: scaleX(0.3); } 50% { transform: scaleX(1); } 75% { transform: scaleX(0.3); } 100% { transform: scaleX(1); } }
@keyframes pwn-drift { 0% { transform: translateX(0); } 100% { transform: translateX(150vw); } }

/* family-intimacy-at-dusk */
.scn-family-intimacy-at-dusk {
  background: 
    linear-gradient(180deg, #f0c878 0%, #c89a4a 40%, #6a4a2a 100%),
    radial-gradient(ellipse at 30% 70%, #f0d898 0%, transparent 60%);
}
.scn-family-intimacy-at-dusk .veranda-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8a85a 0%, #8a6a3a 100%);
  animation: fid-bg 10s ease-in-out infinite alternate;
}
.scn-family-intimacy-at-dusk .column {
  position: absolute; bottom: 30%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-family-intimacy-at-dusk .col-left { left: 15%; }
.scn-family-intimacy-at-dusk .col-right { right: 15%; }
.scn-family-intimacy-at-dusk .wheelchair {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 18%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fid-wheelchair 6s ease-in-out infinite;
}
.scn-family-intimacy-at-dusk .figure-matrena {
  position: absolute; bottom: 22%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fid-push 4s ease-in-out infinite;
}
.scn-family-intimacy-at-dusk .figure-feodor {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fid-sit 5s ease-in-out infinite;
}
.scn-family-intimacy-at-dusk .table {
  position: absolute; bottom: 20%; left: 20%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fid-table 8s ease-in-out infinite;
}
.scn-family-intimacy-at-dusk .glass {
  position: absolute; bottom: 28%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(200,180,120,0.4);
  animation: fid-glass 3s ease-in-out infinite alternate;
}
.scn-family-intimacy-at-dusk .glass-1 { left: 22%; }
.scn-family-intimacy-at-dusk .glass-2 { left: 35%; animation-delay: -1.5s; }
@keyframes fid-bg { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes fid-wheelchair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes fid-push { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes fid-sit { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fid-table { 0% { transform: scale(1); } 50% { transform: scale(0.98); } }
@keyframes fid-glass { 0% { box-shadow: 0 0 4px 1px rgba(200,180,120,0.3); } 50% { box-shadow: 0 0 12px 6px rgba(200,180,120,0.6); } 100% { box-shadow: 0 0 4px 1px rgba(200,180,120,0.3); } }

/* soir-des-iles-song */
.scn-soir-des-iles-song {
  background: 
    linear-gradient(180deg, #f0a050 0%, #c07830 40%, #503020 100%),
    radial-gradient(ellipse at 70% 80%, #f0c060 0%, transparent 60%);
}
.scn-soir-des-iles-song .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #f0b060 0%, #c88040 70%);
  animation: sis-sky 15s ease-in-out infinite alternate;
}
.scn-soir-des-iles-song .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #705840 0%, #302018 100%);
  animation: sis-sea 10s ease-in-out infinite alternate;
}
.scn-soir-des-iles-song .islands {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, #4a3a2a 0%, transparent 70%), radial-gradient(ellipse at 70% 100%, #3a2a1a 0%, transparent 60%);
  animation: sis-islands 20s ease-in-out infinite alternate;
}
.scn-soir-des-iles-song .veranda-rail {
  position: absolute; bottom: 42%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: sis-rail 5s ease-in-out infinite;
}
.scn-soir-des-iles-song .figure-natacha {
  position: absolute; bottom: 44%; left: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sis-sing 4s ease-in-out infinite;
}
.scn-soir-des-iles-song .figure-boris {
  position: absolute; bottom: 44%; left: 50%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sis-play 6s ease-in-out infinite;
}
.scn-soir-des-iles-song .note {
  position: absolute; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c0a060 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,208,128,0.5);
  animation: sis-note 7s ease-in-out infinite;
}
.scn-soir-des-iles-song .note-1 { bottom: 52%; left: 38%; animation-delay: 0s; }
.scn-soir-des-iles-song .note-2 { bottom: 58%; left: 42%; animation-delay: -2.3s; }
.scn-soir-des-iles-song .note-3 { bottom: 48%; left: 45%; animation-delay: -4.6s; }
@keyframes sis-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sis-sea { 0% { transform: translateY(0); } 100% { transform: translateY(3px); } }
@keyframes sis-islands { 0% { transform: scale(1); } 50% { transform: scale(0.97); } 100% { transform: scale(1); } }
@keyframes sis-rail { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes sis-sing { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.05) rotate(2deg); } 50% { transform: scale(1) rotate(0); } 75% { transform: scale(1.05) rotate(-2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes sis-play { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0); } }
@keyframes sis-note { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:0.8; } 50% { transform: translateY(-20px) rotate(20deg) scale(1.2); opacity:1; } 100% { transform: translateY(-40px) rotate(40deg) scale(0.8); opacity:0; } }

/* rouletabille-as-porcelain-statue */
.scn-rouletabille-as-porcelain-statue {
  background: 
    linear-gradient(180deg, #f0d080 0%, #c8a050 40%, #6a4a2a 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-rouletabille-as-porcelain-statue .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a7a3a 0%, #3a4a1a 100%);
  border-radius: 30% 30% 0 0;
  animation: rps-lawn 8s ease-in-out infinite alternate;
}
.scn-rouletabille-as-porcelain-statue .statue-base {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: rps-base 2s ease-in-out infinite;
}
.scn-rouletabille-as-porcelain-statue .statue-body {
  position: absolute; bottom: 36%; left: 47%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #f0e8e0 0%, #c8c0b8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 4px rgba(200,200,200,0.3);
  animation: rps-wobble 3s ease-in-out infinite;
}
.scn-rouletabille-as-porcelain-statue .statue-arm {
  position: absolute; bottom: 42%; left: 43%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8e0d8 0%, #c0b8b0 100%);
  border-radius: 30% 30% 50% 50%;
  transform-origin: top center;
  animation: rps-arm 4s ease-in-out infinite;
}
.scn-rouletabille-as-porcelain-statue .bush {
  position: absolute; bottom: 22%; width: 15%; height: 16%;
  background: radial-gradient(ellipse at 50% 100%, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: rps-bush 12s ease-in-out infinite alternate;
}
.scn-rouletabille-as-porcelain-statue .bush-1 { left: 5%; }
.scn-rouletabille-as-porcelain-statue .bush-2 { right: 5%; animation-delay: -6s; }
.scn-rouletabille-as-porcelain-statue .lamp {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 6px;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(240,208,128,0.5);
  animation: rps-lamp 4s ease-in-out infinite alternate;
}
.scn-rouletabille-as-porcelain-statue .figure-matrena {
  position: absolute; bottom: 24%; left: 20%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rps-matrena 5s ease-in-out infinite;
}
@keyframes rps-lawn { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes rps-base { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes rps-wobble { 0% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(-3deg) scale(1.02); } 30% { transform: rotate(3deg) scale(0.98); } 45% { transform: rotate(-2deg) scale(1); } 60% { transform: rotate(2deg) scale(1.01); } 75% { transform: rotate(-1deg) scale(0.99); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes rps-arm { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes rps-bush { 0% { transform: scale(1); } 100% { transform: scale(0.95); } }
@keyframes rps-lamp { 0% { box-shadow: 0 0 12px 4px rgba(240,208,128,0.4); } 100% { box-shadow: 0 0 24px 8px rgba(240,208,128,0.7); } }
@keyframes rps-matrena { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(0); } }

.scn-michael-dies { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-michael-dies .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-michael-dies .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 100%); }
.scn-michael-dies .window { position: absolute; top: 15%; left: 20%; width: 35%; height: 45%; background: linear-gradient(180deg, #4a3a6e 0%, #a06050 40%, #d09060 70%, #e0c080 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,150,.3); animation: md-sky 12s ease-in-out infinite alternate; }
.scn-michael-dies .window-frame { position: absolute; top: 15%; left: 20%; width: 35%; height: 45%; border: 6px solid #1a0e0a; box-sizing: border-box; border-radius: 4px; }
.scn-michael-dies .figure-kneeling { position: absolute; bottom: 28%; left: 45%; width: 18px; height: 40px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-kneel 4s ease-in-out infinite; }
.scn-michael-dies .figure-exit { position: absolute; bottom: 28%; left: 70%; width: 14px; height: 36px; background: #0f0f1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: md-exit 6s ease-in-out infinite; }
.scn-michael-dies .body { position: absolute; bottom: 25%; left: 55%; width: 20px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 8px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-michael-dies .candle { position: absolute; bottom: 30%; left: 35%; width: 6px; height: 20px; background: linear-gradient(180deg, #f0c060 0%, #a08040 100%); border-radius: 50% 50% 4px 4px; animation: md-candle 3s ease-in-out infinite alternate; }
@keyframes md-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes md-kneel { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes md-exit { 0% { transform: translateX(0) scale(1); opacity: .8; } 50% { transform: translateX(-15px) scale(.9); opacity: .5; } 100% { transform: translateX(-30px) scale(.8); opacity: .2; } }
@keyframes md-candle { 0% { box-shadow: 0 0 12px 4px #f0c060, 0 0 24px 8px rgba(240,192,96,.3); } 100% { box-shadow: 0 0 18px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.5); } }

.scn-regrets-for-death { background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 50%, #4a3a5e 100%), radial-gradient(ellipse at 30% 100%, #5a4a6e 0%, transparent 70%); }
.scn-regrets-for-death .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 4% 4% 0 0; }
.scn-regrets-for-death .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(135deg, #2a1a2a 0%, #1a0e1a 100%); }
.scn-regrets-for-death .window { position: absolute; top: 10%; right: 15%; width: 30%; height: 50%; background: linear-gradient(180deg, #4a3a6e 0%, #a06050 40%, #d09060 70%, #e0c080 100%); border-radius: 4px; animation: rd-sky 15s ease-in-out infinite alternate; }
.scn-regrets-for-death .figure-left { position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rd-figure-left 8s ease-in-out infinite; }
.scn-regrets-for-death .figure-right { position: absolute; bottom: 22%; right: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rd-figure-right 8s ease-in-out infinite reverse; }
.scn-regrets-for-death .table { position: absolute; bottom: 25%; left: 40%; width: 30%; height: 6px; background: #2a1a1a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-regrets-for-death .document { position: absolute; bottom: 32%; left: 45%; width: 20px; height: 14px; background: #c0a080; border-radius: 2px; transform: rotate(-5deg); animation: rd-document 3s ease-in-out infinite; }
.scn-regrets-for-death .lamp { position: absolute; bottom: 32%; left: 38%; width: 8px; height: 12px; background: radial-gradient(circle, #f0c060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(240,192,96,.4); animation: rd-lamp 2s ease-in-out infinite alternate; }
@keyframes rd-sky { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes rd-figure-left { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes rd-figure-right { 0%, 100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes rd-document { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes rd-lamp { 0% { box-shadow: 0 0 12px 4px #f0c060, 0 0 24px 8px rgba(240,192,96,.3); } 100% { box-shadow: 0 0 18px 6px #ffd080, 0 0 32px 12px rgba(255,208,128,.5); } }

.scn-chase-for-katharina { background: linear-gradient(180deg, #2a3a5e 0%, #4a5a7e 40%, #c08060 70%, #e0c080 100%), radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 70%); }
.scn-chase-for-katharina .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #4a5a7e 0%, #c08060 100%); animation: cfk-sky 20s ease-in-out infinite alternate; }
.scn-chase-for-katharina .slope { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; }
.scn-chase-for-katharina .bridge { position: absolute; bottom: 45%; left: 20%; width: 60%; height: 8px; background: #2a1a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-chase-for-katharina .figure-katharina { position: absolute; bottom: 55%; left: 45%; width: 16px; height: 30px; background: #0f0f1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); animation: cfk-slide 4s ease-in-out infinite; }
.scn-chase-for-katharina .figure-police-1 { position: absolute; bottom: 40%; left: 15%; width: 18px; height: 38px; background: #0f0f1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: cfk-run1 6s linear infinite; }
.scn-chase-for-katharina .figure-police-2 { position: absolute; bottom: 38%; left: 5%; width: 18px; height: 38px; background: #0f0f1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(8deg); animation: cfk-run2 6s linear infinite reverse; }
.scn-chase-for-katharina .bush-1 { position: absolute; bottom: 30%; left: 10%; width: 30px; height: 20px; background: radial-gradient(ellipse at 50% 100%, #3a4a3a 0%, transparent 100%); border-radius: 50%; animation: cfk-bush 12s ease-in-out infinite; }
.scn-chase-for-katharina .bush-2 { position: absolute; bottom: 32%; right: 15%; width: 40px; height: 24px; background: radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 100%); border-radius: 50%; animation: cfk-bush 15s ease-in-out infinite reverse; }
@keyframes cfk-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes cfk-slide { 0% { transform: translate(0,0) rotate(15deg); } 50% { transform: translate(10px, -15px) rotate(10deg); } 100% { transform: translate(20px, -30px) rotate(5deg); } }
@keyframes cfk-run1 { 0% { transform: translateX(0) rotate(5deg); } 100% { transform: translateX(40vw) rotate(5deg); } }
@keyframes cfk-run2 { 0% { transform: translateX(0) rotate(8deg); } 100% { transform: translateX(50vw) rotate(8deg); } }
@keyframes cfk-bush { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }

.scn-prince-has-papers { background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 50%, #5a4a6e 100%), radial-gradient(ellipse at 80% 100%, #6a5a7e 0%, transparent 70%); }
.scn-prince-has-papers .bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1a0e1a 0%, #2a1a2a 100%); }
.scn-prince-has-papers .window { position: absolute; top: 10%; left: 10%; width: 40%; height: 60%; background: linear-gradient(180deg, #4a3a6e 0%, #a06050 40%, #d09060 70%, #e0c080 100%); border-radius: 4px; animation: php-sky 18s ease-in-out infinite alternate; }
.scn-prince-has-papers .figure-prince { position: absolute; bottom: 20%; left: 55%; width: 22px; height: 55px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: php-prince 6s ease-in-out infinite; }
.scn-prince-has-papers .figure-koupriane { position: absolute; bottom: 20%; right: 55%; width: 22px; height: 55px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: php-koupriane 8s ease-in-out infinite; }
.scn-prince-has-papers .papers { position: absolute; bottom: 40%; left: 50%; width: 18px; height: 12px; background: #c0a080; border-radius: 2px; transform: rotate(-10deg); animation: php-papers 4s ease-in-out infinite; }
.scn-prince-has-papers .desk { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 6px; background: #2a1a1a; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes php-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes php-prince { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes php-koupriane { 0%, 100% { transform: translateY(0) rotate(2deg) scale(1); } 50% { transform: translateY(-2px) rotate(-2deg) scale(.95); } }
@keyframes php-papers { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }

/* scene 1: talking-about-annouchka */
.scn-talking-about-annouchka {
  background:
    radial-gradient(ellipse 80% 60% at 40% 50%, #3a2a1a 0%, #1a1208 90%),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-talking-about-annouchka .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  animation: ta-wall 14s ease-in-out infinite alternate;
}
.scn-talking-about-annouchka .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 120% 80% at 30% 70%, transparent 30%, #0e0a05 100%);
  animation: ta-shadow 8s ease-in-out infinite alternate;
}
.scn-talking-about-annouchka .figure-left {
  position: absolute; bottom: 25%; left: 18%; width: 24px; height: 60px;
  background: linear-gradient(90deg, #2a1a0a 30%, #1a1008 70%);
  border-radius: 50% 20% 40% 40% / 60% 40% 40% 60%;
  animation: ta-fig1 5s ease-in-out infinite;
}
.scn-talking-about-annouchka .figure-right {
  position: absolute; bottom: 25%; right: 22%; width: 28px; height: 64px;
  background: linear-gradient(270deg, #2a1a0a 30%, #1a1008 70%);
  border-radius: 20% 50% 40% 40% / 40% 60% 60% 40%;
  animation: ta-fig2 5.3s ease-in-out infinite reverse;
}
.scn-talking-about-annouchka .gaslamp {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
}
.scn-talking-about-annouchka .glow-a {
  position: absolute; top: 10%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e0b060 0%, #c08040 30%, transparent 70%);
  animation: ta-glowA 3s ease-in-out infinite alternate;
}
.scn-talking-about-annouchka .glow-b {
  position: absolute; top: 12%; left: 52%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 40%, transparent 70%);
  animation: ta-glowB 2.7s ease-in-out infinite alternate-reverse;
}
.scn-talking-about-annouchka .dust {
  position: absolute; inset: 0;
  pointer-events: none;
  background-image: radial-gradient(1px 1px at 20% 30%, rgba(200,180,140,0.15) 0%, transparent 100%),
                    radial-gradient(1px 1px at 60% 70%, rgba(200,180,140,0.1) 0%, transparent 100%),
                    radial-gradient(1px 1px at 80% 20%, rgba(200,180,140,0.12) 0%, transparent 100%);
  animation: ta-dust 30s linear infinite;
}
@keyframes ta-wall {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.005); }
  100% { opacity: 0.92; transform: scale(0.998); }
}
@keyframes ta-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.65; }
}
@keyframes ta-fig1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(2px,-1px) rotate(2deg); }
  50% { transform: translate(4px,0) rotate(-1deg); }
  75% { transform: translate(1px,-2px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ta-fig2 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(-2px,-1px) rotate(-2deg); }
  50% { transform: translate(-4px,0) rotate(1deg); }
  75% { transform: translate(-1px,-2px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ta-glowA {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes ta-glowB {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.08); opacity: 0.9; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes ta-dust {
  0% { background-position: 0 0, 0 0, 0 0; }
  100% { background-position: 200px 100px, 300px -50px, -150px 80px; }
}

/* scene 2: natacha-student-michael-help */
.scn-natacha-student-michael-help {
  background:
    radial-gradient(ellipse 90% 70% at 50% 40%, #3a2a1a 0%, #1a1208 90%),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-natacha-student-michael-help .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: ns-room 16s ease-in-out infinite alternate;
}
.scn-natacha-student-michael-help .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ns-desk 6s ease-in-out infinite alternate;
}
.scn-natacha-student-michael-help .books {
  position: absolute; bottom: 30%; left: 22%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ns-books 8s ease-in-out infinite;
}
.scn-natacha-student-michael-help .student {
  position: absolute; bottom: 30%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  animation: ns-fig1 5s ease-in-out infinite;
}
.scn-natacha-student-michael-help .helper {
  position: absolute; bottom: 30%; right: 24%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  animation: ns-fig2 5.4s ease-in-out infinite reverse;
}
.scn-natacha-student-michael-help .lamp {
  position: absolute; top: 15%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 3px;
  animation: ns-lamp 4s ease-in-out infinite alternate;
}
.scn-natacha-student-michael-help .lamp-glow {
  position: absolute; top: 8%; left: 44%; width: 70px; height: 70px;
  background: radial-gradient(circle, #e0b060 0%, #c08040 30%, transparent 70%);
  animation: ns-glow 3s ease-in-out infinite alternate;
}
@keyframes ns-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ns-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes ns-books {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-1px) rotate(2deg); }
  50% { transform: translate(2px,0) rotate(-1deg); }
  75% { transform: translate(1px,-2px) rotate(1deg); }
}
@keyframes ns-fig1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-1px) rotate(1deg); }
  50% { transform: translate(2px,0) rotate(-1deg); }
  75% { transform: translate(1px,-2px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ns-fig2 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(-2px,-1px) rotate(-1deg); }
  50% { transform: translate(-4px,0) rotate(1deg); }
  75% { transform: translate(-2px,-2px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ns-lamp {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.08); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes ns-glow {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* scene 3: dining-with-gounsovski */
.scn-dining-with-gounsovski {
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%, #4a2a1a 0%, #1a1008 90%),
    linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
}
.scn-dining-with-gounsovski .bg-dining {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: dg-bg 20s ease-in-out infinite alternate;
}
.scn-dining-with-gounsovski .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 5% 5% / 60% 60% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: dg-table 12s ease-in-out infinite alternate;
}
.scn-dining-with-gounsovski .plate {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 8px;
  background: radial-gradient(circle, #7a5a3a 30%, #4a2a1a 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dg-plate 8s ease-in-out infinite;
}
.scn-dining-with-gounsovski .glass {
  position: absolute; bottom: 27%; left: 38%; width: 8px; height: 14px;
  background: radial-gradient(ellipse at 50% 20%, #c0a080 10%, transparent 60%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: dg-glass 7s ease-in-out infinite alternate;
}
.scn-dining-with-gounsovski .figure-host {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 50% 60%;
  animation: dg-host 5s ease-in-out infinite;
}
.scn-dining-with-gounsovski .figure-guest {
  position: absolute; bottom: 28%; right: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 60% 50%;
  animation: dg-guest 5.4s ease-in-out infinite reverse;
}
.scn-dining-with-gounsovski .candle {
  position: absolute; bottom: 32%; left: 42%; width: 3px; height: 16px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 2px;
  animation: dg-candle 4s ease-in-out infinite alternate;
}
.scn-dining-with-gounsovski .candle-light {
  position: absolute; bottom: 36%; left: 39%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0b060 0%, #c08040 30%, transparent 70%);
  animation: dg-glow 3s ease-in-out infinite alternate;
}
@keyframes dg-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes dg-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(0.99); }
}
@keyframes dg-plate {
  0%,100% { transform: translate(0,0) scale(1); }
  25% { transform: translate(1px,-1px) scale(1.02); }
  50% { transform: translate(2px,0) scale(0.98); }
  75% { transform: translate(1px,-2px) scale(1.01); }
}
@keyframes dg-glass {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.03); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes dg-host {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-1px) rotate(1deg); }
  50% { transform: translate(2px,0) rotate(-1deg); }
  75% { transform: translate(1px,-2px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes dg-guest {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(-2px,-1px) rotate(-1deg); }
  50% { transform: translate(-4px,0) rotate(1deg); }
  75% { transform: translate(-2px,-2px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes dg-candle {
  0% { transform: scaleY(1); opacity: 0.85; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.96); opacity: 0.9; }
}
@keyframes dg-glow {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.06); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}

/* scene 4: gounsovski-warning */
.scn-gounsovski-warning {
  background:
    radial-gradient(ellipse 70% 80% at 70% 50%, #2a1a0a 0%, #0e0804 90%),
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
}
.scn-gounsovski-warning .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a05 100%);
  animation: gw-dark 18s ease-in-out infinite alternate;
}
.scn-gounsovski-warning .figure-warn {
  position: absolute; bottom: 25%; right: 30%; width: 26px; height: 56px;
  background: linear-gradient(270deg, #1a1008 40%, #0e0804 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 50% 60%;
  animation: gw-warn 4.5s ease-in-out infinite;
}
.scn-gounsovski-warning .figure-listener {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 54px;
  background: linear-gradient(90deg, #1a1008 40%, #0e0804 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 60% 50%;
  animation: gw-listen 5.2s ease-in-out infinite reverse;
}
.scn-gounsovski-warning .hand-gesture {
  position: absolute; bottom: 40%; right: 38%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gw-hand 3s ease-in-out infinite;
}
.scn-gounsovski-warning .lamp-sharp {
  position: absolute; top: 15%; left: 48%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  animation: gw-lamp 3.6s ease-in-out infinite alternate;
}
.scn-gounsovski-warning .lamp-flare {
  position: absolute; top: 8%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d09050 0%, #a07030 30%, transparent 70%);
  animation: gw-flare 2.8s ease-in-out infinite alternate;
}
.scn-gounsovski-warning .shadow-streak {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0603 100%);
  animation: gw-streak 10s ease-in-out infinite alternate;
}
@keyframes gw-dark {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gw-warn {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(-2px,-1px) rotate(-2deg); }
  50% { transform: translate(-4px,0) rotate(1deg); }
  75% { transform: translate(-2px,-2px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes gw-listen {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(2px,-1px) rotate(2deg); }
  50% { transform: translate(4px,0) rotate(-1deg); }
  75% { transform: translate(2px,-2px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes gw-hand {
  0% { transform: scale(1) rotate(0deg) translate(0,0); }
  25% { transform: scale(1.1) rotate(10deg) translate(2px,1px); }
  50% { transform: scale(1) rotate(0deg) translate(0,0); }
  75% { transform: scale(1.05) rotate(-8deg) translate(1px,2px); }
  100% { transform: scale(1) rotate(0deg) translate(0,0); }
}
@keyframes gw-lamp {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes gw-flare {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(0.96); opacity: 0.75; }
}
@keyframes gw-streak {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.05); }
  100% { opacity: 0.45; transform: scaleY(0.98); }
}

.scn-annouchka-at-supper { background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1e 40%, #4a3420 100%), radial-gradient(ellipse at 30% 60%, #d4a050 0%, transparent 70%); }
.scn-annouchka-at-supper .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1f1a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.6); animation: as-wall 10s ease-in-out infinite alternate; }
.scn-annouchka-at-supper .gaslamp { position:absolute; top:10%; left:20%; width:12px; height:40px; background: linear-gradient(180deg, #c08040 0%, #8a6030 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 30px 15px #d4a050, 0 0 60px 30px rgba(212,160,80,.3); animation: as-lamp 4s ease-in-out infinite alternate; }
.scn-annouchka-at-supper .table { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: as-table 12s ease-in-out infinite alternate; }
.scn-annouchka-at-supper .prince-galitch { position:absolute; bottom:20%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: as-prince 8s ease-in-out infinite; }
.scn-annouchka-at-supper .annouchka { position:absolute; bottom:20%; right:25%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: as-annouchka 6s ease-in-out infinite; }
.scn-annouchka-at-supper .shadow-table { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a0e08 0%, transparent 100%); animation: as-shadow 15s ease-in-out infinite alternate; }
.scn-annouchka-at-supper .glass-wine { position:absolute; bottom:12%; right:35%; width:8px; height:14px; background: radial-gradient(circle, #d4a050 0%, #a07040 100%); border-radius: 0 0 4px 4px; opacity:.7; animation: as-glass 5s ease-in-out infinite; }
@keyframes as-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes as-lamp { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 30px 15px #d4a050 } 50% { transform: scaleY(1.05) translateY(-2px); box-shadow: 0 0 40px 20px #e0b060 } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 30px 15px #d4a050 } }
@keyframes as-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes as-prince { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes as-annouchka { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes as-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes as-glass { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-prince-warns-rouletabille { background: linear-gradient(180deg, #1e1815 0%, #2a1f1a 50%, #3a2a1e 100%), radial-gradient(ellipse at 50% 30%, #c08040 0%, transparent 60%); }
.scn-prince-warns-rouletabille .bg-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1e 0%, #1e1815 100%); animation: pw-bg 12s ease-in-out infinite alternate; }
.scn-prince-warns-rouletabille .lamp-glow { position:absolute; top:5%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #e0b060 0%, #c08040 40%, transparent 70%); transform: translateX(-50%); animation: pw-lamp 4s ease-in-out infinite alternate; }
.scn-prince-warns-rouletabille .prince-fig { position:absolute; bottom:18%; left:20%; width:35px; height:85px; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: pw-prince 8s ease-in-out infinite; }
.scn-prince-warns-rouletabille .rouletabille-fig { position:absolute; bottom:18%; right:20%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: pw-roule 10s ease-in-out infinite; }
.scn-prince-warns-rouletabille .table-edge { position:absolute; bottom:10%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #4a3420 0%, #2a1f1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pw-table 15s ease-in-out infinite alternate; }
.scn-prince-warns-rouletabille .glass-flute { position:absolute; bottom:12%; right:35%; width:6px; height:16px; background: radial-gradient(circle, #c08040 0%, #a07030 100%); border-radius: 0 0 3px 3px; opacity:.7; animation: pw-glass 3s ease-in-out infinite; }
.scn-prince-warns-rouletabille .shadow-prince { position:absolute; bottom:0; left:0; width:40%; height:30%; background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%); animation: pw-shadow 20s ease-in-out infinite alternate; }
@keyframes pw-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pw-lamp { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px #c08040 } 50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 60px 30px #e0b060 } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px 20px #c08040 } }
@keyframes pw-prince { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(14px) rotate(-1deg) } 75% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pw-roule { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(0) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pw-table { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pw-glass { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes pw-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-toast-and-gounsovski-counsel { background: linear-gradient(180deg, #2a1f1a 0%, #3a2a1e 40%, #4a3420 100%), radial-gradient(ellipse at 70% 50%, #d4a050 0%, transparent 60%); }
.scn-toast-and-gounsovski-counsel .wall-panel { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3420 0%, #2a1f1a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.6); animation: tg-wall 14s ease-in-out infinite alternate; }
.scn-toast-and-gounsovski-counsel .candelabra { position:absolute; top:5%; left:50%; width:18px; height:30px; background: linear-gradient(180deg, #8a6030 0%, #5a3a20 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 25px 12px #d4a050; animation: tg-candle 5s ease-in-out infinite alternate; }
.scn-toast-and-gounsovski-counsel .table-round { position:absolute; bottom:8%; left:15%; width:70%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: tg-table 10s ease-in-out infinite alternate; }
.scn-toast-and-gounsovski-counsel .annouchka-toast { position:absolute; bottom:20%; right:30%; width:28px; height:68px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: tg-annouchka 9s ease-in-out infinite; }
.scn-toast-and-gounsovski-counsel .rouletabille-toast { position:absolute; bottom:20%; left:20%; width:30px; height:75px; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: tg-rouletabille 7s ease-in-out infinite; }
.scn-toast-and-gounsovski-counsel .gounsovski-fig { position:absolute; bottom:22%; left:50%; width:32px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: tg-gounsovski 12s ease-in-out infinite; }
.scn-toast-and-gounsovski-counsel .glass-champagne { position:absolute; bottom:12%; left:35%; width:6px; height:14px; background: radial-gradient(circle, #c08040 0%, #a07030 100%); border-radius: 0 0 3px 3px; opacity:.7; animation: tg-glass 4s ease-in-out infinite; }
.scn-toast-and-gounsovski-counsel .shadow-annouchka { position:absolute; bottom:0; right:0; width:35%; height:35%; background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%); animation: tg-shadow 18s ease-in-out infinite alternate; }
@keyframes tg-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tg-candle { 0% { transform: scaleY(1); box-shadow: 0 0 25px 12px #d4a050 } 50% { transform: scaleY(1.08); box-shadow: 0 0 35px 18px #e0b060 } 100% { transform: scaleY(1); box-shadow: 0 0 25px 12px #d4a050 } }
@keyframes tg-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tg-annouchka { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(5px) rotate(-1deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tg-rouletabille { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(-8px) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tg-gounsovski { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes tg-glass { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes tg-shadow { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-annouchka-mocks-gounsovski { background: linear-gradient(180deg, #1a1412 0%, #2a1f1a 40%, #3a2a1e 100%), radial-gradient(ellipse at 40% 20%, #c08040 0%, transparent 70%); }
.scn-annouchka-mocks-gounsovski .deep-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #3a2a1e 0%, #1a1412 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.7); animation: am-wall 11s ease-in-out infinite alternate; }
.scn-annouchka-mocks-gounsovski .gaslight-beam { position:absolute; top:2%; left:30%; width:15px; height:100px; background: linear-gradient(180deg, #d4a050 0%, transparent 100%); transform: skewX(-10deg); opacity:.4; animation: am-beam 5s ease-in-out infinite alternate; }
.scn-annouchka-mocks-gounsovski .annouchka-seated { position:absolute; bottom:15%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: am-annouchka 8s ease-in-out infinite; }
.scn-annouchka-mocks-gounsovski .champagne-glass { position:absolute; bottom:18%; right:45%; width:7px; height:18px; background: radial-gradient(circle, #c08040 0%, #a07030 100%); border-radius: 0 0 4px 4px; opacity:.8; animation: am-glass 4s ease-in-out infinite; }
.scn-annouchka-mocks-gounsovski .gounsovski-bg { position:absolute; bottom:20%; right:10%; width:35px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: am-gounsovski 14s ease-in-out infinite; }
.scn-annouchka-mocks-gounsovski .shadow-long { position:absolute; bottom:0; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%); animation: am-shadow 20s ease-in-out infinite alternate; }
.scn-annouchka-mocks-gounsovski .table-cloth { position:absolute; bottom:8%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 12% 12% 0 0; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: am-cloth 16s ease-in-out infinite alternate; }
@keyframes am-wall { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes am-beam { 0% { transform: skewX(-10deg) scaleY(1); opacity:.3 } 50% { transform: skewX(-10deg) scaleY(1.1); opacity:.5 } 100% { transform: skewX(-10deg) scaleY(1); opacity:.3 } }
@keyframes am-annouchka { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(8px) rotate(-1deg) } 50% { transform: translateX(14px) rotate(0) } 75% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes am-glass { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes am-gounsovski { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-6px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes am-shadow { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes am-cloth { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-gounsovski-warning-about-bombs {
  background: linear-gradient(180deg, #e8dcc4 0%, #c4b298 50%, #a08c70 100%), radial-gradient(ellipse at 50% 0%, #fff7e8 0%, transparent 60%);
}
.scn-gounsovski-warning-about-bombs .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(255,247,232,0.3) 0%, transparent 70%);
}
.scn-gounsovski-warning-about-bombs .desk {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 4px 4px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-gounsovski-warning-about-bombs .lamp {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 0%, #f5d490 0%, #b8934a 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -10px 60px 20px rgba(245,212,144,0.4);
  animation: gb-lamp 3s ease-in-out infinite alternate;
}
.scn-gounsovski-warning-about-bombs .figure-k {
  position: absolute; bottom: 16%; left: 42%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gb-figure 5s ease-in-out infinite alternate;
}
.scn-gounsovski-warning-about-bombs .paper {
  position: absolute; bottom: 24%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%) rotate(-2deg);
  background: linear-gradient(135deg, #fff8e0 0%, #f0e0c0 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: gb-paper 2s ease-in-out infinite;
}
.scn-gounsovski-warning-about-bombs .shadow {
  position: absolute; bottom: 8%; left: 38%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: gb-shadow 6s ease-in-out infinite;
}
@keyframes gb-lamp { 0% { box-shadow: 0 -10px 60px 20px rgba(245,212,144,0.4); opacity:0.9 } 50% { box-shadow: 0 -14px 80px 28px rgba(245,212,144,0.7); opacity:1 } 100% { box-shadow: 0 -10px 60px 20px rgba(245,212,144,0.4); opacity:0.85 } }
@keyframes gb-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes gb-paper { 0% { transform: translateX(-50%) rotate(-2deg) scale(1) } 50% { transform: translateX(-50%) rotate(-1deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-3deg) scale(0.98) } }
@keyframes gb-shadow { 0% { transform: scaleX(1) opacity:0.3 } 50% { transform: scaleX(1.1) opacity:0.5 } 100% { transform: scaleX(0.9) opacity:0.2 } }

.scn-waiting-for-natacha {
  background: linear-gradient(180deg, #f2ead8 0%, #d4c4a8 50%, #b8a48c 100%), radial-gradient(ellipse at 50% 0%, #fff9ed 0%, transparent 70%);
}
.scn-waiting-for-natacha .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,249,237,0.2) 0%, transparent 50%);
}
.scn-waiting-for-natacha .bench {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 18%;
  background: linear-gradient(180deg, #6b5b4b 0%, #4a3a2a 100%);
  border-radius: 20px 20px 6px 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-waiting-for-natacha .figure-r {
  position: absolute; bottom: 16%; left: 38%; width: 36px; height: 62px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wn-figure 6s ease-in-out infinite alternate;
}
.scn-waiting-for-natacha .window {
  position: absolute; top: 12%; left: 35%; right: 35%; height: 35%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 100%);
  border-radius: 4px; border: 4px solid #5a4a3a; box-shadow: inset 0 0 30px rgba(255,255,240,0.5);
  animation: wn-window 8s ease-in-out infinite alternate;
}
.scn-waiting-for-natacha .light-beam {
  position: absolute; top: 18%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(255,245,230,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: wn-beam 5s ease-in-out infinite alternate;
}
.scn-waiting-for-natacha .clock {
  position: absolute; top: 6%; right: 22%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f5e0c0 0%, #a08060 100%);
  border-radius: 50%; border: 3px solid #4a3a2a; box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: wn-clock 10s linear infinite;
}
@keyframes wn-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wn-window { 0% { box-shadow: inset 0 0 30px rgba(255,255,240,0.5); opacity:0.9 } 50% { box-shadow: inset 0 0 50px rgba(255,255,240,0.8); opacity:1 } 100% { box-shadow: inset 0 0 30px rgba(255,255,240,0.5); opacity:0.85 } }
@keyframes wn-beam { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.5; transform: scaleY(1.05) } 100% { opacity:0.2; transform: scaleY(0.95) } }
@keyframes wn-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-dinner-invitations {
  background: linear-gradient(180deg, #e2d4be 0%, #c6b49a 50%, #aa967c 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-dinner-invitations .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 40%, rgba(255,245,230,0.15) 0%, transparent 70%);
}
.scn-dinner-invitations .door {
  position: absolute; right: 20%; top: 10%; bottom: 30%; width: 18%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: di-door 4s ease-in-out infinite alternate;
}
.scn-dinner-invitations .postman {
  position: absolute; bottom: 18%; right: 26%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #2e2e3a 0%, #16161c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-postman 3s ease-in-out infinite alternate;
}
.scn-dinner-invitations .letter {
  position: absolute; bottom: 50%; right: 32%; width: 18px; height: 12px;
  background: #f5ecd5; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: di-letter 2s ease-in-out infinite;
}
.scn-dinner-invitations .figure-rou {
  position: absolute; bottom: 20%; left: 28%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-rou 5s ease-in-out infinite alternate;
}
.scn-dinner-invitations .threshold {
  position: absolute; bottom: 14%; right: 22%; left: 68%; height: 4%;
  background: #5a4a3a; border-radius: 2px;
  animation: di-thresh 8s ease-in-out infinite;
}
@keyframes di-door { 0% { transform: scaleX(1); opacity:0.95 } 50% { transform: scaleX(1.02); opacity:1 } 100% { transform: scaleX(0.98); opacity:0.9 } }
@keyframes di-postman { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-4px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes di-letter { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(20deg) translateX(2px) } 100% { transform: rotate(10deg) translateX(-1px) } }
@keyframes di-rou { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes di-thresh { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-invitation-from-natacha {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89c 50%, #a8987a 100%), radial-gradient(ellipse at 50% 0%, #fff7ed 0%, transparent 65%);
}
.scn-invitation-from-natacha .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,247,237,0.2) 0%, transparent 50%);
}
.scn-invitation-from-natacha .mirror {
  position: absolute; top: 8%; right: 10%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #d0c8b8 0%, #a89880 100%);
  border-radius: 6px; border: 6px solid #6a5a4a; box-shadow: 0 0 30px rgba(0,0,0,0.2);
  animation: in-mirror 12s ease-in-out infinite alternate;
}
.scn-invitation-from-natacha .figure-n {
  position: absolute; bottom: 14%; left: 36%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #2e2e2e 0%, #101010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: in-figure 4s ease-in-out infinite alternate;
}
.scn-invitation-from-natacha .messenger {
  position: absolute; bottom: 16%; right: 24%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a3a46 0%, #1c1c24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: in-messenger 6s ease-in-out infinite alternate;
}
.scn-invitation-from-natacha .letter {
  position: absolute; bottom: 42%; right: 30%; width: 16px; height: 22px;
  background: #f5ecd5; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: in-letter 3s ease-in-out infinite;
}
.scn-invitation-from-natacha .candle {
  position: absolute; bottom: 38%; left: 42%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f5d890 0%, #c89850 100%);
  border-radius: 3px 3px 50% 50%;
  box-shadow: 0 0 30px 10px rgba(245,216,144,0.4);
  animation: in-candle 2s ease-in-out infinite alternate;
}
@keyframes in-mirror { 0% { opacity:0.85; box-shadow: 0 0 30px rgba(0,0,0,0.2) } 50% { opacity:0.95; box-shadow: 0 0 45px rgba(0,0,0,0.3) } 100% { opacity:0.8; box-shadow: 0 0 30px rgba(0,0,0,0.15) } }
@keyframes in-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes in-messenger { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes in-letter { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(10deg) translateX(2px) scale(1.05) } 100% { transform: rotate(2deg) translateX(-1px) scale(0.95) } }
@keyframes in-candle { 0% { box-shadow: 0 0 30px 10px rgba(245,216,144,0.4); height:28px } 50% { box-shadow: 0 0 50px 18px rgba(245,216,144,0.6); height:30px } 100% { box-shadow: 0 0 30px 10px rgba(245,216,144,0.4); height:27px } }

/* searching-for-annouchka – tense, bright interior with sharp contrasts */
.scn-searching-for-annouchka {
  background: 
    linear-gradient(180deg, #fff8f0 0%, #e8dfcc 30%, #b8a88a 60%, #7a6b54 100%),
    radial-gradient(ellipse at 20% 80%, #d4c4a8 0%, transparent 70%);
}
.scn-searching-for-annouchka .wall-back {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(135deg, #f0ead6 0%, #d9cfb0 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: sa-wall 12s ease-in-out infinite alternate;
}
.scn-searching-for-annouchka .window-frame {
  position: absolute; inset: 15% 18% 40% 25%;
  border: 6px solid #5a4a34;
  border-radius: 4px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 8px 16px rgba(0,0,0,0.5);
  animation: sa-window 6s ease-in-out infinite;
}
.scn-searching-for-annouchka .street-outside {
  position: absolute; inset: 40% 18% 0 25%;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a64 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: sa-street 8s ease-in-out infinite alternate;
}
.scn-searching-for-annouchka .figure-search {
  position: absolute; bottom: 20%; left: 12%; width: 32px; height: 56px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure 4s ease-in-out infinite;
}
.scn-searching-for-annouchka .lamp-shadow {
  position: absolute; bottom: 18%; left: 28%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: sa-shadow 5s ease-in-out infinite alternate;
}
.scn-searching-for-annouchka .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  animation: sa-curtain 10s ease-in-out infinite;
}
.scn-searching-for-annouchka .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(-90deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  animation: sa-curtain 10s ease-in-out infinite reverse;
}
@keyframes sa-wall { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.85; filter: brightness(0.9); } }
@keyframes sa-window { 0%,100% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } }
@keyframes sa-street { 0% { background-position: 0 0; } 50% { background-position: 10px 0; } 100% { background-position: 0 0; } }
@keyframes sa-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes sa-shadow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
@keyframes sa-curtain { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.03); } }

/* krestowsky-night-gaiety – warm gaslit exterior with lively ambience */
.scn-krestowsky-night-gaiety {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #3a2a1a 70%, #4a3a2a 100%),
    radial-gradient(ellipse at 60% 40%, #6a5a2a 0%, transparent 70%);
}
.scn-krestowsky-night-gaiety .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 60%, #2a2a1a 100%);
  animation: kn-sky 20s ease-in-out infinite alternate;
}
.scn-krestowsky-night-gaiety .building-front {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.8);
  animation: kn-building 12s ease-in-out infinite;
}
.scn-krestowsky-night-gaiety .entrance-glow {
  position: absolute; bottom: 5%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffcc66 0%, #cc8833 50%, transparent 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 20px rgba(255,204,102,0.6), 0 0 80px 40px rgba(204,136,51,0.3);
  animation: kn-glow 3s ease-in-out infinite alternate;
}
.scn-krestowsky-night-gaiety .window-light-a {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(circle, #ffdd88 0%, #cc8833 80%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #cc8833;
  animation: kn-wina 4s ease-in-out infinite;
}
.scn-krestowsky-night-gaiety .window-light-b {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 50px;
  background: radial-gradient(circle, #ffdd88 0%, #cc8833 80%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #cc8833;
  animation: kn-winb 6s ease-in-out infinite reverse;
}
.scn-krestowsky-night-gaiety .tree-silhouette {
  position: absolute; bottom: 10%; left: 5%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-5deg);
  animation: kn-tree 15s ease-in-out infinite alternate;
}
.scn-krestowsky-night-gaiety .carriage-hint {
  position: absolute; bottom: 2%; left: 70%; width: 80px; height: 40px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 60%, transparent 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: kn-carriage 8s linear infinite;
}
.scn-krestowsky-night-gaiety .stars-mote {
  position: absolute; top: 8%; left: 70%; width: 4px; height: 4px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: kn-star 5s ease-in-out infinite;
}
@keyframes kn-sky { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes kn-building { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes kn-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,204,102,0.5); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,204,102,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,204,102,0.6); } }
@keyframes kn-wina { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes kn-winb { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes kn-tree { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } 100% { transform: rotate(-6deg) scaleY(0.98); } }
@keyframes kn-carriage { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(-20px); opacity: 0.6; } 100% { transform: translateX(-40px); opacity: 0.3; } }
@keyframes kn-star { 0% { opacity: 0; transform: scale(1); } 30% { opacity: 1; transform: scale(1.5); } 60% { opacity: 0.5; } 100% { opacity: 0; } }

/* annouchka-performs – warm gaslit stage performance */
.scn-annouchka-performs {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #5a3a1a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #8a5a2a 0%, transparent 70%);
}
.scn-annouchka-performs .stage-back {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: ap-stage 10s ease-in-out infinite alternate;
}
.scn-annouchka-performs .curtain-left {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #a0461a 0%, #5a2a0a 100%);
  border-radius: 0 80% 80% 0 / 0 50% 50% 0;
  animation: ap-curtain 8s ease-in-out infinite;
}
.scn-annouchka-performs .curtain-right {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(-90deg, #a0461a 0%, #5a2a0a 100%);
  border-radius: 80% 0 0 80% / 50% 0 0 50%;
  animation: ap-curtain 8s ease-in-out infinite reverse;
}
.scn-annouchka-performs .spotlight-beam {
  position: absolute; bottom: 50%; left: 50%; width: 120px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, rgba(255,200,100,0.2) 40%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: ap-spot 4s ease-in-out infinite alternate;
}
.scn-annouchka-performs .singer-figure {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ap-singer 3s ease-in-out infinite;
}
.scn-annouchka-performs .piano-hint {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ap-piano 6s ease-in-out infinite alternate;
}
.scn-annouchka-performs .audience-heads {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 80%);
  filter: blur(4px);
  animation: ap-audience 7s ease-in-out infinite;
}
@keyframes ap-stage { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ap-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes ap-spot { 0% { opacity: 0.5; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 0.8; transform: translateX(-50%) rotate(2deg); } 100% { opacity: 0.6; transform: translateX(-50%) rotate(-1deg); } }
@keyframes ap-singer { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-50%) translateY(1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ap-piano { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes ap-audience { 0%,100% { opacity: 0.3; } 50% { opacity: 0.5; } }

/* box-with-friends – warm gaslit theater box interior */
.scn-box-with-friends {
  background: 
    linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 40%, #4a2a1a 80%, #2a1a0a 100%),
    radial-gradient(ellipse at 80% 20%, #8a5a2a 0%, transparent 70%);
}
.scn-box-with-friends .box-interior {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: bf-interior 12s ease-in-out infinite alternate;
}
.scn-box-with-friends .railing {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 12px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 50%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bf-rail 8s ease-in-out infinite;
}
.scn-box-with-friends .chair-left {
  position: absolute; bottom: 10%; left: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: bf-chair 6s ease-in-out infinite;
}
.scn-box-with-friends .chair-right {
  position: absolute; bottom: 10%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: bf-chair 6s ease-in-out infinite reverse;
}
.scn-box-with-friends .figure-thaddeus {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-thad 5s ease-in-out infinite;
}
.scn-box-with-friends .figure-rouletabille {
  position: absolute; bottom: 15%; right: 25%; width: 28px; 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: bf-roul 7s ease-in-out infinite;
}
.scn-box-with-friends .stage-glow {
  position: absolute; bottom: 30%; left: 50%; width: 200px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #f0c868 0%, #c08030 50%, transparent 80%);
  filter: blur(10px);
  animation: bf-glow 4s ease-in-out infinite alternate;
}
.scn-box-with-friends .chandelier-hint {
  position: absolute; top: 2%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #ffcc66 0%, #cc8833 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,204,102,0.5);
  animation: bf-chandelier 8s ease-in-out infinite;
}
@keyframes bf-interior { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes bf-rail { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bf-chair { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes bf-thad { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bf-roul { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(0); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bf-glow { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.95); } }
@keyframes bf-chandelier { 0%,100% { opacity: 0.6; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 1; transform: translateX(-50%) rotate(2deg); } }

.scn-horses-drink-champagne {
  background: linear-gradient(180deg, #f8d9a0 0%, #e8b78a 30%, #b87a5a 70%, #5a3a2a 100%),
              radial-gradient(ellipse at 50% 100%, #f0c8a0 0%, transparent 60%);
}
.scn-horses-drink-champagne .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8a87a 0%, #f0d4b0 50%, #fce4c8 100%);
  animation: hdc-sky 14s ease-in-out infinite alternate;
}
.scn-horses-drink-champagne .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-horses-drink-champagne .horse {
  position: absolute; bottom: 28%; left: 30%; width: 56px; height: 48px;
  background: radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: hdc-horse 5s ease-in-out infinite;
}
.scn-horses-drink-champagne .bottle {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #a0764a 0%, #6a4e3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hdc-bottle 6s ease-in-out infinite;
}
.scn-horses-drink-champagne .fizz {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffe8c0 0%, #e0b88a 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: hdc-fizz 1.5s ease-out infinite;
}
.scn-horses-drink-champagne .sparkle {
  position: absolute; bottom: 36%; left: 54%; width: 4px; height: 4px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 6px 4px rgba(255,248,224,0.6);
  animation: hdc-sparkle 2s ease-in-out infinite alternate;
}
@keyframes hdc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes hdc-horse { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hdc-bottle { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hdc-fizz { 0% { opacity: 1; transform: translateY(0) scale(1) } 100% { opacity: 0; transform: translateY(-20px) scale(0.5) } }
@keyframes hdc-sparkle { 0% { opacity: 0.3 } 50% { opacity: 1 } 100% { opacity: 0.5 } }

.scn-horses-dance-revelry {
  background: linear-gradient(180deg, #f2cba0 0%, #d9a678 30%, #a06d4a 70%, #5a3a2a 100%),
              radial-gradient(ellipse at 60% 30%, #fce4c0 0%, transparent 60%);
}
.scn-horses-dance-revelry .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c89a6a 0%, #f0d0b0 50%, #fce0c0 100%);
  animation: hdr-sky 16s ease-in-out infinite alternate;
}
.scn-horses-dance-revelry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: hdr-ground 12s ease-in-out infinite;
}
.scn-horses-dance-revelry .dancer-horse {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 52px;
  background: radial-gradient(ellipse at 40% 70%, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: hdr-dancer 3s ease-in-out infinite;
}
.scn-horses-dance-revelry .music-note {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #e0c090 0%, #b08860 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  filter: blur(1px);
  animation: hdr-note 4s ease-in-out infinite alternate;
}
.scn-horses-dance-revelry .confetti {
  position: absolute; top: 14%; left: 70%; width: 6px; height: 6px;
  background: #c8a070;
  border-radius: 50%;
  box-shadow: 10px 20px 0 #a08060, -6px 14px 0 #d0b080;
  animation: hdr-confetti 8s linear infinite;
}
.scn-horses-dance-revelry .spotlight {
  position: absolute; top: 8%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0) 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: hdr-spotlight 7s ease-in-out infinite alternate;
}
@keyframes hdr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hdr-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes hdr-dancer { 0% { transform: translateX(0) translateY(0) rotate(-3deg) scaleX(1) } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg) scaleX(1.05) } 50% { transform: translateX(0) translateY(-4px) rotate(-2deg) scaleX(0.95) } 75% { transform: translateX(-4px) translateY(-2px) rotate(2deg) scaleX(1.03) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) scaleX(1) } }
@keyframes hdr-note { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-10px) rotate(20deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hdr-confetti { 0% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(100px) rotate(360deg) } }
@keyframes hdr-spotlight { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

.scn-horses-throw-riders {
  background: linear-gradient(180deg, #eacba0 0%, #c8a078 30%, #906a48 70%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #d0a87a 0%, transparent 70%);
}
.scn-horses-throw-riders .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b88a6a 0%, #e0c0a0 50%, #f0d4b8 100%);
  animation: htr-sky 10s ease-in-out infinite alternate;
}
.scn-horses-throw-riders .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 20% 80% 0 0 / 15% 35% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-horses-throw-riders .buck-horse {
  position: absolute; bottom: 18%; left: 32%; width: 64px; height: 44px;
  background: radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 60% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: htr-buck 2.5s ease-in-out infinite;
}
.scn-horses-throw-riders .rider {
  position: absolute; bottom: 36%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2020 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: htr-rider 2.5s ease-in-out infinite;
}
.scn-horses-throw-riders .dust {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(120,80,50,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: htr-dust 4s ease-out infinite;
}
.scn-horses-throw-riders .hat {
  position: absolute; bottom: 44%; left: 44%; width: 16px; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: rotate(15deg);
  animation: htr-hat 3s ease-in-out infinite;
}
@keyframes htr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes htr-buck { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(8px) translateY(-12px) rotate(-15deg) } 60% { transform: translateX(-4px) translateY(-6px) rotate(10deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes htr-rider { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-30px) rotate(45deg) } 60% { transform: translateY(-10px) rotate(-20deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes htr-dust { 0% { opacity: 0.5; transform: scale(1) } 100% { opacity: 0; transform: scale(1.5) } }
@keyframes htr-hat { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-8px) } 100% { transform: rotate(15deg) translateY(0) } }

.scn-madame-scolds-councilor {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 50%, #c8a888 100%),
              radial-gradient(ellipse at 50% 100%, #e8d8c0 0%, transparent 60%);
}
.scn-madame-scolds-councilor .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #e8d8c0 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-madame-scolds-councilor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08870 0%, #806048 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-madame-scolds-councilor .window {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8d8e0 0%, #e8f0f8 100%);
  border: 2px solid #806048;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(255,255,255,0.6);
  animation: msc-window 20s ease-in-out infinite alternate;
}
.scn-madame-scolds-councilor .table {
  position: absolute; bottom: 12%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-madame-scolds-councilor .madame {
  position: absolute; bottom: 10%; left: 28%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #c8a070 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msc-madame 6s ease-in-out infinite;
}
.scn-madame-scolds-councilor .councilor {
  position: absolute; bottom: 10%; left: 50%; width: 26px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msc-councilor 8s ease-in-out infinite;
}
.scn-madame-scolds-councilor .lamp {
  position: absolute; top: 20%; left: 10%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #fff0c0 0%, #e0c090 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,240,200,0.5), 0 0 32px 12px rgba(255,240,200,0.2);
  animation: msc-lamp 4s ease-in-out infinite alternate;
}
@keyframes msc-window { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes msc-madame { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes msc-councilor { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes msc-lamp { 0% { box-shadow: 0 0 12px 4px rgba(255,240,200,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 20px 8px rgba(255,240,200,0.7); opacity: 1 } 100% { box-shadow: 0 0 14px 5px rgba(255,240,200,0.5); opacity: 0.9 } }

.scn-showing-the-warning {
  background:
    radial-gradient(ellipse at 30% 20%, #f7e4c0 0%, transparent 60%),
    radial-gradient(ellipse at 70% 80%, #2a2a3e 0%, transparent 50%),
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #1a1a2a 100%);
}
.scn-showing-the-warning .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  opacity: 0.6;
  animation: sw1-room 12s ease-in-out infinite alternate;
}
.scn-showing-the-warning .desk {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: sw1-desk 8s ease-in-out infinite, sw1-desk-shift 18s ease-in-out infinite;
}
@keyframes sw1-room { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes sw1-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sw1-desk-shift { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.9) } }
.scn-showing-the-warning .fig-left {
  position: absolute; bottom: 25%; left: 28%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-left 5s ease-in-out infinite;
}
@keyframes sw1-fig-left {
  0% { transform: translateX(0) rotate(0); filter: brightness(1); }
  25% { transform: translateX(-4px) rotate(-2deg); filter: brightness(0.9); }
  50% { transform: translateX(0) rotate(0); filter: brightness(1); }
  75% { transform: translateX(4px) rotate(2deg); filter: brightness(1.1); }
  100% { transform: translateX(0) rotate(0); filter: brightness(1); }
}
.scn-showing-the-warning .fig-right {
  position: absolute; bottom: 25%; right: 28%; width: 42px; height: 88px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw1-fig-right 6s ease-in-out infinite;
}
@keyframes sw1-fig-right {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(-3px) rotate(1deg); }
  66% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-showing-the-warning .paper-glow {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e080 0%, #d0a050 60%, transparent 100%);
  box-shadow: 0 0 20px 8px rgba(240,224,128,0.6), 0 0 40px 16px rgba(240,224,128,0.3);
  border-radius: 2px;
  animation: sw1-glow 3s ease-in-out infinite alternate;
}
@keyframes sw1-glow {
  0% { box-shadow: 0 0 15px 5px rgba(240,224,128,0.5), 0 0 30px 10px rgba(240,224,128,0.2); opacity:0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(240,224,128,0.8), 0 0 60px 20px rgba(240,224,128,0.4); opacity:1; }
  100% { box-shadow: 0 0 20px 6px rgba(240,224,128,0.6), 0 0 40px 15px rgba(240,224,128,0.25); opacity:0.85; }
}
.scn-showing-the-warning .hand-paper {
  position: absolute; bottom: 28%; left: 44%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #c0a060 0%, #a08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sw1-hand 4s ease-in-out infinite;
}
@keyframes sw1-hand {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
.scn-showing-the-warning .shadow-strip {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  filter: blur(4px);
}

.scn-trusting-no-man {
  background:
    radial-gradient(ellipse at 20% 50%, #d8c8a0 0%, transparent 70%),
    radial-gradient(ellipse at 80% 30%, #4a3a2a 0%, transparent 50%),
    linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 60%, #1a192a 100%);
}
.scn-trusting-no-man .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #5a4a3a 0%, #2a1a1a 100%);
  opacity: 0.6;
  animation: tn2-room 14s ease-in-out infinite alternate;
}
@keyframes tn2-room { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
.scn-trusting-no-man .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 16%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: tn2-table 20s ease-in-out infinite;
}
@keyframes tn2-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
.scn-trusting-no-man .fig-left {
  position: absolute; bottom: 22%; left: 25%; width: 44px; height: 95px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tn2-fig-left 5s ease-in-out infinite;
}
@keyframes tn2-fig-left {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-trusting-no-man .fig-right {
  position: absolute; bottom: 22%; right: 25%; width: 46px; height: 92px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tn2-fig-right 6s ease-in-out infinite;
}
@keyframes tn2-fig-right {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-trusting-no-man .shadow-fig {
  position: absolute; bottom: 20%; right: 40%; width: 36px; height: 80px;
  background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
  filter: blur(6px);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tn2-shadow 10s ease-in-out infinite alternate;
}
@keyframes tn2-shadow {
  0% { transform: scale(1) translateY(0); opacity:0.4; }
  50% { transform: scale(1.05) translateY(-5px); opacity:0.7; }
  100% { transform: scale(0.95) translateY(2px); opacity:0.3; }
}
.scn-trusting-no-man .lamp {
  position: absolute; top: 10%; left: 45%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #f0d080 0%, #c09040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 -8px 30px 6px rgba(240,208,128,0.5);
  animation: tn2-lamp 4s ease-in-out infinite alternate;
}
@keyframes tn2-lamp {
  0% { box-shadow: 0 -8px 20px 4px rgba(240,208,128,0.4); filter: brightness(0.9); }
  50% { box-shadow: 0 -8px 40px 10px rgba(240,208,128,0.7); filter: brightness(1.1); }
  100% { box-shadow: 0 -8px 25px 6px rgba(240,208,128,0.5); filter: brightness(0.95); }
}

.scn-agent-touman-named {
  background:
    radial-gradient(ellipse at 70% 30%, #e8d4b0 0%, transparent 60%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 50%),
    linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
}
.scn-agent-touman-named .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #4a3a2a 0%, #1a1a2a 100%);
  opacity: 0.7;
  animation: at3-room 15s ease-in-out infinite alternate;
}
@keyframes at3-room { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
.scn-agent-touman-named .desk {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-agent-touman-named .open-book {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 4px;
  box-shadow: inset 0 1px 4px rgba(0,0,0,0.3);
  transform-origin: bottom left;
  animation: at3-book 10s ease-in-out infinite alternate;
}
@keyframes at3-book {
  0% { transform: rotate(0) scale(1); }
  25% { transform: rotate(-2deg) scale(1.02); }
  50% { transform: rotate(0) scale(1); }
  75% { transform: rotate(2deg) scale(0.98); }
  100% { transform: rotate(0) scale(1); }
}
.scn-agent-touman-named .book-highlight {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(circle, #f0e080 0%, #c0a040 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(240,224,128,0.7);
  animation: at3-highlight 3s ease-in-out infinite alternate;
}
@keyframes at3-highlight {
  0% { box-shadow: 0 0 10px 3px rgba(240,224,128,0.5); opacity:0.8; }
  50% { box-shadow: 0 0 20px 8px rgba(240,224,128,0.8); opacity:1; }
  100% { box-shadow: 0 0 14px 5px rgba(240,224,128,0.6); opacity:0.9; }
}
.scn-agent-touman-named .fig-seated {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at3-seated 8s ease-in-out infinite;
}
@keyframes at3-seated {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  25% { transform: translateX(5px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(0) rotate(0) scaleY(1); }
  75% { transform: translateX(-5px) rotate(-2deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0) scaleY(1); }
}
.scn-agent-touman-named .fig-standing {
  position: absolute; bottom: 15%; right: 20%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: at3-standing 6s ease-in-out infinite;
}
@keyframes at3-standing {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(-3px) rotate(1deg); }
  66% { transform: translateX(3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-the-whipping-of-touman {
  background:
    radial-gradient(ellipse at 50% 30%, #c07050 0%, transparent 60%),
    radial-gradient(ellipse at 30% 80%, #1a1a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
}
.scn-the-whipping-of-touman .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #1a1a1a 0%, #0a0a0a 100%);
  animation: wt4-room 20s ease-in-out infinite alternate;
}
@keyframes wt4-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
.scn-the-whipping-of-touman .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.7);
}
.scn-the-whipping-of-touman .interrogation-light {
  position: absolute; top: 5%; left: 40%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #e8c080 0%, transparent 100%);
  opacity: 0.3;
  animation: wt4-light 4s ease-in-out infinite alternate;
}
@keyframes wt4-light {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.5; transform: scale(1.05); }
  100% { opacity:0.3; transform: scale(1); }
}
.scn-the-whipping-of-touman .fig-touman {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 105px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a3020 0%, #5a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(200,80,50,0.5);
  animation: wt4-touman 5s ease-in-out infinite;
}
@keyframes wt4-touman {
  0% { transform: translateX(-50%) rotate(0); filter: brightness(1); }
  25% { transform: translateX(-50%) rotate(-3deg); filter: brightness(0.9); }
  50% { transform: translateX(-50%) rotate(0); filter: brightness(1); }
  75% { transform: translateX(-50%) rotate(3deg); filter: brightness(1.1); }
  100% { transform: translateX(-50%) rotate(0); filter: brightness(1); }
}
.scn-the-whipping-of-touman .fig-gendarme-l {
  position: absolute; bottom: 18%; left: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt4-gendarme-l 7s ease-in-out infinite;
}
@keyframes wt4-gendarme-l {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-5px) rotate(-2deg); }
  60% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-the-whipping-of-touman .fig-gendarme-r {
  position: absolute; bottom: 18%; right: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt4-gendarme-r 7s ease-in-out infinite;
}
@keyframes wt4-gendarme-r {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
.scn-the-whipping-of-touman .shadow-pool {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: wt4-shadow 12s ease-in-out infinite alternate;
}
@keyframes wt4-shadow {
  0% { transform: scaleY(1); opacity:0.6; }
  50% { transform: scaleY(1.1); opacity:0.8; }
  100% { transform: scaleY(1); opacity:0.6; }
}

.scn-ruined-by-women {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #3d2b22 40%, #4d382c 70%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 80%, #c89a6e 0%, transparent 70%);
}
.scn-ruined-by-women .bg-theater {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1410 0%, #2c1f1a 100%); animation: ru-theater 10s ease-in-out infinite alternate;
}
.scn-ruined-by-women .stage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #8a6e4a 0%, #5c4530 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-ruined-by-women .curtain-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(90deg, #7a1a1a 0%, #a82a2a 100%); border-radius: 0 40% 40% 0; animation: ru-curtain 6s ease-in-out infinite alternate; transform-origin: left;
}
.scn-ruined-by-women .curtain-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%; background: linear-gradient(-90deg, #7a1a1a 0%, #a82a2a 100%); border-radius: 40% 0 0 40%; animation: ru-curtain 6s ease-in-out infinite alternate-reverse; transform-origin: right;
}
.scn-ruined-by-women .prince {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 30px; height: 60px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ru-prince 3s ease-in-out infinite;
}
.scn-ruined-by-women .woman-left {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #6a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ru-woman-l 2s ease-in-out infinite;
}
.scn-ruined-by-women .woman-right {
  position: absolute; bottom: 25%; right: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #6a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ru-woman-r 2.4s ease-in-out infinite;
}
.scn-ruined-by-women .money-bag {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 16px; background: radial-gradient(circle, #c8a050 0%, #906830 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 10px 2px rgba(200,160,80,.5); animation: ru-bag 4s ease-in-out infinite;
}
.scn-ruined-by-women .shadow-spot {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%; background: radial-gradient(ellipse at center, rgba(0,0,0,.6) 0%, transparent 80%); animation: ru-shadow 5s ease-in-out infinite alternate;
}
@keyframes ru-theater { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ru-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes ru-prince { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes ru-woman-l { 0%,100% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes ru-woman-r { 0%,100% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes ru-bag { 0%,100% { transform: translate(-50%, 0) rotate(-10deg); } 50% { transform: translate(-50%, -8px) rotate(10deg); } }
@keyframes ru-shadow { 0% { opacity: .3; } 100% { opacity: .7; } }

.scn-bakou-episode {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #c8a070 0%, transparent 80%);
}
.scn-bakou-episode .sky-bakou {
  position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); animation: ba-sky 12s ease-in-out infinite alternate;
}
.scn-bakou-episode .ground-bakou {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-bakou-episode .carriage-body {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,.6); animation: ba-carriage 4s ease-in-out infinite;
}
.scn-bakou-episode .broken-wheel {
  position: absolute; bottom: 27%; left: 25%; width: 30px; height: 30px; background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50%; border: 4px solid #3a2a1a; box-shadow: 0 0 0 2px #7a6a5a; animation: ba-wheel 2s ease-in-out infinite;
}
.scn-bakou-episode .cannon {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 20px; background: linear-gradient(90deg, #2a2a2a 0%, #4a4a4a 100%); border-radius: 40% 10% 10% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ba-cannon 6s ease-in-out infinite;
}
.scn-bakou-episode .soldier {
  position: absolute; bottom: 20%; right: 30%; width: 16px; height: 40px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: ba-soldier 3s ease-in-out infinite;
}
.scn-bakou-episode .coachman {
  position: absolute; bottom: 25%; left: 10%; width: 18px; height: 35px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ba-coach 2.5s ease-in-out infinite;
}
.scn-bakou-episode .dust-puff {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 20px; background: radial-gradient(ellipse, rgba(150,130,110,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ba-dust 8s linear infinite;
}
@keyframes ba-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ba-carriage { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ba-wheel { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } }
@keyframes ba-cannon { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }
@keyframes ba-soldier { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ba-coach { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px) rotate(-3deg); } }
@keyframes ba-dust { 0% { transform: translateX(0) scale(1); opacity: .4; } 50% { transform: translateX(20px) scale(1.5); opacity: .1; } 100% { transform: translateX(40px) scale(1); opacity: .4; } }

.scn-galitch-mystery {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1a2e 30%, #2a2a3e 60%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a6a 0%, transparent 70%);
}
.scn-galitch-mystery .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #101018 0%, #202030 100%); animation: ga-wall 15s ease-in-out infinite alternate;
}
.scn-galitch-mystery .table {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 10%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-galitch-mystery .lamp {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%); width: 12px; height: 16px; background: radial-gradient(circle, #c0c0e0 0%, #8080a0 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 0 20px 6px rgba(192,192,224,.5), 0 0 40px 12px rgba(128,128,160,.3); animation: ga-lamp 4s ease-in-out infinite alternate;
}
.scn-galitch-mystery .chair {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 30px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ga-chair 3s ease-in-out infinite;
}
.scn-galitch-mystery .figure-captive {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ga-captive 5s ease-in-out infinite;
}
.scn-galitch-mystery .figure-interrogator {
  position: absolute; bottom: 30%; right: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ga-interrog 4s ease-in-out infinite;
}
.scn-galitch-mystery .shadow-bar {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 4px; background: rgba(0,0,0,.7); border-radius: 2px; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: ga-bar 2s ease-in-out infinite alternate;
}
@keyframes ga-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ga-lamp { 0% { box-shadow: 0 0 15px 4px rgba(192,192,224,.4); opacity: .8; } 50% { box-shadow: 0 0 30px 8px rgba(192,192,224,.7); opacity: 1; } 100% { box-shadow: 0 0 20px 5px rgba(192,192,224,.5); opacity: .9; } }
@keyframes ga-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ga-captive { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes ga-interrog { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes ga-bar { 0% { transform: scaleX(1); opacity: .5; } 100% { transform: scaleX(1.2); opacity: .8; } }

.scn-supper-room-intrigue {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a2a 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 50%, #c89050 0%, transparent 80%);
}
.scn-supper-room-intrigue .bg-restaurant {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 100%); animation: su-bg 12s ease-in-out infinite alternate;
}
.scn-supper-room-intrigue .table-cloth {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 25%; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-radius: 20% 20% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.5);
}
.scn-supper-room-intrigue .chandelier {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 60px; height: 40px; background: radial-gradient(ellipse at 50% 30%, #e0c080 0%, #c0a060 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 10px rgba(224,192,128,.6), 0 0 80px 20px rgba(192,160,96,.3); animation: su-chandelier 6s ease-in-out infinite alternate;
}
.scn-supper-room-intrigue .officer-left {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: su-officer-l 4s ease-in-out infinite;
}
.scn-supper-room-intrigue .officer-right {
  position: absolute; bottom: 25%; right: 20%; width: 20px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: su-officer-r 4.5s ease-in-out infinite;
}
.scn-supper-room-intrigue .natacha {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 18px; height: 45px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: su-natacha 3s ease-in-out infinite;
}
.scn-supper-room-intrigue .door-arch {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 60%; background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); animation: su-door 8s ease-in-out infinite alternate;
}
.scn-supper-room-intrigue .light-spot {
  position: absolute; top: 20%; left: 40%; right: 40%; height: 30%; background: radial-gradient(ellipse at center, rgba(255,220,150,.3) 0%, transparent 100%); animation: su-light 5s ease-in-out infinite alternate;
}
@keyframes su-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes su-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes su-officer-l { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes su-officer-r { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(-3deg); } }
@keyframes su-natacha { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-46%) rotate(-5deg); } }
@keyframes su-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes su-light { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }

.scn-watch-the-bay {
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1a2e 100%), radial-gradient(ellipse at 70% 30%, #3c3a5a 0%, transparent 60%);
}
.scn-watch-the-bay .wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset -4px 0 16px rgba(0,0,0,.5);
}
.scn-watch-the-bay .window-frame {
  position: absolute; left: 35%; bottom: 30%; width: 55%; height: 55%;
  background: transparent;
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px #2a1a0a, 0 8px 24px rgba(0,0,0,.6);
}
.scn-watch-the-bay .night-sky {
  position: absolute; left: 35%; bottom: 30%; width: calc(55% - 12px); height: calc(55% - 12px);
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%);
  animation: wtb-sky 20s ease-in-out infinite alternate;
}
.scn-watch-the-bay .bay {
  position: absolute; left: 35%; bottom: calc(30% + 0px); width: calc(55% - 12px); height: 18%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  animation: wtb-bay 12s ease-in-out infinite alternate;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-watch-the-bay .boat.far {
  position: absolute; left: 48%; bottom: 40%; width: 6%; height: 3%;
  background: #2a2a4a;
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 4px rgba(255,255,255,.1);
  animation: wtb-boat-far 30s linear infinite;
}
.scn-watch-the-bay .boat.near {
  position: absolute; left: 38%; bottom: 33%; width: 9%; height: 4%;
  background: #1a1a3a;
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 6px rgba(255,255,255,.15);
  animation: wtb-boat-near 45s linear infinite reverse;
}
.scn-watch-the-bay .table {
  position: absolute; right: 8%; bottom: 12%; width: 24%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-watch-the-bay .lamp {
  position: absolute; right: 10%; bottom: 23%; width: 6%; height: 9%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, #8a5a2a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: wtb-lamp 4s ease-in-out infinite alternate;
}
.scn-watch-the-bay .figure {
  position: absolute; right: 12%; bottom: 14%; 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: wtb-figure 6s ease-in-out infinite;
}
@keyframes wtb-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes wtb-bay { 0% { background-position: 0 0; transform: scaleY(1); } 50% { background-position: 0 2px; transform: scaleY(1.02); } 100% { background-position: 0 0; transform: scaleY(1); } }
@keyframes wtb-boat-far { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.1) rotate(1deg); } 100% { transform: translateX(40px) scale(1); } }
@keyframes wtb-boat-near { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-30px) scale(1.05) rotate(-1deg); } 100% { transform: translateX(-60px) scale(1); } }
@keyframes wtb-lamp { 0% { opacity: .8; box-shadow: 0 0 20px 6px #c08040; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #ffd080; } 100% { opacity: .9; box-shadow: 0 0 25px 8px #c08040; } }
@keyframes wtb-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(-8px) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-gounsovski-taunts {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a8 100%), radial-gradient(ellipse at 80% 50%, #f0e8d8 0%, transparent 70%);
}
.scn-gounsovski-taunts .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d8c8b8 0%, #b8a898 100%);
}
.scn-gounsovski-taunts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-gounsovski-taunts .table-center {
  position: absolute; bottom: 15%; left: 50%; width: 30%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
}
.scn-gounsovski-taunts .chair-left {
  position: absolute; bottom: 10%; left: 20%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: gt-chair 5s ease-in-out infinite;
}
.scn-gounsovski-taunts .chair-right {
  position: absolute; bottom: 10%; right: 20%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: gt-chair 5s ease-in-out infinite 1s;
}
.scn-gounsovski-taunts .shadow-figure-left {
  position: absolute; bottom: 18%; left: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: gt-shadow-left 8s ease-in-out infinite;
}
.scn-gounsovski-taunts .shadow-figure-right {
  position: absolute; bottom: 18%; right: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: gt-shadow-right 8s ease-in-out infinite 2s;
}
.scn-gounsovski-taunts .clock {
  position: absolute; top: 8%; right: 12%; width: 10%; height: 10%;
  background: radial-gradient(circle, #c0b0a0 0%, #807060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: gt-clock 60s linear infinite;
}
.scn-gounsovski-taunts .lamp-overhead {
  position: absolute; top: 2%; left: 50%; width: 6%; height: 6%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px #c08040, 0 0 80px 30px rgba(192,128,64,.2);
  animation: gt-lamp 3s ease-in-out infinite alternate;
}
@keyframes gt-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gt-shadow-left { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes gt-shadow-right { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes gt-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes gt-lamp { 0% { opacity: .85; box-shadow: 0 0 30px 12px #c08040; } 50% { opacity: 1; box-shadow: 0 0 50px 20px #ffd080; } 100% { opacity: .9; box-shadow: 0 0 35px 14px #c08040; } }

.scn-bogus-doctors {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%), radial-gradient(ellipse at 30% 80%, #e0d0c0 0%, transparent 60%);
}
.scn-bogus-doctors .counter {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-bogus-doctors .shelf.jars {
  position: absolute; top: 10%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.2);
}
.scn-bogus-doctors .prescription-pad {
  position: absolute; top: 28%; left: 20%; width: 8%; height: 6%;
  background: #f0e8d8;
  border: 1px solid #a09080;
  transform: rotate(-5deg);
  animation: bd-pad 10s ease-in-out infinite alternate;
}
.scn-bogus-doctors .figure-doctor {
  position: absolute; bottom: 24%; left: 22%; width: 9%; height: 34%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bd-doctor 7s ease-in-out infinite;
}
.scn-bogus-doctors .figure-patient {
  position: absolute; bottom: 22%; right: 20%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bd-patient 8s ease-in-out infinite 1s;
}
.scn-bogus-doctors .door {
  position: absolute; bottom: 8%; right: 8%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -2px 0 6px rgba(0,0,0,.3);
  animation: bd-door 15s ease-in-out infinite;
}
.scn-bogus-doctors .lantern-wall {
  position: absolute; top: 12%; left: 8%; width: 5%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 70%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.2);
  animation: bd-lantern 4s ease-in-out infinite alternate;
}
.scn-bogus-doctors .shadow-stripe {
  position: absolute; top: 0; bottom: 0; left: 40%; width: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.05) 50%, rgba(0,0,0,.15) 100%);
  animation: bd-stripe 6s ease-in-out infinite alternate;
}
@keyframes bd-pad { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes bd-doctor { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bd-patient { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes bd-lantern { 0% { opacity: .8; box-shadow: 0 0 20px 6px #c08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080; } 100% { opacity: .9; box-shadow: 0 0 24px 8px #c08040; } }
@keyframes bd-stripe { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .5; } }

.scn-race-to-datcha {
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 40%, #0a0a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 70%);
}
.scn-race-to-datcha .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a2a4a 50%, #1a1a3a 100%);
  animation: rtd-sky 15s ease-in-out infinite alternate;
}
.scn-race-to-datcha .road {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-race-to-datcha .carriage {
  position: absolute; bottom: 20%; left: 50%; width: 18%; height: 14%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: rtd-carriage 8s ease-in-out infinite;
}
.scn-race-to-datcha .horse {
  position: absolute; bottom: 22%; left: 60%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtd-horse 6s ease-in-out infinite alternate;
}
.scn-race-to-datcha .driver {
  position: absolute; bottom: 30%; left: 48%; width: 7%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtd-driver 6s ease-in-out infinite;
}
.scn-race-to-datcha .lantern-post {
  position: absolute; bottom: 0%; left: 20%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 2px;
}
.scn-race-to-datcha .lantern-post::after {
  content: '';
  position: absolute; top: -10%; left: 50%; transform: translateX(-50%);
  width: 120%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3);
  animation: rtd-lantern 3s ease-in-out infinite alternate;
}
.scn-race-to-datcha .trees.left {
  position: absolute; bottom: 30%; left: 5%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rtd-trees-left 20s linear infinite;
}
.scn-race-to-datcha .trees.right {
  position: absolute; bottom: 30%; right: 5%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: rtd-trees-right 25s linear infinite reverse;
}
.scn-race-to-datcha .dust {
  position: absolute; bottom: 16%; left: 55%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: rtd-dust 4s ease-in-out infinite alternate;
}
@keyframes rtd-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes rtd-carriage { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes rtd-horse { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rtd-driver { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rtd-lantern { 0% { opacity: .8; box-shadow: 0 0 20px 6px #c08040; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080; } 100% { opacity: .9; box-shadow: 0 0 24px 8px #c08040; } }
@keyframes rtd-trees-left { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes rtd-trees-right { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes rtd-dust { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .6; transform: scale(1.2); } 100% { opacity: .3; transform: scale(1); } }

/* Scene: refused-blindfold — dark gaslit execution scene */
.scn-refused-blindfold {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2c1810 30%, #3a2218 60%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 20%, #4a3020 0%, transparent 60%);
}
.scn-refused-blindfold .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  animation: rfb-wall 20s ease-in-out infinite alternate;
}
.scn-refused-blindfold .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-refused-blindfold .figure-left {
  position: absolute; bottom: 24%; left: 30%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rfb-fig-left 4s ease-in-out infinite;
}
.scn-refused-blindfold .figure-right {
  position: absolute; bottom: 24%; right: 30%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rfb-fig-right 5s ease-in-out infinite;
}
.scn-refused-blindfold .blindfold-left {
  position: absolute; bottom: 30%; left: 28%; width: 18px; height: 6px;
  background: #5c3a2a; border-radius: 10px;
  animation: rfb-blink 3s ease-in-out infinite;
}
.scn-refused-blindfold .blindfold-right {
  position: absolute; bottom: 30%; right: 28%; width: 18px; height: 6px;
  background: #5c3a2a; border-radius: 10px;
  animation: rfb-blink 3s ease-in-out infinite 1.5s;
}
.scn-refused-blindfold .lantern {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #f0c060 0%, #a06020 70%);
  border-radius: 10px 10px 5px 5px;
  box-shadow: 0 0 40px 12px #c08040, 0 0 80px 24px rgba(192,128,64,0.3);
  animation: rfb-lantern 6s ease-in-out infinite alternate;
}
.scn-refused-blindfold .smoke {
  position: absolute; top: 10%; left: 45%; width: 120px; height: 100px;
  background: radial-gradient(ellipse, rgba(180,140,80,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: rfb-smoke 12s ease-in-out infinite;
}
.scn-refused-blindfold .spark {
  position: absolute; top: 20%; left: 48%; width: 4px; height: 4px;
  background: #ffd080; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffd080;
  animation: rfb-spark 2s ease-in-out infinite;
}
@keyframes rfb-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rfb-fig-left { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rfb-fig-right { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-4px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rfb-blink { 0% { opacity: 1 } 10% { opacity: 0.3 } 20% { opacity: 1 } 100% { opacity: 1 } }
@keyframes rfb-lantern { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px #a06020 } 50% { opacity: 1; box-shadow: 0 0 50px 16px #f0c060 } 100% { opacity: 0.8; box-shadow: 0 0 35px 10px #a06020 } }
@keyframes rfb-smoke { 0% { transform: translateY(0) scale(0.8) } 50% { transform: translateY(-20px) scale(1.1) } 100% { transform: translateY(0) scale(0.9) } }
@keyframes rfb-spark { 0% { opacity: 0; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-10px) } 100% { opacity: 0; transform: translateY(0) } }

/* Scene: annouchka-accuses — dark gaslit interior accusation */
.scn-annouchka-accuses {
  background: 
    linear-gradient(180deg, #1a1008 0%, #2a1810 30%, #3a2218 60%, #1a1008 100%),
    radial-gradient(ellipse at 40% 60%, #4a3020 0%, transparent 70%);
}
.scn-annouchka-accuses .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 50%, #0d0602 100%);
  animation: aac-room 15s ease-in-out infinite alternate;
}
.scn-annouchka-accuses .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a180e 100%);
  border-radius: 5px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-annouchka-accuses .candle {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0c060 0%, #a06020 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 6px #f0c060;
  animation: aac-candle 3s ease-in-out infinite alternate;
}
.scn-annouchka-accuses .figure-annouchka {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: aac-fig-a 4s ease-in-out infinite;
}
.scn-annouchka-accuses .mantle {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); /* terracotta, no red */
  border-radius: 30% 30% 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: aac-mantle 3s ease-in-out infinite alternate;
}
.scn-annouchka-accuses .finger-point {
  position: absolute; bottom: 50%; left: 52%; width: 4px; height: 12px;
  background: #0d0804;
  transform: rotate(30deg);
  animation: aac-point 2s ease-in-out infinite;
}
.scn-annouchka-accuses .figure-gounsovski {
  position: absolute; bottom: 18%; right: 30%; width: 55px; height: 115px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: aac-fig-g 5s ease-in-out infinite;
}
.scn-annouchka-accuses .shadow-group {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: aac-shadow 10s ease-in-out infinite alternate;
}
@keyframes aac-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes aac-candle { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.95) } 50% { opacity: 1; transform: translateX(-50%) scale(1.05) } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95) } }
@keyframes aac-fig-a { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aac-mantle { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(5deg) scale(1.05) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes aac-point { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }
@keyframes aac-fig-g { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aac-shadow { 0% { opacity: 0.4 } 100% { opacity: 0.7 } }

/* Scene: gounsovski-threatens — tense gaslit corridor */
.scn-gounsovski-threatens {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1810 30%, #1a0e08 100%),
    radial-gradient(ellipse at 60% 40%, #3a2218 0%, transparent 60%);
}
.scn-gounsovski-threatens .corridor-bg {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(135deg, #1a1008 0%, #0d0602 100%);
  animation: gth-corridor 18s ease-in-out infinite alternate;
}
.scn-gounsovski-threatens .door {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a180e 100%);
  border-radius: 3px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-gounsovski-threatens .figure-gounsovski {
  position: absolute; bottom: 22%; left: 20%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: gth-fig-g 4s ease-in-out infinite;
}
.scn-gounsovski-threatens .figure-galitch {
  position: absolute; bottom: 22%; left: 45%; width: 50px; height: 115px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: gth-fig-ga 3.5s ease-in-out infinite;
}
.scn-gounsovski-threatens .figure-annouchka {
  position: absolute; bottom: 22%; left: 58%; width: 45px; height: 108px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: gth-fig-an 5s ease-in-out infinite;
}
.scn-gounsovski-threatens .figures-three {
  position: absolute; bottom: 22%; right: 10%; width: 100px; height: 110px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0804 50%, transparent 100%);
  border-radius: 40% 40% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: gth-three 6s ease-in-out infinite;
}
.scn-gounsovski-threatens .lamp {
  position: absolute; top: 15%; left: 40%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #f0c060 0%, #a06020 70%);
  border-radius: 8px 8px 3px 3px;
  box-shadow: 0 0 30px 10px #c08040;
  animation: gth-lamp 5s ease-in-out infinite alternate;
}
.scn-gounsovski-threatens .distortion {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.3) 100%);
  animation: gth-dist 8s ease-in-out infinite alternate;
}
@keyframes gth-corridor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes gth-fig-g { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gth-fig-ga { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gth-fig-an { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gth-three { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes gth-lamp { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px #a06020 } 50% { opacity: 1; box-shadow: 0 0 40px 15px #f0c060 } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px #a06020 } }
@keyframes gth-dist { 0% { opacity: 0.2 } 100% { opacity: 0.5 } }

/* Scene: X-A-DRAMA-IN-THE-NIGHT — tense moonlit interior */
.scn-X-A-DRAMA-IN-THE-NIGHT {
  background: 
    linear-gradient(180deg, #0a0e1a 0%, #1a2030 30%, #0a0e1a 100%),
    radial-gradient(ellipse at 70% 30%, #2a3a5a 0%, transparent 60%);
}
.scn-X-A-DRAMA-IN-THE-NIGHT .night-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #151a2a 100%);
  animation: din-night 20s ease-in-out infinite alternate;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .window {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2030 80%);
  border-radius: 5px;
  border: 4px solid #4a5a6a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-X-A-DRAMA-IN-THE-NIGHT .moonlight {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, transparent 60%);
  filter: blur(4px);
  animation: din-moon 8s ease-in-out infinite alternate;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .figure-gounsovski {
  position: absolute; bottom: 22%; right: 30%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #151a2a 0%, #0a0e1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: din-fig 6s ease-in-out infinite;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .glass {
  position: absolute; bottom: 38%; right: 35%; width: 10px; height: 15px;
  background: radial-gradient(ellipse, rgba(180,220,255,0.4) 0%, transparent 70%);
  border-radius: 3px;
  animation: din-glass 3s ease-in-out infinite alternate;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .hand-rub {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 8px;
  background: #1a2030; border-radius: 40% 40% 0 0;
  transform: rotate(-20deg);
  animation: din-hand 4s ease-in-out infinite;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: din-shadow 10s ease-in-out infinite alternate;
}
.scn-X-A-DRAMA-IN-THE-NIGHT .column {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 20px; height: 80%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2030 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
@keyframes din-night { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes din-moon { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }
@keyframes din-fig { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes din-glass { 0% { opacity: 0.2 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes din-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes din-shadow { 0% { opacity: 0.3 } 100% { opacity: 0.7 } }

/* Scene: return-to-datcha (calm, sunlit) */
.scn-return-to-datcha {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-return-to-datcha .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%);
  animation: rtSky 20s ease-in-out infinite alternate;
}
.scn-return-to-datcha .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7c9e7c 0%, #4a7a4a 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: rtHill 15s ease-in-out infinite alternate;
}
.scn-return-to-datcha .path {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #d4b88c 0%, #c0a070 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: scaleY(0.6);
  animation: rtPath 8s ease-in-out infinite alternate;
}
.scn-return-to-datcha .tree-a {
  position: absolute; bottom: 40%; left: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2d5a2d 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: rtTreeA 12s ease-in-out infinite alternate;
}
.scn-return-to-datcha .tree-b {
  position: absolute; bottom: 40%; right: 15%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a6a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
  animation: rtTreeB 18s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-return-to-datcha .figure-a {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2c2c3a 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rtWalkA 4s ease-in-out infinite;
}
.scn-return-to-datcha .figure-b {
  position: absolute; bottom: 29%; left: 40%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rtWalkB 4.5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-return-to-datcha .figure-c {
  position: absolute; bottom: 28%; left: 50%; width: 15px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rtWalkC 5s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-return-to-datcha .butterfly {
  position: absolute; top: 25%; left: 20%; width: 8px; height: 6px;
  background: radial-gradient(circle, #fff5e0 0%, #f0c070 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,192,112,0.4);
  animation: rtButterfly 6s ease-in-out infinite alternate;
}
@keyframes rtSky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rtHill { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rtPath { 0%,100% { transform: scaleY(0.6) translateX(0); } 50% { transform: scaleY(0.6) translateX(3px); } }
@keyframes rtTreeA { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes rtTreeB { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes rtWalkA { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes rtWalkB { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-5px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-10px) translateY(0) rotate(1deg); } 75% { transform: translateX(-15px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-20px) translateY(0) rotate(0); } }
@keyframes rtWalkC { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes rtButterfly { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 25% { transform: translate(20px, -10px) rotate(10deg) scale(1.2); } 50% { transform: translate(40px, 0) rotate(0deg) scale(0.9); } 75% { transform: translate(20px, 10px) rotate(-10deg) scale(1.1); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }

/* Scene: natacha-still-missing (tense, sunlit) */
.scn-natacha-still-missing {
  background: linear-gradient(180deg, #e6d5b8 0%, #c4a882 50%, #8b7355 100%), radial-gradient(ellipse at 40% 30%, #fff5e0 0%, transparent 60%);
}
.scn-natacha-still-missing .wall {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #b0997a 0%, #7a6345 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-natacha-still-missing .door {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  box-shadow: 6px 0 12px rgba(0,0,0,0.4), inset 0 0 0 3px #2a1a0a;
}
.scn-natacha-still-missing .shadow-door {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3), transparent);
  transform: translateX(-50%) translateX(10px);
  border-radius: 4px;
  animation: ntShadowDoor 3s ease-in-out infinite alternate;
}
.scn-natacha-still-missing .figure-schwitzar {
  position: absolute; bottom: 22%; left: 38%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ntSchwitzar 2s ease-in-out infinite;
}
.scn-natacha-still-missing .arrow {
  position: absolute; bottom: 50%; left: 55%; width: 40px; height: 3px;
  background: #c8553d;
  transform: rotate(20deg);
  box-shadow: 0 0 4px rgba(200,85,61,0.5);
  animation: ntArrow 1.5s ease-in-out infinite alternate;
}
.scn-natacha-still-missing .path-outside {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 5%;
  background: linear-gradient(180deg, #d4b88c 0%, #b89a6a 100%);
  border-radius: 50%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-natacha-still-missing .window-light {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(circle, #fff5e6 0%, #f0d080 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.6), 0 0 60px 20px rgba(240,208,128,0.2);
  animation: ntWindowLight 4s ease-in-out infinite alternate;
}
@keyframes ntShadowDoor { 0% { opacity: 0.6; transform: translateX(-50%) translateX(10px); } 100% { opacity: 0.9; transform: translateX(-50%) translateX(5px); } }
@keyframes ntSchwitzar { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ntArrow { 0% { transform: translateX(0) rotate(20deg); opacity: 1; } 50% { transform: translateX(10px) rotate(25deg); opacity: 0.7; } 100% { transform: translateX(0) rotate(20deg); opacity: 1; } }
@keyframes ntWindowLight { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(240,208,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,208,128,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(240,208,128,0.5); } }

/* Scene: marshal-and-box (tense, sunlit) */
.scn-marshal-and-box {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4bc96 40%, #a08060 100%), radial-gradient(ellipse at 60% 50%, #fff5e0 0%, transparent 60%);
}
.scn-marshal-and-box .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a442a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-marshal-and-box .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #e6d5b3 0%, #c4a87f 100%);
}
.scn-marshal-and-box .desk {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-marshal-and-box .box {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  transform: translateX(-50%);
  border-radius: 3px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: mbBox 2s ease-in-out infinite alternate;
}
.scn-marshal-and-box .figure-marshal {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbMarshal 3s ease-in-out infinite;
}
.scn-marshal-and-box .figure-head {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mbHead 2.5s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-marshal-and-box .candle {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0e68c 0%, #c4a040 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(20px);
  box-shadow: 0 0 8px 2px #f0d080;
  animation: mbCandle 4s ease-in-out infinite alternate;
}
.scn-marshal-and-box .shadow-candle {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 10px;
  background: linear-gradient(90deg, rgba(0,0,0,0.3), transparent);
  transform: translateX(25px) rotate(20deg);
  border-radius: 50%;
  animation: mbShadowCandle 4s ease-in-out infinite alternate;
}
@keyframes mbBox { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes mbMarshal { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mbHead { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mbCandle { 0% { opacity: 0.7; transform: translateX(20px) scaleY(1); } 50% { opacity: 1; transform: translateX(20px) scaleY(1.1); } 100% { opacity: 0.8; transform: translateX(20px) scaleY(1); } }
@keyframes mbShadowCandle { 0% { opacity: 0.3; transform: translateX(25px) rotate(20deg) scaleX(1); } 50% { opacity: 0.6; transform: translateX(25px) rotate(20deg) scaleX(1.2); } 100% { opacity: 0.3; transform: translateX(25px) rotate(20deg) scaleX(1); } }

/* Scene: sign-to-search-dining-room (tense, bright-interior) */
.scn-sign-to-search-dining-room {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a0 40%, #b0906a 100%), radial-gradient(ellipse at 50% 60%, #fff5e0 0%, transparent 50%);
}
.scn-sign-to-search-dining-room .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a442a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-sign-to-search-dining-room .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b890 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
}
.scn-sign-to-search-dining-room .window-frame {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 100px;
  border: 6px solid #5a3a2a;
  background: linear-gradient(180deg, #fff5e6 0%, #e6d0b0 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);
}
.scn-sign-to-search-dining-room .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-sign-to-search-dining-room .chair-a {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform: scale(0.9);
}
.scn-sign-to-search-dining-room .chair-b {
  position: absolute; bottom: 18%; right: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  transform: scale(0.9);
}
.scn-sign-to-search-dining-room .figure-schwitzar {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdSchwitzar 2.5s ease-in-out infinite;
}
.scn-sign-to-search-dining-room .figure-general {
  position: absolute; bottom: 24%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sdGeneral 3s ease-in-out infinite;
  animation-delay: -0.5s;
}
.scn-sign-to-search-dining-room .lamp {
  position: absolute; top: 5%; left: 50%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0e68c 0%, #c4a040 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(240,230,140,0.4), 0 0 40px 16px rgba(240,230,140,0.15);
  animation: sdLamp 3s ease-in-out infinite alternate;
}
@keyframes sdSchwitzar { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sdGeneral { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sdLamp { 0% { opacity: 0.6; box-shadow: 0 0 10px 4px rgba(240,230,140,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(240,230,140,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 15px 6px rgba(240,230,140,0.4); } }

.scn-horror-of-certainty { background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #4a3a3a 70%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 60%); }
.scn-horror-of-certainty .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #3a2a1a 100%); animation: hc-wall 6s ease-in-out infinite alternate; }
.scn-horror-of-certainty .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); animation: hc-floor 4s ease-in-out infinite alternate; }
.scn-horror-of-certainty .lamp { position:absolute; top:30%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(200,160,96,.3); transform-origin: top center; animation: hc-lamp 0.6s ease-in-out infinite; }
.scn-horror-of-certainty .lamp-glow { position:absolute; top:28%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,96,.4) 0%, rgba(200,160,96,.1) 40%, transparent 70%); border-radius: 50%; animation: hc-glow 1.2s ease-in-out infinite alternate; }
.scn-horror-of-certainty .figure-falling { position:absolute; bottom:20%; left:50%; width:24px; height:50px; transform:translateX(-50%) rotate(0deg); background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-fall 2s ease-in-out infinite; }
.scn-horror-of-certainty .shadow-shift { position:absolute; bottom:8%; left:40%; width:60px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: hc-shadow 1.8s ease-in-out infinite alternate; }
.scn-horror-of-certainty .sparkle-a { position:absolute; top:20%; left:30%; width:4px; height:4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,208,128,.6); animation: hc-sparkle-a 1.5s ease-in-out infinite; }
.scn-horror-of-certainty .sparkle-b { position:absolute; top:35%; left:65%; width:3px; height:3px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 6px 1px rgba(255,208,128,.4); animation: hc-sparkle-b 2.1s ease-in-out infinite 0.7s; }
@keyframes hc-wall { 0% { opacity:.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.85; transform: scale(0.98) } }
@keyframes hc-floor { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.7; transform: translateY(0) } }
@keyframes hc-lamp { 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(-2deg) } }
@keyframes hc-glow { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.7; transform: translateX(-50%) scale(0.95) } }
@keyframes hc-fall { 0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 20% { transform: translateX(-50%) rotate(-8deg) translateY(-4px) } 40% { transform: translateX(-50%) rotate(5deg) translateY(-2px) } 60% { transform: translateX(-50%) rotate(-3deg) translateY(2px) } 80% { transform: translateX(-50%) rotate(6deg) translateY(4px) } 100% { transform: translateX(-50%) rotate(0deg) translateY(0) } }
@keyframes hc-shadow { 0% { transform: scale(1) translateX(0); opacity:.5 } 50% { transform: scale(1.2) translateX(6px); opacity:.7 } 100% { transform: scale(0.9) translateX(-3px); opacity:.4 } }
@keyframes hc-sparkle-a { 0% { opacity:0; transform: scale(0) } 30% { opacity:1; transform: scale(1.5) } 60% { opacity:.3; transform: scale(0.8) } 100% { opacity:0; transform: scale(0) } }
@keyframes hc-sparkle-b { 0% { opacity:0; transform: scale(0) translate(0,0) } 30% { opacity:1; transform: scale(1.3) translate(4px,-4px) } 60% { opacity:.4; transform: scale(0.6) translate(-2px,2px) } 100% { opacity:0; transform: scale(0) translate(0,0) } }

.scn-natacha-has-vanished { background: linear-gradient(180deg, #2a2a3a 0%, #4a3a4a 40%, #3a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #5a4a5a 0%, transparent 70%); }
.scn-natacha-has-vanished .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a3a 0%, #6a5a5a 40%, #3a2a2a 100%); animation: nh-room 8s ease-in-out infinite alternate; }
.scn-natacha-has-vanished .door-frame { position:absolute; top:10%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-natacha-has-vanished .door-panel { position:absolute; top:12%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: nh-door 6s ease-in-out infinite alternate; }
.scn-natacha-has-vanished .table-empty { position:absolute; bottom:22%; left:30%; width:70px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-2deg); animation: nh-table 5s ease-in-out infinite alternate; }
.scn-natacha-has-vanished .chair-tilted { position:absolute; bottom:14%; left:32%; width:16px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(12deg); transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: nh-chair 7s ease-in-out infinite; }
.scn-natacha-has-vanished .figure-standing { position:absolute; bottom:15%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nh-figure 9s ease-in-out infinite alternate; }
.scn-natacha-has-vanished .shadow-long { position:absolute; bottom:8%; left:52%; width:50px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: nh-shadow 10s ease-in-out infinite alternate; }
.scn-natacha-has-vanished .dust-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(255,255,255,.15); border-radius: 50%; filter: blur(1px); animation: nh-dust-a 20s linear infinite; }
.scn-natacha-has-vanished .dust-b { position:absolute; top:50%; left:70%; width:3px; height:3px; background: rgba(255,255,255,.1); border-radius: 50%; filter: blur(1px); animation: nh-dust-b 25s linear infinite reverse; }
@keyframes nh-room { 0% { opacity:.85; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:.9; transform: scale(0.99) } }
@keyframes nh-door { 0% { transform: translateX(-50%) scaleX(1) } 30% { transform: translateX(-50%) scaleX(0.95) } 60% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes nh-table { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes nh-chair { 0% { transform: rotate(12deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(14deg) } 75% { transform: rotate(11deg) } 100% { transform: rotate(12deg) } }
@keyframes nh-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(-2px) translateY(1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes nh-shadow { 0% { transform: scale(1) translateX(0); opacity:.5 } 50% { transform: scale(1.15) translateX(6px); opacity:.7 } 100% { transform: scale(0.9) translateX(-4px); opacity:.4 } }
@keyframes nh-dust-a { 0% { transform: translateY(0) translateX(0); opacity:0 } 10% { opacity:.8 } 50% { transform: translateY(-40px) translateX(20px); opacity:.2 } 90% { opacity:.6 } 100% { transform: translateY(-80px) translateX(40px); opacity:0 } }
@keyframes nh-dust-b { 0% { transform: translateY(0) translateX(0); opacity:0 } 15% { opacity:.6 } 50% { transform: translateY(-30px) translateX(-15px); opacity:.3 } 85% { opacity:.5 } 100% { transform: translateY(-60px) translateX(-30px); opacity:0 } }

.scn-search-for-natacha-again { background: linear-gradient(180deg, #2a2a3a 0%, #4a3a4a 30%, #5a4a3a 60%, #3a2a2a 100%), radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, transparent 70%); }
.scn-search-for-natacha-again .hall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 30%, #4a3a2a 70%, #2a1a1a 100%); animation: sn-hall 7s ease-in-out infinite alternate; }
.scn-search-for-natacha-again .gate-left { position:absolute; bottom:20%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.4); transform: rotate(-3deg); animation: sn-gate-l 5s ease-in-out infinite alternate; }
.scn-search-for-natacha-again .gate-right { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 10px rgba(0,0,0,.4); transform: rotate(3deg); animation: sn-gate-r 5s ease-in-out infinite alternate 0.5s; }
.scn-search-for-natacha-again .figure-looking { position:absolute; bottom:18%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-look 4s ease-in-out infinite; }
.scn-search-for-natacha-again .lamp-hall { position:absolute; top:12%; left:50%; width:6px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; }
.scn-search-for-natacha-again .lamp-hall-glow { position:absolute; top:10%; left:50%; width:100px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,96,.2) 0%, rgba(200,160,96,.05) 50%, transparent 80%); border-radius: 50%; animation: sn-glow 3s ease-in-out infinite alternate; }
.scn-search-for-natacha-again .shadow-on-wall { position:absolute; bottom:18%; left:55%; width:35px; height:45px; background: radial-gradient(ellipse at top, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(6px); animation: sn-shadow 4.5s ease-in-out infinite alternate; }
.scn-search-for-natacha-again .stripes { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(0,0,0,.03) 8px, rgba(0,0,0,.03) 9px); pointer-events: none; animation: sn-stripes 12s linear infinite; }
@keyframes sn-hall { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.015) } 100% { opacity:.9; transform: scale(0.985) } }
@keyframes sn-gate-l { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes sn-gate-r { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes sn-look { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(4px) rotate(2deg) } 40% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(6px) rotate(1deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sn-glow { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.7; transform: translateX(-50%) scale(1.08) } 100% { opacity:.5; transform: translateX(-50%) scale(0.95) } }
@keyframes sn-shadow { 0% { transform: scale(1) translateX(0); opacity:.4 } 50% { transform: scale(1.2) translateX(8px); opacity:.6 } 100% { transform: scale(0.8) translateX(-5px); opacity:.3 } }
@keyframes sn-stripes { 0% { background-position: 0 0 } 100% { background-position: 0 24px } }

.scn-gounsovski-drawing-room { background: linear-gradient(180deg, #3a2a2a 0%, #5a4a3a 30%, #7a6a5a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 70%); }
.scn-gounsovski-drawing-room .room-deep { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 30%, #5a4a3a 70%, #3a2a1a 100%); animation: gd-room 9s ease-in-out infinite alternate; }
.scn-gounsovski-drawing-room .wall-panel-left { position:absolute; top:10%; left:5%; width:20%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset -4px 0 10px rgba(0,0,0,.3); animation: gd-panel-l 7s ease-in-out infinite alternate; }
.scn-gounsovski-drawing-room .wall-panel-right { position:absolute; top:10%; right:5%; width:20%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset 4px 0 10px rgba(0,0,0,.3); animation: gd-panel-r 7s ease-in-out infinite alternate 1s; }
.scn-gounsovski-drawing-room .table-game { position:absolute; bottom:22%; left:50%; width:80px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-gounsovski-drawing-room .figure-seated-a { position:absolute; bottom:18%; left:42%; width:22px; height:38px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gd-fig-a 5s ease-in-out infinite; }
.scn-gounsovski-drawing-room .figure-seated-b { position:absolute; bottom:18%; right:42%; width:22px; height:38px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gd-fig-b 5s ease-in-out infinite 1.5s; }
.scn-gounsovski-drawing-room .chandelier { position:absolute; top:6%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #8a6a3a 60%, #6a5a3a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px rgba(200,160,96,.2); }
.scn-gounsovski-drawing-room .chandelier-glow { position:absolute; top:2%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,96,.25) 0%, rgba(200,160,96,.05) 50%, transparent 80%); border-radius: 50%; animation: gd-glow 4s ease-in-out infinite alternate; }
.scn-gounsovski-drawing-room .carpet { position:absolute; bottom:5%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #6a3a3a 0%, #4a2a2a 50%, #3a1a1a 100%); border-radius: 20% 20% 10% 10% / 80% 80% 40% 40%; box-shadow: 0 -4px 10px rgba(0,0,0,.3); animation: gd-carpet 8s ease-in-out infinite alternate; }
@keyframes gd-room { 0% { opacity:.85; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:.9; transform: scale(0.99) } }
@keyframes gd-panel-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gd-panel-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gd-fig-a { 0% { transform: translateX(0) rotate(-1deg) translateY(0) } 25% { transform: translateX(3px) rotate(1deg) translateY(-2px) } 50% { transform: translateX(0) rotate(-2deg) translateY(0) } 75% { transform: translateX(-2px) rotate(1deg) translateY(-1px) } 100% { transform: translateX(0) rotate(-1deg) translateY(0) } }
@keyframes gd-fig-b { 0% { transform: translateX(0) rotate(1deg) translateY(0) } 25% { transform: translateX(-3px) rotate(-1deg) translateY(-2px) } 50% { transform: translateX(0) rotate(2deg) translateY(0) } 75% { transform: translateX(2px) rotate(-1deg) translateY(-1px) } 100% { transform: translateX(0) rotate(1deg) translateY(0) } }
@keyframes gd-glow { 0% { opacity:.5; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:.6; transform: translateX(-50%) scale(0.95) } }
@keyframes gd-carpet { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.02) scaleY(0.98) } 100% { transform: scaleX(0.98) scaleY(1) } }

.scn-bomb-under-coachman-seat {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1f1a 30%, #1a1210 60%, #0d0806 100%),
    radial-gradient(ellipse at 30% 80%, #3a2520 0%, transparent 60%);
}
.scn-bomb-under-coachman-seat .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a201c 0%, transparent 50%); animation: bmb-pulse 8s ease-in-out infinite alternate; }
.scn-bomb-under-coachman-seat .coach { position:absolute; bottom:10%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #4a3830 0%, #2a1f1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.6); animation: bmb-shake 12s ease-in-out infinite; }
.scn-bomb-under-coachman-seat .seat { position:absolute; bottom:30%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, #5a4840 0%, #3a2820 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-bomb-under-coachman-seat .bomb { position:absolute; bottom:33%; left:48%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #6a4a3a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 0 12px 2px rgba(100,60,30,.4); animation: bmb-throb 2s ease-in-out infinite; }
.scn-bomb-under-coachman-seat .fuse { position:absolute; bottom:38%; left:52%; width:4px; height:12px; background: linear-gradient(180deg, #c8a060 0%, #806040 100%); border-radius: 2px; transform-origin: bottom center; animation: bmb-fuse 0.8s ease-in-out infinite alternate; }
.scn-bomb-under-coachman-seat .pool { position:absolute; bottom:5%; left:38%; width:24%; height:8%; background: radial-gradient(ellipse at 50% 50%, #6a2a1a 0%, #4a1a10 60%, transparent 100%); border-radius: 50%; opacity:0.7; animation: bmb-spread 15s ease-in-out infinite; }
.scn-bomb-under-coachman-seat .hat { position:absolute; bottom:10%; left:44%; width:12%; height:8%; background: linear-gradient(135deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: bmb-hat 6s ease-in-out infinite alternate; }
.scn-bomb-under-coachman-seat .shadow { position:absolute; inset:0 0 0 0; background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,.4) 0%, transparent 70%); animation: bmb-creep 10s ease-in-out infinite alternate; }
@keyframes bmb-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes bmb-shake { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 70% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes bmb-throb { 0% { transform: scale(1); box-shadow: 0 0 8px 1px rgba(100,60,30,.3); } 50% { transform: scale(1.15); box-shadow: 0 0 20px 4px rgba(100,60,30,.5); } 100% { transform: scale(1); box-shadow: 0 0 8px 1px rgba(100,60,30,.3); } }
@keyframes bmb-fuse { 0% { transform: rotate(-5deg); background: #c8a060; } 50% { transform: rotate(5deg); background: #e0b070; } 100% { transform: rotate(-3deg); background: #b08040; } }
@keyframes bmb-spread { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes bmb-hat { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(2px, -1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(-10deg); } }
@keyframes bmb-creep { 0% { filter: blur(2px); } 50% { filter: blur(4px); } 100% { filter: blur(2px); } }

.scn-servants-hanged-and-flight {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a221e 30%, #1e1814 60%, #100c0a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3028 0%, transparent 70%);
}
.scn-servants-hanged-and-flight .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-servants-hanged-and-flight .stair { position:absolute; bottom:20%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1a120e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-servants-hanged-and-flight .light { position:absolute; top:10%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,180,150,0.15) 0%, transparent 70%); animation: srv-flicker 4s ease-in-out infinite alternate; }
.scn-servants-hanged-and-flight .rope1 { position:absolute; top:15%; left:35%; width:2px; height:35%; background: #4a3a32; transform-origin: top center; animation: srv-sway1 6s ease-in-out infinite; }
.scn-servants-hanged-and-flight .rope2 { position:absolute; top:18%; left:65%; width:2px; height:30%; background: #4a3a32; transform-origin: top center; animation: srv-sway2 7s ease-in-out infinite; }
.scn-servants-hanged-and-flight .figure1 { position:absolute; top:30%; left:32%; width:12%; height:18%; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: top center; animation: srv-dangle1 5s ease-in-out infinite; }
.scn-servants-hanged-and-flight .figure2 { position:absolute; top:33%; left:62%; width:10%; height:15%; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: top center; animation: srv-dangle2 6s ease-in-out infinite; }
.scn-servants-hanged-and-flight .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.3) 0%, transparent 80%); animation: srv-creep 10s ease-in-out infinite; }
@keyframes srv-flicker { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.3; } }
@keyframes srv-sway1 { 0% { transform: rotate(-2deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes srv-sway2 { 0% { transform: rotate(1deg); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes srv-dangle1 { 0% { transform: translate(0,0) rotate(3deg); } 50% { transform: translate(2px, 1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(3deg); } }
@keyframes srv-dangle2 { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(-1px, 2px) rotate(4deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes srv-creep { 0% { filter: blur(1px); } 50% { filter: blur(4px); } 100% { filter: blur(1px); } }

.scn-third-attempt-bouquet-bomb {
  background:
    linear-gradient(180deg, #1e1814 0%, #2a221c 30%, #1c1612 60%, #100c08 100%),
    radial-gradient(ellipse at 70% 40%, #3a2e24 0%, transparent 60%);
}
.scn-third-attempt-bouquet-bomb .table { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: thr-creak 15s ease-in-out infinite; }
.scn-third-attempt-bouquet-bomb .bouquet { position:absolute; bottom:35%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 40%, #6a4a32 0%, #3a2a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.4); animation: thr-tremble 4s ease-in-out infinite; }
.scn-third-attempt-bouquet-bomb .bomb { position:absolute; bottom:35%; left:45%; width:8%; height:8%; background: radial-gradient(circle at 40% 40%, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(100,60,30,.5); animation: thr-throb 2.5s ease-in-out infinite; }
.scn-third-attempt-bouquet-bomb .letter { position:absolute; bottom:25%; left:30%; width:12%; height:8%; background: linear-gradient(135deg, #c8a86a 0%, #a88848 100%); transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: thr-flutter 8s ease-in-out infinite alternate; }
.scn-third-attempt-bouquet-bomb .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,.4) 0%, transparent 80%); animation: thr-creep 12s ease-in-out infinite; }
.scn-third-attempt-bouquet-bomb .light { position:absolute; top:5%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse, rgba(220,200,160,0.08) 0%, transparent 70%); animation: thr-glow 5s ease-in-out infinite alternate; }
.scn-third-attempt-bouquet-bomb .vase { position:absolute; bottom:30%; left:42%; width:16%; height:10%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 10% 10% 30% 30% / 10% 10% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
@keyframes thr-creak { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes thr-tremble { 0% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }
@keyframes thr-throb { 0% { transform: scale(1); } 50% { transform: scale(1.1); box-shadow: 0 0 24px 6px rgba(100,60,30,.6); } 100% { transform: scale(1); } }
@keyframes thr-flutter { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px, -2px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes thr-creep { 0% { filter: blur(1px); } 50% { filter: blur(5px); } 100% { filter: blur(1px); } }
@keyframes thr-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-friends-laugh-and-toast {
  background:
    linear-gradient(180deg, #f0e6d8 0%, #e8dcc8 40%, #d8c8b0 100%),
    radial-gradient(ellipse at 50% 100%, #f0e6d8 0%, transparent 70%);
}
.scn-friends-laugh-and-toast .room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f0e6d8 0%, #e0d4c0 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.05); }
.scn-friends-laugh-and-toast .table { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.1); }
.scn-friends-laugh-and-toast .figure1 { position:absolute; bottom:25%; left:20%; width:16%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frn-bounce1 3s ease-in-out infinite; }
.scn-friends-laugh-and-toast .figure2 { position:absolute; bottom:25%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frn-bounce2 3.5s ease-in-out infinite; }
.scn-friends-laugh-and-toast .figure3 { position:absolute; bottom:25%; right:20%; width:16%; height:40%; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: frn-bounce3 4s ease-in-out infinite; }
.scn-friends-laugh-and-toast .glass1 { position:absolute; bottom:38%; left:30%; width:6%; height:10%; background: linear-gradient(180deg, #f0e8d8 0%, transparent 100%); border-radius: 10% 10% 10% 10% / 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: frn-clink1 2s ease-in-out infinite; }
.scn-friends-laugh-and-toast .glass2 { position:absolute; bottom:38%; right:30%; width:6%; height:10%; background: linear-gradient(180deg, #f0e8d8 0%, transparent 100%); border-radius: 10% 10% 10% 10% / 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: frn-clink2 2.5s ease-in-out infinite; }
.scn-friends-laugh-and-toast .sparkle { position:absolute; top:10%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 30% 40%, rgba(255,255,200,0.15) 0%, transparent 60%), radial-gradient(ellipse at 70% 60%, rgba(255,255,200,0.1) 0%, transparent 50%); animation: frn-sparkle 6s ease-in-out infinite alternate; }
@keyframes frn-bounce1 { 0% { transform: scale(1) translateY(0) rotate(-2deg); } 30% { transform: scale(1.05) translateY(-4px) rotate(2deg); } 70% { transform: scale(0.98) translateY(1px) rotate(-1deg); } 100% { transform: scale(1) translateY(0) rotate(-2deg); } }
@keyframes frn-bounce2 { 0% { transform: scale(1) translateY(0) rotate(1deg); } 40% { transform: scale(1.08) translateY(-5px) rotate(-3deg); } 80% { transform: scale(0.97) translateY(2px) rotate(2deg); } 100% { transform: scale(1) translateY(0) rotate(1deg); } }
@keyframes frn-bounce3 { 0% { transform: scale(1) translateY(0) rotate(-1deg); } 35% { transform: scale(1.04) translateY(-3px) rotate(1deg); } 65% { transform: scale(0.96) translateY(1px) rotate(-2deg); } 100% { transform: scale(1) translateY(0) rotate(-1deg); } }
@keyframes frn-clink1 { 0% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(3px, -1px) rotate(-5deg); } 50% { transform: translate(5px, -2px) rotate(0deg); } 75% { transform: translate(3px, -1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-10deg); } }
@keyframes frn-clink2 { 0% { transform: translate(0,0) rotate(10deg); } 25% { transform: translate(-3px, -1px) rotate(5deg); } 50% { transform: translate(-5px, -2px) rotate(0deg); } 75% { transform: translate(-3px, -1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(10deg); } }
@keyframes frn-sparkle { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* ===== rouletabille-feigns-sleep ===== */
.scn-rouletabille-feigns-sleep {
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 20%, #6a4a3a 0%, transparent 60%);
}
.scn-rouletabille-feigns-sleep .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: rfs-wallpulse 8s ease-in-out infinite;
}
.scn-rouletabille-feigns-sleep .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-rouletabille-feigns-sleep .corner-shadow {
  position:absolute; bottom:30%; left:10%; width:50%; height:60%;
  background: radial-gradient(ellipse at 80% 80%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: rfs-shadowmove 12s ease-in-out infinite alternate;
}
.scn-rouletabille-feigns-sleep .figure-sleeping {
  position:absolute; bottom:20%; left:25%; width:40px; height:60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfs-sleepbreathe 4s ease-in-out infinite;
}
.scn-rouletabille-feigns-sleep .gaslamp {
  position:absolute; top:15%; right:20%; width:10px; height:20px;
  background: radial-gradient(circle at 50% 0%, #f0c060 0%, #b08030 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,.4), 0 0 60px 20px rgba(240,192,96,.15);
  animation: rfs-lampflicker 2s ease-in-out infinite alternate;
}
.scn-rouletabille-feigns-sleep .music-note {
  position:absolute; width:8px; height:12px;
  background: radial-gradient(circle, #c0a060 0%, #806040 100%);
  border-radius: 50%;
  filter: blur(1px);
  opacity: 0.6;
}
.scn-rouletabille-feigns-sleep .note1 {
  top:30%; left:60%; animation: rfs-note1 5s ease-in-out infinite;
}
.scn-rouletabille-feigns-sleep .note2 {
  top:25%; left:70%; animation: rfs-note2 6s ease-in-out infinite;
  animation-delay: 1.5s;
}
@keyframes rfs-wallpulse {
  0%,100% { opacity: .9; }
  50% { opacity: 1; }
}
@keyframes rfs-shadowmove {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-5%) scaleY(1.05); }
}
@keyframes rfs-sleepbreathe {
  0%,100% { transform: rotate(2deg) scaleY(1); }
  25% { transform: rotate(-1deg) scaleY(1.02); }
  50% { transform: rotate(0deg) scaleY(1.04); }
  75% { transform: rotate(1deg) scaleY(1.02); }
}
@keyframes rfs-lampflicker {
  0% { opacity: .7; box-shadow: 0 0 20px 8px rgba(240,192,96,.3), 0 0 40px 12px rgba(240,192,96,.1); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,192,96,.5), 0 0 80px 25px rgba(240,192,96,.2); }
  100% { opacity: .8; box-shadow: 0 0 25px 10px rgba(240,192,96,.35), 0 0 50px 15px rgba(240,192,96,.12); }
}
@keyframes rfs-note1 {
  0% { transform: translate(0,0) rotate(0deg); opacity: .6; }
  25% { transform: translate(10px,-15px) rotate(10deg); opacity: .8; }
  50% { transform: translate(20px,-25px) rotate(20deg); opacity: .4; }
  75% { transform: translate(30px,-10px) rotate(15deg); opacity: .6; }
  100% { transform: translate(40px,0) rotate(0deg); opacity: 0; }
}
@keyframes rfs-note2 {
  0% { transform: translate(0,0) rotate(0deg); opacity: .5; }
  25% { transform: translate(-8px,-12px) rotate(-8deg); opacity: .7; }
  50% { transform: translate(-16px,-20px) rotate(-16deg); opacity: .3; }
  75% { transform: translate(-24px,-8px) rotate(-12deg); opacity: .5; }
  100% { transform: translate(-32px,0) rotate(0deg); opacity: 0; }
}

/* ===== galitch-gives-pocketbook ===== */
.scn-galitch-gives-pocketbook {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 70%);
}
.scn-galitch-gives-pocketbook .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: ggb-roomshimmer 10s ease-in-out infinite alternate;
}
.scn-galitch-gives-pocketbook .crowd-left {
  position:absolute; bottom:15%; left:5%; width:30%; height:50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  opacity: 0.8;
  animation: ggb-crowdsway 6s ease-in-out infinite;
}
.scn-galitch-gives-pocketbook .crowd-right {
  position:absolute; bottom:15%; right:5%; width:30%; height:50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 60% 40% 70% 30% / 50% 50% 50% 50%;
  opacity: 0.8;
  animation: ggb-crowdsway 7s ease-in-out infinite reverse;
}
.scn-galitch-gives-pocketbook .figure-galitch {
  position:absolute; bottom:25%; left:40%; width:30px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: ggb-figurebob 3s ease-in-out infinite;
}
.scn-galitch-gives-pocketbook .figure-annouchka {
  position:absolute; bottom:25%; right:40%; width:28px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 70% 30% / 60% 50% 40% 50%;
  transform-origin: bottom center;
  animation: ggb-figurebob 3.5s ease-in-out infinite reverse;
}
.scn-galitch-gives-pocketbook .pocketbook {
  position:absolute; bottom:40%; left:48%; width:20px; height:14px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ggb-pocket 2s ease-in-out infinite;
}
.scn-galitch-gives-pocketbook .gaslight-glow {
  position:absolute; top:10%; left:50%; width:40px; height:40px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ggb-lightpulse 4s ease-in-out infinite alternate;
}
@keyframes ggb-roomshimmer {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes ggb-crowdsway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ggb-figurebob {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ggb-pocket {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-5px) rotate(5deg) scale(1.1); }
  50% { transform: translateY(0) rotate(0deg) scale(1); }
  75% { transform: translateY(-3px) rotate(-5deg) scale(1.05); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes ggb-lightpulse {
  0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(240,192,96,.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,192,96,.6); }
  100% { opacity: .7; box-shadow: 0 0 25px 8px rgba(240,192,96,.35); }
}

/* ===== annouchka-spits ===== */
.scn-annouchka-spits {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-annouchka-spits .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-annouchka-spits .skirt {
  position:absolute; bottom:30%; left:30%; width:50px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: asp-skirttremble 0.5s ease-in-out infinite;
}
.scn-annouchka-spits .figure-annouchka-spit {
  position:absolute; bottom:45%; left:38%; width:24px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: asp-figurelunge 2s ease-in-out infinite;
}
.scn-annouchka-spits .spit-droplet {
  position:absolute; bottom:40%; left:44%; width:6px; height:6px;
  background: radial-gradient(circle, #c8b0a0 0%, #a08070 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,176,160,.6);
  animation: asp-droplet 1.5s ease-in-out infinite;
}
.scn-annouchka-spits .shadow-sharp {
  position:absolute; bottom:25%; left:25%; width:50%; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%);
  border-radius: 40%;
  animation: asp-shadowflicker 3s ease-in-out infinite alternate;
}
.scn-annouchka-spits .gaslight-beam {
  position:absolute; top:0; left:50%; width:30%; height:50%;
  background: linear-gradient(180deg, rgba(240,192,96,.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: asp-beampulse 4s ease-in-out infinite alternate;
}
@keyframes asp-skirttremble {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes asp-figurelunge {
  0% { transform: translateY(0) rotate(0deg) scaleY(1); }
  20% { transform: translateY(-5px) rotate(3deg) scaleY(1.05); }
  40% { transform: translateY(0) rotate(-2deg) scaleY(1); }
  60% { transform: translateY(-3px) rotate(2deg) scaleY(1.03); }
  80% { transform: translateY(0) rotate(0deg) scaleY(1); }
  100% { transform: translateY(0) rotate(0deg) scaleY(1); }
}
@keyframes asp-droplet {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  25% { transform: translate(2px,-8px) scale(1.2); opacity: .9; }
  50% { transform: translate(4px,-16px) scale(0.8); opacity: .6; }
  75% { transform: translate(6px,-12px) scale(0.6); opacity: .3; }
  100% { transform: translate(8px,0) scale(0.4); opacity: 0; }
}
@keyframes asp-shadowflicker {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}
@keyframes asp-beampulse {
  0% { opacity: .2; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: .5; transform: skewX(-10deg) scaleY(1.1); }
  100% { opacity: .3; transform: skewX(-10deg) scaleY(1); }
}

/* ===== story-of-vlassof ===== */
.scn-story-of-vlassof {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0502 100%),
              radial-gradient(ellipse at 50% 20%, #4a2a1a 0%, transparent 60%);
}
.scn-story-of-vlassof .hearth {
  position:absolute; bottom:10%; left:50%; width:100px; height:50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 -10px 30px rgba(200,80,20,.3);
  animation: sov-hearthglow 4s ease-in-out infinite alternate;
}
.scn-story-of-vlassof .listener-left {
  position:absolute; bottom:30%; left:10%; width:30px; height:45px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 40% 60%;
  transform-origin: bottom center;
  animation: sov-listenbob 5s ease-in-out infinite;
}
.scn-story-of-vlassof .listener-right {
  position:absolute; bottom:30%; right:10%; width:30px; height:45px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%);
  border-radius: 60% 40% 70% 30% / 50% 50% 60% 40%;
  transform-origin: bottom center;
  animation: sov-listenbob 5.5s ease-in-out infinite reverse;
}
.scn-story-of-vlassof .storyteller {
  position:absolute; bottom:25%; left:42%; width:34px; height:55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sov-tellgesture 3s ease-in-out infinite;
}
.scn-story-of-vlassof .shadow-dance {
  position:absolute; bottom:0; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: sov-shadowdance 7s ease-in-out infinite alternate;
}
.scn-story-of-vlassof .fire-glare {
  position:absolute; bottom:35%; left:48%; width:30px; height:30px;
  background: radial-gradient(circle, #f0a050 0%, #c06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,160,80,.4);
  animation: sov-glarepulse 2s ease-in-out infinite alternate;
}
.scn-story-of-vlassof .ember {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(240,192,96,.6);
}
.scn-story-of-vlassof .ember1 {
  bottom:45%; left:45%; animation: sov-ember1 3s ease-in-out infinite;
}
.scn-story-of-vlassof .ember2 {
  bottom:48%; left:50%; animation: sov-ember2 4s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes sov-hearthglow {
  0% { box-shadow: 0 -10px 20px rgba(200,80,20,.2); }
  50% { box-shadow: 0 -15px 40px rgba(200,80,20,.5); }
  100% { box-shadow: 0 -10px 30px rgba(200,80,20,.3); }
}
@keyframes sov-listenbob {
  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 sov-tellgesture {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes sov-shadowdance {
  0% { transform: scaleY(1) translateX(0); opacity: .5; }
  50% { transform: scaleY(1.1) translateX(2%); opacity: .7; }
  100% { transform: scaleY(1) translateX(-2%); opacity: .6; }
}
@keyframes sov-glarepulse {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes sov-ember1 {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  25% { transform: translate(-5px,-10px) scale(1.3); opacity: .8; }
  50% { transform: translate(-10px,-20px) scale(0.8); opacity: .5; }
  75% { transform: translate(-15px,-15px) scale(0.5); opacity: .2; }
  100% { transform: translate(-20px,0) scale(0.2); opacity: 0; }
}
@keyframes sov-ember2 {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  25% { transform: translate(4px,-8px) scale(1.2); opacity: .9; }
  50% { transform: translate(8px,-16px) scale(0.9); opacity: .6; }
  75% { transform: translate(12px,-12px) scale(0.6); opacity: .3; }
  100% { transform: translate(16px,0) scale(0.3); opacity: 0; }
}

/* sacrifice-of-fortune */
.scn-sacrifice-of-fortune {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 50%, #b8996a 100%), radial-gradient(circle at 50% 80%, #fff4e0 0%, transparent 70%);
}
.scn-sacrifice-of-fortune .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #a07a50 0%, #6a4e2e 100%);
  transform: perspective(600px) rotateX(10deg); transform-origin: bottom;
  animation: sfo-floor 12s ease-in-out infinite alternate;
}
.scn-sacrifice-of-fortune .wall {
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #e8d4b4 0%, #c8a87a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-sacrifice-of-fortune .window-light {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at center, #fff9e0 0%, #f0d080 60%, transparent 100%);
  border-radius: 10% / 15%;
  animation: sfo-win-pulse 4s ease-in-out infinite alternate;
}
.scn-sacrifice-of-fortune .column-left {
  position: absolute; bottom: 30%; left: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b08a60 0%, #d4b080 30%, #b08a60 70%, #8a6a40 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.2);
  animation: sfo-col-sway 8s ease-in-out infinite;
}
.scn-sacrifice-of-fortune .column-right {
  position: absolute; bottom: 30%; right: 15%; width: 6%; height: 70%;
  background: linear-gradient(90deg, #b08a60 0%, #d4b080 30%, #b08a60 70%, #8a6a40 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
  animation: sfo-col-sway 8s ease-in-out infinite reverse;
}
.scn-sacrifice-of-fortune .altar {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #705030 0%, #4a3018 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: sfo-altar-shift 6s ease-in-out infinite;
}
.scn-sacrifice-of-fortune .figure-natacha {
  position: absolute; bottom: 30%; left: 50%; width: 8%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%); /* terracotta/rust */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sfo-figure-bow 5s ease-in-out infinite;
}
.scn-sacrifice-of-fortune .candle-glow {
  position: absolute; bottom: 38%; left: 50%; width: 2%; height: 4%;
  background: radial-gradient(circle, #ffd680 0%, #f0a030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #f0a030, 0 0 40px 12px rgba(240,160,48,0.4);
  animation: sfo-candle-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes sfo-floor { 0% { transform: perspective(600px) rotateX(8deg); } 50% { transform: perspective(600px) rotateX(12deg); } 100% { transform: perspective(600px) rotateX(8deg); } }
@keyframes sfo-win-pulse { 0% { opacity: 0.7; box-shadow: 0 0 30px 10px #f0d080; } 50% { opacity: 1; box-shadow: 0 0 60px 20px #fff4c0; } 100% { opacity: 0.8; box-shadow: 0 0 40px 15px #f0d080; } }
@keyframes sfo-col-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes sfo-altar-shift { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes sfo-figure-bow { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 30% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 70% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes sfo-candle-flicker { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px #f0a030; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #ffd680; } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px #f0a030; } }

/* fortune-to-the-committee */
.scn-fortune-to-the-committee {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b090 50%, #a08060 100%), radial-gradient(ellipse at 50% 120%, #fff4e0 0%, transparent 60%);
}
.scn-fortune-to-the-committee .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a3018 100%);
  transform: perspective(800px) rotateX(5deg);
}
.scn-fortune-to-the-committee .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #dcc4a8 0%, #b89878 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-fortune-to-the-committee .window-light {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at center, #fff8e8 0%, #f0d8a0 50%, transparent 100%);
  opacity: 0.6;
  animation: fpc-win-pulse 6s ease-in-out infinite alternate;
}
.scn-fortune-to-the-committee .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%);
  border-radius: 4% 4% 2% 2% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: fpc-table-breathe 10s ease-in-out infinite alternate;
}
.scn-fortune-to-the-committee .chair-1 {
  position: absolute; bottom: 28%; left: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: fpc-chair-sway 7s ease-in-out infinite;
}
.scn-fortune-to-the-committee .chair-2 {
  position: absolute; bottom: 28%; right: 25%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: fpc-chair-sway 7s ease-in-out infinite reverse;
}
.scn-fortune-to-the-committee .figure-rouletabille {
  position: absolute; bottom: 28%; left: 35%; width: 6%; height: 35%;
  background: linear-gradient(180deg, #403020 0%, #201810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fpc-roule-turn 8s ease-in-out infinite;
}
.scn-fortune-to-the-committee .figure-tsar {
  position: absolute; bottom: 28%; right: 35%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #504030 0%, #302010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fpc-tsar-lean 9s ease-in-out infinite;
}
.scn-fortune-to-the-committee .paper-scroll {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 6%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e4c0 0%, #c8b080 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fpc-scroll-unroll 12s ease-in-out infinite alternate;
}
@keyframes fpc-win-pulse { 0% { opacity: 0.4; box-shadow: 0 0 20px 5px #f0d8a0; } 50% { opacity: 0.8; box-shadow: 0 0 50px 15px #fff8e8; } 100% { opacity: 0.5; box-shadow: 0 0 30px 8px #f0d8a0; } }
@keyframes fpc-table-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-1px); } 100% { transform: scale(1); } }
@keyframes fpc-chair-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes fpc-roule-turn { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(2px); } 75% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes fpc-tsar-lean { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(-2deg); } 80% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fpc-scroll-unroll { 0% { transform: translateX(-50%) scaleY(0.3); } 50% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(0.3); } }

/* tsar-convinced */
.scn-tsar-convinced {
  background: linear-gradient(180deg, #d4c0a8 0%, #b09878 50%, #908060 100%), radial-gradient(ellipse at 50% 60%, #fff4e0 0%, transparent 70%);
}
.scn-tsar-convinced .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #605030 0%, #302010 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-tsar-convinced .wall-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c8b090 0%, #e0d0bc 30%, #c8b090 60%, #a08868 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.1);
}
.scn-tsar-convinced .throne {
  position: absolute; bottom: 20%; left: 50%; width: 15%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #705030 0%, #4a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 10px 10px 30px rgba(0,0,0,0.4), inset 0 0 20px rgba(255,255,200,0.1);
  animation: tsc-throne-glow 5s ease-in-out infinite alternate;
}
.scn-tsar-convinced .figure-rouletabille {
  position: absolute; bottom: 20%; left: 30%; width: 7%; height: 40%;
  background: linear-gradient(180deg, #302010 0%, #201008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsc-roule-point 3s ease-in-out infinite;
}
.scn-tsar-convinced .shadow-wall {
  position: absolute; bottom: 20%; left: 50%; width: 25%; height: 40%;
  transform: translateX(-50%) translateX(15px); /* offset from throne */
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  filter: blur(8px);
  animation: tsc-shadow-drift 7s ease-in-out infinite alternate;
}
.scn-tsar-convinced .chandelier {
  position: absolute; top: 5%; left: 50%; width: 12%; height: 15%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at bottom, #ffd680 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px #b08040;
  animation: tsc-chandelier-swing 10s ease-in-out infinite;
}
.scn-tsar-convinced .document {
  position: absolute; bottom: 22%; left: 45%; width: 5%; height: 7%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tsc-document-flutter 4s ease-in-out infinite;
}
@keyframes tsc-throne-glow { 0% { box-shadow: 10px 10px 30px rgba(0,0,0,0.4), inset 0 0 20px rgba(255,255,200,0.1); } 50% { box-shadow: 10px 10px 40px rgba(0,0,0,0.5), inset 0 0 30px rgba(255,255,200,0.2); } 100% { box-shadow: 10px 10px 30px rgba(0,0,0,0.4), inset 0 0 20px rgba(255,255,200,0.1); } }
@keyframes tsc-roule-point { 0% { transform: translateX(0) rotate(0deg) translateY(0); } 25% { transform: translateX(4px) rotate(-5deg) translateY(-2px); } 75% { transform: translateX(-2px) rotate(3deg) translateY(1px); } 100% { transform: translateX(0) rotate(0deg) translateY(0); } }
@keyframes tsc-shadow-drift { 0% { transform: translateX(-50%) translateX(15px) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) translateX(20px) scale(1.05); opacity: 0.8; } 100% { transform: translateX(-50%) translateX(10px) scale(0.95); opacity: 0.5; } }
@keyframes tsc-chandelier-swing { 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 tsc-document-flutter { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 70% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* the-tsar-understands */
.scn-the-tsar-understands {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #3a3a5e 100%), radial-gradient(ellipse at 50% 50%, #4a4a6e 0%, transparent 70%);
  /* dark room, bright interior lighting from window */
}
.scn-the-tsar-understands .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  opacity: 0.8;
}
.scn-the-tsar-understands .window-light {
  position: absolute; top: 10%; left: 70%; width: 25%; height: 60%;
  background: linear-gradient(135deg, #fff8e0 0%, #f0d8a0 40%, transparent 100%);
  opacity: 0.3;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ttu-light-sweep 8s ease-in-out infinite alternate;
}
.scn-the-tsar-understands .tsar-profile {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); /* full head shape */
  animation: ttu-tsar-turn 6s ease-in-out infinite;
  filter: drop-shadow(0 0 20px rgba(200,160,80,0.3));
}
.scn-the-tsar-understands .hand-pointing {
  position: absolute; bottom: 15%; left: 35%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: ttu-hand-gesture 3s ease-in-out infinite alternate;
}
.scn-the-tsar-understands .light-streak {
  position: absolute; top: 15%; left: 60%; width: 5%; height: 70%;
  background: linear-gradient(180deg, transparent 0%, rgba(255,240,200,0.3) 30%, rgba(255,240,200,0.5) 50%, transparent 100%);
  transform: skewX(-5deg);
  filter: blur(4px);
  animation: ttu-streak-move 4s ease-in-out infinite alternate;
}
@keyframes ttu-light-sweep { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(10px); } 100% { opacity: 0.3; transform: translateX(0); } }
@keyframes ttu-tsar-turn { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(2deg) scale(1.02); } 75% { transform: rotate(-2deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ttu-hand-gesture { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes ttu-streak-move { 0% { transform: skewX(-5deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(8px); } 100% { transform: skewX(-5deg) translateX(0); } }

.scn-marshal-and-officers-kiosque {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4b895 40%, #b89a6b 100%),
              radial-gradient(ellipse at 50% 80%, #e8d5b0 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-marshal-and-officers-kiosque .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d5b0 0%, #d4b895 50%, #c4a57a 100%);
  animation: mok-bg 25s ease-in-out infinite alternate;
}
.scn-marshal-and-officers-kiosque .kiosque-roof {
  position: absolute; top: 0; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #8b6f4a 0%, #a5825a 60%, #c4a57a 100%);
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: mok-roof 12s ease-in-out infinite alternate;
}
.scn-marshal-and-officers-kiosque .kiosque-pillar-left {
  position: absolute; bottom: 25%; left: 22%; width: 4%; height: 60%;
  background: linear-gradient(90deg, #7a5f3a, #9c7f54, #7a5f3a);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: mok-pillar 15s ease-in-out infinite alternate;
}
.scn-marshal-and-officers-kiosque .kiosque-pillar-right {
  position: absolute; bottom: 25%; right: 22%; width: 4%; height: 60%;
  background: linear-gradient(90deg, #7a5f3a, #9c7f54, #7a5f3a);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.2);
  animation: mok-pillar 15s ease-in-out infinite alternate-reverse;
}
.scn-marshal-and-officers-kiosque .table {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 12%;
  background: linear-gradient(180deg, #6d5230, #4f3a1e);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mok-table 20s ease-in-out infinite alternate;
}
.scn-marshal-and-officers-kiosque .figure-left {
  position: absolute; bottom: 24%; left: 28%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #2d2a1e 0%, #1a1712 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mok-figure 7s ease-in-out infinite, mok-figure-shift 18s ease-in-out infinite;
}
.scn-marshal-and-officers-kiosque .figure-center {
  position: absolute; bottom: 24%; left: 46%; width: 8%; height: 52%;
  background: linear-gradient(180deg, #3a3325, #2a2316);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: mok-figure-center 8s ease-in-out infinite, mok-figure-shift 20s ease-in-out infinite reverse;
}
.scn-marshal-and-officers-kiosque .figure-right {
  position: absolute; bottom: 24%; right: 28%; width: 8%; height: 48%;
  background: linear-gradient(180deg, #2d2a1e, #1a1712);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: mok-figure-right 6s ease-in-out infinite, mok-figure-shift 22s ease-in-out infinite;
}
.scn-marshal-and-officers-kiosque .candle-glow {
  position: absolute; bottom: 40%; left: 47%; width: 2%; height: 5%;
  background: radial-gradient(circle at center, #ffd080 0%, #e8a020 40%, transparent 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: mok-candle 3s ease-in-out infinite alternate;
}
@keyframes mok-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mok-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mok-pillar { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mok-table { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes mok-figure { 0%, 100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes mok-figure-center { 0%, 100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-1px); } }
@keyframes mok-figure-right { 0%, 100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-0.5deg) translateY(-2px); } }
@keyframes mok-figure-shift { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes mok-candle { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1); } }

.scn-item-hat-pin-doubt {
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b88a 50%, #b89868 100%),
              radial-gradient(ellipse at 80% 60%, #e8c888 0%, transparent 70%);
}
.scn-item-hat-pin-doubt .bg-dining {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #eadac0, #d4c0a0, #c0a880);
  animation: ihp-bg 30s ease-in-out infinite alternate;
}
.scn-item-hat-pin-doubt .table-dining {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #7a6538, #5c4a28);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
  animation: ihp-table 18s ease-in-out infinite alternate;
}
.scn-item-hat-pin-doubt .hatpin {
  position: absolute; bottom: 35%; left: 42%; width: 1.5%; height: 18%;
  background: linear-gradient(180deg, #c0a050, #e0c080, #c0a050);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 0 12px 4px rgba(255,220,120,0.6);
  animation: ihp-hatpin 6s ease-in-out infinite alternate;
}
.scn-item-hat-pin-doubt .figure-madam {
  position: absolute; bottom: 22%; left: 22%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1812 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ihp-figure-madam 10s ease-in-out infinite;
}
.scn-item-hat-pin-doubt .figure-domovoi {
  position: absolute; bottom: 22%; right: 22%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ihp-figure-domovoi 12s ease-in-out infinite;
}
.scn-item-hat-pin-doubt .arm-pointing {
  position: absolute; bottom: 40%; right: 30%; width: 1.5%; height: 20%;
  background: #2a1f12;
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  transform: rotate(-30deg);
  animation: ihp-arm 4s ease-in-out infinite alternate;
}
.scn-item-hat-pin-doubt .wall-sconce {
  position: absolute; top: 20%; right: 10%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ffd080 0%, #e8a020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.5);
  animation: ihp-sconce 5s ease-in-out infinite alternate;
}
@keyframes ihp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ihp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ihp-hatpin { 0% { opacity: 0.8; transform: rotate(13deg) scale(0.95); } 50% { opacity: 1; transform: rotate(17deg) scale(1.05); } 100% { opacity: 0.85; transform: rotate(15deg) scale(1); } }
@keyframes ihp-figure-madam { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes ihp-figure-domovoi { 0%, 100% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes ihp-arm { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes ihp-sconce { 0% { opacity: 0.8; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(1); } }

.scn-notebook-trap-for-natacha {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1a1a24 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a38 0%, transparent 80%);
}
.scn-notebook-trap-for-natacha .bg-trap {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2e2e3e, #3e3e4e, #2e2e3e);
  animation: ntf-bg 20s ease-in-out infinite alternate;
}
.scn-notebook-trap-for-natacha .floorboards {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 15px, #3a2a1a 15px, #3a2a1a 30px);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: ntf-floor 30s linear infinite;
}
.scn-notebook-trap-for-natacha .cavity {
  position: absolute; bottom: 15%; left: 35%; right: 35%; height: 20%;
  background: #0a0a0a;
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8), 0 0 0 4px #4a3a2a;
  animation: ntf-cavity 8s ease-in-out infinite alternate;
}
.scn-notebook-trap-for-natacha .notebook {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 10%;
  background: linear-gradient(135deg, #8a7a5a, #6a5a3a);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
  animation: ntf-notebook 14s ease-in-out infinite alternate;
}
.scn-notebook-trap-for-natacha .figure-bent {
  position: absolute; bottom: 5%; left: 15%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  transform: rotate(10deg) translateX(-10px);
  animation: ntf-figure 5s ease-in-out infinite alternate;
}
.scn-notebook-trap-for-natacha .hand-reach {
  position: absolute; bottom: 35%; left: 25%; width: 2%; height: 15%;
  background: #2a2a3a;
  border-radius: 20% 20% 40% 40%;
  transform: rotate(20deg);
  animation: ntf-hand 3s ease-in-out infinite alternate;
}
.scn-notebook-trap-for-natacha .shadow-stripe {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: ntf-stripe 6s ease-in-out infinite alternate;
}
@keyframes ntf-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ntf-floor { 0% { background-position: 0 0; } 100% { background-position: -30px 0; } }
@keyframes ntf-cavity { 0% { transform: scaleY(0.95); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.98); opacity: 0.9; } }
@keyframes ntf-notebook { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ntf-figure { 0% { transform: rotate(8deg) translateX(-10px) scale(1); } 50% { transform: rotate(12deg) translateX(-8px) scale(1.02); } 100% { transform: rotate(10deg) translateX(-10px) scale(0.98); } }
@keyframes ntf-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ntf-stripe { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-matrena-is-innocent {
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 50%, #c0a888 100%),
              radial-gradient(ellipse at 50% 70%, #e8d8b8 0%, transparent 70%);
}
.scn-matrena-is-innocent .bg-villa {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d8b0, #d4c09e, #c0a88a);
  animation: mii-bg 25s ease-in-out infinite alternate;
}
.scn-matrena-is-innocent .window-villa {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 40%;
  background: linear-gradient(180deg, #a0c8e0 0%, #80a8c8 50%, #6090b0 100%);
  border: 8px solid #6a4a30;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.2), 0 8px 20px rgba(0,0,0,0.2);
  animation: mii-window 20s ease-in-out infinite alternate;
}
.scn-matrena-is-innocent .floor-villa {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060, #806040);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: mii-floor 30s ease-in-out infinite alternate;
}
.scn-matrena-is-innocent .figure-matrena {
  position: absolute; bottom: 10%; left: 40%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: mii-figure 12s ease-in-out infinite;
}
.scn-matrena-is-innocent .chair-empty {
  position: absolute; bottom: 10%; right: 20%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #6a4a30, #4a2a18);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: mii-chair 18s ease-in-out infinite alternate;
}
.scn-matrena-is-innocent .drapes {
  position: absolute; top: 10%; left: 30%; width: 5%; height: 60%;
  background: linear-gradient(180deg, #a08060, #705040);
  border-radius: 20% 20% 0 0;
  transform: rotate(-5deg);
  animation: mii-drapes 15s ease-in-out infinite alternate;
}
.scn-matrena-is-innocent .candle-stand {
  position: absolute; bottom: 20%; left: 15%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #8a6a40, #5a3a20);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.3);
  animation: mii-candle 4s ease-in-out infinite alternate;
}
@keyframes mii-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mii-window { 0% { opacity: 0.9; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes mii-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mii-figure { 0%, 100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes mii-chair { 0% { transform: scale(0.98); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes mii-drapes { 0% { transform: rotate(-3deg) scale(0.95); } 50% { transform: rotate(-7deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes mii-candle { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(1); } }

.scn-brave-talk {
  background: linear-gradient(180deg, #8b7355 0%, #b58c5a 40%, #d4a76a 100%), 
              radial-gradient(ellipse at 70% 60%, #f0d080 0%, transparent 60%);
}
.scn-brave-talk .wall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #6b5a3a 0%, #8b7355 50%, #a08050 100%);
  animation: bt-wall 20s ease-in-out infinite alternate;
}
.scn-brave-talk .counter {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: bt-counter 15s ease-in-out infinite alternate;
}
.scn-brave-talk .ikons {
  position: absolute;
  top: 15%;
  right: 20%;
  width: 40px;
  height: 60px;
  background: linear-gradient(135deg, #c8a060 0%, #8a6a40 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bt-ikons 12s ease-in-out infinite;
}
.scn-brave-talk .boots {
  position: absolute;
  bottom: 25%;
  right: 30%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: bt-boots 8s ease-in-out infinite;
}
.scn-brave-talk .gentleman {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-gentleman 6s ease-in-out infinite;
}
.scn-brave-talk .lamp {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 16px;
  height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #e8b050 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px #ffd080, 0 0 80px 20px rgba(255,208,128,0.3);
  animation: bt-lamp 4s ease-in-out infinite alternate;
}
.scn-brave-talk .figure-roulet {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bt-roulet 7s ease-in-out infinite;
}
@keyframes bt-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bt-counter { 0% { transform: translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,0.6) } 50% { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,0.7) } 100% { transform: translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,0.6) } }
@keyframes bt-ikons { 0% { transform: scale(1) rotate(0deg) } 30% { transform: scale(1.02) rotate(1deg) } 70% { transform: scale(0.98) rotate(-1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes bt-boots { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-3px) rotate(-8deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes bt-gentleman { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bt-lamp { 0% { opacity:0.8; box-shadow: 0 0 30px 8px #ffd080,0 0 60px 15px rgba(255,208,128,0.2) } 50% { opacity:1; box-shadow: 0 0 50px 14px #ffe0a0,0 0 100px 25px rgba(255,224,160,0.4) } 100% { opacity:0.85; box-shadow: 0 0 35px 10px #ffd080,0 0 70px 18px rgba(255,208,128,0.3) } }
@keyframes bt-roulet { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(3px) rotate(0.5deg) } 66% { transform: translateX(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-the-revolutionary-court {
  background: 
    linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #1a1020 100%),
    radial-gradient(ellipse at 50% 10%, #2a1a30 0%, transparent 70%);
}
.scn-the-revolutionary-court .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: rc-floor 25s ease-in-out infinite alternate;
}
.scn-the-revolutionary-court .back-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1220 0%, #2a1a30 50%, #1a1020 100%);
  animation: rc-wall 30s ease-in-out infinite alternate;
}
.scn-the-revolutionary-court .bench-left {
  position: absolute;
  bottom: 32%;
  left: 5%;
  width: 30%;
  height: 10%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: rc-bench 12s ease-in-out infinite;
}
.scn-the-revolutionary-court .bench-right {
  position: absolute;
  bottom: 32%;
  right: 5%;
  width: 30%;
  height: 10%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1018 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: rc-bench 12s ease-in-out infinite reverse;
}
.scn-the-revolutionary-court .lamp-overhead {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle at 50% 30%, #e8a040 0%, #a06020 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 15px #c08030, 0 0 120px 30px rgba(192,128,48,0.2);
  animation: rc-lamp 6s ease-in-out infinite alternate;
}
.scn-the-revolutionary-court .judge-figure {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rc-judge 10s ease-in-out infinite;
}
.scn-the-revolutionary-court .accused-figure {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rc-accused 8s ease-in-out infinite;
}
.scn-the-revolutionary-court .shadow-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: rc-vignette 15s ease-in-out infinite alternate;
}
@keyframes rc-floor { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rc-wall { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rc-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rc-lamp { 0% { opacity:0.6; transform: scale(1); box-shadow: 0 0 40px 10px #c08030,0 0 80px 20px rgba(192,128,48,0.15) } 50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 70px 18px #e0a040,0 0 140px 35px rgba(224,160,64,0.3) } 100% { opacity:0.7; transform: scale(0.95); box-shadow: 0 0 50px 12px #c08030,0 0 100px 25px rgba(192,128,48,0.2) } }
@keyframes rc-judge { 0% { transform: translateX(-50%) rotate(0deg) } 33% { transform: translateX(-52%) rotate(1deg) } 66% { transform: translateX(-48%) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes rc-accused { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rc-vignette { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-annouchka-testifies {
  background: 
    linear-gradient(180deg, #1a1820 0%, #2a2830 40%, #1a1820 100%),
    radial-gradient(ellipse at 70% 60%, #2a2830 0%, transparent 70%);
}
.scn-annouchka-testifies .table {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 50%;
  height: 18%;
  background: linear-gradient(180deg, #3a3030 0%, #1a1818 100%);
  border-radius: 6% 6% 4% 4% / 20% 20% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.7);
  animation: at-table 20s ease-in-out infinite alternate;
}
.scn-annouchka-testifies .inkwell {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 14px;
  height: 20px;
  background: radial-gradient(circle, #4a3a3a 0%, #1a1010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: at-inkwell 15s ease-in-out infinite;
}
.scn-annouchka-testifies .paper {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 30px;
  height: 26px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: at-paper 18s ease-in-out infinite;
}
.scn-annouchka-testifies .figure-sitting {
  position: absolute;
  bottom: 26%;
  left: 55%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: at-sit 12s ease-in-out infinite;
}
.scn-annouchka-testifies .figure-standing {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: at-stand 10s ease-in-out infinite;
}
.scn-annouchka-testifies .candle {
  position: absolute;
  top: 25%;
  left: 50%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 60%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 6px #f0d0a0, 0 0 60px 12px rgba(240,208,160,0.2);
  animation: at-candle 5s ease-in-out infinite alternate;
}
.scn-annouchka-testifies .desk-edge {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 60%;
  height: 4%;
  background: linear-gradient(180deg, #4a3830 0%, #2a2018 100%);
  border-radius: 0 0 10% 10%;
  animation: at-edge 25s ease-in-out infinite;
}
@keyframes at-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes at-inkwell { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(2deg) } 66% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes at-paper { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes at-sit { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes at-stand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(0.5deg) } 50% { transform: translateX(2px) rotate(-0.5deg) } 75% { transform: translateX(1px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes at-candle { 0% { opacity:0.6; box-shadow: 0 0 20px 4px #f0d0a0,0 0 40px 8px rgba(240,208,160,0.1) } 50% { opacity:1; box-shadow: 0 0 40px 10px #ffe0c0,0 0 80px 20px rgba(255,224,192,0.3) } 100% { opacity:0.7; box-shadow: 0 0 25px 6px #f0d0a0,0 0 50px 12px rgba(240,208,160,0.2) } }
@keyframes at-edge { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }

.scn-execution-in-the-court {
  background: 
    linear-gradient(180deg, #0a0810 0%, #1a1020 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 30%, #1a1020 0%, transparent 60%);
}
.scn-execution-in-the-court .wall-dark {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(135deg, #0a0810 0%, #1a1020 50%, #0a0810 100%);
  animation: ec-wall 30s ease-in-out infinite alternate;
}
.scn-execution-in-the-court .figures-row {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 80%;
  height: 20%;
  background: repeating-linear-gradient(90deg, 
    transparent 0%, 
    transparent 10%, 
    #0a0810 10%, 
    #0a0810 15%, 
    transparent 15%, 
    transparent 25%, 
    #0a0810 25%, 
    #0a0810 30%, 
    transparent 30%);
  filter: blur(2px);
  animation: ec-figures 20s ease-in-out infinite;
}
.scn-execution-in-the-court .spotlight {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 100px;
  height: 200px;
  background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, transparent 100%);
  transform: translateX(-50%) rotate(5deg);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: ec-spotlight 8s ease-in-out infinite alternate;
}
.scn-execution-in-the-court .prisoner-crouch {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ec-prisoner 6s ease-in-out infinite;
}
.scn-execution-in-the-court .verdict-voice {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 2px;
  height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: ec-voice 12s ease-in-out infinite;
}
.scn-execution-in-the-court .shadow-trap {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.7) 100%);
  animation: ec-trap 15s ease-in-out infinite alternate;
}
@keyframes ec-wall { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes ec-figures { 0% { transform: translateX(0); opacity:0.7 } 50% { transform: translateX(2px); opacity:1 } 100% { transform: translateX(0); opacity:0.7 } }
@keyframes ec-spotlight { 0% { transform: translateX(-50%) rotate(5deg) scale(1); opacity:0.3 } 50% { transform: translateX(-50%) rotate(3deg) scale(1.05); opacity:0.6 } 100% { transform: translateX(-50%) rotate(5deg) scale(0.95); opacity:0.4 } }
@keyframes ec-prisoner { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-2px) rotate(2deg) scale(1.01) } 50% { transform: translateY(1px) rotate(-3deg) scale(0.99) } 75% { transform: translateY(-1px) rotate(1deg) scale(1) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes ec-voice { 0% { opacity:0; transform: scaleY(1) } 33% { opacity:0.4; transform: scaleY(1.2) } 66% { opacity:0.2; transform: scaleY(0.8) } 100% { opacity:0; transform: scaleY(1) } }
@keyframes ec-trap { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* Scene 1: pere-alexis-story */
.scn-pere-alexis-story {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 50%, #b89a76 100%), radial-gradient(ellipse at 30% 70%, #e5d5b5 0%, transparent 60%);
}
.scn-pere-alexis-story .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #cbb28d 0%, #a68766 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-pere-alexis-story .shelf {
  position: absolute; left: 5%; right: 5%; top: 30%; height: 8px;
  background: #7a5a3a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-pere-alexis-story .herb {
  position: absolute; left: 12%; top: 22%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7c9a4a 0%, #5a7a2a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: pa-sway 4s ease-in-out infinite;
}
.scn-pere-alexis-story .jar {
  left: 25%; top: 18%; width: 36px; height: 44px;
  background: linear-gradient(180deg, #c8d8e0 0%, #a0b0b8 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 2px -2px 4px rgba(0,0,0,0.2);
  animation: pa-jarbob 5s ease-in-out infinite;
}
.scn-pere-alexis-story .icon {
  position: absolute; right: 15%; top: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5a3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pa-breathe 8s ease-in-out infinite;
}
.scn-pere-alexis-story .altar {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-pere-alexis-story .figure-pa {
  position: absolute; bottom: 10%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a8a3a 0%, #2a5a1a 100%); /* green caftan */
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pa-pray 6s ease-in-out infinite;
}
.scn-pere-alexis-story .candle-glow {
  position: absolute; bottom: 15%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #f0b060, 0 0 60px 20px rgba(240,176,96,0.3);
  animation: pa-flicker 2s ease-in-out infinite alternate;
}
@keyframes pa-sway {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes pa-jarbob {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes pa-breathe {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes pa-pray {
  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 pa-flicker {
  0% { opacity: 0.9; box-shadow: 0 0 20px 5px #f0b060; }
  50% { opacity: 1; box-shadow: 0 0 35px 10px #ffc080; }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px #e8a040; }
}

/* Scene 2: analysis-requested */
.scn-analysis-requested {
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 30%, #b8a080 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%);
}
.scn-analysis-requested .table {
  position: absolute; inset: 20% 10% 5% 10%;
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 12px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.4);
}
.scn-analysis-requested .glass {
  position: absolute; top: 40%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #e8f0f8 0%, #c0d0e0 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 2px 2px 4px rgba(255,255,255,0.6), 0 2px 6px rgba(0,0,0,0.3);
  animation: ar-shimmer 4s ease-in-out infinite;
}
.scn-analysis-requested .g1 { left: 15%; }
.scn-analysis-requested .g2 { left: 32%; animation-delay: -1s; }
.scn-analysis-requested .g3 { left: 49%; animation-delay: -2s; }
.scn-analysis-requested .g4 { left: 66%; animation-delay: -3s; }
.scn-analysis-requested .flask {
  position: absolute; top: 30%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #d0e8f0 0%, #90b0c0 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 2px 2px 6px rgba(255,255,255,0.5), 0 2px 8px rgba(0,0,0,0.4);
  animation: ar-tilt 5s ease-in-out infinite;
}
.scn-analysis-requested .phial {
  position: absolute; top: 35%; left: 65%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #c0d8e0 0%, #80a0b0 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 2px 2px 4px rgba(255,255,255,0.5), 0 2px 6px rgba(0,0,0,0.3);
  animation: ar-tilt 5s ease-in-out infinite reverse;
}
@keyframes ar-shimmer {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); box-shadow: 0 0 10px 2px rgba(255,255,255,0.3); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes ar-tilt {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}

/* Scene 3: doubt-about-michael */
.scn-doubt-about-michael {
  background: linear-gradient(180deg, #c8b89a 0%, #a88a6a 50%, #7a5a3a 100%), radial-gradient(ellipse at 80% 40%, #d8c8b0 0%, transparent 60%);
}
.scn-doubt-about-michael .carriage-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-doubt-about-michael .window {
  position: absolute; left: 8%; top: 15%; width: 90px; height: 120px;
  background: linear-gradient(135deg, #a0c0d8 0%, #6080a0 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,150,200,0.3);
}
.scn-doubt-about-michael .seat {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-doubt-about-michael .figure-k {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dm-sit 6s ease-in-out infinite;
}
.scn-doubt-about-michael .figure-r {
  position: absolute; bottom: 25%; right: 20%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: dm-sit 6s ease-in-out infinite reverse;
}
.scn-doubt-about-michael .lamp {
  position: absolute; top: 5%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #f0b060, 0 0 80px 30px rgba(240,176,96,0.2);
  animation: dm-flicker 3s ease-in-out infinite alternate;
}
@keyframes dm-sit {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes dm-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 30px 10px #f0b060; }
  50% { opacity: 1; box-shadow: 0 0 50px 20px #ffc080; }
  100% { opacity: 0.85; box-shadow: 0 0 35px 12px #e8a040; }
}

/* Scene 4: omelette-aphorism */
.scn-omelette-aphorism {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a0886a 100%), radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 70%);
}
.scn-omelette-aphorism .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
}
.scn-omelette-aphorism .table-oa {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 12px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.4);
}
.scn-omelette-aphorism .chair-left {
  position: absolute; bottom: 18%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-omelette-aphorism .chair-right {
  position: absolute; bottom: 18%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-omelette-aphorism .silhouette-k {
  position: absolute; bottom: 25%; left: 12%; width: 45px; height: 95px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: oa-lean 5s ease-in-out infinite;
}
.scn-omelette-aphorism .silhouette-r {
  position: absolute; bottom: 25%; right: 12%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: oa-turn 6s ease-in-out infinite;
}
.scn-omelette-aphorism .overhead-lamp {
  position: absolute; top: 8%; left: 40%; right: 40%; height: 15px;
  background: radial-gradient(ellipse, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f0b060, 0 0 80px 40px rgba(240,176,96,0.2);
  animation: oa-pulse 4s ease-in-out infinite;
}
@keyframes oa-lean {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes oa-turn {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-3deg); }
  50% { transform: translateX(-6px) rotate(-6deg); }
  75% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes oa-pulse {
  0% { opacity: 0.8; box-shadow: 0 0 30px 10px #f0b060; }
  50% { opacity: 1; box-shadow: 0 0 50px 20px #ffc080; }
  100% { opacity: 0.85; box-shadow: 0 0 35px 12px #e8a040; }
}

.scn-matrena-loves-step-daughter {
  background: 
    linear-gradient(180deg, #0b0b2b 0%, #2a1f3a 40%, #4a3a2a 70%, #6a5030 100%),
    radial-gradient(ellipse at 50% 0%, #ffedc0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-matrena-loves-step-daughter .starry-sky {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(circle at 20% 30%, #fff8e0 0%, transparent 10%),
              radial-gradient(circle at 70% 15%, #fff8e0 0%, transparent 5%),
              radial-gradient(circle at 50% 40%, #fff8e0 0%, transparent 3%);
  animation: mls-stars 12s ease-in-out infinite alternate;
}
.scn-matrena-loves-step-daughter .moon-glow {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffeec0 0%, #d8b870 40%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  transform: translate(-50%, 0);
  animation: mls-moon 20s ease-in-out infinite;
}
.scn-matrena-loves-step-daughter .gazebo-roof {
  position: absolute; bottom: 35%; left: 50%; width: 160px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0; transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-matrena-loves-step-daughter .gazebo-pillar-left,
.scn-matrena-loves-step-daughter .gazebo-pillar-right {
  position: absolute; bottom: 20%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a, #3a1a0a);
  border-radius: 2px;
}
.scn-matrena-loves-step-daughter .gazebo-pillar-left {
  left: calc(50% - 80px);
}
.scn-matrena-loves-step-daughter .gazebo-pillar-right {
  right: calc(50% - 80px);
}
.scn-matrena-loves-step-daughter .figure-father {
  position: absolute; bottom: 24%; left: 30%; width: 20px; 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: mls-figure-walk 6s ease-in-out infinite;
}
.scn-matrena-loves-step-daughter .figure-stepdaughter {
  position: absolute; bottom: 24%; left: 48%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mls-figure-sway 7s ease-in-out infinite;
}
.scn-matrena-loves-step-daughter .figure-natacha {
  position: absolute; bottom: 24%; left: 65%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mls-figure-turn 8s ease-in-out infinite;
}
.scn-matrena-loves-step-daughter .flower-vine {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 80%, #d8a060 0%, transparent 50%);
  filter: blur(2px);
  animation: mls-vine 12s ease-in-out infinite alternate;
}
@keyframes mls-stars {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes mls-moon {
  0%, 100% { transform: translate(-50%, 0) scale(1); }
  50% { transform: translate(-50%, -4px) scale(1.02); }
}
@keyframes mls-figure-walk {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes mls-figure-sway {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(3deg); }
  66% { transform: translateX(-2px) rotate(-3deg); }
}
@keyframes mls-figure-turn {
  0%, 100% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(5px) rotate(2deg); }
  60% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes mls-vine {
  0% { transform: scaleY(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleY(1.1) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.6; }
}

.scn-story-of-boris-poems {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 80%, #3a3a5a 100%),
    radial-gradient(ellipse at 30% 20%, #4a5a7a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-story-of-boris-poems .star-field {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(circle at 10% 25%, #fff 0%, transparent 4%),
              radial-gradient(circle at 80% 15%, #fff 0%, transparent 3%),
              radial-gradient(circle at 50% 40%, #fff 0%, transparent 2%);
  animation: sbp-twinkle 8s ease-in-out infinite alternate;
}
.scn-story-of-boris-poems .moon-slice {
  position: absolute; top: 5%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle at 60% 50%, #c0d0e0 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sbp-moon 15s linear infinite;
}
.scn-story-of-boris-poems .boris-figure {
  position: absolute; bottom: 20%; left: 40%; width: 22px; 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: sbp-boris-tremble 4s ease-in-out infinite;
}
.scn-story-of-boris-poems .poem-page {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: sbp-paper-wind 7s ease-in-out infinite;
}
.scn-story-of-boris-poems .lantern-glow {
  position: absolute; bottom: 42%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c0a060 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,96,0.3);
  animation: sbp-lantern 3s ease-in-out infinite alternate;
}
.scn-story-of-boris-poems .shadow-lines {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 2px;
  background: linear-gradient(90deg, transparent, #3a3a5a 20%, transparent 100%);
  animation: sbp-shadow-slide 10s linear infinite;
}
.scn-story-of-boris-poems .leaf-drift {
  position: absolute; top: 45%; left: -10%; width: 8px; height: 12px;
  background: #4a5a3a;
  border-radius: 0 50% 0 50%;
  animation: sbp-leaf 18s linear infinite;
}
@keyframes sbp-twinkle {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sbp-moon {
  0% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(0); }
}
@keyframes sbp-boris-tremble {
  0%, 100% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes sbp-paper-wind {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
}
@keyframes sbp-lantern {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes sbp-shadow-slide {
  0% { transform: translateX(-30%); opacity: 0; }
  50% { opacity: 0.5; }
  100% { transform: translateX(30%); opacity: 0; }
}
@keyframes sbp-leaf {
  0% { transform: translateX(0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.8; }
  100% { transform: translateX(120vw) rotate(720deg); opacity: 0; }
}

.scn-natacha-learned-poems {
  background: 
    linear-gradient(180deg, #0b0b1a 0%, #1a1a30 50%, #2a2a40 90%),
    radial-gradient(ellipse at 80% 20%, #4a4a6a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-natacha-learned-poems .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(circle at 20% 30%, #fff 0%, transparent 4%),
              radial-gradient(circle at 70% 15%, #fff 0%, transparent 2%),
              radial-gradient(circle at 50% 40%, #fff 0%, transparent 1%);
  animation: nlp-sky 15s ease-in-out infinite alternate;
}
.scn-natacha-learned-poems .dust-cloud {
  position: absolute; bottom: 40%; left: 10%; width: 120px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,170,150,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: nlp-dust 30s linear infinite;
}
.scn-natacha-learned-poems .general-horse {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 40% 40% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: nlp-horse-gallop 2.5s steps(2) infinite;
}
.scn-natacha-learned-poems .general-figure {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nlp-general-bob 2.5s ease-in-out infinite;
}
.scn-natacha-learned-poems .soldier-row {
  position: absolute; bottom: 18%; left: 0; width: 100%; height: 30px;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 12px, transparent 12px, transparent 24px);
  transform: scaleY(0.4) translateY(20px);
  animation: nlp-soldiers-march 6s linear infinite;
}
.scn-natacha-learned-poems .drum-beat {
  position: absolute; bottom: 30%; left: 55%; width: 14px; height: 14px;
  background: radial-gradient(circle, #8a7a5a 0%, #4a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(138,122,90,0.4);
  animation: nlp-drum 1.5s ease-in-out infinite;
}
.scn-natacha-learned-poems .ripple-flag {
  position: absolute; bottom: 32%; left: 60%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: left center;
  animation: nlp-flag-wave 2s ease-in-out infinite alternate;
}
.scn-natacha-learned-poems .star-light {
  position: absolute; top: 10%; left: 20%; width: 6px; height: 6px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,255,255,0.6);
  animation: nlp-star-pulse 4s ease-in-out infinite;
}
@keyframes nlp-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes nlp-dust {
  0% { transform: translateX(-50px); opacity: 0; }
  20% { opacity: 0.6; }
  100% { transform: translateX(150vw); opacity: 0; }
}
@keyframes nlp-horse-gallop {
  0%, 100% { transform: scaleX(1) translateY(0); }
  25% { transform: scaleX(0.95) translateY(-2px); }
  50% { transform: scaleX(1) translateY(0); }
  75% { transform: scaleX(0.95) translateY(-2px); }
}
@keyframes nlp-general-bob {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes nlp-soldiers-march {
  0% { transform: scaleY(0.4) translateY(20px) translateX(0); }
  100% { transform: scaleY(0.4) translateY(20px) translateX(-24px); }
}
@keyframes nlp-drum {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
}
@keyframes nlp-flag-wave {
  0% { transform: rotate(-5deg); }
  100% { transform: rotate(10deg); }
}
@keyframes nlp-star-pulse {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}

.scn-item-tick-tack-phobia {
  background: 
    linear-gradient(135deg, #0a0a15 0%, #151525 50%, #202035 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-item-tick-tack-phobia .dark-room {
  position: absolute; inset: 20%; 
  background: radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: itp-darkness 8s ease-in-out infinite alternate;
}
.scn-item-tick-tack-phobia .window-frame {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 80px;
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: 0 0 20px rgba(100,100,150,0.2);
}
.scn-item-tick-tack-phobia .curtain-left,
.scn-item-tick-tack-phobia .curtain-right {
  position: absolute; top: 18%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: itp-curtain 7s ease-in-out infinite alternate;
}
.scn-item-tick-tack-phobia .curtain-left {
  left: calc(30% - 25px);
  transform-origin: left center;
}
.scn-item-tick-tack-phobia .curtain-right {
  right: calc(30% - 25px);
  transform-origin: right center;
  border-radius: 20% 0 0 20%;
  animation-delay: 1s;
}
.scn-item-tick-tack-phobia .clock-pendulum {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a, #2a2a3a);
  border-radius: 2px;
  transform-origin: top center;
  animation: itp-pendulum 2s ease-in-out infinite;
}
.scn-item-tick-tack-phobia .ear-figure {
  position: absolute; bottom: 25%; right: 25%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 60% 50%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 60% 40%;
  transform: rotate(15deg);
  animation: itp-ear-twitch 3s ease-in-out infinite;
}
.scn-item-tick-tack-phobia .tick-flash {
  position: absolute; top: 30%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #80c0ff 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(128,192,255,0.3);
  animation: itp-tick 1s steps(2) infinite;
}
.scn-item-tick-tack-phobia .sweat-drop {
  position: absolute; top: 20%; left: 55%; width: 4px; height: 6px;
  background: radial-gradient(ellipse at 50% 100%, #80a0c0 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: itp-sweat 5s ease-in-out infinite;
}
@keyframes itp-darkness {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes itp-curtain {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(5deg); }
  100% { transform: skewX(-5deg); }
}
@keyframes itp-pendulum {
  0%, 100% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
}
@keyframes itp-ear-twitch {
  0%, 100% { transform: rotate(15deg) scale(1); }
  25% { transform: rotate(20deg) scale(1.05); }
  75% { transform: rotate(10deg) scale(0.95); }
}
@keyframes itp-tick {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes itp-sweat {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(10px) scale(1.5); opacity: 0; }
}

/* Scene 1: gounsovski-invites-supper */
.scn-gounsovski-invites-supper {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%);
}
.scn-gounsovski-invites-supper .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: gi-wall 30s ease-in-out infinite alternate;
}
.scn-gounsovski-invites-supper .table-board {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: gi-table 12s ease-in-out infinite;
}
.scn-gounsovski-invites-supper .lamp-glow {
  position: absolute; top: 8%; left: 45%; width: 50px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #b08030 70%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 15px #c09040, 0 0 80px 30px rgba(192,144,64,.3);
  animation: gi-lamp 3s ease-in-out infinite alternate;
}
.scn-gounsovski-invites-supper .wine-glass {
  position: absolute; bottom: 20%; left: 52%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #d0a050 0%, #804020 100%);
  border-radius: 4px 4px 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: gi-glass 4s ease-in-out infinite;
}
.scn-gounsovski-invites-supper .figure-gounsovski {
  position: absolute; bottom: 12%; left: 30%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gi-fig1 6s ease-in-out infinite;
}
.scn-gounsovski-invites-supper .figure-thaddeus {
  position: absolute; bottom: 12%; right: 28%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a2018 0%, #100a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gi-fig2 7s ease-in-out infinite 1s;
}
.scn-gounsovski-invites-supper .curtains {
  position: absolute; top: 0; bottom: 30%; left: 0; width: 12%; 
  background: linear-gradient(90deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 0 30% 30% 0; filter: blur(2px);
  animation: gi-curtain 20s ease-in-out infinite alternate;
}
@keyframes gi-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes gi-table { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes gi-lamp { 0% { box-shadow: 0 0 30px 10px #c09040, 0 0 60px 20px rgba(192,144,64,.2); opacity: 0.9; } 50% { box-shadow: 0 0 50px 20px #ffd060, 0 0 100px 40px rgba(255,208,96,.4); opacity: 1; } 100% { box-shadow: 0 0 35px 12px #c09040, 0 0 70px 25px rgba(192,144,64,.25); opacity: 0.95; } }
@keyframes gi-glass { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes gi-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes gi-fig2 { 0% { transform: translateY(0) rotate(1deg) scaleX(0.95); } 33% { transform: translateY(-2px) rotate(-1deg) scaleX(1); } 66% { transform: translateY(0) rotate(0) scaleX(0.95); } 100% { transform: translateY(0) rotate(1deg) scaleX(0.95); } }
@keyframes gi-curtain { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1); } }

/* Scene 2: gounsovski-description */
.scn-gounsovski-description {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 60% 50%, #8a6a4a 0%, transparent 80%);
}
.scn-gounsovski-description .stage-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: gd-bg 25s ease-in-out infinite alternate;
}
.scn-gounsovski-description .umbrella-top {
  position: absolute; top: 15%; left: 35%; width: 100px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #c05030 0%, #802010 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 -6px 16px rgba(0,0,0,.4);
  animation: gd-umbrella 6s ease-in-out infinite;
}
.scn-gounsovski-description .umbrella-handle {
  position: absolute; top: 35%; left: 72%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 3px; transform-origin: top center;
  animation: gd-handle 6s ease-in-out infinite;
}
.scn-gounsovski-description .body-ovoid {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gd-body 5s ease-in-out infinite alternate;
}
.scn-gounsovski-description .top-hat {
  position: absolute; top: 10%; left: 45%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #1a1a1a 0%, #000 100%);
  border-radius: 60% 60% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.5);
  animation: gd-hat 4s ease-in-out infinite;
}
.scn-gounsovski-description .shadow-puddle {
  position: absolute; bottom: 18%; left: 38%; width: 70px; height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: gd-shadow 5s ease-in-out infinite alternate;
}
@keyframes gd-bg { 0% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes gd-umbrella { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-4px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes gd-handle { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-8deg); } }
@keyframes gd-body { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gd-hat { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(0); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes gd-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.6; } 50% { transform: scaleX(1.2) translateX(5px); opacity: 0.8; } 100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.5; } }

/* Scene 3: natacha-at-krestowsky */
.scn-natacha-at-krestowsky {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-natacha-at-krestowsky .room-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%);
  filter: blur(1px);
  animation: nk-room 20s ease-in-out infinite alternate;
}
.scn-natacha-at-krestowsky .desk-plank {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: nk-desk 8s ease-in-out infinite;
}
.scn-natacha-at-krestowsky .figure-silhouette {
  position: absolute; bottom: 30%; left: 40%; width: 24px; height: 50px;
  background: #0a0a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.5);
  animation: nk-figure 3s ease-in-out infinite alternate;
}
.scn-natacha-at-krestowsky .desk-lamp {
  position: absolute; bottom: 45%; left: 30%; width: 16px; height: 20px;
  background: radial-gradient(circle, #ffaa50 0%, #a06020 80%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,.3);
  animation: nk-lamp 2s ease-in-out infinite alternate;
}
.scn-natacha-at-krestowsky .paper-stack {
  position: absolute; bottom: 30%; left: 22%; width: 50px; height: 14px;
  background: linear-gradient(180deg, #d0c8b0 0%, #a09880 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: nk-papers 5s ease-in-out infinite;
}
.scn-natacha-at-krestowsky .envelope-seal {
  position: absolute; bottom: 32%; left: 26%; width: 20px; height: 16px;
  background: #c8b898;
  border-radius: 1px; box-shadow: 0 1px 2px rgba(0,0,0,.4);
  animation: nk-envelope 7s ease-in-out infinite 2s;
}
@keyframes nk-room { 0% { opacity: 0.7 } 100% { opacity: 0.9 } }
@keyframes nk-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nk-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes nk-lamp { 0% { box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,.2); opacity: 0.8; } 50% { box-shadow: 0 0 25px 8px #ffaa50, 0 0 50px 16px rgba(255,170,80,.4); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #b07030, 0 0 35px 10px rgba(176,112,48,.25); opacity: 0.85; } }
@keyframes nk-papers { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(2px) rotate(0); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nk-envelope { 0% { transform: translateY(0); opacity: 0.6; } 50% { transform: translateY(-3px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.6; } }

/* Scene 4: natacha-recognized */
.scn-natacha-recognized {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 30% 50%, #4a3a5e 0%, transparent 80%);
}
.scn-natacha-recognized .hallway-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(270deg, #3a3a4e 0%, #1a1a2e 100%);
  animation: nr-hall 15s ease-in-out infinite alternate;
}
.scn-natacha-recognized .door-arch {
  position: absolute; top: 5%; left: 30%; right: 30%; bottom: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: nr-door 12s ease-in-out infinite;
}
.scn-natacha-recognized .figure-entering {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nr-entering 4s ease-in-out infinite alternate;
}
.scn-natacha-recognized .figure-waiting {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #2a1a2e 0%, #100a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nr-waiting 5s ease-in-out infinite alternate 0.5s;
}
.scn-natacha-recognized .light-beam {
  position: absolute; top: 12%; left: 32%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,150,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: nr-beam 3s ease-in-out infinite alternate;
}
.scn-natacha-recognized .hand-outstretched {
  position: absolute; bottom: 25%; left: 44%; width: 18px; height: 6px;
  background: #1a1a2e;
  border-radius: 50% 50% 0 0;
  animation: nr-hand 4s ease-in-out infinite alternate 1s;
}
@keyframes nr-hall { 0% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes nr-door { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes nr-entering { 0% { transform: translateX(-10px) rotate(0); } 50% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(5px) rotate(0); } }
@keyframes nr-waiting { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes nr-beam { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(0.9); } }
@keyframes nr-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }

/* -- scene 1: matrena-rejects-drama-theory --- */
.scn-matrena-rejects-drama-theory {
  background: 
    linear-gradient(180deg, #d4c9b0 0%, #b8a88c 30%, #9a8b72 60%, #7a6b55 100%),
    radial-gradient(circle at 30% 20%, #f5ead0 0%, transparent 70%);
}
.scn-matrena-rejects-drama-theory .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc5 0%, #c1b49a 100%);
  box-shadow: inset 0 -20px 20px rgba(0,0,0,0.15);
  animation: mt1-wall 8s ease-in-out infinite alternate;
}
.scn-matrena-rejects-drama-theory .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6d5c45 0%, #4d3f2f 100%);
  border-radius: 40% 0 0 0 / 20% 0 0 0;
}
.scn-matrena-rejects-drama-theory .window-outline {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #aec6df 0%, #7a9bb8 100%);
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4);
  border-radius: 2px;
  animation: mt1-window 6s ease-in-out infinite alternate;
}
.scn-matrena-rejects-drama-theory .curtain-left,
.scn-matrena-rejects-drama-theory .curtain-right {
  position: absolute; top: 15%; width: 12%; height: 32%;
  background: linear-gradient(90deg, #73432a 0%, #5a3320 50%, #73432a 100%);
  border-radius: 10px 0 10px 0 / 30px 0 10px 0;
  animation: mt1-curtain 9s ease-in-out infinite;
}
.scn-matrena-rejects-drama-theory .curtain-left { left: 38%; transform-origin: left top; }
.scn-matrena-rejects-drama-theory .curtain-right { right: 38%; transform-origin: right top; }
.scn-matrena-rejects-drama-theory .lamp-glow {
  position: absolute; top: 10%; left: 20%; width: 15px; height: 15px;
  background: radial-gradient(circle, #f5e6a0 0%, #dbb85a 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mt1-lamp 3s ease-in-out infinite alternate;
}
.scn-matrena-rejects-drama-theory .matrena-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mt1-figure 4s ease-in-out infinite;
}
.scn-matrena-rejects-drama-theory .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #6b4d3a 0%, #4a3325 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mt1-table 12s ease-in-out infinite alternate;
}
@keyframes mt1-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mt1-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.6); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.25); } }
@keyframes mt1-curtain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.8) } }
@keyframes mt1-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes mt1-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mt1-table { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }

/* -- scene 2: matrena-weeps-while-carving --- */
.scn-matrena-weeps-while-carving {
  background: 
    linear-gradient(180deg, #cdbb9e 0%, #b09e7f 35%, #8c7a5e 70%, #6b5940 100%),
    radial-gradient(circle at 40% 30%, #f2e3c0 0%, transparent 60%);
}
.scn-matrena-weeps-while-carving .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #ddd2b8 0%, #bba78b 100%);
  box-shadow: inset 0 -30px 20px rgba(0,0,0,0.1);
  animation: mt2-wall 10s ease-in-out infinite alternate;
}
.scn-matrena-weeps-while-carving .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5c4d3a 0%, #3f3224 100%);
  border-radius: 30% 0 0 0 / 15% 0 0 0;
}
.scn-matrena-weeps-while-carving .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #603e2a 0%, #3e2618 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 5px 12px rgba(0,0,0,0.5);
  animation: mt2-table 9s ease-in-out infinite alternate;
}
.scn-matrena-weeps-while-carving .plate {
  position: absolute; bottom: 30%; left: 38%; width: 18%; height: 8%;
  background: radial-gradient(circle, #eee8d0 0%, #b8ab8a 60%);
  border-radius: 50%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.1);
  animation: mt2-plate 7s ease-in-out infinite;
}
.scn-matrena-weeps-while-carving .hand-knife {
  position: absolute; bottom: 31%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 50% 100%;
  animation: mt2-knife 4s ease-in-out infinite;
}
.scn-matrena-weeps-while-carving .tear-drop {
  position: absolute; bottom: 38%; left: 42%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #b8d8f0 0%, #6a9bc0 100%);
  border-radius: 40% 40% 60% 60%;
  opacity: 0.8;
  animation: mt2-tear 5s ease-in-out infinite;
}
.scn-matrena-weeps-while-carving .matrena-arm {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: top center;
  animation: mt2-arm 6s ease-in-out infinite;
}
@keyframes mt2-wall { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes mt2-table { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } }
@keyframes mt2-plate { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes mt2-knife { 0%,100% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } }
@keyframes mt2-tear { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 25% { transform: translateY(5px) scale(1.05); opacity: 0.7; } 50% { transform: translateY(12px) scale(0.8); opacity: 0.3; } 75% { transform: translateY(8px) scale(0.9); opacity: 0.5; } 100% { transform: translateY(18px) scale(0.6); opacity: 0; } }
@keyframes mt2-arm { 0% { transform: rotate(3deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }

/* -- scene 3: reporter-promises-help --- */
.scn-reporter-promises-help {
  background: 
    linear-gradient(180deg, #e2d4b8 0%, #d0be9a 30%, #b7a27e 60%, #937d5f 100%),
    radial-gradient(circle at 50% 30%, #faf0db 0%, transparent 70%);
}
.scn-reporter-promises-help .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #ece2cc 0%, #cfbea8 100%);
  box-shadow: inset 0 -15px 15px rgba(0,0,0,0.08);
  animation: rp-wall 14s ease-in-out infinite alternate;
}
.scn-reporter-promises-help .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a694f 0%, #544435 100%);
  border-radius: 30% 0 0 0 / 10% 0 0 0;
}
.scn-reporter-promises-help .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #7a5538 0%, #50331f 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rp-table 18s ease-in-out infinite alternate;
}
.scn-reporter-promises-help .wine-glass {
  position: absolute; bottom: 25%; left: 40%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #e8e0c8 0%, #b8a88a 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 2px 6px rgba(255,200,100,0.3);
  animation: rp-glass 9s ease-in-out infinite;
}
.scn-reporter-promises-help .hands-clasped {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 60%, #d4a87a 0%, #a07050 50%, #60402a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: rp-hands 7s ease-in-out infinite alternate;
}
.scn-reporter-promises-help .matrena-figure {
  position: absolute; bottom: 25%; left: 30%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #4d3a2a 0%, #2a1c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rp-fig1 12s ease-in-out infinite;
}
.scn-reporter-promises-help .reporter-figure {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rp-fig2 12s ease-in-out infinite 2s;
}
@keyframes rp-wall { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rp-table { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.99) } }
@keyframes rp-glass { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes rp-hands { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes rp-fig1 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rp-fig2 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* -- scene 4: matrena-weeps-and-rouletabille-swears --- */
.scn-matrena-weeps-and-rouletabille-swears {
  background: 
    linear-gradient(180deg, #ccbb9e 0%, #b09e7f 35%, #8c7a5e 70%, #6b5940 100%),
    radial-gradient(circle at 40% 30%, #f2e3c0 0%, transparent 60%);
}
.scn-matrena-weeps-and-rouletabille-swears .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d9ceb2 0%, #bfa88c 100%);
  box-shadow: inset 0 -25px 20px rgba(0,0,0,0.12);
  animation: mt4-wall 8s ease-in-out infinite alternate;
}
.scn-matrena-weeps-and-rouletabille-swears .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c4d3a 0%, #3f3224 100%);
  border-radius: 30% 0 0 0 / 10% 0 0 0;
}
.scn-matrena-weeps-and-rouletabille-swears .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a32 0%, #462b1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: mt4-table 10s ease-in-out infinite alternate;
}
.scn-matrena-weeps-and-rouletabille-swears .arms {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 20px;
  background: linear-gradient(90deg, #7a5a3a 0%, #9b7050 50%, #7a5a3a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: mt4-arms 6s ease-in-out infinite;
}
.scn-matrena-weeps-and-rouletabille-swears .hands-rings {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #d4a87a 0%, #b08060 40%, #60402a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 0 8px 2px rgba(200,180,150,0.4);
  animation: mt4-hands 5s ease-in-out infinite;
}
.scn-matrena-weeps-and-rouletabille-swears .matrena-figure {
  position: absolute; bottom: 22%; left: 32%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4d3a2a 0%, #2a1c12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mt4-fig1 11s ease-in-out infinite;
}
.scn-matrena-weeps-and-rouletabille-swears .reporter-figure {
  position: absolute; bottom: 22%; right: 32%; width: 45px; height: 105px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mt4-fig2 11s ease-in-out infinite 1s;
}
.scn-matrena-weeps-and-rouletabille-swears .tear-stream {
  position: absolute; bottom: 40%; left: 36%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #b8d8f0 0%, #6a9bc0 80%, transparent 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: mt4-tear 6s ease-in-out infinite;
}
@keyframes mt4-wall { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes mt4-table { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } }
@keyframes mt4-arms { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.05) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes mt4-hands { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) } }
@keyframes mt4-fig1 { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mt4-fig2 { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mt4-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 25% { transform: translateY(8px) scale(1.1); opacity: 0.6; } 50% { transform: translateY(18px) scale(0.7); opacity: 0.3; } 75% { transform: translateY(12px) scale(0.9); opacity: 0.5; } 100% { transform: translateY(25px) scale(0.5); opacity: 0; } }

.scn-keys-and-dash-upstairs {
  background: 
    linear-gradient(180deg, #f7f3e6 0%, #e3d5b8 20%, #c4a887 60%, #8b6f47 100%),
    radial-gradient(ellipse at 80% 40%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-keys-and-dash-upstairs .wall-back { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c9b99e 0%, #a69072 100%); border-bottom:4px solid #7a5f3e; }
.scn-keys-and-dash-upstairs .stairs { position:absolute; bottom:42%; left:20%; right:30%; height:18%; background: linear-gradient(135deg, #b09878 0%, #8e7658 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); box-shadow: inset 0 -6px 10px rgba(0,0,0,0.2); }
.scn-keys-and-dash-upstairs .railing { position:absolute; bottom:55%; left:22%; right:32%; height:4px; background:#5a4a32; border-radius:2px; box-shadow: 0 12px 0 0 #5a4a32, 0 24px 0 0 #5a4a32; }
.scn-keys-and-dash-upstairs .figure { position:absolute; bottom:45%; left:40%; width:24px; height:46px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kdu-walk 1.2s ease-in-out infinite; }
.scn-keys-and-dash-upstairs .hand { position:absolute; bottom:52%; left:46%; width:14px; height:10px; background:#3a3a42; border-radius:30% 30% 10% 10%; transform-origin: left center; animation: kdu-reach 0.9s ease-in-out infinite alternate; }
.scn-keys-and-dash-upstairs .keys { position:absolute; bottom:51%; left:48%; width:12px; height:16px; background: radial-gradient(circle, #e0c080 0%, #b09050 100%); border-radius:20% 20% 40% 40%; box-shadow: 0 0 20px 6px rgba(200,160,80,0.8); animation: kdu-glow 0.6s ease-in-out infinite alternate; }
.scn-keys-and-dash-upstairs .shadow { position:absolute; bottom:44%; left:35%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(50,40,30,0.5) 0%, transparent 70%); opacity:0.6; animation: kdu-shadow 1.2s ease-in-out infinite; }
.scn-keys-and-dash-upstairs .lamp { position:absolute; bottom:70%; left:60%; width:16px; height:24px; background: linear-gradient(180deg, #d0b060 0%, #b08030 100%); border-radius:50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(200,160,80,0.7); animation: kdu-lamp 4s ease-in-out infinite; }
@keyframes kdu-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  75% { transform: translateX(6px) rotate(4deg); }
  100% { transform: translateX(8px) rotate(-2deg); }
}
@keyframes kdu-reach {
  0% { transform: translateX(0) rotate(10deg); }
  100% { transform: translateX(12px) rotate(-20deg); }
}
@keyframes kdu-glow {
  0% { box-shadow: 0 0 15px 3px rgba(200,160,80,0.6); opacity:0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(220,180,100,0.9); opacity:1; }
  100% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.7); opacity:0.9; }
}
@keyframes kdu-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.5; }
  50% { transform: scaleX(1.2) translateX(4px); opacity:0.7; }
  100% { transform: scaleX(1) translateX(8px); opacity:0.5; }
}
@keyframes kdu-lamp {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-2deg); }
}

.scn-matrena-happy-again {
  background:
    linear-gradient(180deg, #faf0e0 0%, #e8d5b8 30%, #d4b898 70%, #b89868 100%),
    radial-gradient(ellipse at 30% 70%, rgba(255,235,190,0.5) 0%, transparent 60%);
}
.scn-matrena-happy-again .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #e8d5b8 0%, #d4b898 100%); border-bottom:3px solid #c0a080; }
.scn-matrena-happy-again .floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c8a880 0%, #a88458 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.15); }
.scn-matrena-happy-again .window { position:absolute; bottom:60%; left:55%; width:60px; height:80px; background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%); border:4px solid #7a5f3e; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,250,220,0.6); }
.scn-matrena-happy-again .curtains { position:absolute; bottom:58%; left:53%; width:68px; height:84px; background: linear-gradient(180deg, #d4a870 0%, #b88850 100%); border-radius:8% 8% 0 0; opacity:0.6; animation: mha-sway 7s ease-in-out infinite; }
.scn-matrena-happy-again .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #a08058 0%, #8a6a42 100%); border-radius:8px 8px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-matrena-happy-again .figure { position:absolute; bottom:18%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a42 0%, #3a2a22 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: mha-turn 10s ease-in-out infinite; }
.scn-matrena-happy-again .arm { position:absolute; bottom:30%; left:38%; width:20px; height:8px; background:#4a3a32; border-radius:50% 50% 0 0; transform-origin: left center; animation: mha-ferret 6s ease-in-out infinite alternate; }
.scn-matrena-happy-again .shadow { position:absolute; bottom:18%; left:30%; width:60px; height:12px; background: radial-gradient(ellipse, rgba(80,60,40,0.4) 0%, transparent 70%); animation: mha-shadow 10s ease-in-out infinite; }
.scn-matrena-happy-again .object { position:absolute; bottom:24%; left:38%; width:14px; height:10px; background: linear-gradient(180deg, #b09050 0%, #907040 100%); border-radius:40%; box-shadow: 0 0 6px rgba(160,120,60,0.5); }
@keyframes mha-sway {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(1) rotate(-1deg); }
}
@keyframes mha-turn {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mha-ferret {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(6px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes mha-shadow {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.1); }
  100% { opacity:0.3; transform: scaleX(1); }
}

.scn-all-will-sleep {
  background:
    linear-gradient(180deg, #fff5e6 0%, #f0dfc8 40%, #dcc4a8 80%, #b89868 100%),
    radial-gradient(ellipse at 50% 90%, rgba(255,220,160,0.3) 0%, transparent 70%);
}
.scn-all-will-sleep .bed { position:absolute; bottom:10%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #c8a880 0%, #a88458 100%); border-radius:20px 20px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.2); }
.scn-all-will-sleep .pillow { position:absolute; bottom:28%; left:25%; width:25%; height:14%; background: #e8d5b8; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.1); animation: aws-breathe 6s ease-in-out infinite; }
.scn-all-will-sleep .figure { position:absolute; bottom:12%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a32 0%, #2a1a12 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: aws-sleep 12s ease-in-out infinite; }
.scn-all-will-sleep .lamp { position:absolute; bottom:60%; left:70%; width:18px; height:26px; background: linear-gradient(180deg, #e0c080 0%, #b09040 100%); border-radius:50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(200,160,80,0.6); animation: aws-glow 4s ease-in-out infinite alternate; }
.scn-all-will-sleep .window { position:absolute; bottom:55%; left:10%; width:55px; height:70px; background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%); border:3px solid #6a4a2a; border-radius:4px; box-shadow: inset 0 0 15px rgba(255,250,200,0.4); }
.scn-all-will-sleep .curtain { position:absolute; bottom:54%; left:8%; width:62px; height:74px; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:8% 8% 0 0; opacity:0.5; animation: aws-curtain 14s ease-in-out infinite; }
.scn-all-will-sleep .blanket { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius:20px 20px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.15); }
.scn-all-will-sleep .shadow { position:absolute; bottom:8%; left:30%; right:30%; height:6%; background: radial-gradient(ellipse, rgba(60,40,30,0.3) 0%, transparent 70%); }
@keyframes aws-breathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(1); }
}
@keyframes aws-sleep {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  50% { transform: rotate(1deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes aws-glow {
  0% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.5); opacity:0.8; }
  50% { box-shadow: 0 0 35px 12px rgba(220,180,100,0.8); opacity:1; }
  100% { box-shadow: 0 0 25px 7px rgba(200,160,80,0.6); opacity:0.9; }
}
@keyframes aws-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(2px); }
}

.scn-the-marshal-and-box {
  background:
    linear-gradient(180deg, #ede0c8 0%, #d4c0a0 30%, #b8a080 70%, #9a7a58 100%),
    radial-gradient(ellipse at 70% 50%, rgba(220,190,140,0.4) 0%, transparent 60%);
}
.scn-the-marshal-and-box .desk { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #a08058 0%, #8a6a42 100%); border-radius:10px 10px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.2); }
.scn-the-marshal-and-box .box { position:absolute; bottom:22%; left:42%; width:40px; height:30px; background: linear-gradient(180deg, #705040 0%, #503020 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 2px 4px rgba(255,200,100,0.1); animation: mbx-lid 8s ease-in-out infinite; }
.scn-the-marshal-and-box .figure { position:absolute; bottom:10%; left:35%; width:34px; height:60px; background: linear-gradient(180deg, #3a3a42 0%, #1a1a22 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: mbx-seat 12s ease-in-out infinite; }
.scn-the-marshal-and-box .chair { position:absolute; bottom:8%; left:32%; right:32%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-the-marshal-and-box .lamp { position:absolute; bottom:65%; left:65%; width:18px; height:28px; background: linear-gradient(180deg, #d0b060 0%, #b09030 100%); border-radius:50% 50% 0 0; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5); animation: mbx-lamp 5s ease-in-out infinite alternate; }
.scn-the-marshal-and-box .wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-bottom:3px solid #9a7a58; }
.scn-the-marshal-and-box .painting { position:absolute; bottom:70%; left:18%; width:50px; height:40px; background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 100%); border:3px solid #5a4a32; border-radius:4px; }
.scn-the-marshal-and-box .shadow { position:absolute; bottom:14%; left:30%; right:30%; height:6%; background: radial-gradient(ellipse, rgba(40,30,20,0.3) 0%, transparent 70%); animation: mbx-shadow 12s ease-in-out infinite; }
@keyframes mbx-lid {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mbx-seat {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes mbx-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.4); opacity:0.8; }
  50% { box-shadow: 0 0 35px 12px rgba(220,180,100,0.7); opacity:1; }
  100% { box-shadow: 0 0 25px 7px rgba(200,160,80,0.5); opacity:0.9; }
}
@keyframes mbx-shadow {
  0% { opacity:0.3; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}

/* one block per scene id. Append to style.css. */
.scn-confession-after-strip {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a2a 0%, transparent 70%);
}
.scn-confession-after-strip .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-confession-after-strip .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); }
.scn-confession-after-strip .window { position:absolute; top:12%; left:20%; width:40%; height:30%; background: radial-gradient(circle at 50% 50%, #d0a050 0%, #8a6a30 60%, #4a3a1a 100%); border-radius: 4%; box-shadow: 0 0 40px 20px rgba(180,140,70,0.4); animation: cas-glow 3s ease-in-out infinite alternate; }
.scn-confession-after-strip .ikon { position:absolute; top:35%; right:15%; width:10%; height:15%; background: linear-gradient(135deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 20%; box-shadow: 0 0 12px 6px rgba(180,140,70,0.5); animation: cas-ikon 6s ease-in-out infinite; }
.scn-confession-after-strip .koupriane { position:absolute; bottom:30%; left:20%; width:15%; height:55%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: center bottom; animation: cas-koupriane 5s ease-in-out infinite; }
.scn-confession-after-strip .touman { position:absolute; bottom:30%; left:45%; width:12%; height:45%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cas-touman 2s ease-in-out infinite alternate; }
.scn-confession-after-strip .shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
@keyframes cas-glow { 0% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(180,140,70,0.3); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(180,140,70,0.6); } 100% { opacity:0.8; box-shadow: 0 0 40px 20px rgba(180,140,70,0.4); } }
@keyframes cas-ikon { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes cas-koupriane { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-0.5deg); } 70% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cas-touman { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(3deg); } }

.scn-koupriane-whips-him {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, transparent 60%);
}
.scn-koupriane-whips-him .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-koupriane-whips-him .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); }
.scn-koupriane-whips-him .lamp-glow { position:absolute; top:20%; left:50%; width:30%; height:40%; background: radial-gradient(circle at 50% 50%, #c0a050 0%, #5a3a1a 60%, transparent 100%); transform: translateX(-50%); filter: blur(8px); animation: kwh-glow 2s ease-in-out infinite alternate; }
.scn-koupriane-whips-him .guard { position:absolute; bottom:25%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
.scn-koupriane-whips-him .guard-left { left:22%; animation: kwh-guard-l 4s ease-in-out infinite; }
.scn-koupriane-whips-him .guard-right { right:22%; animation: kwh-guard-r 4s ease-in-out infinite alternate; }
.scn-koupriane-whips-him .touman-bent { position:absolute; bottom:25%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: kwh-touman 1s ease-in-out infinite; }
.scn-koupriane-whips-him .koupriane-whip { position:absolute; bottom:25%; left:60%; width:12%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: kwh-koup 2s ease-in-out infinite; }
.scn-koupriane-whips-him .whip-strike { position:absolute; top:30%; left:70%; width:20%; height:5%; background: linear-gradient(90deg, transparent, #6a4a2a, transparent); border-radius: 50%; transform: rotate(-30deg); animation: kwh-whip 0.6s ease-in-out infinite; }
@keyframes kwh-glow { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes kwh-guard-l { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kwh-guard-r { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-1deg); } 70% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kwh-touman { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-5px); } 50% { transform: rotate(-3deg) translateY(-3px); } 75% { transform: rotate(4deg) translateY(-6px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes kwh-koup { 0% { transform: rotate(0deg); } 20% { transform: rotate(-10deg); } 40% { transform: rotate(5deg); } 60% { transform: rotate(-8deg); } 80% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes kwh-whip { 0% { transform: rotate(-30deg) scaleX(1); opacity:0; } 50% { transform: rotate(10deg) scaleX(1.5); opacity:1; } 100% { transform: rotate(-30deg) scaleX(1); opacity:0; } }

.scn-touman-reveals-true-name {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 60%);
}
.scn-touman-reveals-true-name .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-touman-reveals-true-name .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%); }
.scn-touman-reveals-true-name .chair { position:absolute; bottom:30%; left:35%; width:25%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: trn-chair 8s ease-in-out infinite; }
.scn-touman-reveals-true-name .touman-over-chair { position:absolute; bottom:28%; left:38%; width:20%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; transform: rotate(-15deg); animation: trn-touman 5s ease-in-out infinite alternate; }
.scn-touman-reveals-true-name .rouletabille-slump { position:absolute; bottom:30%; right:18%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: center bottom; animation: trn-roule 4s ease-in-out infinite; }
.scn-touman-reveals-true-name .koupriane-standing { position:absolute; bottom:30%; left:15%; width:15%; height:55%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: center bottom; animation: trn-koup 3s ease-in-out infinite alternate; }
.scn-touman-reveals-true-name .lamp-glow { position:absolute; top:15%; left:50%; width:30%; height:35%; background: radial-gradient(circle at 50% 50%, #c0a050 0%, #5a3a1a 60%, transparent 100%); transform: translateX(-50%); filter: blur(6px); animation: trn-lamp 4s ease-in-out infinite; }
@keyframes trn-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes trn-touman { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-5px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes trn-roule { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 70% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes trn-koup { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-0.3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes trn-lamp { 0% { opacity:0.7; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.03); } 100% { opacity:0.8; transform: translateX(-50%) scale(0.97); } }

.scn-life-for-life {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a3a 0%, transparent 50%);
}
.scn-life-for-life .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-life-for-life .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); }
.scn-life-for-life .door { position:absolute; top:20%; right:8%; width:18%; height:60%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4%; box-shadow: inset 0 0 10px rgba(0,0,0,.6); animation: lfl-door 6s ease-in-out infinite; }
.scn-life-for-life .guard-left { position:absolute; bottom:25%; left:25%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: lfl-guard-l 3s ease-in-out infinite alternate; }
.scn-life-for-life .guard-right { position:absolute; bottom:25%; left:38%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: lfl-guard-r 3s ease-in-out infinite alternate; }
.scn-life-for-life .touman-dragged { position:absolute; bottom:25%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: lfl-touman 2s ease-in-out infinite; }
.scn-life-for-life .rouletabille-stance { position:absolute; bottom:25%; right:30%; width:12%; height:50%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: center bottom; animation: lfl-roule 4s ease-in-out infinite; }
.scn-life-for-life .koupriane-turn { position:absolute; bottom:25%; right:45%; width:15%; height:55%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: center bottom; animation: lfl-koup 3s ease-in-out infinite alternate; }
.scn-life-for-life .purse { position:absolute; bottom:30%; right:55%; width:6%; height:4%; background: radial-gradient(circle, #8a6a3a 0%, #5a4a2a 100%); border-radius: 30%; box-shadow: 0 0 6px 2px rgba(180,140,70,0.5); animation: lfl-purse 2s ease-in-out infinite; }
.scn-life-for-life .lamp-glow { position:absolute; top:10%; left:50%; width:40%; height:50%; background: radial-gradient(circle at 50% 50%, #c0a050 0%, #5a3a1a 60%, transparent 100%); transform: translateX(-50%); filter: blur(10px); animation: lfl-lamp 3s ease-in-out infinite alternate; }
@keyframes lfl-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes lfl-guard-l { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfl-guard-r { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfl-touman { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfl-roule { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(0.5deg); } 70% { transform: translateY(0) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lfl-koup { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lfl-purse { 0% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(1.1) rotate(5deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:0.8; } }
@keyframes lfl-lamp { 0% { opacity:0.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.02); } 100% { opacity:0.7; transform: translateX(-50%) scale(0.98); } }

.scn-caution-approaching {
  background: linear-gradient(180deg, #1a2a3e 0%, #2c2244 30%, #1a1a2e 60%, #0e0e1a 100%),
              radial-gradient(ellipse at 70% 70%, #3a3a5a 0%, transparent 60%);
}
.scn-caution-approaching .sky-bg {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 40%, transparent 100%);
  animation: ca-sky 8s ease-in-out infinite alternate;
}
.scn-caution-approaching .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
  animation: ca-road 6s ease-in-out infinite alternate;
}
.scn-caution-approaching .carriage {
  position: absolute; bottom: 18%; left: 20%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 10% 30% 20% 20% / 20% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: ca-carriage 4s ease-in-out infinite;
}
.scn-caution-approaching .horse {
  position: absolute; bottom: 22%; left: 55%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-horse 0.8s ease-in-out infinite;
}
.scn-caution-approaching .driver {
  position: absolute; bottom: 22%; left: 25%; width: 20px; height: 30px;
  background: #2a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-driver 2s ease-in-out infinite;
}
.scn-caution-approaching .lantern-ca {
  position: absolute; bottom: 24%; left: 32%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e0b060 0%, #a08030 100%);
  border-radius: 30%;
  box-shadow: 0 0 16px 6px rgba(224,176,96,.6), 0 0 32px 12px rgba(224,176,96,.3);
  animation: ca-lantern 2s ease-in-out infinite alternate;
}
.scn-caution-approaching .wheel {
  position: absolute; bottom: 15%; left: 22%; width: 30px; height: 30px;
  border: 4px solid #2a1a1a;
  border-radius: 50%;
  background: #1a1410;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ca-wheel 0.6s linear infinite;
}
@keyframes ca-sky { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: .7; transform: scaleY(1); } }
@keyframes ca-road { 0% { transform: translateX(0) skewX(-2deg); } 50% { transform: translateX(-4px) skewX(2deg); } 100% { transform: translateX(0) skewX(-2deg); } }
@keyframes ca-carriage { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes ca-horse { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-8deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(8deg); } }
@keyframes ca-driver { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ca-lantern { 0% { box-shadow: 0 0 12px 4px rgba(224,176,96,.4); opacity: .7; } 100% { box-shadow: 0 0 24px 8px rgba(224,176,96,.7); opacity: 1; } }
@keyframes ca-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-the-doctors-are-waiting {
  background: linear-gradient(180deg, #1a2a3e 0%, #2c2244 40%, #1a1a2e 70%, #0e0e1a 100%),
              radial-gradient(ellipse at 30% 60%, #4a4a6a 0%, transparent 60%);
}
.scn-the-doctors-are-waiting .sky-bg {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 50%, transparent 100%);
  animation: dw-sky 12s ease-in-out infinite alternate;
}
.scn-the-doctors-are-waiting .datcha {
  position: absolute; bottom: 30%; left: 40%; width: 160px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: dw-datcha 5s ease-in-out infinite;
}
.scn-the-doctors-are-waiting .window-dw {
  position: absolute; bottom: 40%; left: 45%; width: 40px; height: 50px;
  background: #2a3a4a;
  border: 2px solid #3a2a1a;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3), 0 0 8px rgba(224,176,96,.3);
  animation: dw-window 4s ease-in-out infinite alternate;
}
.scn-the-doctors-are-waiting .doctor-1 {
  position: absolute; bottom: 35%; left: 47%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw-doc1 3s ease-in-out infinite;
}
.scn-the-doctors-are-waiting .doctor-2 {
  position: absolute; bottom: 35%; left: 52%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dw-doc2 3s ease-in-out infinite reverse;
}
.scn-the-doctors-are-waiting .veranda {
  position: absolute; bottom: 30%; left: 38%; width: 180px; height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1410 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: dw-veranda 7s ease-in-out infinite alternate;
}
.scn-the-doctors-are-waiting .lantern-dw {
  position: absolute; bottom: 38%; left: 35%; width: 8px; height: 10px;
  background: radial-gradient(circle, #e0b060 0%, #a08030 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px rgba(224,176,96,.5);
  animation: dw-lantern 3s ease-in-out infinite alternate;
}
@keyframes dw-sky { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes dw-datcha { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes dw-window { 0% { box-shadow: inset 0 0 8px rgba(0,0,0,.2), 0 0 6px rgba(224,176,96,.2); opacity: .8; } 100% { box-shadow: inset 0 0 12px rgba(0,0,0,.4), 0 0 12px rgba(224,176,96,.5); opacity: 1; } }
@keyframes dw-doc1 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes dw-doc2 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes dw-veranda { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes dw-lantern { 0% { box-shadow: 0 0 12px 4px rgba(224,176,96,.3); opacity: .7; } 100% { box-shadow: 0 0 28px 8px rgba(224,176,96,.6); opacity: 1; } }

.scn-observing-the-assassins {
  background: linear-gradient(180deg, #1a2a3e 0%, #2c2244 50%, #1a1a2e 80%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-observing-the-assassins .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 0 0 30% 70% / 0 0 100% 100%;
  animation: oa-floor 8s ease-in-out infinite alternate;
}
.scn-observing-the-assassins .garden-bg {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 35%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: oa-garden 12s ease-in-out infinite alternate;
}
.scn-observing-the-assassins .window-frame {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 35%;
  border: 6px solid #3a2a1a;
  border-radius: 4% 4% 0 0;
  background: transparent;
  box-shadow: inner 0 0 0 60px rgba(0,0,0,.4);
  animation: oa-frame 5s ease-in-out infinite;
}
.scn-observing-the-assassins .figure-oa-1 {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-fig1 4s ease-in-out infinite;
}
.scn-observing-the-assassins .figure-oa-2 {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-fig2 4s ease-in-out infinite reverse;
}
.scn-observing-the-assassins .table {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: oa-table 6s ease-in-out infinite alternate;
}
.scn-observing-the-assassins .lamp {
  position: absolute; bottom: 25%; left: 50%; width: 10px; height: 16px;
  background: radial-gradient(circle, #e0b060 0%, #a08030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(224,176,96,.4), 0 0 40px 12px rgba(224,176,96,.2);
  animation: oa-lamp 2s ease-in-out infinite alternate;
}
@keyframes oa-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oa-garden { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes oa-frame { 0%,100% { border-color: #3a2a1a; } 50% { border-color: #4a3a2a; } }
@keyframes oa-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-3deg); } }
@keyframes oa-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(3deg); } }
@keyframes oa-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes oa-lamp { 0% { box-shadow: 0 0 12px 4px rgba(224,176,96,.3); } 100% { box-shadow: 0 0 28px 8px rgba(224,176,96,.6); } }

.scn-koupriane-plan {
  background: linear-gradient(180deg, #1a2a3e 0%, #2c2244 40%, #1a1a2e 70%, #0e0e1a 100%),
              radial-gradient(ellipse at 40% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-koupriane-plan .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: kp-lawn 10s ease-in-out infinite alternate;
}
.scn-koupriane-plan .steps {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1410 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: kp-steps 7s ease-in-out infinite ;
}
.scn-koupriane-plan .figure-kp-1 {
  position: absolute; bottom: 12%; left: 28%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-fig1 5s ease-in-out infinite;
}
.scn-koupriane-plan .figure-kp-2 {
  position: absolute; bottom: 12%; left: 48%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-fig2 5s ease-in-out infinite reverse;
}
.scn-koupriane-plan .bomb {
  position: absolute; bottom: 16%; left: 55%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.8);
  animation: kp-bomb 3s ease-in-out infinite;
}
.scn-koupriane-plan .lantern-kp {
  position: absolute; bottom: 18%; left: 20%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e0b060 0%, #a08030 100%);
  border-radius: 30%;
  box-shadow: 0 0 18px 6px rgba(224,176,96,.5), 0 0 36px 12px rgba(224,176,96,.2);
  animation: kp-lantern 2s ease-in-out infinite alternate;
}
.scn-koupriane-plan .bush {
  position: absolute; bottom: 10%; left: 10%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0e2a0e 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: kp-bush 8s ease-in-out infinite alternate;
}
@keyframes kp-lawn { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes kp-steps { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes kp-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes kp-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(5deg); } }
@keyframes kp-bomb { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes kp-lantern { 0% { box-shadow: 0 0 12px 4px rgba(224,176,96,.3); opacity: .7; } 100% { box-shadow: 0 0 28px 8px rgba(224,176,96,.6); opacity: 1; } }
@keyframes kp-bush { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

.scn-exploring-the-sitting-room {
  background: linear-gradient(180deg, #2b1d12 0%, #1f1409 40%, #120a04 100%), radial-gradient(ellipse at 50% 0%, #4a3628 0%, transparent 70%);
}
.scn-exploring-the-sitting-room .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3b2a1a 0%, #24170c 100%);
  animation: sr-wall 12s ease-in-out infinite alternate;
}
.scn-exploring-the-sitting-room .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e1e0e 0%, #1a0f06 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: sr-floor 8s ease-in-out infinite;
}
.scn-exploring-the-sitting-room .table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5c3d21 0%, #3a2513 100%);
  border-radius: 4% 4% 6% 6% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: sr-table 10s ease-in-out infinite alternate;
}
.scn-exploring-the-sitting-room .dog-under {
  position: absolute; bottom: 30%; left: 38%; width: 16%; height: 8%;
  background: radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, #1a0e06 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: sr-dog 6s ease-in-out infinite;
}
.scn-exploring-the-sitting-room .reporter {
  position: absolute; bottom: 26%; left: 52%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a24 0%, #0d0d14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-reporter 9s ease-in-out infinite;
}
.scn-exploring-the-sitting-room .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b07a40 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #b07a40, 0 0 60px 15px rgba(176,122,64,0.4);
  animation: sr-lamp 3s ease-in-out infinite alternate;
}
.scn-exploring-the-sitting-room .chair {
  position: absolute; bottom: 25%; left: 20%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 30% 30%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
  animation: sr-chair 7s ease-in-out infinite alternate;
}
@keyframes sr-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sr-floor {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px) scaleX(0.995); }
}
@keyframes sr-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes sr-dog {
  0% { transform: scaleX(1) translateY(0); }
  30% { transform: scaleX(1.02) translateY(-1px); }
  60% { transform: scaleX(0.98) translateY(0.5px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes sr-reporter {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg) scaleY(0.98); }
  50% { transform: translateX(8px) rotate(-1deg) scaleY(1.01); }
  75% { transform: translateX(4px) rotate(0.5deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sr-lamp {
  0% { box-shadow: 0 0 20px 4px #b07a40, 0 0 40px 8px rgba(176,122,64,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 35px 10px #ffc060, 0 0 70px 20px rgba(255,192,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #b07a40, 0 0 50px 12px rgba(176,122,64,0.35); opacity: 0.9; }
}
@keyframes sr-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-item-khor-the-dog {
  background: linear-gradient(180deg, #3a281a 0%, #2a1a0e 40%, #1a0f08 100%), radial-gradient(ellipse at 50% 100%, #5a4030 0%, transparent 70%);
}
.scn-item-khor-the-dog .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #4a3520 0%, #2a1a10 100%);
  animation: kh-bg 10s ease-in-out infinite alternate;
}
.scn-item-khor-the-dog .rug {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: kh-rug 12s ease-in-out infinite;
}
.scn-item-khor-the-dog .dog-khor {
  position: absolute; bottom: 28%; left: 40%; width: 18%; height: 12%;
  background: radial-gradient(ellipse at 30% 40%, #5a3a2a 0%, #2a1a0e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: kh-dog 6s ease-in-out infinite;
}
.scn-item-khor-the-dog .madame {
  position: absolute; bottom: 24%; left: 55%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kh-madame 9s ease-in-out infinite;
}
.scn-item-khor-the-dog .lodge-door {
  position: absolute; bottom: 10%; right: 8%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 6% 6% 4% 4% / 30% 30% 20% 20%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.6);
  animation: kh-door 8s ease-in-out infinite alternate;
}
.scn-item-khor-the-dog .lantern-glow {
  position: absolute; bottom: 35%; left: 20%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #ffb060 0%, #a06030 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 25px 6px #a06030, 0 0 50px 12px rgba(160,96,48,0.4);
  animation: kh-lantern 3s ease-in-out infinite alternate;
}
@keyframes kh-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes kh-rug {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.99); }
}
@keyframes kh-dog {
  0% { transform: scaleX(1) translateY(0) rotate(0deg); }
  30% { transform: scaleX(1.03) translateY(-1px) rotate(1deg); }
  60% { transform: scaleX(0.97) translateY(0.5px) rotate(-1deg); }
  100% { transform: scaleX(1) translateY(0) rotate(0deg); }
}
@keyframes kh-madame {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg) scaleY(0.99); }
  50% { transform: translateX(-2px) rotate(-1.5deg) scaleY(1.01); }
  75% { transform: translateX(1px) rotate(0.5deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kh-door {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.98) translateY(-2px); }
  100% { transform: scaleX(1.02) translateY(0); }
}
@keyframes kh-lantern {
  0% { box-shadow: 0 0 15px 3px #a06030, 0 0 30px 6px rgba(160,96,48,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 30px 8px #ffc060, 0 0 60px 15px rgba(255,192,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px #a06030, 0 0 40px 10px rgba(160,96,48,0.35); opacity: 0.9; }
}

.scn-dogs-are-only-for-strangers {
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 40%, #0e0604 100%), radial-gradient(ellipse at 50% 0%, #3a2a1e 0%, transparent 70%);
}
.scn-dogs-are-only-for-strangers .bg-shadow {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 100%);
  animation: dg-bg 14s ease-in-out infinite alternate;
}
.scn-dogs-are-only-for-strangers .figure-left {
  position: absolute; bottom: 25%; left: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dg-left 8s ease-in-out infinite;
}
.scn-dogs-are-only-for-strangers .figure-right {
  position: absolute; bottom: 25%; right: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dg-right 8s ease-in-out infinite reverse;
}
.scn-dogs-are-only-for-strangers .dog-between {
  position: absolute; bottom: 28%; left: 43%; width: 14%; height: 10%;
  background: radial-gradient(ellipse at 30% 40%, #4a2a1a 0%, #1a0e06 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: dg-dog 5s ease-in-out infinite;
}
.scn-dogs-are-only-for-strangers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1a0e 0%, #120a04 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: dg-ground 10s ease-in-out infinite alternate;
}
.scn-dogs-are-only-for-strangers .chandelier {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(circle at 50% 30%, #8a6a40 0%, #4a2a10 80%);
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  box-shadow: 0 0 20px 4px #6a4a20, 0 0 40px 8px rgba(106,74,32,0.3);
  animation: dg-chandelier 6s ease-in-out infinite alternate;
}
@keyframes dg-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dg-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(1deg) scaleY(0.98); }
  50% { transform: translateX(-5px) rotate(-1.5deg) scaleY(1.02); }
  75% { transform: translateX(2px) rotate(0.5deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dg-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-1deg) scaleY(0.98); }
  50% { transform: translateX(5px) rotate(1.5deg) scaleY(1.02); }
  75% { transform: translateX(-2px) rotate(-0.5deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dg-dog {
  0% { transform: scaleX(1) translateY(0) rotate(0deg); }
  30% { transform: scaleX(0.95) translateY(1px) rotate(-2deg); }
  60% { transform: scaleX(1.05) translateY(-1px) rotate(2deg); }
  100% { transform: scaleX(1) translateY(0) rotate(0deg); }
}
@keyframes dg-ground {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.995); }
}
@keyframes dg-chandelier {
  0% { opacity: 0.8; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.02) rotate(1deg); }
  100% { opacity: 0.85; transform: scale(0.98) rotate(-1deg); }
}

.scn-first-attempt-moscow-sleigh {
  background: linear-gradient(180deg, #1e1e3a 0%, #2c2c4e 30%, #3a3a5e 60%, #4a4a6e 100%), radial-gradient(ellipse at 50% 100%, #4a4a6e 0%, transparent 70%);
}
.scn-first-attempt-moscow-sleigh .bg-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #1a1a3a 0%, #2a2a50 50%, #3a3a60 100%);
  animation: sl-bg 15s ease-in-out infinite alternate;
}
.scn-first-attempt-moscow-sleigh .window-frame {
  position: absolute; top: 5%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 4% 4% 6% 6% / 20% 20% 30% 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: sl-frame 8s ease-in-out infinite alternate;
}
.scn-first-attempt-moscow-sleigh .dusk-sky {
  position: absolute; top: 8%; left: 13%; width: 34%; height: 42%;
  background: linear-gradient(180deg, #3a3a5e 0%, #5a5a7e 50%, #7a7a9e 100%);
  border-radius: 2%; 
  box-shadow: inset 0 0 30px rgba(255,255,255,0.05);
  animation: sl-sky 12s ease-in-out infinite;
}
.scn-first-attempt-moscow-sleigh .sleigh-silhouette {
  position: absolute; bottom: 45%; left: 18%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  filter: blur(1px);
  animation: sl-sleigh 6s ease-in-out infinite alternate;
}
.scn-first-attempt-moscow-sleigh .boris-figure {
  position: absolute; bottom: 22%; left: 55%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sl-boris 9s ease-in-out infinite;
}
.scn-first-attempt-moscow-sleigh .table-dining {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4% 4% 6% 6% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: sl-table 10s ease-in-out infinite alternate;
}
.scn-first-attempt-moscow-sleigh .candle-flicker {
  position: absolute; bottom: 18%; left: 55%; width: 2%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b07a40 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 15px 4px #b07a40, 0 0 30px 8px rgba(176,122,64,0.4);
  animation: sl-candle 2s ease-in-out infinite alternate;
}
@keyframes sl-bg {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sl-frame {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.98) translateY(-2px); }
  100% { transform: scaleX(1.02) translateY(0); }
}
@keyframes sl-sky {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-3px); }
  100% { opacity: 0.8; transform: translateY(0); }
}
@keyframes sl-sleigh {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-5px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes sl-boris {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg) scaleY(0.98); }
  50% { transform: translateX(-4px) rotate(-1.5deg) scaleY(1.02); }
  75% { transform: translateX(2px) rotate(0.5deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sl-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes sl-candle {
  0% { box-shadow: 0 0 10px 2px #b07a40, 0 0 20px 4px rgba(176,122,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #b07a40, 0 0 25px 6px rgba(176,122,64,0.35); opacity: 0.85; }
}

.scn-guest-chamber-and-creak {
  background:
    linear-gradient(180deg, #1a1820 0%, #2a2430 40%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 20%, #2a2430 0%, transparent 70%);
}
.scn-guest-chamber-and-creak .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a2430 0%, #1a1820 100%);
  animation: gcc-wall 14s ease-in-out infinite alternate;
}
.scn-guest-chamber-and-creak .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
  animation: gcc-floor 10s ease-in-out infinite; }
.scn-guest-chamber-and-creak .bed {
  position:absolute; bottom:20%; left:15%; width:40%; height:18%;
  background: linear-gradient(180deg, #3a3230 0%, #2a2220 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: gcc-bed 12s ease-in-out infinite;
}
.scn-guest-chamber-and-creak .figure-kneeling {
  position:absolute; bottom:22%; left:35%; width:12%; height:25%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcc-kneel 4s ease-in-out infinite;
}
.scn-guest-chamber-and-creak .figure-standing {
  position:absolute; bottom:25%; left:55%; width:10%; height:30%;
  background: linear-gradient(180deg, #1a1820 0%, #0a0808 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gcc-stand 3s ease-in-out infinite;
}
.scn-guest-chamber-and-creak .lamp-glow {
  position:absolute; bottom:30%; left:70%; width:6%; height:8%;
  background: radial-gradient(circle, #f0c068 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,.3);
  animation: gcc-lamp 5s ease-in-out infinite alternate;
}
.scn-guest-chamber-and-creak .door {
  position:absolute; bottom:10%; right:5%; width:20%; height:50%;
  background: linear-gradient(180deg, #3a3230 0%, #1e1818 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: gcc-door 12s ease-in-out infinite alternate;
}
.scn-guest-chamber-and-creak .shadow-door {
  position:absolute; bottom:10%; right:12%; width:15%; height:45%;
  background: rgba(0,0,0,.3);
  filter: blur(6px);
  animation: gcc-shadow 12s ease-in-out infinite alternate;
}
@keyframes gcc-wall { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes gcc-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes gcc-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gcc-kneel { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes gcc-stand { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.01) } 100% { transform: rotate(2deg) scaleY(1) } }
@keyframes gcc-lamp { 0% { opacity:.6; box-shadow:0 0 20px 5px rgba(200,140,60,.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(200,140,60,.4); } 100% { opacity:.7; box-shadow:0 0 25px 8px rgba(200,140,60,.3); } }
@keyframes gcc-door { 0% { transform: rotateY(0) } 25% { transform: rotateY(-8deg) } 75% { transform: rotateY(-2deg) } 100% { transform: rotateY(0) } }
@keyframes gcc-shadow { 0% { transform: skewX(0) } 25% { transform: skewX(8deg) } 75% { transform: skewX(2deg) } 100% { transform: skewX(0) } }

.scn-floorboard-examination {
  background:
    linear-gradient(180deg, #1e1a1a 0%, #2a2420 40%, #1a1414 100%),
    radial-gradient(ellipse at 50% 80%, #2a2420 0%, transparent 60%);
}
.scn-floorboard-examination .bg-room {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2420 0%, #1e1a1a 100%);
  animation: fbe-bg 16s ease-in-out infinite alternate;
}
.scn-floorboard-examination .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: repeating-linear-gradient(90deg, #3a3228 0px, #3a3228 20px, #2a2218 20px, #2a2218 40px);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: fbe-floor 20s linear infinite;
}
.scn-floorboard-examination .floorboard-lifted {
  position:absolute; bottom:22%; left:40%; width:8%; height:12%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  transform-origin: bottom left;
  animation: fbe-lift 6s ease-in-out infinite;
}
.scn-floorboard-examination .lamp {
  position:absolute; bottom:45%; left:20%; width:8%; height:6%;
  background: radial-gradient(circle, #e8c060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,140,60,.3);
  animation: fbe-lamp 4s ease-in-out infinite alternate;
}
.scn-floorboard-examination .arm-reaching {
  position:absolute; bottom:28%; left:45%; width:3%; height:20%;
  background: linear-gradient(180deg, #3a3220 0%, #1e1810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: fbe-arm 5s ease-in-out infinite;
}
.scn-floorboard-examination .figure-bending {
  position:absolute; bottom:15%; left:30%; width:14%; height:28%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fbe-bend 4s ease-in-out infinite;
}
.scn-floorboard-examination .shadow-arm {
  position:absolute; bottom:32%; left:42%; width:5%; height:15%;
  background: rgba(0,0,0,.3);
  filter: blur(3px);
  animation: fbe-shad 5s ease-in-out infinite;
}
@keyframes fbe-bg { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes fbe-floor { 0% { background-size: 100% 100%; } 50% { background-size: 102% 100%; } 100% { background-size: 100% 100%; } }
@keyframes fbe-lift { 0% { transform: rotate(0) translate(0,0); } 25% { transform: rotate(-5deg) translate(-2px,-4px); } 50% { transform: rotate(-10deg) translate(-5px,-8px); } 75% { transform: rotate(-5deg) translate(-2px,-4px); } 100% { transform: rotate(0) translate(0,0); } }
@keyframes fbe-lamp { 0% { opacity:.6; box-shadow:0 0 20px 5px rgba(200,140,60,.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(200,140,60,.4); } 100% { opacity:.7; box-shadow:0 0 25px 8px rgba(200,140,60,.3); } }
@keyframes fbe-arm { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(3px,-5px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes fbe-bend { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes fbe-shad { 0%,100% { opacity:.3; transform: translate(2px,0); } 50% { opacity:.5; transform: translate(-2px,-3px); } }

.scn-koupriane-examined-floor {
  background:
    linear-gradient(180deg, #141010 0%, #1e1814 40%, #0e0a0a 100%),
    radial-gradient(ellipse at 50% 50%, #1e1814 0%, transparent 60%);
}
.scn-koupriane-examined-floor .bg-dark {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #1e1814 0%, #141010 100%);
  animation: kef-bg 18s ease-in-out infinite alternate;
}
.scn-koupriane-examined-floor .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: repeating-linear-gradient(90deg, #2a2018 0px, #2a2018 15px, #1e1610 15px, #1e1610 30px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
  animation: kef-floor 15s ease-in-out infinite;
}
.scn-koupriane-examined-floor .hollow {
  position:absolute; bottom:18%; left:35%; width:10%; height:8%;
  background: #0a0604;
  border-radius: 50%;
  box-shadow: inset 0 0 8px rgba(0,0,0,.8);
  animation: kef-hollow 8s ease-in-out infinite alternate;
}
.scn-koupriane-examined-floor .nails {
  position:absolute; bottom:20%; left:38%; width:2%; height:2%;
  background: #3a2a1a;
  border-radius: 50%;
  box-shadow: 0 20px 0 #3a2a1a, 0 40px 0 #3a2a1a;
  animation: kef-nails 7s ease-in-out infinite;
}
.scn-koupriane-examined-floor .hand-tool {
  position:absolute; bottom:25%; left:45%; width:15%; height:4%;
  background: linear-gradient(90deg, #4a3a28 0%, #2a1a10 100%);
  border-radius: 10% 80% 80% 10%;
  transform-origin: right center;
  animation: kef-tool 5s ease-in-out infinite;
}
.scn-koupriane-examined-floor .figure-koupriane {
  position:absolute; bottom:15%; left:25%; width:15%; height:30%;
  background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: kef-figure 4s ease-in-out infinite;
}
.scn-koupriane-examined-floor .lantern {
  position:absolute; bottom:35%; left:15%; width:6%; height:8%;
  background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,130,50,.4);
  animation: kef-lantern 6s ease-in-out infinite alternate;
}
@keyframes kef-bg { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes kef-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes kef-hollow { 0% { width:10%; height:8%; } 50% { width:12%; height:9%; } 100% { width:10%; height:8%; } }
@keyframes kef-nails { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes kef-tool { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0) scaleX(1); } }
@keyframes kef-figure { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(4deg) scaleY(1.02); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes kef-lantern { 0% { opacity:.5; box-shadow:0 0 20px 5px rgba(200,130,50,.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(200,130,50,.5); } 100% { opacity:.7; box-shadow:0 0 25px 8px rgba(200,130,50,.3); } }

.scn-notebook-topography {
  background:
    linear-gradient(180deg, #1a1a18 0%, #2a2824 40%, #1e1c1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2824 0%, transparent 60%);
}
.scn-notebook-topography .table {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1e1c1a 0%, #141210 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: nbt-table 20s ease-in-out infinite alternate;
}
.scn-notebook-topography .notebook {
  position:absolute; top:15%; left:20%; width:60%; height:55%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d8ccb8 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  transform: rotate(calc(-2deg + 2deg * sin(5s)));
  animation: nbt-notebook 12s ease-in-out infinite;
}
.scn-notebook-topography .line {
  position:absolute; top:22%; left:22%;
  width:0; height:0;
  border-left: 56% solid transparent;
  border-right: 0 solid transparent;
  border-bottom: 10% solid #8a7a5a;
  transform-origin: left center;
  animation: nbt-line 18s ease-in-out infinite;
}
.scn-notebook-topography .line-1 { top:25%; left:24%; border-bottom-color: #7a6a4a; animation-delay: 0s; }
.scn-notebook-topography .line-2 { top:35%; left:26%; border-bottom-color: #6a5a3a; animation-delay: 2s; }
.scn-notebook-topography .line-3 { top:45%; left:28%; border-bottom-color: #5a4a2a; animation-delay: 4s; }
.scn-notebook-topography .garden-shape {
  position:absolute; bottom:40%; right:15%; width:20%; height:15%;
  background: radial-gradient(circle at 30% 40%, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 40% 40%;
  opacity: .6;
  animation: nbt-garden 22s ease-in-out infinite;
}
.scn-notebook-topography .river-shape {
  position:absolute; bottom:55%; left:10%; width:35%; height:5%;
  background: linear-gradient(90deg, #4a6a7a 0%, #3a5a6a 50%, #4a6a7a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: nbt-river 30s ease-in-out infinite alternate;
}
.scn-notebook-topography .window-shutters {
  position:absolute; top:10%; right:10%; width:15%; height:25%;
  background: repeating-linear-gradient(90deg, #3a3228 0px, #3a3228 6px, #1a1410 6px, #1a1410 12px);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: nbt-window 8s ease-in-out infinite alternate;
}
.scn-notebook-topography .hand-writing {
  position:absolute; bottom:30%; left:40%; width:8%; height:20%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nbt-hand 3s ease-in-out infinite;
}
@keyframes nbt-table { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.9 } }
@keyframes nbt-notebook { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes nbt-line { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.3; } }
@keyframes nbt-garden { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes nbt-river { 0% { width:35%; } 50% { width:38%; } 100% { width:35%; } }
@keyframes nbt-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes nbt-hand { 0% { transform: rotate(0) translate(0,0); } 50% { transform: rotate(-5deg) translate(2px,-3px); } 100% { transform: rotate(0) translate(0,0); } }

.scn-toasting-paris-gogottes {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b0886a 100%),
    radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 60%);
}
.scn-toasting-paris-gogottes .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c9a87c, #e5cca8); border-bottom: 4px solid #8b5e3c; }
.scn-toasting-paris-gogottes .table { position:absolute; bottom:10%; left:10%; right:10%; height:28%; background: linear-gradient(180deg, #6b4226 0%, #4f301a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.4); }
.scn-toasting-paris-gogottes .bottle { position:absolute; bottom:24%; left:42%; width:22px; height:50px; background: linear-gradient(180deg, #4a7028 0%, #2a4a18 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: tp1-bottle 6s ease-in-out infinite; }
.scn-toasting-paris-gogottes .glass { position:absolute; bottom:28%; width:14px; height:22px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,180,160,0.5) 100%); border-radius: 0 0 30% 30%; border-top: 2px solid #f5e6c8; }
.scn-toasting-paris-gogottes .glass-left { left:38%; animation: tp1-glass 4s ease-in-out infinite; }
.scn-toasting-paris-gogottes .glass-right { right:38%; animation: tp1-glass 4s ease-in-out infinite 1s; }
.scn-toasting-paris-gogottes .arm-glasses { position:absolute; bottom:30%; left:36%; right:36%; height:8px; background: linear-gradient(90deg, #8b5e3c 0%, #a0704a 50%, #8b5e3c 100%); border-radius: 50%; transform-origin: center; animation: tp1-arm 4s ease-in-out infinite; }
.scn-toasting-paris-gogottes .window { position:absolute; top:8%; left:20%; width:30%; height:45%; background: linear-gradient(180deg, #b0d0f0 0%, #e0f0ff 100%); border: 6px solid #7a5a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
.scn-toasting-paris-gogottes .curtain { position:absolute; top:8%; width:18%; height:45%; background: linear-gradient(90deg, #b07a4a 0%, #c89060 50%, #b07a4a 100%); border-radius: 10% 10% 20% 20%; }
.scn-toasting-paris-gogottes .curtain-a { left:18%; animation: tp1-curtain 8s ease-in-out infinite; }
.scn-toasting-paris-gogottes .curtain-b { right:18%; animation: tp1-curtain 8s ease-in-out infinite reverse; }
@keyframes tp1-bottle { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes tp1-glass { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp1-arm { 0% { transform: rotate(-2deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes tp1-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(0); } }

.scn-toasting-france-and-death {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6b5a4a 30%, #8b7a6a 100%),
    radial-gradient(ellipse at 50% 70%, #ba9a7a 0%, transparent 70%);
}
.scn-toasting-france-and-death .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6b5a4a, #8b7a6a); border-bottom: 6px solid #3a2a1a; }
.scn-toasting-france-and-death .bar { position:absolute; bottom:15%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5); }
.scn-toasting-france-and-death .bottle { position:absolute; bottom:24%; left:45%; width:20px; height:48px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: tp2-bottle 3s ease-in-out infinite; }
.scn-toasting-france-and-death .glass { position:absolute; bottom:28%; left:38%; width:16px; height:24px; background: linear-gradient(180deg, rgba(255,255,240,0.8) 0%, rgba(200,180,160,0.6) 100%); border-radius: 0 0 40% 40%; border-top: 2px solid #e0d0b0; animation: tp2-glass 2s ease-in-out infinite; }
.scn-toasting-france-and-death .drinker { position:absolute; bottom:18%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tp2-drinker 4s ease-in-out infinite; }
.scn-toasting-france-and-death .bubble { position:absolute; bottom:40%; width:6px; height:6px; background: rgba(200,200,180,0.7); border-radius: 50%; }
.scn-toasting-france-and-death .bubble-1 { left:42%; animation: tp2-bubble 3s linear infinite; }
.scn-toasting-france-and-death .bubble-2 { left:48%; animation: tp2-bubble 3s linear infinite 1s; }
.scn-toasting-france-and-death .bubble-3 { left:54%; animation: tp2-bubble 3s linear infinite 2s; }
@keyframes tp2-bottle { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes tp2-glass { 0% { transform: translateY(0); } 20% { transform: translateY(-3px); } 40% { transform: translateY(0); } 60% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp2-drinker { 0% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(2deg) translateY(-2px); } 40% { transform: rotate(-1deg) translateY(0); } 60% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tp2-bubble { 0% { transform: translateY(0) scale(0.5); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-80px) scale(1); opacity: 0; } }

.scn-toasting-natacha {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d4b070 60%, #a08050 100%),
    radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, transparent 70%);
}
.scn-toasting-natacha .bg-deep { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c9a050 0%, #a08040 100%); }
.scn-toasting-natacha .table { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #6b4226 0%, #4f301a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.4); }
.scn-toasting-natacha .bottle-spilled { position:absolute; bottom:22%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 30% 30% 10% 10%; transform: rotate(70deg); transform-origin: bottom left; animation: tp3-bottle 6s ease-in-out infinite; }
.scn-toasting-natacha .glass-falling { position:absolute; bottom:45%; left:40%; width:16px; height:22px; background: linear-gradient(180deg, rgba(255,255,240,0.8) 0%, rgba(200,180,160,0.6) 100%); border-radius: 0 0 30% 30%; border-top: 2px solid #f5e6c8; animation: tp3-glass 2s ease-in-out infinite; }
.scn-toasting-natacha .figure-falling { position:absolute; bottom:20%; left:38%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: tp3-figure 4s ease-in-out infinite; }
.scn-toasting-natacha .wine-pool { position:absolute; bottom:14%; left:42%; width:30px; height:8px; background: radial-gradient(ellipse, #a03010 0%, #7a2010 70%); border-radius: 50%; animation: tp3-pool 3s ease-in-out infinite; }
.scn-toasting-natacha .glow-warm { position:absolute; bottom:40%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius: 50%; animation: tp3-glow 5s ease-in-out infinite; }
@keyframes tp3-bottle { 0% { transform: rotate(70deg); } 50% { transform: rotate(65deg); } 100% { transform: rotate(70deg); } }
@keyframes tp3-glass { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(-30px) rotate(30deg); opacity: 0.7; } 100% { transform: translateY(-60px) rotate(60deg); opacity: 0; } }
@keyframes tp3-figure { 0% { transform: rotate(15deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-5px); } 50% { transform: rotate(10deg) translateY(0); } 75% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes tp3-pool { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes tp3-glow { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

.scn-natacha-sings-lullaby {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b0886a 100%),
    radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 60%);
}
.scn-natacha-sings-lullaby .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4b896, #c9a87c); }
.scn-natacha-sings-lullaby .window-pane { position:absolute; top:6%; left:24%; width:40%; height:50%; background: linear-gradient(180deg, #b0d0f0 0%, #e0f0ff 100%); border: 6px solid #7a5a3a; border-radius: 6px; box-shadow: inset 0 0 40px rgba(255,255,200,0.3); }
.scn-natacha-sings-lullaby .lamp { position:absolute; top:8%; left:10%; width:20px; height:30px; background: linear-gradient(180deg, #d4a050 0%, #b08030 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 8px rgba(200,150,60,0.6); animation: tp4-lamp 4s ease-in-out infinite; }
.scn-natacha-sings-lullaby .profile-natacha { position:absolute; bottom:25%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 50% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom center; animation: tp4-natacha 5s ease-in-out infinite; }
.scn-natacha-sings-lullaby .profile-boris { position:absolute; bottom:22%; left:55%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom center; animation: tp4-boris 5s ease-in-out infinite; }
.scn-natacha-sings-lullaby .guzla { position:absolute; bottom:28%; left:56%; width:40px; height:20px; background: linear-gradient(90deg, #6b4226 0%, #8b5e3c 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-15deg); animation: tp4-guzla 4s ease-in-out infinite; }
.scn-natacha-sings-lullaby .curtain { position:absolute; top:6%; left:20%; width:8%; height:50%; background: linear-gradient(90deg, #b07a4a 0%, #c89060 100%); border-radius: 10% 10% 30% 30%; animation: tp4-curtain 8s ease-in-out infinite; }
.scn-natacha-sings-lullaby .music-notes { position:absolute; top:30%; width:8px; height:12px; background: radial-gradient(circle, #c9a050 0%, #a08040 100%); border-radius: 50% 50% 0 0; }
.scn-natacha-sings-lullaby .note-1 { left:45%; animation: tp4-note 3s ease-out infinite; }
.scn-natacha-sings-lullaby .note-2 { left:48%; animation: tp4-note 3s ease-out infinite 1.5s; }
@keyframes tp4-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px rgba(200,150,60,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(200,150,60,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 4px rgba(200,150,60,0.4); } }
@keyframes tp4-natacha { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp4-boris { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tp4-guzla { 0% { transform: rotate(-15deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(-15deg); } 75% { transform: rotate(-20deg); } 100% { transform: rotate(-15deg); } }
@keyframes tp4-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes tp4-note { 0% { transform: translateY(0) scale(0.5); opacity: 0; } 30% { opacity: 1; } 100% { transform: translateY(-50px) scale(1); opacity: 0; } }

.scn-rouletabille-plan {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a5e 60%, #6a5a3a 85%, #2a2a1a 100%), radial-gradient(ellipse at 40% 60%, rgba(100,80,60,.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-rouletabille-plan .dusk-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #6a5a3a 85%, transparent 100%);
  animation: rbp-sky 14s ease-in-out infinite alternate;
}
.scn-rouletabille-plan .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: rbp-lawn 20s ease-in-out infinite alternate;
}
.scn-rouletabille-plan .ledge {
  position: absolute; bottom: 42%; left: 5%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-rouletabille-plan .figure-left {
  position: absolute; bottom: 38%; left: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rbp-fig-l 3.5s ease-in-out infinite;
}
.scn-rouletabille-plan .figure-center {
  position: absolute; bottom: 37%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rbp-fig-c 4s ease-in-out infinite;
}
.scn-rouletabille-plan .figure-right {
  position: absolute; bottom: 38%; left: 62%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rbp-fig-r 3.8s ease-in-out infinite;
}
.scn-rouletabille-plan .shadow-stretch {
  position: absolute; bottom: 35%; left: 38%; width: 60px; height: 20px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  transform: perspective(200px) rotateX(60deg);
  animation: rbp-shadow 4s ease-in-out infinite;
}
.scn-rouletabille-plan .lamp-post {
  position: absolute; bottom: 38%; right: 22%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 2px;
}
.scn-rouletabille-plan .lamp-glow {
  position: absolute; bottom: 52%; right: 20%; width: 20px; height: 16px;
  background: radial-gradient(circle, #c0a060 0%, #806040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,160,96,.4), 0 0 60px 20px rgba(192,160,96,.2);
  animation: rbp-lamp 3s ease-in-out infinite alternate;
}
@keyframes rbp-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes rbp-lawn { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rbp-fig-l { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } }
@keyframes rbp-fig-c { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-2px) rotate(-1deg) } 66% { transform: translateX(2px) rotate(1deg) } }
@keyframes rbp-fig-r { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(1deg) } 60% { transform: translateX(2px) rotate(-1deg) } }
@keyframes rbp-shadow { 0%,100% { opacity: .4; transform: perspective(200px) rotateX(60deg) scaleX(1) } 50% { opacity: .6; transform: perspective(200px) rotateX(60deg) scaleX(1.1) } }
@keyframes rbp-lamp { 0% { opacity: .7; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .8; transform: scale(1) } }

.scn-i-will-go-alone {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a5e 60%, #5a4a3a 80%, #2a2a1a 100%), radial-gradient(ellipse at 60% 50%, rgba(80,70,50,.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-i-will-go-alone .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #6a5a3a 80%, transparent 100%);
  animation: iwga-sky 16s ease-in-out infinite alternate;
}
.scn-i-will-go-alone .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 24px rgba(0,0,0,.5);
}
.scn-i-will-go-alone .gate-arch {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 40%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: iwga-gate 12s ease-in-out infinite alternate;
}
.scn-i-will-go-alone .figure-departing {
  position: absolute; bottom: 32%; left: 56%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: iwga-depart 4.5s ease-in-out infinite;
}
.scn-i-will-go-alone .figure-watching {
  position: absolute; bottom: 34%; left: 36%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: iwga-watch 3.8s ease-in-out infinite;
}
.scn-i-will-go-alone .path-stones {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-40%);
  background: radial-gradient(ellipse at 20% 50%, #4a4a3a 0%, transparent 60%), radial-gradient(ellipse at 50% 50%, #3a3a2a 0%, transparent 50%), radial-gradient(ellipse at 80% 50%, #4a4a3a 0%, transparent 60%);
  border-radius: 40%;
  filter: blur(2px);
  animation: iwga-path 8s ease-in-out infinite alternate;
}
.scn-i-will-go-alone .tree-silhouette {
  position: absolute; bottom: 30%; left: 8%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, transparent 100%);
  border-radius: 60% 40% 30% 70% / 80% 60% 40% 20%;
  filter: blur(3px);
  animation: iwga-tree 20s ease-in-out infinite alternate;
}
.scn-i-will-go-alone .twilight-mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(40,30,50,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: iwga-mist 12s ease-in-out infinite alternate;
}
@keyframes iwga-sky { 0% { opacity: .65 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes iwga-gate { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(.98) } }
@keyframes iwga-depart { 0%,100% { transform: translateX(0) rotate(0) } 20% { transform: translateX(6px) rotate(2deg) } 40% { transform: translateX(12px) rotate(0) } 60% { transform: translateX(18px) rotate(-2deg) } 80% { transform: translateX(24px) rotate(0) } }
@keyframes iwga-watch { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes iwga-path { 0% { opacity: .3; transform: translateX(-40%) scaleX(1) } 50% { opacity: .5; transform: translateX(-40%) scaleX(1.05) } 100% { opacity: .35; transform: translateX(-40%) scaleX(.95) } }
@keyframes iwga-tree { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(.98) rotate(0) } }
@keyframes iwga-mist { 0% { opacity: .3; transform: translateY(0) } 50% { opacity: .5; transform: translateY(-4px) } 100% { opacity: .35; transform: translateY(2px) } }

.scn-the-three-go-up {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 30%, #2a2a4e 60%, #3a2a3e 80%, #1a1a1a 100%), radial-gradient(ellipse at 50% 20%, rgba(80,60,40,.2) 0%, transparent 50%);
  overflow: hidden;
}
.scn-the-three-go-up .night-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a2a 100%);
  animation: ttgu-wall 20s ease-in-out infinite alternate;
}
.scn-the-three-go-up .veranda-steps {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 50%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-the-three-go-up .railing-left {
  position: absolute; bottom: 32%; left: 18%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 2px;
  transform: skewX(5deg);
  animation: ttgu-rail-l 5s ease-in-out infinite;
}
.scn-the-three-go-up .railing-right {
  position: absolute; bottom: 32%; right: 18%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 2px;
  transform: skewX(-5deg);
  animation: ttgu-rail-r 5.2s ease-in-out infinite;
}
.scn-the-three-go-up .figure-fore {
  position: absolute; bottom: 38%; left: 32%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ttgu-fig-f 4.2s ease-in-out infinite;
}
.scn-the-three-go-up .figure-mid {
  position: absolute; bottom: 33%; left: 45%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ttgu-fig-m 4s ease-in-out infinite;
}
.scn-the-three-go-up .figure-rear {
  position: absolute; bottom: 30%; left: 56%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: ttgu-fig-r 3.8s ease-in-out infinite;
}
.scn-the-three-go-up .conspirator-shadow {
  position: absolute; bottom: 20%; right: 12%; width: 30px; height: 50px;
  background: rgba(0,0,0,.5);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  filter: blur(6px);
  animation: ttgu-shad 6s ease-in-out infinite alternate;
}
.scn-the-three-go-up .door-glow {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #c08040 0%, #8a6030 50%, transparent 100%);
  border-radius: 30%;
  box-shadow: 0 0 40px 15px rgba(192,128,64,.3), 0 0 80px 30px rgba(192,128,64,.15);
  animation: ttgu-door 3s ease-in-out infinite alternate;
}
@keyframes ttgu-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ttgu-rail-l { 0%,100% { transform: skewX(5deg) } 50% { transform: skewX(7deg) translateY(-2px) } }
@keyframes ttgu-rail-r { 0%,100% { transform: skewX(-5deg) } 50% { transform: skewX(-7deg) translateY(-2px) } }
@keyframes ttgu-fig-f { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } }
@keyframes ttgu-fig-m { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(3px) rotate(1deg) } 66% { transform: translateX(6px) rotate(-1deg) } }
@keyframes ttgu-fig-r { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(5px) rotate(1deg) } 60% { transform: translateX(10px) rotate(-1deg) } }
@keyframes ttgu-shad { 0% { opacity: .3; transform: scale(1) translateX(0) } 50% { opacity: .5; transform: scale(1.1) translateX(-3px) } 100% { opacity: .4; transform: scale(.95) translateX(3px) } }
@keyframes ttgu-door { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.15) } 100% { opacity: .7; transform: translateX(-50%) scale(.9) } }

.scn-bravery-behind-doors {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 20%, #2a1a0a 50%, #3a2a1a 80%, #1a1a0a 100%), radial-gradient(ellipse at 50% 60%, rgba(60,40,20,.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-bravery-behind-doors .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a06 0%, #1a1008 30%, #2a1a0a 60%, #1a0a06 100%);
  animation: bb-door-dark 20s ease-in-out infinite alternate;
}
.scn-bravery-behind-doors .door-frame {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border: 3px solid #4a3a2a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: bb-door-frame 8s ease-in-out infinite alternate;
}
.scn-bravery-behind-doors .keyhole-light {
  position: absolute; bottom: 35%; left: 50%; width: 6px; height: 10px;
  transform: translateX(-50%);
  background: #c0a060;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(192,160,96,.5), 0 0 40px 16px rgba(192,160,96,.25);
  animation: bb-door-key 3s ease-in-out infinite alternate;
}
.scn-bravery-behind-doors .embrace-left {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bb-door-emb-l 4.2s ease-in-out infinite;
}
.scn-bravery-behind-doors .embrace-right {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bb-door-emb-r 4.2s ease-in-out infinite;
}
.scn-bravery-behind-doors .panicked-figure-a {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bb-door-pan-a 3.5s ease-in-out infinite;
}
.scn-bravery-behind-doors .panicked-figure-b {
  position: absolute; bottom: 20%; left: 70%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: bb-door-pan-b 3.8s ease-in-out infinite;
}
.scn-bravery-behind-doors .window-sliver {
  position: absolute; top: 10%; right: 12%; width: 8px; height: 30px;
  background: linear-gradient(180deg, rgba(40,20,10,.8) 0%, transparent 100%);
  border-radius: 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  animation: bb-door-win 12s ease-in-out infinite alternate;
}
.scn-bravery-behind-doors .candle-glow {
  position: absolute; bottom: 28%; left: 34%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,208,128,.3), 0 0 60px 24px rgba(255,208,128,.15);
  animation: bb-door-candle 3.5s ease-in-out infinite alternate;
}
@keyframes bb-door-dark { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes bb-door-frame { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(.98) } }
@keyframes bb-door-key { 0% { opacity: .5; transform: translateX(-50%) scale(1) } 50% { opacity: .8; transform: translateX(-50%) scale(1.2) } 100% { opacity: .6; transform: translateX(-50%) scale(.9) } }
@keyframes bb-door-emb-l { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes bb-door-emb-r { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes bb-door-pan-a { 0%,100% { transform: translateX(0) rotate(0) } 20% { transform: translateX(6px) rotate(5deg) } 40% { transform: translateX(-4px) rotate(-3deg) } 60% { transform: translateX(8px) rotate(4deg) } 80% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes bb-door-pan-b { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-4deg) } 50% { transform: translateX(3px) rotate(3deg) } 75% { transform: translateX(-6px) rotate(-5deg) } }
@keyframes bb-door-win { 0% { opacity: .2; transform: scaleY(1) } 50% { opacity: .4; transform: scaleY(1.1) } 100% { opacity: .25; transform: scaleY(.95) } }
@keyframes bb-door-candle { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.12) } 100% { opacity: .7; transform: scale(.95) } }

.scn-night-watch-without-police {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #1e1830 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a5e 0%, transparent 70%);
}
.scn-night-watch-without-police .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #141024 0%, #201838 60%, #0e0a1a 100%);
  animation: nw-room 8s ease-in-out infinite alternate;
}
.scn-night-watch-without-police .window-frame {
  position: absolute; top: 10%; left: 70%; width: 120px; height: 160px;
  background: #2a1e42;
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 30px #0a0628;
}
.scn-night-watch-without-police .starlight {
  position: absolute; top: 12%; left: 72%; width: 100px; height: 140px;
  background: radial-gradient(circle at 30% 20%, #c0d8ff 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, #a0b8ff 0%, transparent 30%);
  opacity: 0.6;
  animation: nw-star-pulse 4s ease-in-out infinite;
}
.scn-night-watch-without-police .figure-matrena {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2240 0%, #1a142a 70%, #0e0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-figure 6s ease-in-out infinite;
}
.scn-night-watch-without-police .lantern {
  position: absolute; bottom: 30%; left: 28%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c08030 70%);
  border-radius: 40%;
  box-shadow: 0 0 20px 6px #c08030;
  animation: nw-lantern-swing 3s ease-in-out infinite;
}
.scn-night-watch-without-police .lantern-glow {
  position: absolute; bottom: 28%; left: 22%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,208,128,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: nw-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-night-watch-without-police .shadow-shape {
  position: absolute; bottom: 14%; left: 18%; width: 100px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: nw-shadow-elongate 6s ease-in-out infinite;
}
@keyframes nw-room { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes nw-star-pulse { 0%,100% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } }
@keyframes nw-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes nw-lantern-swing { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes nw-glow-pulse { 0% { opacity:0.4; transform: scale(0.8) } 100% { opacity:0.7; transform: scale(1.2) } }
@keyframes nw-shadow-elongate { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.4) } }

.scn-the-domovoi-doukh {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 30%, #2c2860 60%, #1e1a44 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 60%);
}
.scn-the-domovoi-doukh .night-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #121042 0%, #282060 100%);
  animation: dd-sky 12s ease-in-out infinite alternate;
}
.scn-the-domovoi-doukh .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.6);
}
.scn-the-domovoi-doukh .statue {
  position: absolute; bottom: 30%; left: 38%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,0.7), -2px 0 8px rgba(100,80,140,0.3);
  animation: dd-statue-breathe 4s ease-in-out infinite;
}
.scn-the-domovoi-doukh .pipe-unlit {
  position: absolute; bottom: 38%; left: 42%; width: 14px; height: 6px;
  background: #2a1a1a;
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  transform: rotate(-20deg);
  box-shadow: inset 0 1px 3px #0a0a0a;
}
.scn-the-domovoi-doukh .villa-back {
  position: absolute; bottom: 45%; right: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1230 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px #0e0a20;
  opacity: 0.7;
}
.scn-the-domovoi-doukh .firefly {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #c08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(255,208,128,0.6);
  animation: dd-firefly 5s ease-in-out infinite;
}
.scn-the-domovoi-doukh .star {
  position: absolute; width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,200,255,0.8);
}
.scn-the-domovoi-doukh .twinkle-a {
  top: 8%; left: 20%;
  animation: dd-twinkle 3s ease-in-out infinite;
}
.scn-the-domovoi-doukh .twinkle-b {
  top: 15%; right: 25%;
  animation: dd-twinkle 4s ease-in-out infinite reverse;
}
@keyframes dd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dd-statue-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes dd-firefly { 0% { transform: translate(0,0) scale(0.8); opacity:0.6 } 25% { transform: translate(10px,-15px) scale(1.2); opacity:1 } 50% { transform: translate(20px,-5px) scale(0.9); opacity:0.8 } 75% { transform: translate(5px,-25px) scale(1); opacity:0.7 } 100% { transform: translate(0,0) scale(0.8); opacity:0.6 } }
@keyframes dd-twinkle { 0%,100% { opacity:0.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } }

.scn-inside-the-villa-at-night {
  background: 
    linear-gradient(180deg, #0e0a20 0%, #1a1430 40%, #282048 100%),
    radial-gradient(ellipse at 80% 50%, #2a2a50 0%, transparent 60%);
}
.scn-inside-the-villa-at-night .interior-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(135deg, #1a1430 0%, #282048 100%);
  box-shadow: inset 0 0 60px #0e0a20;
  animation: iv-wall 10s ease-in-out infinite alternate;
}
.scn-inside-the-villa-at-night .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a142a 0%, #0e0a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-inside-the-villa-at-night .window-starlight {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 30% 20%, #c0d8ff 0%, transparent 50%),
              radial-gradient(ellipse at 70% 60%, #a0b8ff 0%, transparent 30%);
  opacity: 0.5;
  animation: iv-star-slit 5s ease-in-out infinite;
}
.scn-inside-the-villa-at-night .figure-matrena-back {
  position: absolute; bottom: 15%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1430 0%, #0e0a20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 2px 0 10px rgba(100,80,160,0.2);
}
.scn-inside-the-villa-at-night .figure-rouletabille {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: iv-rouletabille 4s ease-in-out infinite;
}
.scn-inside-the-villa-at-night .skirt-shadow {
  position: absolute; bottom: 10%; left: 22%; width: 70px; height: 40px;
  background: rgba(0,0,0,0.6);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  filter: blur(5px);
  animation: iv-skirt 6s ease-in-out infinite;
}
.scn-inside-the-villa-at-night .grasp-hand {
  position: absolute; bottom: 25%; left: 32%; width: 10px; height: 20px;
  background: #1a1a2a;
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(30deg);
  animation: iv-grasp 3s ease-in-out infinite;
}
@keyframes iv-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes iv-star-slit { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }
@keyframes iv-rouletabille { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-4px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes iv-skirt { 0%,100% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(5px) } }
@keyframes iv-grasp { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(40deg) translateX(-3px) } 100% { transform: rotate(20deg) translateX(0) } }

.scn-officers-quarrel-over-natacha {
  background: 
    linear-gradient(180deg, #0e0a1a 0%, #1a1430 40%, #282048 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a50 0%, transparent 70%);
}
.scn-officers-quarrel-over-natacha .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0618 0%, #181430 100%);
  animation: oq-room 12s ease-in-out infinite alternate;
}
.scn-officers-quarrel-over-natacha .window-slit {
  position: absolute; top: 15%; right: 15%; width: 10px; height: 100px;
  background: linear-gradient(180deg, #c0d8ff 0%, #8098c0 100%);
  opacity: 0.6;
  box-shadow: 0 0 30px 10px rgba(128,152,192,0.3);
  animation: oq-slit 4s ease-in-out infinite;
}
.scn-officers-quarrel-over-natacha .figure-officer-one {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset 2px 0 10px #2a2a4e;
  animation: oq-officer1 3s ease-in-out infinite;
}
.scn-officers-quarrel-over-natacha .figure-officer-two {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: inset -2px 0 10px #2a2a4e;
  animation: oq-officer2 3.5s ease-in-out infinite reverse;
}
.scn-officers-quarrel-over-natacha .bed-natacha {
  position: absolute; bottom: 10%; left: 10%; width: 60px; height: 30px;
  background: #1a142a;
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: oq-bed 8s ease-in-out infinite;
}
.scn-officers-quarrel-over-natacha .door-general {
  position: absolute; top: 10%; left: 5%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1e3e 0%, #1a1230 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #0e0a20;
  opacity: 0.7;
}
@keyframes oq-room { 0% { opacity:0.85 } 50% { opacity:0.65 } 100% { opacity:0.8 } }
@keyframes oq-slit { 0%,100% { opacity:0.4; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.1) } }
@keyframes oq-officer1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes oq-officer2 { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes oq-bed { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }

.scn-VI-THE-MYSTERIOUS-HAND {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 60%),
    radial-gradient(ellipse at 70% 80%, #f0e6d0 0%, transparent 70%);
}
.scn-VI-THE-MYSTERIOUS-HAND .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c8b898 0%, #e0d0b8 50%, #c0a888 100%);
  animation: hand-wall 8s ease-in-out infinite alternate;
}
.scn-VI-THE-MYSTERIOUS-HAND .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a09078 0%, #887a64 100%);
  transform: scaleY(0.6) perspective(60px) rotateX(2deg);
  transform-origin: bottom center;
}
.scn-VI-THE-MYSTERIOUS-HAND .gate {
  position: absolute; bottom: 38%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 80%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.5);
  animation: hand-gate 6s ease-in-out infinite alternate;
}
.scn-VI-THE-MYSTERIOUS-HAND .hand {
  position: absolute; bottom: 48%; left: 48%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a0a00 80%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: hand-reach 3s ease-in-out infinite alternate;
}
.scn-VI-THE-MYSTERIOUS-HAND .figure {
  position: absolute; bottom: 36%; left: 55%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2018 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hand-walk 5s ease-in-out infinite;
}
.scn-VI-THE-MYSTERIOUS-HAND .light-ray {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255,240,210,0.4) 0%, rgba(255,240,210,0) 80%);
  transform: skewX(-15deg);
  animation: hand-ray 7s ease-in-out infinite alternate;
}
.scn-VI-THE-MYSTERIOUS-HAND .shadow {
  position: absolute; bottom: 38%; left: 45%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: hand-shadow 8s ease-in-out infinite alternate;
}
@keyframes hand-wall {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes hand-gate {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hand-reach {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(2px); }
}
@keyframes hand-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(16px) rotate(2deg); }
  75% { transform: translateX(24px) rotate(-1deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes hand-ray {
  0% { transform: skewX(-15deg) scaleY(1); opacity:0.3; }
  50% { transform: skewX(-10deg) scaleY(1.1); opacity:0.6; }
  100% { transform: skewX(-15deg) scaleY(0.9); opacity:0.4; }
}
@keyframes hand-shadow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.2); }
  100% { opacity:0.6; transform: scaleX(0.9); }
}

.scn-following-footprints {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c4b098 60%),
    radial-gradient(ellipse at 50% 0%, #f0e4d4 0%, transparent 60%);
}
.scn-following-footprints .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #7a6a54 0%, #4a3a28 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: foot-floor 12s ease-in-out infinite alternate;
}
.scn-following-footprints .footprint {
  position: absolute; bottom: 20%; width: 24px; height: 36px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #0a0502 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(5deg);
}
.scn-following-footprints .foot-1 {
  left: 20%;
  animation: foot-print1 4s ease-in-out infinite;
}
.scn-following-footprints .foot-2 {
  left: 35%;
  transform: rotate(-3deg);
  animation: foot-print2 4s ease-in-out infinite 0.5s;
}
.scn-following-footprints .foot-3 {
  left: 50%;
  transform: rotate(7deg);
  animation: foot-print3 4s ease-in-out infinite 1s;
}
.scn-following-footprints .figure {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a201a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: foot-figure 6s ease-in-out infinite;
}
.scn-following-footprints .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b898 0%, #e0d0b8 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2);
}
.scn-following-footprints .door {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2a18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
  animation: foot-door 8s ease-in-out infinite alternate;
}
@keyframes foot-floor {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.9); }
  100% { filter: brightness(1.05); }
}
@keyframes foot-print1 {
  0% { transform: rotate(5deg) scale(1); opacity:0.6; }
  50% { transform: rotate(-2deg) scale(0.9); opacity:0.3; }
  100% { transform: rotate(5deg) scale(1); opacity:0.6; }
}
@keyframes foot-print2 {
  0% { transform: rotate(-3deg) scale(1); opacity:0.5; }
  50% { transform: rotate(4deg) scale(0.95); opacity:0.7; }
  100% { transform: rotate(-3deg) scale(1); opacity:0.5; }
}
@keyframes foot-print3 {
  0% { transform: rotate(7deg) scale(1); opacity:0.4; }
  50% { transform: rotate(-1deg) scale(1.1); opacity:0.8; }
  100% { transform: rotate(7deg) scale(1); opacity:0.4; }
}
@keyframes foot-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(-3deg); }
  50% { transform: translateX(20px) rotate(2deg); }
  75% { transform: translateX(30px) rotate(-1deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes foot-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1.02); }
}

.scn-boris-says-frightful-thing {
  background:
    linear-gradient(180deg, #d4c4ae 0%, #b8a48c 60%),
    radial-gradient(ellipse at 50% 100%, #e8d8c4 0%, transparent 70%);
}
.scn-boris-says-frightful-thing .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c0aa94 0%, #dcc8b4 50%, #b09880 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-boris-says-frightful-thing .window {
  position: absolute; top: 15%; left: 55%; width: 100px; height: 130px;
  background: linear-gradient(135deg, #fff8ec 0%, #f0dcc4 80%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 0 30px rgba(255,240,200,0.6);
  animation: boris-window 5s ease-in-out infinite alternate;
}
.scn-boris-says-frightful-thing .boris {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: boris-stand 4s ease-in-out infinite;
}
.scn-boris-says-frightful-thing .girl-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: boris-girl 5s ease-in-out infinite alternate;
}
.scn-boris-says-frightful-thing .shadow-boris {
  position: absolute; bottom: 18%; left: 42%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: boris-shadow 6s ease-in-out infinite alternate;
}
.scn-boris-says-frightful-thing .table {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
  animation: boris-table 8s ease-in-out infinite alternate;
}
@keyframes boris-window {
  0% { filter: brightness(1); box-shadow: 0 0 30px rgba(255,240,200,0.6); }
  50% { filter: brightness(1.1); box-shadow: 0 0 50px rgba(255,240,200,0.8); }
  100% { filter: brightness(0.9); box-shadow: 0 0 20px rgba(255,240,200,0.4); }
}
@keyframes boris-stand {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(3px) rotate(2deg) scaleY(0.98); }
  50% { transform: translateX(0) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(-2px) rotate(1deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes boris-girl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes boris-shadow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.2); }
  100% { opacity:0.6; transform: scaleX(0.9); }
}
@keyframes boris-table {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.85); }
  100% { filter: brightness(1.05); }
}

.scn-my-boris {
  background:
    linear-gradient(180deg, #e0d0be 0%, #c4b09a 60%),
    radial-gradient(ellipse at 30% 20%, #f4e8d8 0%, transparent 80%);
}
.scn-my-boris .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b49e 0%, #dcc8b4 70%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-my-boris .window-light {
  position: absolute; top: 10%; left: 40%; width: 140px; height: 180px;
  background: linear-gradient(135deg, rgba(255,250,230,0.6) 0%, rgba(255,250,230,0) 100%);
  border-radius: 8% 8% 4% 4%;
  animation: myb-window 7s ease-in-out infinite alternate;
}
.scn-my-boris .girl {
  position: absolute; bottom: 25%; left: 38%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: myb-girl 6s ease-in-out infinite;
}
.scn-my-boris .boris-figure {
  position: absolute; bottom: 20%; left: 48%; width: 28px; height: 85px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: myb-boris 8s ease-in-out infinite;
}
.scn-my-boris .hands {
  position: absolute; bottom: 38%; left: 42%; width: 30px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%);
  border-radius: 50%;
  animation: myb-hands 4s ease-in-out infinite alternate;
}
.scn-my-boris .glow {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: myb-glow 5s ease-in-out infinite alternate;
}
@keyframes myb-window {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.05); }
  100% { opacity:0.4; transform: scale(0.95); }
}
@keyframes myb-girl {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(-2deg); }
  70% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes myb-boris {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-2px) rotate(1deg) scaleY(0.97); }
  50% { transform: translateX(1px) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(-1px) rotate(0deg) scaleY(1.03); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes myb-hands {
  0% { transform: translate(0,0) scale(1); opacity:0.5; }
  50% { transform: translate(3px,-2px) scale(1.2); opacity:0.9; }
  100% { transform: translate(0,0) scale(1); opacity:0.6; }
}
@keyframes myb-glow {
  0% { opacity:0.2; filter: blur(10px); }
  50% { opacity:0.5; filter: blur(15px); }
  100% { opacity:0.3; filter: blur(12px); }
}

.scn-return-to-villa {
  background:
    linear-gradient(180deg, #f5d6a8 0%, #e8b87a 30%, #c98a4a 60%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-return-to-villa .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #ffeab0 40%, transparent 100%);
  animation: rt-sky 10s ease-in-out infinite alternate;
}
.scn-return-to-villa .garden-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius: 30% 40% 0 0;
  animation: rt-garden 15s ease-in-out infinite alternate;
}
.scn-return-to-villa .villa {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #d4a86a 0%, #b88a4a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: rt-villa 8s ease-in-out infinite;
}
.scn-return-to-villa .door {
  position: absolute; bottom: 30%; left: 36%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: rt-door 6s ease-in-out infinite alternate;
}
.scn-return-to-villa .path {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 16px;
  background: linear-gradient(180deg, #c89858 0%, #a87838 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: perspective(200px) rotateX(20deg);
  animation: rt-path 12s ease-in-out infinite;
}
.scn-return-to-villa .figure-a {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-figure-a 4s ease-in-out infinite;
}
.scn-return-to-villa .figure-b {
  position: absolute; bottom: 28%; left: 60%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-figure-b 5s ease-in-out infinite;
}
.scn-return-to-villa .sunlight {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,220,120,0.3) 0%, transparent 70%);
  mix-blend-mode: overlay;
  animation: rt-sunlight 9s ease-in-out infinite alternate;
}
.scn-return-to-villa .leaf {
  position: absolute; width: 24px; height: 10px;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a1a 100%);
  border-radius: 50% 40% 40% 50%;
  filter: blur(1px);
  animation: rt-fall 18s linear infinite;
}
.scn-return-to-villa .leaf-a { top: 10%; left: 80%; animation-delay: 0s; }
.scn-return-to-villa .leaf-b { top: 5%; left: 70%; animation-delay: -9s; width: 18px; height: 8px; }

@keyframes rt-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rt-garden { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes rt-villa { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes rt-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }
@keyframes rt-path { 0% { background-position: 0% 0% } 50% { background-position: 5% 0% } 100% { background-position: -5% 0% } }
@keyframes rt-figure-a { 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(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes rt-figure-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes rt-sunlight { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes rt-fall { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 25% { transform: translate(20px, 30px) rotate(30deg) scale(0.9); } 50% { transform: translate(40px, 60px) rotate(60deg) scale(1.1); } 75% { transform: translate(20px, 90px) rotate(90deg) scale(0.8); } 100% { transform: translate(0, 120px) rotate(120deg) scale(1); } }

/* ------- */

.scn-boris-has-quit {
  background:
    linear-gradient(180deg, #ead8c0 0%, #d0b898 50%, #a08060 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-boris-has-quit .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4c4a8 0%, #e0d0b8 50%, #c4b098 100%);
  animation: bh-room 14s ease-in-out infinite alternate;
}
.scn-boris-has-quit .window {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffffff 0%, #e8e0d0 100%);
  border: 4px solid #8a7a5a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
  animation: bh-window 8s ease-in-out infinite alternate;
}
.scn-boris-has-quit .curtain-l {
  position: absolute; top: 8%; left: 56%; width: 20px; height: 110px;
  background: linear-gradient(90deg, #b09878 0%, #c8b098 50%, #b09878 100%);
  border-radius: 2px;
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2));
  animation: bh-curtain 6s ease-in-out infinite alternate;
}
.scn-boris-has-quit .curtain-r {
  position: absolute; top: 8%; left: 72%; width: 20px; height: 110px;
  background: linear-gradient(90deg, #c8b098 0%, #b09878 50%, #c8b098 100%);
  border-radius: 2px;
  filter: drop-shadow(-2px 2px 4px rgba(0,0,0,0.2));
  animation: bh-curtain 7s ease-in-out infinite alternate-reverse;
}
.scn-boris-has-quit .table {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 14px;
  background: linear-gradient(180deg, #a08860 0%, #7a6848 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-boris-has-quit .chair {
  position: absolute; bottom: 18%; left: 22%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6% 6% 10% 10%;
  animation: bh-chair 9s ease-in-out infinite;
}
.scn-boris-has-quit .figure-boris {
  position: absolute; bottom: 25%; left: 45%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bh-figure 5s ease-in-out infinite;
}
.scn-boris-has-quit .doorway {
  position: absolute; bottom: 15%; left: 80%; width: 50px; height: 80px;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: bh-doorway 7s ease-in-out infinite alternate;
}
.scn-boris-has-quit .light-ray {
  position: absolute; top: 5%; left: 55%; width: 100px; height: 170px;
  background: linear-gradient(135deg, rgba(255,255,230,0.15) 0%, transparent 100%);
  transform: rotate(-10deg);
  animation: bh-ray 12s ease-in-out infinite alternate;
}

@keyframes bh-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bh-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); } 50% { opacity:1; box-shadow: inset 0 0 35px rgba(255,255,200,0.7); } 100% { opacity:0.9; box-shadow: inset 0 0 25px rgba(255,255,200,0.4); } }
@keyframes bh-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-2px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes bh-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bh-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bh-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes bh-ray { 0% { opacity:0.2; transform: rotate(-10deg) translateX(0); } 50% { opacity:0.4; transform: rotate(-8deg) translateX(5px); } 100% { opacity:0.3; transform: rotate(-12deg) translateX(-5px); } }

/* ------- */

.scn-toast-to-the-tsar {
  background:
    linear-gradient(180deg, #f5d6a8 0%, #e8b87a 40%, #c98a4a 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-toast-to-the-tsar .dining-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4a86a 0%, #e8c898 50%, #d4a86a 100%);
  animation: tt-bg 15s ease-in-out infinite alternate;
}
.scn-toast-to-the-tsar .chandelier {
  position: absolute; top: 5%; left: 43%; width: 40px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c09040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5);
  animation: tt-chandelier 5s ease-in-out infinite alternate;
}
.scn-toast-to-the-tsar .table-long {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 24px;
  background: linear-gradient(180deg, #a08860 0%, #7a6848 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: tt-table 12s ease-in-out infinite;
}
.scn-toast-to-the-tsar .glass-a {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, rgba(255,180,80,0.3) 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.4);
  animation: tt-glass 4s ease-in-out infinite alternate;
}
.scn-toast-to-the-tsar .glass-b {
  position: absolute; bottom: 28%; left: 60%; width: 12px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,200,0.5) 0%, rgba(255,180,80,0.2) 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.3);
  animation: tt-glass 5s ease-in-out infinite alternate-reverse;
}
.scn-toast-to-the-tsar .figure-poet {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-figure 6s ease-in-out infinite;
}
.scn-toast-to-the-tsar .figure-soldier {
  position: absolute; bottom: 18%; left: 65%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tt-figure 7s ease-in-out infinite 1s;
}
.scn-toast-to-the-tsar .warm-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.25) 0%, transparent 60%);
  mix-blend-mode: overlay;
  animation: tt-glow 8s ease-in-out infinite alternate;
}
.scn-toast-to-the-tsar .plate {
  position: absolute; bottom: 26%; left: 45%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #e0c898 0%, #c0a070 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: tt-plate 10s ease-in-out infinite;
}

@keyframes tt-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tt-chandelier { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-3px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes tt-table { 0% { transform: perspective(300px) rotateX(0deg); } 50% { transform: perspective(300px) rotateX(2deg); } 100% { transform: perspective(300px) rotateX(-1deg); } }
@keyframes tt-glass { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes tt-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(5px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(-2deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tt-glow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes tt-plate { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(1deg); } 100% { transform: scale(1) rotate(-1deg); } }

/* ------- */

.scn-constitution-explanation {
  background:
    linear-gradient(180deg, #fce4b8 0%, #f0c898 40%, #d4a86a 100%),
    radial-gradient(ellipse at 50% 10%, #ffe8a0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-constitution-explanation .room-fun {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e8c898 0%, #f0d8b0 50%, #e0c090 100%);
  animation: ce-room 12s ease-in-out infinite alternate;
}
.scn-constitution-explanation .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 30px;
  background: linear-gradient(180deg, #c09860 0%, #a08040 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ce-desk 16s ease-in-out infinite;
}
.scn-constitution-explanation .map {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #d4c8a8 0%, #c0b090 50%, #a89878 100%);
  border: 2px solid #6a5a3a;
  border-radius: 4px;
  transform: perspective(400px) rotateX(20deg);
  animation: ce-map 8s ease-in-out infinite alternate;
}
.scn-constitution-explanation .figure-officer {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-figure 3s ease-in-out infinite;
}
.scn-constitution-explanation .arm-gesture {
  position: absolute; bottom: 55%; left: 55%; width: 50px; height: 12px;
  background: linear-gradient(90deg, #4a3a5a 0%, #6a4a6a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: left center;
  animation: ce-arm 1.5s ease-in-out infinite alternate;
}
.scn-constitution-explanation .bullet-dot {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #e89070 0%, #c06040 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,80,40,0.5);
  animation: ce-bullet 2s ease-in-out infinite;
}
.scn-constitution-explanation .d1 { top: 35%; left: 20%; animation-delay: 0s; }
.scn-constitution-explanation .d2 { top: 30%; left: 70%; animation-delay: 0.3s; }
.scn-constitution-explanation .d3 { top: 45%; left: 50%; animation-delay: 0.6s; }
.scn-constitution-explanation .shadow-fun {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: ce-shadow 4s ease-in-out infinite alternate;
}
.scn-constitution-explanation .speech-bubble {
  position: absolute; top: 15%; left: 40%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #ffffff 0%, #e8e0d0 100%);
  border-radius: 30% 30% 10% 30% / 40% 40% 20% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ce-bubble 2s ease-in-out infinite alternate;
}

@keyframes ce-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ce-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ce-map { 0% { transform: perspective(400px) rotateX(20deg) translateY(0); } 50% { transform: perspective(400px) rotateX(25deg) translateY(-3px); } 100% { transform: perspective(400px) rotateX(18deg) translateY(0); } }
@keyframes ce-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(16px) translateY(0) rotate(-3deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ce-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(40deg) scaleX(1.2); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes ce-bullet { 0% { transform: translate(0, 0) scale(1); opacity:1; } 25% { transform: translate(15px, -10px) scale(1.3); opacity:1; } 50% { transform: translate(30px, -20px) scale(1); opacity:0.7; } 75% { transform: translate(45px, -10px) scale(1.2); opacity:1; } 100% { transform: translate(60px, 0) scale(1); opacity:0.5; } }
@keyframes ce-shadow { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes ce-bubble { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(0deg); } }

/* the-tsar-promises - tense, bright-interior */
.scn-the-tsar-promises { background:
  linear-gradient(180deg, #f0e8d0 0%, #d4c8a8 40%, #a89878 100%),
  radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.6) 0%, transparent 80%);
}
.scn-the-tsar-promises .bg {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #e0d0b8 0%, #f5eed8 30%, #ddd0b0 70%, #c0b090 100%);
  clip-path: polygon(0 0, 100% 0, 100% 75%, 0 75%);
  animation: ts-shift 25s ease-in-out infinite alternate;
}
.scn-the-tsar-promises .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-the-tsar-promises .desk {
  position:absolute; bottom:20%; left:25%; width:40%; height:12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%);
  border-radius:4% 4% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: ts-desk 6s ease-in-out infinite;
}
.scn-the-tsar-promises .figure-tsar {
  position:absolute; bottom:22%; left:45%; width:22%; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(4px 0 8px rgba(0,0,0,0.4));
  animation: ts-tsar 8s ease-in-out infinite alternate;
}
.scn-the-tsar-promises .figure-roul {
  position:absolute; bottom:20%; left:20%; width:12%; height:32%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  filter: drop-shadow(2px 0 6px rgba(0,0,0,0.5));
  animation: ts-roul 4s ease-in-out infinite;
}
.scn-the-tsar-promises .window {
  position:absolute; top:10%; left:70%; width:18%; height:40%;
  background:
    linear-gradient(180deg, #c8e0ff 0%, #a0c8f0 100%);
  border: 4px solid #6a5a3a; border-radius: 6%;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.3), 0 0 60px rgba(200,224,255,0.2);
  animation: ts-window 12s ease-in-out infinite alternate;
}
.scn-the-tsar-promises .paper {
  position:absolute; bottom:24%; left:28%; width:14%; height:8%;
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc0 100%);
  border-radius:2%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: ts-paper 5s ease-in-out infinite;
}
.scn-the-tsar-promises .shadow-harsh {
  position:absolute; bottom:0; left:20%; width:60%; height:30%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, transparent 70%);
  pointer-events: none;
  animation: ts-shadow 10s ease-in-out infinite alternate;
}
@keyframes ts-shift { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ts-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ts-tsar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes ts-roul { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-3px) rotate(-1deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes ts-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); } 100% { opacity:1; box-shadow: inset 0 0 60px rgba(255,255,255,0.4), 0 0 80px rgba(200,224,255,0.3); } }
@keyframes ts-paper { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }
@keyframes ts-shadow { 0% { opacity:0.3; transform: translateX(0); } 100% { opacity:0.6; transform: translateX(10px); } }

/* officer-of-st-anne - warm, bright-interior */
.scn-officer-of-st-anne { background:
  linear-gradient(180deg, #fff5e0 0%, #f0d8b8 40%, #d4b890 100%),
  radial-gradient(ellipse at 60% 30%, rgba(255,220,160,0.5) 0%, transparent 70%);
}
.scn-officer-of-st-anne .bg {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #e8d4b8 0%, #f8ecd8 40%, #e0c8a8 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 90%);
  animation: os-ambient 20s ease-in-out infinite alternate;
}
.scn-officer-of-st-anne .window {
  position:absolute; top:5%; right:10%; width:25%; height:45%;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 100%);
  border: 6px solid #8a7a5a; border-radius: 8%;
  box-shadow: inset 0 0 50px rgba(255,230,180,0.4), 0 0 80px rgba(255,220,160,0.3);
  animation: os-window 15s ease-in-out infinite alternate;
}
.scn-officer-of-st-anne .glow-shaft {
  position:absolute; top:5%; left:10%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  filter: blur(20px); pointer-events: none;
  animation: os-shaft 8s ease-in-out infinite alternate;
}
.scn-officer-of-st-anne .figure-tsar {
  position:absolute; bottom:15%; left:50%; width:20%; height:45%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20% / 55% 55% 15% 15%;
  transform-origin: bottom center;
  filter: drop-shadow(6px 0 12px rgba(0,0,0,0.3));
  animation: os-tsar 10s ease-in-out infinite;
}
.scn-officer-of-st-anne .figure-boy {
  position:absolute; bottom:12%; left:30%; width:14%; height:35%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(3px 0 8px rgba(0,0,0,0.4));
  animation: os-boy 4s ease-in-out infinite;
}
.scn-officer-of-st-anne .medal {
  position:absolute; bottom:45%; left:52%; width:6%; height:6%;
  background: radial-gradient(circle, #ffd700 0%, #d4a000 60%, #8a6800 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,215,0,0.5);
  animation: os-medal 3s ease-in-out infinite alternate;
}
.scn-officer-of-st-anne .chair {
  position:absolute; bottom:15%; left:15%; width:18%; height:30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: os-chair 12s ease-in-out infinite alternate;
}
.scn-officer-of-st-anne .glow-warm {
  position:absolute; top:20%; left:20%; width:60%; height:40%;
  background: radial-gradient(ellipse at 60% 50%, rgba(255,200,120,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: os-glow 6s ease-in-out infinite alternate;
}
@keyframes os-ambient { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes os-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(255,230,180,0.2); } 100% { opacity:1; box-shadow: inset 0 0 70px rgba(255,230,180,0.5), 0 0 100px rgba(255,220,160,0.3); } }
@keyframes os-shaft { 0% { opacity:0.3; transform: translateY(0) scaleX(0.9); } 100% { opacity:0.6; transform: translateY(10px) scaleX(1.1); } }
@keyframes os-tsar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes os-boy { 0% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-4px) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes os-medal { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes os-chair { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(5px) scaleY(1.02); } }
@keyframes os-glow { 0% { opacity:0.3; } 100% { opacity:0.7; } }

/* natacha-released - warm, bright-interior */
.scn-natacha-released { background:
  linear-gradient(180deg, #f8ecd8 0%, #e8d4b8 40%, #d0b898 100%),
  radial-gradient(ellipse at 50% 100%, #d0b898 0%, transparent 60%);
}
.scn-natacha-released .bg {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #dcc8a8 0%, #f0e0c8 50%, #c8b090 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 80%);
  animation: nr-ambient 18s ease-in-out infinite alternate;
}
.scn-natacha-released .door {
  position:absolute; bottom:10%; left:15%; width:30%; height:70%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: nr-door 8s ease-in-out infinite alternate;
}
.scn-natacha-released .light-stream {
  position:absolute; bottom:10%; left:10%; width:40%; height:50%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  filter: blur(15px); pointer-events: none;
  animation: nr-light 6s ease-in-out infinite alternate;
}
.scn-natacha-released .figure-guard {
  position:absolute; bottom:12%; left:40%; width:16%; height:40%;
  background: linear-gradient(180deg, #3a3020 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(4px 0 10px rgba(0,0,0,0.3));
  animation: nr-guard 14s ease-in-out infinite;
}
.scn-natacha-released .figure-natacha {
  position:absolute; bottom:10%; left:20%; width:14%; height:38%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(2px 0 8px rgba(0,0,0,0.4));
  animation: nr-natacha 5s ease-in-out infinite;
}
.scn-natacha-released .figure-roul {
  position:absolute; bottom:8%; left:5%; width:12%; height:34%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(2px 0 6px rgba(0,0,0,0.5));
  animation: nr-roul 4s ease-in-out infinite;
}
.scn-natacha-released .shadow-warm {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  pointer-events: none;
  animation: nr-shadow 12s ease-in-out infinite alternate;
}
.scn-natacha-released .floor {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
@keyframes nr-ambient { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes nr-door { 0% { transform: rotateY(0deg) scaleX(1); } 50% { transform: rotateY(-10deg) scaleX(0.95); } 100% { transform: rotateY(0deg) scaleX(1); } }
@keyframes nr-light { 0% { opacity:0.4; transform: translateX(0) scaleX(0.9); } 100% { opacity:0.8; transform: translateX(15px) scaleX(1.1); } }
@keyframes nr-guard { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nr-natacha { 0% { transform: translateY(0) rotate(2deg) scaleY(1); } 30% { transform: translateY(-5px) rotate(-1deg) scaleY(1.02); } 60% { transform: translateY(-2px) rotate(3deg) scaleY(1); } 100% { transform: translateY(-3px) rotate(0deg) scaleY(1.01); } }
@keyframes nr-roul { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-4px) rotate(-2deg); } 60% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes nr-shadow { 0% { opacity:0.2; transform: translateX(0); } 100% { opacity:0.5; transform: translateX(-10px); } }

/* the-collar-and-train - warm, bright-interior */
.scn-the-collar-and-train { background:
  linear-gradient(180deg, #f0e0c8 0%, #dcc8a8 40%, #c0a888 100%),
  radial-gradient(ellipse at 40% 30%, rgba(255,230,180,0.4) 0%, transparent 70%);
}
.scn-the-collar-and-train .bg {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #d4b898 0%, #e8d4b8 50%, #c4a888 100%);
  clip-path: polygon(0 0, 100% 0, 100% 82%, 0 88%);
  animation: ct-ambient 22s ease-in-out infinite alternate;
}
.scn-the-collar-and-train .clock {
  position:absolute; top:8%; right:15%; width:20%; height:20%;
  background: radial-gradient(circle, #f5f0e0 0%, #d0c0a0 70%, #8a7a5a 100%);
  border-radius: 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.3), inset 0 0 30px rgba(0,0,0,0.05);
  animation: ct-clock 60s linear infinite;
}
.scn-the-collar-and-train .figure-roul {
  position:absolute; bottom:14%; left:20%; width:14%; height:38%;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  filter: drop-shadow(3px 0 10px rgba(0,0,0,0.4));
  animation: ct-roul 4s ease-in-out infinite;
}
.scn-the-collar-and-train .figure-tsar {
  position:absolute; bottom:16%; left:45%; width:18%; height:42%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 35% 35% 20% 20% / 50% 50% 15% 15%;
  transform-origin: bottom center;
  filter: drop-shadow(5px 0 12px rgba(0,0,0,0.3));
  animation: ct-tsar 8s ease-in-out infinite alternate;
}
.scn-the-collar-and-train .ticket {
  position:absolute; bottom:22%; left:30%; width:12%; height:6%;
  background: linear-gradient(180deg, #f5eed0 0%, #e0d0b0 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(8deg);
  animation: ct-ticket 5s ease-in-out infinite;
}
.scn-the-collar-and-train .suitcase {
  position:absolute; bottom:12%; left:5%; width:14%; height:16%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a18 100%);
  border-radius: 6% 6% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ct-suitcase 7s ease-in-out infinite alternate;
}
.scn-the-collar-and-train .train-puff {
  position:absolute; top:40%; left:60%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,200,180,0.4) 0%, transparent 70%);
  filter: blur(10px); pointer-events: none;
  animation: ct-puff 12s ease-in-out infinite alternate;
}
@keyframes ct-ambient { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ct-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ct-roul { 0% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-4px) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes ct-tsar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ct-ticket { 0%,100% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes ct-suitcase { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(8px) scaleY(1.03); } }
@keyframes ct-puff { 0% { opacity:0.2; transform: translateX(0) scale(0.8); } 50% { opacity:0.5; transform: translateX(20px) scale(1.1); } 100% { opacity:0.3; transform: translateX(40px) scale(0.9); } }

/* Scene: papers-invented */
.scn-papers-invented {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1f2e 50%, #3a2a2a 100%),
              radial-gradient(circle at 35% 55%, #4a3a2a 0%, transparent 70%);
}
.scn-papers-invented .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 60%);
  animation: pi-ambient 12s ease-in-out infinite alternate;
}
.scn-papers-invented .desk {
  position: absolute; bottom: 8%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
  animation: pi-desk 8s ease-in-out infinite;
}
.scn-papers-invented .figure-left {
  position: absolute; bottom: 22%; left: 22%; width: 16%; height: 40%;
  background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: pi-figure 6s ease-in-out infinite alternate;
}
.scn-papers-invented .lamp {
  position: absolute; bottom: 28%; right: 25%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4), 0 0 60px 20px rgba(255,208,128,0.15);
  animation: pi-lamp 4s ease-in-out infinite alternate;
}
.scn-papers-invented .papers-a {
  position: absolute; bottom: 24%; left: 30%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 2px; transform: rotate(-8deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: pi-paper-a 7s ease-in-out infinite;
}
.scn-papers-invented .papers-b {
  position: absolute; bottom: 26%; left: 36%; width: 10%; height: 5%;
  background: linear-gradient(135deg, #d8c8b8 0%, #b8a898 100%);
  border-radius: 2px; transform: rotate(12deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: pi-paper-b 9s ease-in-out infinite;
}
.scn-papers-invented .shadow {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent);
  filter: blur(8px);
  animation: pi-shadow-move 10s ease-in-out infinite alternate;
}
@keyframes pi-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pi-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pi-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pi-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.3), 0 0 50px 15px rgba(255,208,128,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.5), 0 0 80px 25px rgba(255,208,128,0.2); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.35), 0 0 60px 18px rgba(255,208,128,0.12); opacity: 0.9; }
}
@keyframes pi-paper-a {
  0%, 100% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(3px); }
}
@keyframes pi-paper-b {
  0%, 100% { transform: rotate(12deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
}
@keyframes pi-shadow-move {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.1); opacity: 0.4; }
  100% { transform: scaleY(1); opacity: 0.6; }
}

/* Scene: crisis-of-silence */
.scn-crisis-of-silence {
  background: linear-gradient(135deg, #1e1e2e 0%, #2a1f2e 50%, #3a2a2e 100%),
              radial-gradient(circle at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-crisis-of-silence .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 70%);
  animation: cs-ambient 15s ease-in-out infinite alternate;
}
.scn-crisis-of-silence .figure-left {
  position: absolute; bottom: 20%; left: 12%; width: 14%; height: 42%;
  background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: cs-figure-left 8s ease-in-out infinite alternate;
}
.scn-crisis-of-silence .figure-right {
  position: absolute; bottom: 20%; right: 12%; width: 14%; height: 42%;
  background: linear-gradient(270deg, #0d0d1a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: cs-figure-right 8s ease-in-out infinite alternate;
}
.scn-crisis-of-silence .table {
  position: absolute; bottom: 10%; left: 38%; right: 38%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4% 4% 0 0 / 20% 20% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cs-table 10s ease-in-out infinite;
}
.scn-crisis-of-silence .candle {
  position: absolute; bottom: 20%; left: 49%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e8d8c8 0%, #b8a898 100%);
  border-radius: 10% 10% 4% 4%;
  animation: cs-candle 5s ease-in-out infinite;
}
.scn-crisis-of-silence .candle-glow {
  position: absolute; bottom: 20%; left: 49%; width: 6%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-33%, -10%);
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.3);
  animation: cs-glow 3s ease-in-out infinite alternate;
}
.scn-crisis-of-silence .table-shadow {
  position: absolute; bottom: 6%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent);
  filter: blur(10px);
  animation: cs-shadow 12s ease-in-out infinite alternate;
}
@keyframes cs-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes cs-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes cs-candle {
  0%, 100% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.02) rotate(1deg); }
  50% { transform: scaleY(0.98) rotate(-1deg); }
  75% { transform: scaleY(1.02) rotate(1deg); }
}
@keyframes cs-glow {
  0% { opacity: 0.7; transform: translate(-33%, -10%) scale(1); }
  50% { opacity: 1; transform: translate(-33%, -10%) scale(1.1); }
  100% { opacity: 0.8; transform: translate(-33%, -10%) scale(0.95); }
}
@keyframes cs-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.3; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene: koupriane-admits-bluff */
.scn-koupriane-admits-bluff {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1f2e 50%, #3a2a2a 100%),
              radial-gradient(circle at 30% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-koupriane-admits-bluff .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, transparent 60%);
  animation: kp-ambient 14s ease-in-out infinite alternate;
}
.scn-koupriane-admits-bluff .desk {
  position: absolute; bottom: 10%; left: 8%; right: 8%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.5);
  animation: kp-desk 9s ease-in-out infinite;
}
.scn-koupriane-admits-bluff .figure-woman {
  position: absolute; bottom: 25%; left: 10%; width: 20%; height: 45%;
  background: linear-gradient(90deg, #0d0d1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 40% / 60% 60% 30% 40%;
  transform-origin: bottom center;
  animation: kp-woman 6s ease-in-out infinite alternate;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}
.scn-koupriane-admits-bluff .figure-man {
  position: absolute; bottom: 22%; right: 10%; width: 20%; height: 48%;
  background: linear-gradient(270deg, #0d0d1a 0%, #1a1a2a 100%);
  border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%;
  transform-origin: bottom center;
  animation: kp-man 8s ease-in-out infinite alternate;
}
.scn-koupriane-admits-bluff .papers {
  position: absolute; bottom: 22%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: kp-papers 11s ease-in-out infinite;
}
.scn-koupriane-admits-bluff .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 60%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: 0 0 30px 12px rgba(255,208,128,0.3);
  animation: kp-lamp 4s ease-in-out infinite alternate;
}
.scn-koupriane-admits-bluff .desk-shadow {
  position: absolute; bottom: 6%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent);
  filter: blur(12px);
  animation: kp-shadow 10s ease-in-out infinite alternate;
}
@keyframes kp-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes kp-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes kp-woman {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  50% { transform: translateX(-4px) rotate(-3deg) scaleX(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes kp-man {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
}
@keyframes kp-papers {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes kp-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 16px rgba(255,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.35); opacity: 0.9; }
}
@keyframes kp-shadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.3; transform: scaleY(1.15); }
  100% { opacity: 0.5; transform: scaleY(1); }
}

/* Scene: rouletabille-has-no-proofs */
.scn-rouletabille-has-no-proofs {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1f2e 50%, #3a2a2a 100%),
              radial-gradient(circle at 50% 60%, #3a2a2a 0%, transparent 70%);
}
.scn-rouletabille-has-no-proofs .desk-top {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: rh-desk 12s ease-in-out infinite;
}
.scn-rouletabille-has-no-proofs .lamp {
  position: absolute; top: 25%; left: 45%; width: 10%; height: 18%;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%);
  border-radius: 50% 50% 10% 10% / 70% 70% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,0.3), 0 0 80px 30px rgba(255,208,128,0.1);
  animation: rh-lamp 4s ease-in-out infinite alternate;
}
.scn-rouletabille-has-no-proofs .papers-scattered {
  position: absolute; top: 55%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 2px; transform: rotate(-12deg);
  box-shadow: 2px 2px 10px rgba(0,0,0,0.4);
  animation: rh-papers 8s ease-in-out infinite;
}
.scn-rouletabille-has-no-proofs .hand-left {
  position: absolute; top: 48%; left: 25%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: rh-hand-left 7s ease-in-out infinite alternate;
}
.scn-rouletabille-has-no-proofs .hand-right {
  position: absolute; top: 48%; right: 25%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: top center;
  animation: rh-hand-right 7s ease-in-out infinite alternate;
}
.scn-rouletabille-has-no-proofs .pen {
  position: absolute; top: 60%; left: 42%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 10% 10% 50% 50%;
  transform: rotate(30deg);
  animation: rh-pen 9s ease-in-out infinite;
}
.scn-rouletabille-has-no-proofs .inkwell {
  position: absolute; top: 65%; left: 52%; width: 6%; height: 6%;
  background: radial-gradient(circle, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: inset 0 -3px 6px rgba(0,0,0,0.8);
  animation: rh-inkwell 6s ease-in-out infinite;
}
@keyframes rh-desk {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.95; }
}
@keyframes rh-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.3), 0 0 60px 20px rgba(255,208,128,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.5), 0 0 100px 35px rgba(255,208,128,0.2); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px rgba(255,208,128,0.35), 0 0 70px 25px rgba(255,208,128,0.12); opacity: 0.9; }
}
@keyframes rh-papers {
  0%, 100% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes rh-hand-left {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rh-hand-right {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes rh-pen {
  0%, 100% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
}
@keyframes rh-inkwell {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}

.scn-night-watch-at-the-door {
  background: linear-gradient(180deg, #1a1820 0%, #2a2028 40%, #1e1a1c 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 60%);
}
.scn-night-watch-at-the-door .wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #2c2228 0%, #1a1418 100%);
  animation: nw1-wallpulse 8s ease-in-out infinite alternate;
}
.scn-night-watch-at-the-door .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%);
}
.scn-night-watch-at-the-door .door-frame {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 80px; height: 140px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(128, 80, 40, 0.3);
  animation: nw1-framebreathe 6s ease-in-out infinite;
}
.scn-night-watch-at-the-door .door {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%); width: 70px; height: 130px;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e18 100%);
  border-radius: 3px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: nw1-doorclose 12s ease-in-out infinite alternate;
}
.scn-night-watch-at-the-door .bolt {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-40%); width: 10px; height: 10px;
  background: radial-gradient(circle, #c0a040 0%, #806020 60%, #402800 100%);
  border-radius: 50%; box-shadow: 0 0 12px #b08030;
  animation: nw1-boltglow 2s ease-in-out infinite alternate;
}
.scn-night-watch-at-the-door .lamp {
  position: absolute; top: 20%; left: 70%; width: 16px; height: 20px;
  background: radial-gradient(ellipse, #f0d080 0%, #c08030 60%, #402000 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 30px 8px rgba(240, 200, 120, 0.5), 0 0 60px 16px rgba(200, 120, 40, 0.3);
  animation: nw1-lampflicker 1.5s ease-in-out infinite alternate;
}
.scn-night-watch-at-the-door .figure {
  position: absolute; bottom: 26%; left: 32%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #18141a 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw1-figuresway 4s ease-in-out infinite;
}
.scn-night-watch-at-the-door .shadow {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: nw1-shadowbreath 4s ease-in-out infinite;
}
@keyframes nw1-wallpulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nw1-framebreathe { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.01) } }
@keyframes nw1-doorclose { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scaleX(0.98) } 100% { transform: translateX(-50%) } }
@keyframes nw1-boltglow { 0% { box-shadow: 0 0 6px #b08030 } 50% { box-shadow: 0 0 18px #e0b040 } 100% { box-shadow: 0 0 8px #b08030 } }
@keyframes nw1-lampflicker { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px rgba(240,200,120,0.4) } 30% { opacity: 1; box-shadow: 0 0 40px 10px rgba(240,200,120,0.6) } 70% { opacity: 0.8; box-shadow: 0 0 30px 6px rgba(240,200,120,0.5) } 100% { opacity: 0.6; box-shadow: 0 0 15px 2px rgba(240,200,120,0.3) } }
@keyframes nw1-figuresway { 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(0) } }
@keyframes nw1-shadowbreath { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }

.scn-wait-until-dawn {
  background: linear-gradient(180deg, #0c0a10 0%, #14121a 40%, #0e0a14 100%), radial-gradient(ellipse at 50% 100%, #1a1620 0%, transparent 70%);
}
.scn-wait-until-dawn .bg-dark {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, rgba(30, 20, 40, 0.3) 0%, transparent 70%);
  animation: wa2-pulse 10s ease-in-out infinite;
}
.scn-wait-until-dawn .mattress {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #1c1620 0%, #0e0a14 100%);
  border-radius: 20px; box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-wait-until-dawn .figure-squat {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #18141c 0%, #0c0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa2-squat 5s ease-in-out infinite;
}
.scn-wait-until-dawn .figure-onfour {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 30px;
  background: linear-gradient(180deg, #1c1820 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa2-onfour 4s ease-in-out infinite alternate;
}
.scn-wait-until-dawn .window-faint {
  position: absolute; top: 12%; left: 40%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100, 140, 200, 0.1) 0%, transparent 60%);
  border: 1px solid rgba(200, 220, 255, 0.15);
  border-radius: 4px;
  animation: wa2-dawn 20s ease-in-out infinite alternate;
}
.scn-wait-until-dawn .blanket {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #1c1820 0%, transparent 100%);
  border-radius: 30px;
  animation: wa2-blankettremble 6s ease-in-out infinite;
}
@keyframes wa2-pulse { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wa2-squat { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wa2-onfour { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-4px) } }
@keyframes wa2-dawn { 0% { opacity: 0.05 } 50% { opacity: 0.2 } 100% { opacity: 0.1 } }
@keyframes wa2-blankettremble { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }

.scn-the-mysterious-hand-appears {
  background: linear-gradient(180deg, #0a0810 0%, #120e1a 50%, #0e0a14 100%), radial-gradient(ellipse at 50% 100%, #1a1420 0%, transparent 60%);
}
.scn-the-mysterious-hand-appears .bg-void {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #1a1620 0%, #0a0810 100%);
  animation: ha3-void 12s ease-in-out infinite;
}
.scn-the-mysterious-hand-appears .door-heavy {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 100px; height: 160px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 6px; box-shadow: 0 0 30px rgba(0,0,0,0.7), inset 0 0 20px rgba(0,0,0,0.5);
  animation: ha3-dooropen 15s ease-in-out infinite alternate;
}
.scn-the-mysterious-hand-appears .door-crack {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-46%); width: 6px; height: 150px;
  background: linear-gradient(180deg, rgba(200, 180, 80, 0.2) 0%, rgba(200, 180, 80, 0.4) 50%, rgba(200, 180, 80, 0.1) 100%);
  border-radius: 2px;
  animation: ha3-cracklight 4s ease-in-out infinite alternate;
}
.scn-the-mysterious-hand-appears .keyhole {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 12px; height: 16px;
  background: radial-gradient(circle, #c09040 0%, #402800 70%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 4px rgba(192, 144, 64, 0.6);
  animation: ha3-keyhole 2s ease-in-out infinite alternate;
}
.scn-the-mysterious-hand-appears .hand-reach {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 60% 40% 40% / 60% 70% 40% 40%;
  transform: rotate(30deg);
  animation: ha3-handreach 6s ease-in-out infinite alternate;
}
.scn-the-mysterious-hand-appears .bolt-turn {
  position: absolute; bottom: 40%; left: 52%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c0a060 0%, #806030 70%);
  border-radius: 50%; box-shadow: 0 0 12px #b08040;
  animation: ha3-bolt 3s ease-in-out infinite;
}
.scn-the-mysterious-hand-appears .light-streak {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(240, 220, 120, 0.3), transparent);
  border-radius: 1px; transform: rotate(15deg);
  animation: ha3-streak 1.5s ease-in-out infinite alternate;
}
@keyframes ha3-void { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes ha3-dooropen { 0% { transform: translateX(-50%) rotateX(0) } 50% { transform: translateX(-50%) rotateX(2deg) } 100% { transform: translateX(-50%) rotateX(0) } }
@keyframes ha3-cracklight { 0% { opacity: 0.2 } 50% { opacity: 0.8 } 100% { opacity: 0.3 } }
@keyframes ha3-keyhole { 0% { box-shadow: 0 0 10px 2px rgba(192,144,64,0.4) } 50% { box-shadow: 0 0 30px 8px rgba(192,144,64,0.8) } 100% { box-shadow: 0 0 12px 3px rgba(192,144,64,0.5) } }
@keyframes ha3-handreach { 0% { transform: rotate(25deg) translateX(0) } 50% { transform: rotate(35deg) translateX(4px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes ha3-bolt { 0% { transform: rotate(0) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes ha3-streak { 0% { opacity: 0 } 50% { opacity: 1 } 100% { opacity: 0 } }

.scn-pursuit-down-the-stairs {
  background: linear-gradient(180deg, #0e0c14 0%, #16121e 30%, #0e0a12 100%), radial-gradient(ellipse at 50% 0%, #1c1620 0%, transparent 70%);
}
.scn-pursuit-down-the-stairs .bg-stairwell {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #18141e 0%, #0e0a14 100%);
  animation: pu4-well 12s ease-in-out infinite;
}
.scn-pursuit-down-the-stairs .stairs {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 20%;
  background: linear-gradient(180deg, #1a141e 0%, #100c14 50%, #0a0810 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: pu4-steep 8s ease-in-out infinite alternate;
}
.scn-pursuit-down-the-stairs .banister {
  position: absolute; top: 15%; left: 30%; width: 4px; height: 60%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: pu4-banister 10s ease-in-out infinite alternate;
}
.scn-pursuit-down-the-stairs .figure-slide {
  position: absolute; top: 25%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: pu4-slide 5s ease-in-out infinite;
}
.scn-pursuit-down-the-stairs .door-natacha {
  position: absolute; bottom: 10%; left: 60%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: pu4-door 15s ease-in-out infinite alternate;
}
.scn-pursuit-down-the-stairs .wall-lamp {
  position: absolute; top: 35%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #e0b050 0%, #a07020 60%, #402000 100%);
  border-radius: 50%; box-shadow: 0 0 20px 4px rgba(224, 176, 80, 0.4);
  animation: pu4-lampflicker 2s ease-in-out infinite alternate;
}
.scn-pursuit-down-the-stairs .railing-shadow {
  position: absolute; top: 30%; left: 32%; width: 8px; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: rotate(15deg); filter: blur(4px);
  animation: pu4-railshadow 8s ease-in-out infinite;
}
@keyframes pu4-well { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes pu4-steep { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pu4-banister { 0% { transform: rotate(14deg) } 50% { transform: rotate(16deg) } 100% { transform: rotate(14deg) } }
@keyframes pu4-slide { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-18deg) translateY(10px) } 50% { transform: rotate(-22deg) translateY(20px) } 75% { transform: rotate(-18deg) translateY(30px) } 100% { transform: rotate(-20deg) translateY(40px) } }
@keyframes pu4-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes pu4-lampflicker { 0% { opacity: 0.6; box-shadow: 0 0 10px 2px rgba(224,176,80,0.3) } 30% { opacity: 1; box-shadow: 0 0 30px 8px rgba(224,176,80,0.6) } 70% { opacity: 0.8; box-shadow: 0 0 20px 4px rgba(224,176,80,0.4) } 100% { opacity: 0.5; box-shadow: 0 0 8px 1px rgba(224,176,80,0.2) } }
@keyframes pu4-railshadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }

/* natacha-sent-to-siberia */
.scn-natacha-sent-to-siberia { background: linear-gradient(135deg, #f5e6c8 0%, #e0c8a8 30%, #c8a880 100%), radial-gradient(ellipse at 80% 20%, #ffe8b0 0%, transparent 50%); }
.scn-natacha-sent-to-siberia .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b8 0%, #c8b088 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.15); animation: ns-wall 30s ease-in-out infinite; }
.scn-natacha-sent-to-siberia .window { position:absolute; top:8%; left:65%; width:30%; height:45%; background: linear-gradient(135deg, #fff8e0 0%, #f0d8a0 100%); border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%; box-shadow: inset 0 0 40px rgba(255,255,200,.6), 0 8px 24px rgba(0,0,0,.3); animation: ns-window 8s ease-in-out infinite alternate; }
.scn-natacha-sent-to-siberia .desk { position:absolute; bottom:25%; left:50%; width:120px; height:40px; transform:translateX(-60%); background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-natacha-sent-to-siberia .papers { position:absolute; bottom:30%; left:52%; width:70px; height:50px; background: linear-gradient(180deg, #f0e8d0 0%, #c8b890 100%); border-radius: 2% 2% 4% 4% / 3% 3% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(-5deg); animation: ns-papers 5s ease-in-out infinite; }
.scn-natacha-sent-to-siberia .chair { position:absolute; bottom:20%; left:42%; width:50px; height:70px; background: linear-gradient(180deg, #604830 0%, #403020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ns-chair 7s ease-in-out infinite alternate; }
.scn-natacha-sent-to-siberia .figure { position:absolute; bottom:24%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: ns-figure 6s ease-in-out infinite; }
.scn-natacha-sent-to-siberia .shadow { position:absolute; bottom:25%; right:15%; width:80px; height:90px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(8px); animation: ns-shadow 4s ease-in-out infinite alternate; }
@keyframes ns-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ns-window { 0% { opacity:.75; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes ns-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes ns-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes ns-figure { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) scale(1.01) } 100% { transform: rotate(6deg) } }
@keyframes ns-shadow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }

/* the-two-ikons */
.scn-the-two-ikons { background: linear-gradient(180deg, #d8c8b0 0%, #b8a080 40%, #907060 100%), radial-gradient(ellipse at 30% 80%, #e8d4b8 0%, transparent 60%); }
.scn-the-two-ikons .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8b098 0%, #a08068 100%); }
.scn-the-two-ikons .ikon-a { position:absolute; top:10%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%); border: 3px solid #6a5038; border-radius: 8% 8% 10% 10% / 12% 12% 15% 15%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 20px rgba(200,160,120,.3); animation: ti-ikon 10s ease-in-out infinite; }
.scn-the-two-ikons .ikon-b { position:absolute; top:10%; right:25%; width:40px; height:60px; background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%); border: 3px solid #6a5038; border-radius: 8% 8% 10% 10% / 12% 12% 15% 15%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 20px rgba(200,160,120,.3); animation: ti-ikon 12s ease-in-out infinite reverse; }
.scn-the-two-ikons .table { position:absolute; bottom:28%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 6% 6% 4% 4% / 10% 10% 8% 8%; box-shadow: 0 6px 16px rgba(0,0,0,.4); }
.scn-the-two-ikons .chair { position:absolute; bottom:24%; left:45%; width:45px; height:60px; background: linear-gradient(180deg, #604830 0%, #403020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: skewX(-3deg); animation: ti-chair 8s ease-in-out infinite alternate; }
.scn-the-two-ikons .figure { position:absolute; bottom:28%; left:48%; width:22px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 45% 45% 35% 35%; transform: rotate(-2deg); animation: ti-figure 5s ease-in-out infinite; }
.scn-the-two-ikons .teacup { position:absolute; bottom:33%; left:52%; width:18px; height:14px; background: radial-gradient(circle at 50% 40%, #f0e0c0 0%, #c8a880 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ti-steam 4s ease-in-out infinite; }
.scn-the-two-ikons .window { position:absolute; top:6%; left:10%; width:35%; height:50%; background: linear-gradient(135deg, #fff8e0 0%, #f0d8a0 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,200,.5), 0 6px 20px rgba(0,0,0,.25); animation: ti-window 15s ease-in-out infinite alternate; }
@keyframes ti-ikon { 0% { box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 20px rgba(200,160,120,.3) } 50% { box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 0 30px rgba(200,160,120,.5) } 100% { box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 20px rgba(200,160,120,.3) } }
@keyframes ti-chair { 0% { transform: skewX(-3deg) translateY(0) } 50% { transform: skewX(-2deg) translateY(-2px) } 100% { transform: skewX(-4deg) translateY(1px) } }
@keyframes ti-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) scale(1.01) } 100% { transform: rotate(-3deg) } }
@keyframes ti-steam { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-6px) scale(1.2); opacity:.3 } 100% { transform: translateY(0) scale(1); opacity:.6 } }
@keyframes ti-window { 0% { opacity:.8; box-shadow: inset 0 0 30px rgba(255,255,200,.5) } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,200,.8) } 100% { opacity:.85; box-shadow: inset 0 0 30px rgba(255,255,200,.4) } }

/* signing-papers */
.scn-signing-papers { background: linear-gradient(180deg, #d8c8a8 0%, #b09878 40%, #8a7050 100%), radial-gradient(ellipse at 50% 20%, #e8d4b0 0%, transparent 50%); }
.scn-signing-papers .desk { position:absolute; bottom:20%; left:50%; width:160px; height:50px; transform:translateX(-80px); background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-signing-papers .papers.stack { position:absolute; bottom:28%; left:50%; width:100px; height:70px; transform:translateX(-50px) rotate(-3deg); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 2% 2% 4% 4% / 3% 3% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: sp-stack 10s ease-in-out infinite; }
.scn-signing-papers .papers.scatter { position:absolute; bottom:26%; left:48%; width:60px; height:40px; transform:translateX(-30px) rotate(8deg); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 2% 2% 4% 4% / 3% 3% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,.25); animation: sp-scatter 6s ease-in-out infinite alternate; }
.scn-signing-papers .chair { position:absolute; bottom:18%; left:45%; width:55px; height:75px; background: linear-gradient(180deg, #604830 0%, #403020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: skewX(2deg); animation: sp-chair 9s ease-in-out infinite alternate; }
.scn-signing-papers .figure { position:absolute; bottom:22%; left:46%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(3deg); animation: sp-figure 4s ease-in-out infinite; }
.scn-signing-papers .lamp { position:absolute; top:30%; left:65%; width:30px; height:40px; background: radial-gradient(circle at 50% 80%, #ffe8b0 0%, #c8a060 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 0 30px 10px rgba(200,160,96,.4); animation: sp-lamp 7s ease-in-out infinite alternate; }
.scn-signing-papers .clock { position:absolute; top:10%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #f0e8d0 0%, #a08870 100%); border-radius: 50%; border: 3px solid #604020; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: sp-clock 12s linear infinite; }
.scn-signing-papers .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); }
@keyframes sp-stack { 0% { transform: translateX(-50px) rotate(-3deg) scale(1) } 50% { transform: translateX(-48px) rotate(-2deg) scale(1.02) } 100% { transform: translateX(-52px) rotate(-4deg) scale(.98) } }
@keyframes sp-scatter { 0% { transform: translateX(-30px) rotate(8deg) } 50% { transform: translateX(-28px) rotate(10deg) } 100% { transform: translateX(-32px) rotate(6deg) } }
@keyframes sp-chair { 0% { transform: skewX(2deg) translateY(0) } 50% { transform: skewX(1deg) translateY(-2px) } 100% { transform: skewX(3deg) translateY(1px) } }
@keyframes sp-figure { 0% { transform: rotate(3deg) } 50% { transform: rotate(1deg) scale(1.01) } 100% { transform: rotate(4deg) } }
@keyframes sp-lamp { 0% { opacity:.85; box-shadow: 0 0 30px 10px rgba(200,160,96,.4) } 50% { opacity:1; box-shadow: 0 0 45px 15px rgba(200,160,96,.6) } 100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(200,160,96,.35) } }
@keyframes sp-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }

/* farewell-and-ikons */
.scn-farewell-and-ikons { background: linear-gradient(180deg, #d0c0a8 0%, #a89078 40%, #807060 100%), radial-gradient(ellipse at 20% 50%, #e8d8c0 0%, transparent 60%); }
.scn-farewell-and-ikons .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8b898 0%, #a08868 100%); }
.scn-farewell-and-ikons .door { position:absolute; left:10%; top:10%; width:50px; height:80%; background: linear-gradient(180deg, #604020 0%, #402010 100%); border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: fi-door 20s ease-in-out infinite; }
.scn-farewell-and-ikons .ikon { position:absolute; top:15%; right:20%; width:35px; height:55px; background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%); border: 3px solid #6a5038; border-radius: 8% 8% 10% 10% / 12% 12% 15% 15%; box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 15px rgba(200,160,120,.3); animation: fi-ikon 9s ease-in-out infinite; }
.scn-farewell-and-ikons .table { position:absolute; bottom:28%; left:55%; width:80px; height:25px; transform:translateX(-40px); background: linear-gradient(180deg, #806040 0%, #604020 100%); border-radius: 6% 6% 4% 4% / 10% 10% 8% 8%; box-shadow: 0 6px 14px rgba(0,0,0,.4); }
.scn-farewell-and-ikons .candle { position:absolute; bottom:34%; left:58%; width:10px; height:25px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 0 20px 8px rgba(200,160,96,.5); animation: fi-candle 3s ease-in-out infinite alternate; }
.scn-farewell-and-ikons .figure { position:absolute; bottom:25%; left:40%; width:22px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 45% 45% 35% 35%; transform: rotate(-10deg); transform-origin: bottom center; animation: fi-figure 6s ease-in-out infinite; }
.scn-farewell-and-ikons .rug { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(90deg, #905030 0%, #b07050 20%, #905030 40%, #b07050 60%, #905030 80%, #b07050 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: fi-rug 15s linear infinite; }
.scn-farewell-and-ikons .window { position:absolute; top:5%; left:60%; width:30%; height:50%; background: linear-gradient(135deg, #fff8e0 0%, #f0d8a0 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,200,.5), 0 6px 20px rgba(0,0,0,.25); animation: fi-window 12s ease-in-out infinite alternate; }
@keyframes fi-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(.98) } }
@keyframes fi-ikon { 0% { box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 15px rgba(200,160,120,.3) } 50% { box-shadow: 0 4px 18px rgba(0,0,0,.5), inset 0 0 25px rgba(200,160,120,.5) } 100% { box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 0 15px rgba(200,160,120,.3) } }
@keyframes fi-candle { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.75; transform: scaleY(.95) } }
@keyframes fi-figure { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) scale(1.02) } 100% { transform: rotate(-12deg) } }
@keyframes fi-rug { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes fi-window { 0% { opacity:.8; box-shadow: inset 0 0 30px rgba(255,255,200,.5) } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,200,.8) } 100% { opacity:.85; box-shadow: inset 0 0 30px rgba(255,255,200,.4) } }

/* --- Scene 1: koupriane-paper-shown --- */
.scn-koupriane-paper-shown {
  background:
    linear-gradient(135deg, #f5e6c0 0%, #d9c9a0 30%, #c0b090 60%, #a09280 100%),
    radial-gradient(ellipse at 30% 60%, #f0e0c0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-koupriane-paper-shown .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  box-shadow: inset 0 4px 20px rgba(80,60,40,0.3);
  animation: kp-wall 18s ease-in-out infinite alternate;
}
.scn-koupriane-paper-shown .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08870 0%, #7a6a54 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.4);
  animation: kp-floor 12s ease-in-out infinite;
}
.scn-koupriane-paper-shown .figure-left {
  position: absolute;
  bottom: 30%; left: 20%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kp-figL 4s ease-in-out infinite;
}
.scn-koupriane-paper-shown .figure-right {
  position: absolute;
  bottom: 30%; right: 25%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kp-figR 5s ease-in-out infinite;
}
.scn-koupriane-paper-shown .paper {
  position: absolute;
  bottom: 42%; left: 40%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: kp-paper 3s ease-in-out infinite alternate;
}
.scn-koupriane-paper-shown .table {
  position: absolute;
  bottom: 30%; left: 35%; right: 35%;
  height: 8px;
  background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: kp-table 10s ease-in-out infinite;
}
.scn-koupriane-paper-shown .lamp {
  position: absolute;
  top: 20%; left: 50%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffeecc 0%, #d4a86a 60%, #a08050 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 15px #e0b070, 0 0 60px 25px #c09050;
  animation: kp-lamp 2s ease-in-out infinite alternate;
}
.scn-koupriane-paper-shown .shadow {
  position: absolute;
  bottom: 30%; left: 20%; right: 25%;
  height: 20px;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: kp-shadow 4s ease-in-out infinite;
}
@keyframes kp-wall {
  0% { opacity: 1; }
  50% { opacity: 0.92; }
  100% { opacity: 1; }
}
@keyframes kp-floor {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes kp-figL {
  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(0); }
}
@keyframes kp-figR {
  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(0); }
}
@keyframes kp-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes kp-table {
  0%, 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  50% { box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
}
@keyframes kp-lamp {
  0% { box-shadow: 0 0 20px 10px #e0b070, 0 0 50px 20px #c09050; opacity: 0.9; }
  50% { box-shadow: 0 0 35px 18px #eec080, 0 0 70px 30px #d4a060; opacity: 1; }
  100% { box-shadow: 0 0 25px 12px #e0b070, 0 0 55px 25px #c09050; opacity: 0.95; }
}
@keyframes kp-shadow {
  0%, 100% { opacity: 0.15; }
  50% { opacity: 0.25; }
}

/* --- Scene 2: matrena-bribes-police --- */
.scn-matrena-bribes-police {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2038 40%, #3a2a3a 80%, #1a101a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%);
}
.scn-matrena-bribes-police .bg-dark {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1520 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: mb-bg 15s ease-in-out infinite alternate;
}
.scn-matrena-bribes-police .light-halo {
  position: absolute;
  top: 30%; left: 50%;
  width: 100px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,150,80,0.3) 0%, rgba(200,150,80,0.05) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mb-halo 6s ease-in-out infinite alternate;
}
.scn-matrena-bribes-police .figure-left {
  position: absolute;
  bottom: 25%; left: 15%;
  width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mb-figL 5s ease-in-out infinite;
}
.scn-matrena-bribes-police .figure-right {
  position: absolute;
  bottom: 25%; right: 20%;
  width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mb-figR 4.5s ease-in-out infinite reverse;
}
.scn-matrena-bribes-police .hand-money {
  position: absolute;
  bottom: 35%; left: 30%;
  width: 14px; height: 12px;
  background: linear-gradient(135deg, #8a7050 0%, #6a5038 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 6px #a08860;
  animation: mb-hand 3s ease-in-out infinite alternate;
}
.scn-matrena-bribes-police .table {
  position: absolute;
  bottom: 25%; left: 20%; right: 25%;
  height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: mb-table 9s ease-in-out infinite;
}
.scn-matrena-bribes-police .candle {
  position: absolute;
  top: 35%; left: 50%;
  width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #d09060;
  animation: mb-candle 2.5s ease-in-out infinite alternate;
}
@keyframes mb-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mb-halo {
  0% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.3; }
  50% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.4; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.35; }
}
@keyframes mb-figL {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(3px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mb-figR {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(-3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mb-hand {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes mb-table {
  0%, 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
}
@keyframes mb-candle {
  0% { box-shadow: 0 0 15px 6px #d09060; opacity: 0.85; }
  50% { box-shadow: 0 0 25px 12px #e0a070; opacity: 1; }
  100% { box-shadow: 0 0 18px 8px #d09060; opacity: 0.9; }
}

/* --- Scene 3: trusting-rouletabille --- */
.scn-trusting-rouletabille {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #4a3828 80%, #2a1e14 100%),
    radial-gradient(ellipse at 50% 70%, #5a4030 0%, transparent 70%);
}
.scn-trusting-rouletabille .bg-warm {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 100%);
  box-shadow: inset 0 6px 30px rgba(0,0,0,0.4);
  animation: tr-bg 14s ease-in-out infinite alternate;
}
.scn-trusting-rouletabille .glow {
  position: absolute;
  top: 25%; left: 40%;
  width: 120px; height: 130px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,150,80,0.25) 0%, rgba(200,150,80,0.05) 40%, transparent 70%);
  filter: blur(12px);
  animation: tr-glow 7s ease-in-out infinite alternate;
}
.scn-trusting-rouletabille .figure-left {
  position: absolute;
  bottom: 28%; left: 18%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tr-figL 5s ease-in-out infinite;
}
.scn-trusting-rouletabille .figure-right {
  position: absolute;
  bottom: 28%; right: 22%;
  width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1e12 0%, #120e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tr-figR 4.5s ease-in-out infinite reverse;
}
.scn-trusting-rouletabille .handshake {
  position: absolute;
  bottom: 38%; left: 35%; right: 35%;
  height: 10px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 20% 20% 10% 10%;
  transform: scaleX(0.8);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: tr-hand 3s ease-in-out infinite alternate;
}
.scn-trusting-rouletabille .table {
  position: absolute;
  bottom: 28%; left: 25%; right: 30%;
  height: 6px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: tr-table 10s ease-in-out infinite;
}
.scn-trusting-rouletabille .candle {
  position: absolute;
  top: 30%; left: 55%;
  width: 7px; height: 24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 6px #d09060, 0 0 30px 12px #c08050;
  animation: tr-candle 2.8s ease-in-out infinite alternate;
}
@keyframes tr-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes tr-glow {
  0% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.25; }
  50% { transform: translate(-50%, -50%) scale(1.05); opacity: 0.35; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
}
@keyframes tr-figL {
  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 tr-figR {
  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 tr-hand {
  0% { transform: scaleX(0.8) translateY(0); }
  50% { transform: scaleX(0.85) translateY(-1px); }
  100% { transform: scaleX(0.8) translateY(0); }
}
@keyframes tr-table {
  0%, 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
}
@keyframes tr-candle {
  0% { box-shadow: 0 0 12px 4px #d09060, 0 0 25px 10px #c08050; opacity: 0.85; }
  50% { box-shadow: 0 0 20px 8px #e0a070, 0 0 35px 14px #d09060; opacity: 1; }
  100% { box-shadow: 0 0 14px 5px #d09060, 0 0 28px 12px #c08050; opacity: 0.9; }
}

/* --- Scene 4: dinner-with-friends --- */
.scn-dinner-with-friends {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 30%, #c8b898 60%, #a89878 100%),
    radial-gradient(ellipse at 50% 100%, #e8d8b8 0%, transparent 70%);
}
.scn-dinner-with-friends .bg-room {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 100%);
  box-shadow: inset 0 4px 20px rgba(80,60,40,0.2);
  animation: df-room 20s ease-in-out infinite alternate;
}
.scn-dinner-with-friends .table {
  position: absolute;
  bottom: 25%; left: 15%; right: 15%;
  height: 10px;
  background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: df-table 12s ease-in-out infinite;
}
.scn-dinner-with-friends .chandelier {
  position: absolute;
  top: 10%; left: 50%;
  width: 50px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, #c8b080 60%, #a09070 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px #d0b890, 0 0 80px 40px #b8a080;
  animation: df-chandelier 6s ease-in-out infinite alternate;
}
.scn-dinner-with-friends .figure-left {
  position: absolute;
  bottom: 25%; left: 20%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: df-figL 5s ease-in-out infinite;
}
.scn-dinner-with-friends .figure-right {
  position: absolute;
  bottom: 25%; right: 20%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: df-figR 5.5s ease-in-out infinite reverse;
}
.scn-dinner-with-friends .figure-center {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 28px; height: 54px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e12 0%, #120e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: df-figC 4.5s ease-in-out infinite;
}
.scn-dinner-with-friends .plate {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 20px; height: 8px;
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: df-plate 8s ease-in-out infinite alternate;
}
@keyframes df-room {
  0% { opacity: 1; }
  50% { opacity: 0.95; }
  100% { opacity: 1; }
}
@keyframes df-table {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(0.97); }
}
@keyframes df-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); }
}
@keyframes df-figL {
  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(0); }
}
@keyframes df-figR {
  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(0); }
}
@keyframes df-figC {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-50%) rotate(2deg) scale(1.01); }
  50% { transform: translateX(-50%) rotate(0); }
  75% { transform: translateX(-50%) rotate(-2deg) scale(0.99); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes df-plate {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

/* sleigh-ride-through-moscow */
.scn-sleigh-ride-through-moscow {
  background: linear-gradient(180deg, #1b1d3a 0%, #2a2a5c 30%, #4a3a5a 60%, #5c4040 80%, #3a2a2a 100%), radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 60%);
}
.scn-sleigh-ride-through-moscow .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5a 40%, #4a3a5a 80%, #6a4a3a 100%);
  animation: sl-sky 12s ease-in-out infinite alternate;
}
.scn-sleigh-ride-through-moscow .snow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 40%, #0a1a1a 100%);
  border-radius: 70% 70% 0 0;
  animation: sl-snow 6s ease-in-out infinite;
}
.scn-sleigh-ride-through-moscow .horse {
  position: absolute; bottom: 35%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 20% 30%;
  transform-origin: center bottom;
  animation: sl-horse 0.6s ease-in-out infinite;
}
.scn-sleigh-ride-through-moscow .sleigh {
  position: absolute; bottom: 30%; left: 32%; width: 80px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 40% 20% 30%;
  transform-origin: center bottom;
  animation: sl-sleigh 0.8s ease-in-out infinite;
}
.scn-sleigh-ride-through-moscow .driver {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sl-figure 1s ease-in-out infinite alternate;
}
.scn-sleigh-ride-through-moscow .matrena {
  position: absolute; bottom: 36%; left: 48%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sl-figure 1.2s ease-in-out infinite alternate;
}
.scn-sleigh-ride-through-moscow .lantern {
  position: absolute; bottom: 38%; left: 36%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0c060 30%, #c08030 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.4);
  animation: sl-lantern 2s ease-in-out infinite alternate;
}
.scn-sleigh-ride-through-moscow .snowflakes {
  position: absolute; inset: 0;
  background: radial-gradient(4px 4px at 10% 20%, rgba(255,255,255,0.6) 0%, transparent 100%),
              radial-gradient(3px 3px at 30% 50%, rgba(255,255,255,0.4) 0%, transparent 100%),
              radial-gradient(5px 5px at 70% 15%, rgba(255,255,255,0.5) 0%, transparent 100%),
              radial-gradient(3px 3px at 90% 40%, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: sl-snowflakes 5s linear infinite;
}

@keyframes sl-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sl-snow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sl-horse { 0% { transform: rotate(-2deg) scaleX(1); } 25% { transform: rotate(0deg) scaleX(1.02); } 50% { transform: rotate(2deg) scaleX(1); } 75% { transform: rotate(0deg) scaleX(0.98); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes sl-sleigh { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sl-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sl-lantern { 0% { box-shadow: 0 0 15px 4px #f0c060, 0 0 30px 8px rgba(240,192,96,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 8px #ffd080, 0 0 60px 16px rgba(255,208,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #f0c060, 0 0 35px 10px rgba(240,192,96,0.4); opacity: 0.9; } }
@keyframes sl-snowflakes { 0% { background-position: 0 0, 0 0, 0 0, 0 0; } 100% { background-position: -10px 300px, -20px 400px, 5px 350px, -15px 500px; } }

/* women-at-place-rouge */
.scn-women-at-place-rouge {
  background: linear-gradient(180deg, #1a1a38 0%, #2a2a50 40%, #3a2a4a 70%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 80%);
}
.scn-women-at-place-rouge .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 50%, #5a3a3a 100%);
  animation: wr-sky 10s ease-in-out infinite alternate;
}
.scn-women-at-place-rouge .buildings {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 20%, #1a1a1a 40%, #3a2a2a 60%, #1a1a1a 80%, #2a2a2a 100%);
  clip-path: polygon(0% 100%, 10% 40%, 15% 40%, 20% 60%, 30% 50%, 35% 50%, 45% 30%, 55% 30%, 65% 45%, 75% 20%, 85% 20%, 92% 35%, 100% 30%, 100% 100%);
}
.scn-women-at-place-rouge .square {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-women-at-place-rouge .statue {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(200,180,150,0.3);
}
.scn-women-at-place-rouge .women-knot {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, #1a0a0a 70%, transparent 100%);
  border-radius: 50%;
  animation: wr-scatter 4s ease-in-out infinite;
}
.scn-women-at-place-rouge .carriage {
  position: absolute; bottom: 18%; left: 55%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: wr-carriage 6s ease-in-out infinite;
}
.scn-women-at-place-rouge .feodor {
  position: absolute; bottom: 22%; left: 60%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wr-feodor 1s ease-in-out infinite alternate;
}
.scn-women-at-place-rouge .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: wr-veil 8s ease-in-out infinite alternate;
}

@keyframes wr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wr-scatter { 0% { transform: translateX(0) scaleX(1); opacity: 0.8; } 20% { transform: translateX(20px) scaleX(0.9); opacity: 0.6; } 40% { transform: translateX(-15px) scaleX(1.1); opacity: 0.4; } 60% { transform: translateX(30px) scaleX(0.8); opacity: 0.2; } 100% { transform: translateX(50px) scaleX(0.5); opacity: 0; } }
@keyframes wr-carriage { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes wr-feodor { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes wr-veil { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* soldiers-beating-prisoners */
.scn-soldiers-beating-prisoners {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 70%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 60%);
}
.scn-soldiers-beating-prisoners .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a1a1a 100%);
  animation: sb-sky 15s ease-in-out infinite alternate;
}
.scn-soldiers-beating-prisoners .house-left {
  position: absolute; bottom: 20%; left: 0; width: 40%; height: 70%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(0 100%, 0 30%, 20% 30%, 20% 45%, 30% 45%, 30% 30%, 45% 30%, 45% 100%);
}
.scn-soldiers-beating-prisoners .house-right {
  position: absolute; bottom: 20%; right: 0; width: 35%; height: 65%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  clip-path: polygon(100% 100%, 100% 25%, 85% 25%, 85% 40%, 75% 40%, 75% 25%, 60% 25%, 60% 100%);
}
.scn-soldiers-beating-prisoners .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-soldiers-beating-prisoners .soldier-1 {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sb-soldier 0.8s ease-in-out infinite;
}
.scn-soldiers-beating-prisoners .soldier-2 {
  position: absolute; bottom: 23%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sb-soldier 1s ease-in-out infinite;
}
.scn-soldiers-beating-prisoners .prisoner-adult {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sb-prisoner 2s ease-in-out infinite alternate;
}
.scn-soldiers-beating-prisoners .child-ground {
  position: absolute; bottom: 10%; left: 38%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  animation: sb-child 1.5s ease-in-out infinite;
}
.scn-soldiers-beating-prisoners .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(150,150,180,0.08) 0%, transparent 70%);
  animation: sb-mist 10s ease-in-out infinite alternate;
}

@keyframes sb-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.8; } }
@keyframes sb-soldier { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes sb-prisoner { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sb-child { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes sb-mist { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* child-with-revolver */
.scn-child-with-revolver {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 80%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-child-with-revolver .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, #1a1a2a 0%, #0a0a1a 100%);
  animation: cr-bg 12s ease-in-out infinite alternate;
}
.scn-child-with-revolver .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-child-with-revolver .child-silhouette {
  position: absolute; bottom: 10%; left: 25%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 40% 30% 30% / 80% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cr-child 2s ease-in-out infinite alternate;
}
.scn-child-with-revolver .revolver {
  position: absolute; bottom: 25%; left: 32%; width: 16px; height: 6px;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 50%, #2a2a3a 100%);
  border-radius: 10% 30% 30% 10%;
  transform-origin: 100% 50%;
  animation: cr-revolver 2s ease-in-out infinite alternate;
}
.scn-child-with-revolver .soldier-left {
  position: absolute; bottom: 15%; left: 10%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: cr-soldier 3s ease-in-out infinite;
}
.scn-child-with-revolver .soldier-right {
  position: absolute; bottom: 18%; right: 15%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: cr-soldier 3.5s ease-in-out infinite;
}
.scn-child-with-revolver .muzzle-flash {
  position: absolute; bottom: 26%; left: 28%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #f0a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,160,64,0.6);
  opacity: 0;
  animation: cr-flash 2s ease-in-out infinite;
}

@keyframes cr-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cr-child { 0% { transform: translateY(0) rotate(-3deg) scaleX(1); } 50% { transform: translateY(-3px) rotate(3deg) scaleX(0.95); } 100% { transform: translateY(0) rotate(-3deg) scaleX(1); } }
@keyframes cr-revolver { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cr-soldier { 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 cr-flash { 0% { opacity: 0; transform: scale(0.5); } 20% { opacity: 1; transform: scale(1.2); } 40% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0; transform: scale(0.5); } }

.scn-the-third-attack-bouquet {
  background: linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #1e1a18 100%),
              radial-gradient(circle at 30% 70%, #3a2e28 0%, transparent 80%);
}
.scn-the-third-attack-bouquet .tb-bg { position:absolute; inset:0; background: linear-gradient(90deg, #2a2420 0%, #3a322c 50%, #2a2420 100%); animation: tb-shimmer 12s ease-in-out infinite; }
.scn-the-third-attack-bouquet .tb-clock { position:absolute; top:15%; left:55%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%); box-shadow: inset 0 -6px 12px #1a1410, 0 4px 8px rgba(0,0,0,.6); transform: rotate(10deg); }
.scn-the-third-attack-bouquet .tb-hand { position:absolute; top:15%; left:55%; width:80px; height:80px; border-radius:50%; }
.scn-the-third-attack-bouquet .tb-hand::before { content:''; position:absolute; top:50%; left:50%; width:4px; height:30px; background: #c8a878; transform-origin: 2px 100%; transform: translate(-50%,-100%) rotate(35deg); border-radius:2px; animation: tb-hand-move 6s ease-in-out infinite; }
.scn-the-third-attack-bouquet .tb-pendulum { position:absolute; top:22%; left:63%; width:10px; height:60px; background: linear-gradient(180deg, #b09070 0%, #705040 100%); border-radius:5px; transform-origin: 5px 0; animation: tb-pend-swing 3s ease-in-out infinite; }
.scn-the-third-attack-bouquet .tb-pendulum::after { content:''; position:absolute; bottom:0; left:-8px; width:26px; height:26px; border-radius:50%; background: radial-gradient(circle, #d0b080 0%, #a08060 100%); box-shadow: 0 0 10px #b09070; }
.scn-the-third-attack-bouquet .tb-silhouette { position:absolute; bottom:10%; left:10%; width:80px; height:120px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); filter: drop-shadow(0 0 6px rgba(0,0,0,.8)); animation: tb-breathe 8s ease-in-out infinite; }
.scn-the-third-attack-bouquet .tb-vase { position:absolute; bottom:12%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 12px rgba(0,0,0,.5); }
.scn-the-third-attack-bouquet .tb-bloom { position:absolute; bottom:38%; left:33%; width:20px; height:20px; border-radius:50%; background: radial-gradient(circle, #c8553d 0%, #a04030 100%); box-shadow: 0 0 12px #c8553d; animation: tb-glow 3s ease-in-out infinite alternate; }
.scn-the-third-attack-bouquet .tb-bloom::before { content:''; position:absolute; top:-10px; left:10px; width:14px; height:14px; border-radius:50%; background: radial-gradient(circle, #d07050 0%, #b05040 100%); }
.scn-the-third-attack-bouquet .tb-pulse { position:absolute; top:30%; left:20%; width:120px; height:120px; border-radius:50%; border:2px solid rgba(200,88,61,.15); transform: scale(0); animation: tb-pulse 2s ease-out infinite; }
@keyframes tb-shimmer { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes tb-hand-move { 0%,100% { transform-origin: 2px 100%; transform: translate(-50%,-100%) rotate(35deg); } 50% { transform: translate(-50%,-100%) rotate(50deg); } }
@keyframes tb-pend-swing { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes tb-breathe { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes tb-glow { 0% { box-shadow: 0 0 8px #c8553d; } 100% { box-shadow: 0 0 24px #c8553d; } }
@keyframes tb-pulse { 0% { transform: scale(0); opacity:1; } 50% { opacity:.5; } 100% { transform: scale(1.5); opacity:0; } }

.scn-the-watch-is-stopped {
  background: linear-gradient(180deg, #201c18 0%, #2c2620 40%, #201c18 100%),
              radial-gradient(circle at 60% 80%, #3a3028 0%, transparent 80%);
}
.scn-the-watch-is-stopped .ws-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1c1814 0%, #2c2520 50%, #1c1814 100%); animation: ws-dark 16s ease-in-out infinite alternate; }
.scn-the-watch-is-stopped .ws-desk { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-the-watch-is-stopped .ws-case { position:absolute; bottom:25%; left:50%; width:120px; height:120px; transform:translateX(-50%); border-radius:50%; background: radial-gradient(circle at 40% 35%, #8a7050 0%, #5a4830 70%, #3a2a1a 100%); box-shadow: 0 10px 20px rgba(0,0,0,.8); }
.scn-the-watch-is-stopped .ws-face { position:absolute; bottom:28%; left:50%; width:80px; height:80px; transform:translateX(-50%); border-radius:50%; background: radial-gradient(circle, #e8d8c0 0%, #c8b8a0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-the-watch-is-stopped .ws-hand-stop { position:absolute; bottom:44%; left:50%; width:4px; height:40px; margin-left:-2px; background: #5a4a3a; border-radius:2px; transform-origin: 2px 100%; transform: rotate(-45deg); animation: ws-stop 8s ease-in-out infinite; }
.scn-the-watch-is-stopped .ws-hand-stop::after { content:''; position:absolute; top:-4px; left:-2px; width:8px; height:8px; border-radius:50%; background: #3a2a1a; }
.scn-the-watch-is-stopped .ws-hand { position:absolute; bottom:20%; left:35%; width:60px; height:120px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ws-tremble 4s ease-in-out infinite; }
.scn-the-watch-is-stopped .ws-chain1 { position:absolute; bottom:28%; left:58%; width:10px; height:50px; border:2px solid #b09070; border-radius:50% 50% 0 0; border-bottom:0; transform: rotate(30deg); animation: ws-chain-a 6s ease-in-out infinite; }
.scn-the-watch-is-stopped .ws-chain2 { position:absolute; bottom:28%; left:58%; width:10px; height:50px; border:2px solid #b09070; border-radius:0 0 50% 50%; border-top:0; transform: rotate(-30deg); margin-top:48px; animation: ws-chain-b 6s ease-in-out infinite; }
@keyframes ws-dark { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ws-stop { 0%,100% { transform: rotate(-45deg); } 50% { transform: rotate(-43deg); } }
@keyframes ws-tremble { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(-1px,1px) rotate(-1deg); } 75% { transform: translate(1px,0) rotate(0deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ws-chain-a { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(25deg) translateY(2px); } }
@keyframes ws-chain-b { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } }

.scn-third-attack-detail {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #2a1e1a 100%),
              radial-gradient(circle at 40% 40%, #4a3228 0%, transparent 70%);
}
.scn-third-attack-detail .td-bg { position:absolute; inset:0; background: linear-gradient(90deg, #221814 0%, #342822 50%, #221814 100%); animation: td-dark 18s ease-in-out infinite; }
.scn-third-attack-detail .td-hearth { position:absolute; bottom:0; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-third-attack-detail .td-board { position:absolute; bottom:20%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: rotate(5deg); animation: td-shake 8s linear infinite; }
.scn-third-attack-detail .td-bomb { position:absolute; bottom:28%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -8px 12px #1a1410, 0 6px 12px rgba(0,0,0,.5); animation: td-wobble 5s ease-in-out infinite; }
.scn-third-attack-detail .td-fuse { position:absolute; bottom:48%; left:32%; width:3px; height:40px; background: #b09070; transform: rotate(15deg); transform-origin: bottom; animation: td-burn 8s linear infinite; }
.scn-third-attack-detail .td-spark { position:absolute; bottom:68%; left:33%; width:6px; height:6px; border-radius:50%; background: #d0a070; box-shadow: 0 0 20px #d0a070; animation: td-flare 0.8s ease-in-out infinite alternate; }
.scn-third-attack-detail .td-shadow { position:absolute; bottom:15%; left:28%; width:80px; height:20px; background: rgba(0,0,0,.6); border-radius:50%; filter: blur(6px); animation: td-shadow-move 5s ease-in-out infinite; }
.scn-third-attack-detail .td-moan { position:absolute; top:20%; left:50%; width:100px; height:60px; border-radius:50%; border:2px solid rgba(200,100,60,.15); transform:scale(0); animation: td-moan-pulse 6s ease-out infinite; }
@keyframes td-dark { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes td-shake { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(-2px); } 75% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes td-wobble { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes td-burn { 0% { transform: rotate(15deg) scaleY(1); } 100% { transform: rotate(15deg) scaleY(0.6); } }
@keyframes td-flare { 0% { transform: scale(0.5); opacity:.3; } 100% { transform: scale(1.5); opacity:1; } }
@keyframes td-shadow-move { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.9); } }
@keyframes td-moan-pulse { 0% { transform: scale(0); opacity:.6; } 50% { transform: scale(1.5); opacity:.3; } 100% { transform: scale(0); opacity:0; } }

.scn-natacha-was-absent {
  background: linear-gradient(180deg, #1e1a22 0%, #2c262e 40%, #1e1a22 100%),
              radial-gradient(circle at 50% 40%, #3a2e38 0%, transparent 70%);
}
.scn-natacha-was-absent .nw-bg { position:absolute; inset:0; background: linear-gradient(90deg, #1c1820 0%, #2c2630 50%, #1c1820 100%); animation: nw-dim 20s ease-in-out infinite alternate; }
.scn-natacha-was-absent .nw-chair { position:absolute; bottom:30%; left:20%; width:100px; height:120px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%); border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-natacha-was-absent .nw-chair::before { content:''; position:absolute; top:0; left:50%; width:80px; height:20px; transform:translateX(-50%); background: #3a2a2a; border-radius:40% 40% 0 0; }
.scn-natacha-was-absent .nw-coat { position:absolute; bottom:32%; left:18%; width:60px; height:80px; background: linear-gradient(180deg, #5a4840 0%, #3a2a20 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(5deg); animation: nw-sway 6s ease-in-out infinite; }
.scn-natacha-was-absent .nw-door { position:absolute; top:10%; right:10%; width:80px; height:180px; background: linear-gradient(180deg, #504038 0%, #3a2a22 100%); border-radius:4px 4px 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-natacha-was-absent .nw-door-shadow { position:absolute; top:10%; right:10%; width:80px; height:180px; background: rgba(0,0,0,.4); clip-path: polygon(0 0, 20% 0, 20% 100%, 0 100%); animation: nw-creak 12s ease-in-out infinite; }
.scn-natacha-was-absent .nw-figure { position:absolute; bottom:20%; right:15%; width:50px; height:100px; background: linear-gradient(180deg, #1a1614 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); animation: nw-ghost 8s ease-in-out infinite; }
.scn-natacha-was-absent .nw-frame { position:absolute; top:20%; left:15%; width:60px; height:70px; border:4px solid #7a6a5a; background: #3a2e28; border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-natacha-was-absent .nw-arms { position:absolute; bottom:20%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: transparent; border-bottom: 6px solid #5a4a3a; border-radius: 0 0 50% 50%; animation: nw-embrace 12s ease-in-out infinite; }
@keyframes nw-dim { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes nw-sway { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(2px); } }
@keyframes nw-creak { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes nw-ghost { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-4px); } }
@keyframes nw-embrace { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } }

.scn-saved-by-ipecac {
  background: linear-gradient(180deg, #6b4a3a 0%, #4a3020 60%, #2a1a10 100%),
              radial-gradient(ellipse at 30% 20%, #d4a070 0%, transparent 70%);
}
.scn-saved-by-ipecac .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #5c3c2c 0%, #3e261a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-saved-by-ipecac .room-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1e1410 0%, #2a1c14 80%, #34221a 100%);
}
.scn-saved-by-ipecac .figure-feodor {
  position: absolute; bottom:30%; left:25%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: si-feodor 8s ease-in-out infinite;
}
.scn-saved-by-ipecac .figure-matrena {
  position: absolute; bottom:30%; right:20%; width:28px; height:48px;
  background: linear-gradient(180deg, #3a2620 0%, #1e1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: si-matrena 6s ease-in-out infinite;
}
.scn-saved-by-ipecac .matrena-head {
  position: absolute; bottom:68%; right:23%; width:14px; height:14px;
  background: radial-gradient(circle, #c8553d 0%, #8a3a2a 70%, #5a1a14 100%);
  border-radius: 50%;
  animation: si-head-1 3s ease-in-out infinite alternate;
}
.scn-saved-by-ipecac .packet {
  position: absolute; bottom:48%; right:35%; width:10px; height:8px;
  background: #d4a070;
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px 4px #c88450, 0 0 24px 8px rgba(200,132,80,0.4);
  animation: si-packet 3s ease-in-out infinite;
}
.scn-saved-by-ipecac .medicine-chest {
  position: absolute; top:10%; left:10%; width:40px; height:30px;
  background: linear-gradient(180deg, #5c3c2c 0%, #38281a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
}
.scn-saved-by-ipecac .light-halo {
  position: absolute; top:5%; left:50%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,150,100,0.3) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: si-halo 12s ease-in-out infinite alternate;
}
.scn-saved-by-ipecac .shadow-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,0.5) 0%, transparent 50%);
  animation: si-shadow 4s ease-in-out infinite;
}
@keyframes si-feodor {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes si-matrena {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-3px) translateY(-1px); }
  100% { transform: translateX(2px) translateY(0); }
}
@keyframes si-head-1 {
  0% { transform: scale(1) rotate(-2deg); background: radial-gradient(circle, #c8553d 0%, #8a3a2a 70%); }
  50% { transform: scale(1.15) rotate(3deg); background: radial-gradient(circle, #a03a2a 0%, #5a1a14 70%); }
  100% { transform: scale(1) rotate(-1deg); background: radial-gradient(circle, #c8553d 0%, #7a2a1a 70%); }
}
@keyframes si-packet {
  0% { transform: translateX(0) rotate(-10deg); }
  50% { transform: translateX(5px) rotate(15deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes si-halo {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-45%) scale(1.2); }
  100% { opacity: 0.8; transform: translateX(-55%) scale(0.9); }
}
@keyframes si-shadow {
  0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; }
}

.scn-koupriane-arrives {
  background: linear-gradient(180deg, #8a6a50 0%, #5a4030 60%, #302018 100%),
              radial-gradient(ellipse at 70% 30%, #d0a080 0%, transparent 60%);
}
.scn-koupriane-arrives .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #7a5840 0%, #4a3224 100%);
}
.scn-koupriane-arrives .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #1a120e 0%, #281c14 100%);
}
.scn-koupriane-arrives .group-servants {
  position: absolute; bottom:25%; left:5%; width:40px; height:35px;
  background:
    radial-gradient(ellipse 12px 20px at 10% 70%, #2a1c14 0%, transparent 100%),
    radial-gradient(ellipse 12px 20px at 30% 80%, #2a1c14 0%, transparent 100%),
    radial-gradient(ellipse 12px 20px at 60% 75%, #2a1c14 0%, transparent 100%);
  border-radius: 20% 40% 20% 40%;
  animation: ka-cluster 10s ease-in-out infinite;
}
.scn-koupriane-arrives .hero-matrena {
  position: absolute; bottom:25%; right:30%; width:26px; height:45px;
  background: linear-gradient(180deg, #3a2620 0%, #1e1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ka-hero 8s ease-in-out infinite;
}
.scn-koupriane-arrives .antidote-packet {
  position: absolute; bottom:45%; right:25%; width:8px; height:6px;
  background: #d0a080;
  border-radius: 10%;
  box-shadow: 0 0 10px 3px #b87a50, 0 0 20px 6px rgba(184,122,80,0.3);
  animation: ka-packet 4s ease-in-out infinite;
}
.scn-koupriane-arrives .chest-open {
  position: absolute; top:8%; right:10%; width:36px; height:24px;
  background: linear-gradient(180deg, #5c3c2c 0%, #3a2418 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-koupriane-arrives .lamp-glow {
  position: absolute; top:2%; left:50%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(200,150,100,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: ka-lamp 7s ease-in-out infinite alternate;
}
.scn-koupriane-arrives .edge-shadows {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: ka-edge 5s ease-in-out infinite;
}
@keyframes ka-cluster {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); }
  100% { transform: translateX(-1px) scale(0.98); }
}
@keyframes ka-hero {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ka-packet {
  0% { transform: translateY(0) rotate(-5deg); opacity:0.8; }
  50% { transform: translateY(-3px) rotate(8deg); opacity:1; }
  100% { transform: translateY(0) rotate(-2deg); opacity:0.9; }
}
@keyframes ka-lamp {
  0% { opacity: 0.5; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.8; transform: translateX(-45%) scale(1.3); }
  100% { opacity: 0.6; transform: translateX(-55%) scale(0.9); }
}
@keyframes ka-edge {
  0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; }
}

.scn-rouletabille-takes-evidence {
  background: linear-gradient(180deg, #7a5a44 0%, #4a3424 60%, #2a1a12 100%),
              radial-gradient(ellipse at 40% 50%, #d0a080 0%, transparent 70%);
}
.scn-rouletabille-takes-evidence .table {
  position: absolute; bottom:20%; left:10%; right:10%; height:20%;
  background: linear-gradient(0deg, #4a3020 0%, #5c3c28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-rouletabille-takes-evidence .flask {
  position: absolute; bottom:35%; left:40%; width:14px; height:22px;
  background: linear-gradient(180deg, rgba(180,200,180,0.3) 0%, rgba(140,160,140,0.6) 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.2);
  animation: rt-flask 6s ease-in-out infinite;
}
.scn-rouletabille-takes-evidence .glass-left {
  position: absolute; bottom:32%; left:55%; width:10px; height:12px;
  background: rgba(200,180,160,0.2);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 2px rgba(0,0,0,0.2);
  animation: rt-glass1 5s ease-in-out infinite alternate;
}
.scn-rouletabille-takes-evidence .glass-right {
  position: absolute; bottom:32%; left:65%; width:10px; height:12px;
  background: rgba(200,180,160,0.2);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 2px rgba(0,0,0,0.2);
  animation: rt-glass2 5s ease-in-out infinite alternate-reverse;
}
.scn-rouletabille-takes-evidence .ermolai-hand {
  position: absolute; bottom:38%; left:20%; width:12px; height:16px;
  background: linear-gradient(180deg, #3a2620 0%, #2a1a14 100%);
  border-radius: 30% 20% 20% 30%;
  transform-origin: bottom right;
  animation: rt-hand1 4s ease-in-out infinite;
}
.scn-rouletabille-takes-evidence .koupriane-arm {
  position: absolute; bottom:38%; right:15%; width:14px; height:20px;
  background: linear-gradient(180deg, #4a3224 0%, #2a1a12 100%);
  border-radius: 20% 30% 30% 20%;
  transform-origin: bottom left;
  animation: rt-arm 4s ease-in-out infinite alternate;
}
.scn-rouletabille-takes-evidence .splotch {
  position: absolute; bottom:30%; left:45%; width:6px; height:4px;
  background: #5a1a14;
  border-radius: 50%;
  animation: rt-splotch 8s ease-in-out infinite;
}
.scn-rouletabille-takes-evidence .shadow-under {
  position: absolute; bottom:20%; left:10%; right:10%; height:6px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: rt-shadow 7s ease-in-out infinite;
}
@keyframes rt-flask {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes rt-glass1 {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.05); }
  100% { transform: translateX(-1px) scale(0.95); }
}
@keyframes rt-glass2 {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.05); }
  100% { transform: translateX(1px) scale(0.95); }
}
@keyframes rt-hand1 {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rt-arm {
  0% { transform: rotate(0deg); } 50% { transform: rotate(-8deg); }
  100% { transform: rotate(3deg); }
}
@keyframes rt-splotch {
  0% { opacity: 0.1; } 50% { opacity: 0.4; } 100% { opacity: 0.2; }
}
@keyframes rt-shadow {
  0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; }
}

.scn-pere-alexis-lab {
  background: linear-gradient(180deg, #5a4040 0%, #3a2828 60%, #1a1010 100%),
              radial-gradient(ellipse at 50% 30%, #7a6060 0%, transparent 70%);
}
.scn-pere-alexis-lab .lab-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #4a3434 0%, #2a1c1c 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-pere-alexis-lab .window-frame {
  position: absolute; top:10%; right:5%; width:40%; height:40%;
  border: 4px solid #2a1a1a;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-pere-alexis-lab .window-sky {
  position: absolute; top:10%; right:5%; width:38%; height:38%;
  background: linear-gradient(180deg, #6880a0 0%, #405060 100%);
  border-radius: 4px;
  animation: pl-sky 30s linear infinite alternate;
}
.scn-pere-alexis-lab .bridge-out {
  position: absolute; top:35%; right:8%; width:30%; height:6%;
  background: linear-gradient(90deg, #3a2a2a 0%, #5a4a4a 50%, #3a2a2a 100%);
  border-radius: 4px;
  animation: pl-bridge 25s linear infinite;
}
.scn-pere-alexis-lab .carriage {
  position: absolute; top:38%; right:15%; width:18px; height:10px;
  background: linear-gradient(135deg, #4a3030 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pl-carriage 8s ease-in-out infinite;
}
.scn-pere-alexis-lab .rouletabille-fig {
  position: absolute; top:35%; right:25%; width:8px; height:10px;
  background: #1a1210;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pl-roulet 6s ease-in-out infinite;
}
.scn-pere-alexis-lab .coachman-fig {
  position: absolute; top:35%; right:20%; width:7px; height:9px;
  background: #2a1c14;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: pl-coach 6s ease-in-out infinite alternate;
}
.scn-pere-alexis-lab .pounding-motion {
  position: absolute; top:36%; right:27%; width:4px; height:4px;
  background: radial-gradient(circle, #8a6050 0%, transparent 60%);
  border-radius: 50%;
  animation: pl-pounding 3s ease-in-out infinite;
}
@keyframes pl-sky {
  0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes pl-bridge {
  0% { transform: translateX(0); } 50% { transform: translateX(-2px); }
  100% { transform: translateX(2px); }
}
@keyframes pl-carriage {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pl-roulet {
  0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.1); }
  100% { transform: translateY(0) scale(0.95); }
}
@keyframes pl-coach {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes pl-pounding {
  0% { transform: scale(1) translate(0,0); opacity:0.6; }
  50% { transform: scale(1.5) translate(1px,-1px); opacity:1; }
  100% { transform: scale(1) translate(0,0); opacity:0.5; }
}

/* Scene: arsenate-of-soda */
.scn-arsenate-of-soda {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b0 40%, #d4c09a 100%),
    radial-gradient(ellipse at 30% 70%, rgba(255,235,200,0.3) 0%, transparent 60%);
}
.as-wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #f2e0c8 0%, #dfc9a8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.05);
}
.as-floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b89a76 0%, #9a7d5e 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.15);
}
.as-window {
  position:absolute; top:15%; left:65%; width:100px; height:130px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0d8a0 60%, transparent 80%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 40px 15px rgba(255,248,224,0.5);
  animation: as-light 1.2s ease-in-out infinite alternate;
}
.as-table {
  position:absolute; bottom:30%; left:35%; width:120px; height:20px;
  background: linear-gradient(90deg, #6b4f3a 0%, #8b6a4e 50%, #6b4f3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.as-phial {
  position:absolute; bottom:33%; left:45%; width:16px; height:36px;
  background: linear-gradient(180deg, rgba(200,220,230,0.6) 0%, rgba(180,200,210,0.3) 100%);
  border-radius: 30% 30% 40% 40% / 20% 20% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(180,200,210,0.4);
  animation: as-glow 0.8s ease-in-out infinite alternate;
}
.as-woman {
  position:absolute; bottom:25%; left:20%; width:30px; height:80px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e15 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-tremble 0.3s ease-in-out infinite;
}
.as-shadow {
  position:absolute; bottom:22%; left:18%; width:40px; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: as-shadow-move 1.5s ease-in-out infinite alternate;
}
@keyframes as-light {
  0% { opacity:0.7; box-shadow: 0 0 30px 10px rgba(255,248,224,0.4); }
  50% { opacity:1; box-shadow: 0 0 50px 20px rgba(255,248,224,0.7); }
  100% { opacity:0.8; box-shadow: 0 0 35px 12px rgba(255,248,224,0.5); }
}
@keyframes as-glow {
  0% { opacity:0.6; box-shadow: 0 0 8px 2px rgba(180,200,210,0.3); }
  50% { opacity:1; box-shadow: 0 0 18px 6px rgba(180,200,210,0.6); }
  100% { opacity:0.7; box-shadow: 0 0 10px 3px rgba(180,200,210,0.4); }
}
@keyframes as-tremble {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(0) translateY(1px) rotate(0deg); }
  100% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
}
@keyframes as-shadow-move {
  0% { transform: translateX(0) scaleX(1); opacity:0.5; }
  50% { transform: translateX(3px) scaleX(1.1); opacity:0.7; }
  100% { transform: translateX(-2px) scaleX(0.9); opacity:0.4; }
}

/* Scene: natacha-asks-about-potion */
.scn-natacha-asks-about-potion {
  background: 
    linear-gradient(180deg, #f0e2d0 0%, #e0cdb5 50%, #c8b399 100%),
    radial-gradient(ellipse at 20% 60%, rgba(255,240,210,0.2) 0%, transparent 70%);
}
.na-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #efdcc6 0%, #dcc6ae 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.03);
}
.na-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b2967a 0%, #967c62 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
}
.na-door {
  position:absolute; top:20%; left:10%; width:80px; height:140px;
  background: linear-gradient(180deg, #6b5440 0%, #5a4533 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  transform-origin: left center;
  animation: na-door 6s ease-in-out infinite alternate;
}
.na-bed {
  position:absolute; bottom:30%; left:25%; width:100px; height:40px;
  background: linear-gradient(180deg, #c0a88a 0%, #a88e70 100%);
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.na-father {
  position:absolute; bottom:28%; left:30%; width:35px; height:60px;
  background: linear-gradient(180deg, #3d3228 0%, #2d241c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: na-rock 4s ease-in-out infinite;
}
.na-daughter {
  position:absolute; bottom:30%; left:55%; width:28px; height:65px;
  background: linear-gradient(180deg, #4a3c32 0%, #3a2e26 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-reach 3s ease-in-out infinite alternate;
}
.na-bottle {
  position:absolute; bottom:38%; left:50%; width:14px; height:30px;
  background: linear-gradient(180deg, rgba(200,210,220,0.7) 0%, rgba(150,170,190,0.4) 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 10px 3px rgba(150,170,190,0.4);
  animation: na-pulse 1.5s ease-in-out infinite alternate;
}
@keyframes na-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-15deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes na-rock {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes na-reach {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes na-pulse {
  0% { opacity:0.6; box-shadow:0 0 6px 2px rgba(150,170,190,0.3); }
  50% { opacity:1; box-shadow:0 0 16px 5px rgba(150,170,190,0.6); }
  100% { opacity:0.7; box-shadow:0 0 8px 3px rgba(150,170,190,0.4); }
}

/* Scene: pretended-departure */
.scn-pretended-departure {
  background: 
    linear-gradient(180deg, #f7efe0 0%, #ece1cd 50%, #dcd0ba 100%),
    radial-gradient(ellipse at 70% 40%, rgba(255,250,230,0.25) 0%, transparent 60%);
}
.pr-wall {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #f2e6d4 0%, #e2d4be 100%);
}
.pr-floor {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #c4aa8e 0%, #a68a6e 100%);
  border-radius: 30% 70% 0 0 / 40% 30% 0 0;
}
.pr-window {
  position:absolute; top:12%; right:15%; width:120px; height:160px;
  background: radial-gradient(ellipse at 50% 30%, #fffcf0 0%, #f0e4cc 70%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 20px 8px rgba(255,252,240,0.4);
  animation: pr-light 15s ease-in-out infinite alternate;
}
.pr-curtain {
  position:absolute; top:10%; right:12%; width:30px; height:170px;
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 100%);
  border-radius: 20% 0 0 40%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.1);
  transform-origin: top center;
  animation: pr-curtain 9s ease-in-out infinite alternate;
}
.pr-suitcase {
  position:absolute; bottom:25%; left:20%; width:60px; height:30px;
  background: linear-gradient(135deg, #6a5844 0%, #4d3f30 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: pr-settle 12s ease-in-out infinite;
}
.pr-chair {
  position:absolute; bottom:28%; left:60%; width:45px; height:50px;
  background: linear-gradient(180deg, #7a684a 0%, #5c4e36 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}
.pr-figure {
  position:absolute; bottom:24%; left:55%; width:30px; height:70px;
  background: linear-gradient(180deg, #2f2820 0%, #1f1a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-stand 8s ease-in-out infinite;
}
.pr-hat {
  position:absolute; bottom:84%; left:58%; width:28px; height:12px;
  background: linear-gradient(180deg, #3a322a 0%, #2a221c 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: pr-hat-move 10s ease-in-out infinite;
}
@keyframes pr-light {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.8; }
}
@keyframes pr-curtain {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(5deg); }
  100% { transform: skewX(0deg); }
}
@keyframes pr-settle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pr-stand {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-1deg) translateY(-1px); }
  70% { transform: rotate(1deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pr-hat-move {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

/* Scene: item-grapes-from-emperor */
.scn-item-grapes-from-emperor {
  background: 
    linear-gradient(180deg, #f4e8d4 0%, #e6d4ba 50%, #d0bea2 100%),
    radial-gradient(ellipse at 40% 30%, rgba(255,244,210,0.3) 0%, transparent 70%);
}
.gr-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f0e0cc 0%, #dcc8b0 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.03);
}
.gr-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b89a7e 0%, #9a7a5e 100%);
  border-radius: 20% 80% 0 0 / 30% 40% 0 0;
}
.gr-table {
  position:absolute; bottom:28%; left:35%; width:130px; height:15px;
  background: linear-gradient(90deg, #6b503a 0%, #8b6a4e 50%, #6b503a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.gr-bowl {
  position:absolute; bottom:32%; left:45%; width:50px; height:30px;
  background: radial-gradient(ellipse at 50% 40%, #c8b08a 0%, #a08868 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.gr-grapes {
  position:absolute; bottom:38%; left:48%; width:40px; height:36px;
  background: #5e2a3a;
  border-radius: 50%;
  box-shadow: 
    -8px -6px 0 #5e2a3a,
    6px -8px 0 #702243,
    10px 4px 0 #4a1e2a,
    -4px 8px 0 #5e2a3a,
    -14px -2px 0 #702243,
    0 12px 0 #4a1e2a,
    12px -2px 0 #5e2a3a,
    -6px 14px 0 #702243;
  animation: gr-tremble 0.4s ease-in-out infinite alternate;
}
.gr-marshal {
  position:absolute; bottom:24%; left:25%; width:34px; height:75px;
  background: linear-gradient(180deg, #3a2e22 0%, #2a2018 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: gr-reach 3s ease-in-out infinite alternate;
}
.gr-chair {
  position:absolute; bottom:26%; left:70%; width:40px; height:48px;
  background: linear-gradient(180deg, #7a6648 0%, #5c4c36 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: gr-sway 5s ease-in-out infinite;
}
@keyframes gr-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(-2deg); }
}
@keyframes gr-reach {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(-10px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes gr-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}

/* barring-the-door */
.scn-barring-the-door {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #3a2a1a 100%),
              radial-gradient(circle at 50% 60%, #c08040 0%, transparent 70%);
}
.scn-barring-the-door .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 100%); }
.scn-barring-the-door .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-barring-the-door .door { position: absolute; bottom: 20%; left: 40%; width: 20%; height: 60%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a5a 30%, #5a4a3a 70%); border-radius: 2% / 1%; box-shadow: inset 0 0 20px #3a2a1a, 0 0 10px rgba(0,0,0,0.6); }
.scn-barring-the-door .light { position: absolute; bottom: 20%; left: 39%; width: 22%; height: 8%; background: radial-gradient(ellipse, #ffd060 0%, transparent 100%); opacity: 0.6; animation: bd-light 2s ease-in-out infinite alternate; }
.scn-barring-the-door .figure { position: absolute; bottom: 22%; left: 47%; width: 10%; height: 45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-fig 4s ease-in-out infinite; }
.scn-barring-the-door .arm-left { position: absolute; bottom: 55%; left: 35%; width: 12%; height: 4%; background: #1a1a2a; border-radius: 40%; transform-origin: right center; transform: rotate(30deg); animation: bd-arm 3s ease-in-out infinite; }
.scn-barring-the-door .arm-right { position: absolute; bottom: 55%; right: 35%; width: 12%; height: 4%; background: #1a1a2a; border-radius: 40%; transform-origin: left center; transform: rotate(-30deg); animation: bd-arm 3s ease-in-out infinite reverse; }
@keyframes bd-light { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
@keyframes bd-fig { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bd-arm { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.1); } 100% { transform: rotate(25deg) scaleY(1); } }

/* desperate-dialogue */
.scn-desperate-dialogue {
  background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3a 40%, #3a3a2a 100%),
              radial-gradient(circle at 60% 70%, #d0a040 0%, transparent 60%);
}
.scn-desperate-dialogue .wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 100%); }
.scn-desperate-dialogue .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-desperate-dialogue .table { position: absolute; bottom: 18%; left: 35%; width: 30%; height: 8%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%); border-radius: 4%; }
.scn-desperate-dialogue .chair { position: absolute; bottom: 20%; left: 30%; width: 10%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: dd-chair 4s ease-in-out infinite; }
.scn-desperate-dialogue .woman { position: absolute; bottom: 30%; left: 32%; width: 8%; height: 25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-woman 5s ease-in-out infinite; }
.scn-desperate-dialogue .man { position: absolute; bottom: 28%; left: 55%; width: 10%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dd-man 6s ease-in-out infinite; }
.scn-desperate-dialogue .lamp { position: absolute; bottom: 60%; left: 65%; width: 6%; height: 10%; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.4); animation: dd-lamp 3s ease-in-out infinite alternate; }
@keyframes dd-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes dd-woman { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dd-man { 0% { transform: translateX(0); } 50% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(-2px); } }
@keyframes dd-lamp { 0% { box-shadow: 0 0 20px 5px #b08040; opacity: 0.7; } 50% { box-shadow: 0 0 40px 15px #ffd080; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08040; opacity: 0.8; } }

/* spider-web-clue */
.scn-spider-web-clue {
  background: linear-gradient(180deg, #6a7a8a 0%, #7a8a9a 30%, #9aabbb 60%, #bbc8d0 100%),
              radial-gradient(circle at 80% 20%, #e0d0a0 0%, transparent 50%);
}
.scn-spider-web-clue .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 100%); animation: swc-sky 20s linear infinite alternate; }
.scn-spider-web-clue .garden-bg { position: absolute; bottom: 0; left: 0; right: 0; height: 70%; background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 50%, #7a9a6a 100%); border-radius: 30% 30% 0 0; }
.scn-spider-web-clue .door { position: absolute; bottom: 30%; left: 20%; width: 15%; height: 50%; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); border-radius: 2% / 1%; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: swc-door 8s ease-in-out infinite; }
.scn-spider-web-clue .figure { position: absolute; bottom: 32%; left: 22%; width: 8%; height: 40%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swc-fig 6s ease-in-out infinite; }
.scn-spider-web-clue .web { position: absolute; bottom: 50%; left: 30%; width: 10%; height: 10%; background: radial-gradient(circle at center, transparent 20%, rgba(200,200,200,0.3) 20%, rgba(200,200,200,0.1) 40%, transparent 41%); border-radius: 50%; box-shadow: 0 0 5px rgba(200,200,200,0.5); animation: swc-web 4s ease-in-out infinite alternate; }
.scn-spider-web-clue .leaf-left { position: absolute; bottom: 40%; left: 10%; width: 8%; height: 6%; background: #4a6a3a; border-radius: 50% 0 50% 0; transform: rotate(20deg); animation: swc-leaf 5s ease-in-out infinite; }
.scn-spider-web-clue .leaf-right { position: absolute; bottom: 45%; right: 15%; width: 8%; height: 5%; background: #5a7a4a; border-radius: 0 50% 0 50%; transform: rotate(-30deg); animation: swc-leaf 5s ease-in-out infinite reverse; }
.scn-spider-web-clue .path { position: absolute; bottom: 0; left: 25%; width: 50%; height: 5%; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10%; }
@keyframes swc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes swc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(-2%); } 100% { transform: scaleX(0.98) translateX(1%); } }
@keyframes swc-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes swc-web { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes swc-leaf { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* swim-to-krestowsky */
.scn-swim-to-krestowsky {
  background: linear-gradient(180deg, #5a7a8a 0%, #7a9aaa 40%, #9abbcc 70%, #bbc8d0 100%),
              radial-gradient(circle at 30% 80%, #e0d0a0 0%, transparent 40%);
}
.scn-swim-to-krestowsky .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #4a6a7a 0%, #7a9aaa 100%); animation: stk-sky 15s linear infinite alternate; }
.scn-swim-to-krestowsky .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 100%); border-radius: 40% 40% 0 0; }
.scn-swim-to-krestowsky .gate { position: absolute; bottom: 25%; left: 40%; width: 20%; height: 40%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 60%, #7a6a5a 100%); border-radius: 4%; box-shadow: inset 0 0 10px rgba(0,0,0,0.7); animation: stk-gate 10s ease-in-out infinite; }
.scn-swim-to-krestowsky .figure { position: absolute; bottom: 28%; left: 42%; width: 8%; height: 35%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stk-fig 7s ease-in-out infinite; }
.scn-swim-to-krestowsky .house { position: absolute; bottom: 35%; right: 10%; width: 25%; height: 30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4%; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-swim-to-krestowsky .tree { position: absolute; bottom: 30%; left: 10%; width: 12%; height: 40%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: stk-tree 8s ease-in-out infinite alternate; }
.scn-swim-to-krestowsky .bush { position: absolute; bottom: 20%; left: 30%; width: 10%; height: 8%; background: #3a5a3a; border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: stk-bush 6s ease-in-out infinite; }
@keyframes stk-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes stk-gate { 0% { transform: scaleX(1) skewY(0deg); } 50% { transform: scaleX(1.1) skewY(2deg); } 100% { transform: scaleX(0.95) skewY(-1deg); } }
@keyframes stk-fig { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes stk-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(0.98); } }
@keyframes stk-bush { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.1); } 100% { transform: translateX(-2px) scaleX(0.95); } }

/* Scene 1: matrena-smiles-through-tears (warm, bright interior) */
.scn-matrena-smiles-through-tears {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c9a3 50%, #c4b48a 100%),
    radial-gradient(ellipse at 50% 0%, #fffae6 0%, transparent 60%);
}
.scn-matrena-smiles-through-tears .mst-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d9b8 0%, #c6b693 100%);
  animation: mst-bg 12s ease-in-out infinite alternate;
}
.scn-matrena-smiles-through-tears .mst-window-frame {
  position: absolute; bottom: 30%; left: 55%; width: 120px; height: 150px;
  border: 12px solid #7a5d3e;
  background: transparent;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: mst-frame 20s ease-in-out infinite;
}
.scn-matrena-smiles-through-tears .mst-window-sky {
  position: absolute; bottom: 30%; left: 55%; width: 120px; height: 150px;
  background: linear-gradient(180deg, #c8dce8 0%, #a0c0d0 100%);
  border-radius: 4px;
  animation: mst-sky 25s linear infinite alternate;
}
.scn-matrena-smiles-through-tears .mst-profile {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 120px;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #5a3e2b 0%, #3d2a1c 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mst-profile 5s ease-in-out infinite alternate;
}
.scn-matrena-smiles-through-tears .mst-tear {
  position: absolute; bottom: 60%; left: 42%; width: 10px; height: 6px;
  background: radial-gradient(circle, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,232,208,0.3);
  animation: mst-tear 3s ease-in-out infinite;
}
.scn-matrena-smiles-through-tears .mst-hand {
  position: absolute; bottom: 26%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a5d3e 0%, #5a3e2b 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: mst-hand 6s ease-in-out infinite alternate;
}
.scn-matrena-smiles-through-tears .mst-shadow-figure {
  position: absolute; bottom: 22%; left: 65%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  opacity: 0.6;
  animation: mst-shadow 8s ease-in-out infinite alternate;
}

@keyframes mst-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mst-frame { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mst-sky { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes mst-profile { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes mst-tear { 0% { opacity: 0.6; transform: scale(1) translateX(0); } 50% { opacity: 1; transform: scale(1.3) translateX(2px); } 100% { opacity: 0.6; transform: scale(0.8) translateX(0); } }
@keyframes mst-hand { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes mst-shadow { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-4px) scale(1.05); opacity: 0.8; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }

/* Scene 2: vodka-and-discovery (funny, bright interior) */
.scn-vodka-and-discovery {
  background:
    linear-gradient(135deg, #f5e0b0 0%, #e0c080 50%, #d0a050 100%),
    radial-gradient(circle at 20% 80%, #ffe080 0%, transparent 60%);
}
.scn-vodka-and-discovery .vad-table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: vad-table 15s ease-in-out infinite;
}
.scn-vodka-and-discovery .vad-bottle {
  position: absolute; bottom: 45%; left: 40%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a6a2a 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: vad-bottle 4s ease-in-out infinite;
}
.scn-vodka-and-discovery .vad-glass {
  position: absolute; bottom: 42%; left: 52%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #f5f0e0 0%, #d0c8b0 80%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: vad-glass 3s ease-in-out infinite alternate;
}
.scn-vodka-and-discovery .vad-arm-rouletabille {
  position: absolute; bottom: 38%; left: 25%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  transform-origin: right center;
  animation: vad-arm 5s ease-in-out infinite;
}
.scn-vodka-and-discovery .vad-hand-matrena {
  position: absolute; bottom: 40%; left: 58%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #d0b890 0%, #b89870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: vad-hand 4s ease-in-out infinite alternate;
}
.scn-vodka-and-discovery .vad-plate {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, #e8d8b8 0%, #c8a878 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: vad-plate 8s ease-in-out infinite;
}
.scn-vodka-and-discovery .vad-lamp {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #e0a030 0%, #c08020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(224,160,48,0.4);
  animation: vad-lamp 6s ease-in-out infinite alternate;
}

@keyframes vad-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes vad-bottle { 0% { transform: rotate(0deg) scale(1); } 30% { transform: rotate(5deg) scale(1.02); } 60% { transform: rotate(-3deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes vad-glass { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vad-arm { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(8px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes vad-hand { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.1); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes vad-plate { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes vad-lamp { 0% { box-shadow: 0 0 30px 10px rgba(224,160,48,0.4); } 50% { box-shadow: 0 0 50px 20px rgba(224,160,48,0.6); } 100% { box-shadow: 0 0 30px 10px rgba(224,160,48,0.4); } }

/* Scene 3: entente-cordiale-on-train (funny, bright interior) */
.scn-entente-cordiale-on-train {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #b09870 100%),
    radial-gradient(ellipse at 80% 20%, #fff0d0 0%, transparent 50%);
}
.scn-entente-cordiale-on-train .ect-compartment {
  position: absolute; inset: 10% 5% 15% 5%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: ect-comp 20s ease-in-out infinite alternate;
}
.scn-entente-cordiale-on-train .ect-window {
  position: absolute; top: 20%; left: 60%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #b8d0e0 0%, #90a8c0 100%);
  border: 10px solid #7a5d3e;
  border-radius: 8px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: ect-window 30s linear infinite alternate;
}
.scn-entente-cordiale-on-train .ect-silhouette-rouletabille {
  position: absolute; bottom: 25%; left: 20%; width: 70px; height: 110px;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #3d2a1c 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ect-rou 5s ease-in-out infinite;
}
.scn-entente-cordiale-on-train .ect-blush {
  position: absolute; bottom: 45%; left: 22%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #c8553d 0%, transparent 80%);
  border-radius: 50%;
  opacity: 0.7;
  animation: ect-blush 3s ease-in-out infinite alternate;
}
.scn-entente-cordiale-on-train .ect-silhouette-madame {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 120px;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #5a3e2b 0%, #3d2a1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ect-mad 7s ease-in-out infinite alternate;
}
.scn-entente-cordiale-on-train .ect-seat {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
  animation: ect-seat 18s ease-in-out infinite;
}
.scn-entente-cordiale-on-train .ect-curtain {
  position: absolute; top: 15%; left: 55%; width: 130px; height: 30px;
  background: linear-gradient(135deg, #b08060 0%, #906040 100%);
  border-radius: 20% 20% 0 0;
  transform: skewX(-10deg);
  animation: ect-curtain 12s ease-in-out infinite alternate;
}

@keyframes ect-comp { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ect-window { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes ect-rou { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ect-blush { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.8); } }
@keyframes ect-mad { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ect-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ect-curtain { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-5deg) translateX(5px); } 100% { transform: skewX(-10deg) translateX(0); } }

/* Scene 4: dinner-and-deception (warm, bright interior) */
.scn-dinner-and-deception {
  background:
    linear-gradient(180deg, #f0d8b8 0%, #d0b090 50%, #b09070 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0a0 0%, transparent 60%);
}
.scn-dinner-and-deception .dad-table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: dad-table 20s ease-in-out infinite;
}
.scn-dinner-and-deception .dad-plate-beef {
  position: absolute; bottom: 45%; left: 35%; width: 70px; height: 30px;
  background: radial-gradient(ellipse, #a0461a 0%, #6a3010 60%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dad-beef 6s ease-in-out infinite;
}
.scn-dinner-and-deception .dad-glass-beer {
  position: absolute; bottom: 43%; left: 50%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #f5e0a0 0%, #d0b070 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dad-beer 4s ease-in-out infinite alternate;
}
.scn-dinner-and-deception .dad-figure-matrena {
  position: absolute; bottom: 30%; left: 15%; width: 70px; height: 100px;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #7a5d3e 0%, #4a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dad-matrena 8s ease-in-out infinite alternate;
}
.scn-dinner-and-deception .dad-figure-rouletabille {
  position: absolute; bottom: 30%; left: 55%; width: 65px; height: 95px;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #5a3e2b 0%, #3d2a1c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dad-rou 7s ease-in-out infinite;
}
.scn-dinner-and-deception .dad-steam {
  position: absolute; bottom: 50%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,255,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dad-steam 5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-dinner-and-deception .dad-candle {
  position: absolute; bottom: 48%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,192,96,0.5);
  animation: dad-candle 3s ease-in-out infinite alternate;
}

@keyframes dad-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(1); } }
@keyframes dad-beef { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dad-beer { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dad-matrena { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes dad-rou { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dad-steam { 0% { opacity: 0; transform: translateY(0) scale(0.5); } 50% { opacity: 0.6; transform: translateY(-15px) scale(1.2); } 100% { opacity: 0; transform: translateY(-30px) scale(0.8); } }
@keyframes dad-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }

.scn-not-at-luncheon {
  background: linear-gradient(180deg, #b0d0e0 0%, #e0f0ff 40%, #f5e6b0 70%, #c8a060 100%);
}
.scn-not-at-luncheon .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d0e0 100%);
  animation: nl-sky 20s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .sun {
  position:absolute; top:10%; left:60%; width:40px; height:40px;
  background: radial-gradient(circle, #ffe680 0%, #ffd060 50%, transparent 70%);
  border-radius:50%;
  animation: nl-sun 12s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .hills {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 30% 70% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.3);
  animation: nl-hills 8s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .villa {
  position:absolute; bottom:30%; left:30%; width:120px; height:90px;
  background: linear-gradient(180deg, #d4b08c 0%, #a08060 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.4);
  animation: nl-villa 6s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .villa::before {
  content:''; position:absolute; top:15%; left:10%; width:20px; height:25px;
  background: radial-gradient(circle, #a0c0e0 0%, #6080a0 100%);
  border-radius: 2px;
  animation: nl-window 4s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .lodge {
  position:absolute; bottom:30%; left:65%; width:60px; height:65px;
  background: linear-gradient(180deg, #c09070 0%, #806040 100%);
  border-radius: 8% 8% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: nl-lodge 10s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .figure {
  position:absolute; bottom:28%; left:68%; width:12px; height:28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-figure 5s ease-in-out infinite;
}
.scn-not-at-luncheon .path {
  position:absolute; bottom:20%; left:30%; right:20%; height:6%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 40% 20% 0 0;
  transform: perspective(200px) rotateX(30deg);
  animation: nl-path 7s ease-in-out infinite alternate;
}
.scn-not-at-luncheon .cloud {
  position:absolute; top:12%; left:10%; width:80px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nl-cloud 40s linear infinite;
}
@keyframes nl-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nl-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 30px 10px #ffd060; } 50% { transform: translate(5px,-5px) scale(1.1); box-shadow: 0 0 50px 20px #ffe680; } 100% { transform: translate(-3px,2px) scale(0.95); box-shadow: 0 0 35px 12px #ffd060; } }
@keyframes nl-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nl-villa { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nl-window { 0% { opacity:0.7; box-shadow: 0 0 8px #6080a0; } 25% { opacity:0.9; box-shadow: 0 0 12px #80a0c0; } 50% { opacity:1; box-shadow: 0 0 16px #a0c0e0; } 75% { opacity:0.8; box-shadow: 0 0 10px #6080a0; } 100% { opacity:0.7; } }
@keyframes nl-lodge { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nl-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nl-path { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nl-cloud { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }

.scn-rouletabille-hidden-plan {
  background: linear-gradient(180deg, #c8b898 0%, #a08868 50%, #685840 100%), radial-gradient(ellipse at 50% 100%, #806050 0%, transparent 60%);
}
.scn-rouletabille-hidden-plan .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #b8a080 0%, #d0b898 30%, #c0a888 60%, #b09878 100%);
  animation: rhp-wall 15s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #705840 0%, #5a4030 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(300px) rotateX(10deg);
  animation: rhp-floor 10s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .window {
  position:absolute; top:15%; left:45%; width:80px; height:100px;
  background: radial-gradient(ellipse at center, #a0c0e0 0%, #6080a0 100%);
  border: 4px solid #604830;
  border-radius: 10% 10% 15% 15%;
  box-shadow: 0 0 40px 15px #b0d0f0;
  animation: rhp-window 8s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .lightbeam {
  position:absolute; top:10%; left:50%; width:120px; height:200px;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.05) 100%);
  transform: skewX(-15deg) rotate(5deg);
  filter: blur(10px);
  animation: rhp-lightbeam 6s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .desk {
  position:absolute; bottom:20%; left:10%; width:100px; height:30px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rhp-desk 9s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .chair {
  position:absolute; bottom:15%; left:12%; width:30px; height:40px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: rhp-chair 7s ease-in-out infinite alternate;
}
.scn-rouletabille-hidden-plan .figure {
  position:absolute; bottom:10%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rhp-figure 4s ease-in-out infinite;
}
.scn-rouletabille-hidden-plan .shadow {
  position:absolute; bottom:0; left:40%; width:60px; height:20px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rhp-shadow 5s ease-in-out infinite alternate;
}
@keyframes rhp-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes rhp-floor { 0% { transform: perspective(300px) rotateX(10deg) } 50% { transform: perspective(300px) rotateX(12deg) } 100% { transform: perspective(300px) rotateX(10deg) } }
@keyframes rhp-window { 0% { opacity:0.8; box-shadow: 0 0 30px 10px #b0d0f0; } 25% { opacity:0.9; box-shadow: 0 0 50px 20px #c0e0ff; } 50% { opacity:1; box-shadow: 0 0 70px 30px #d0f0ff; } 75% { opacity:0.9; box-shadow: 0 0 45px 15px #b0d0f0; } 100% { opacity:0.8; } }
@keyframes rhp-lightbeam { 0% { transform: skewX(-15deg) rotate(5deg); opacity:0.3 } 50% { transform: skewX(-10deg) rotate(8deg); opacity:0.7 } 100% { transform: skewX(-15deg) rotate(5deg); opacity:0.4 } }
@keyframes rhp-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rhp-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rhp-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rhp-shadow { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.2); opacity:0.5 } 100% { transform: scaleX(0.9); opacity:0.3 } }

.scn-natacha-gives-book-to-boris {
  background: linear-gradient(180deg, #90c050 0%, #c0e080 30%, #e8f0b0 60%, #f0d890 80%, #b09050 100%);
}
.scn-natacha-gives-book-to-boris .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #a0d0f0 0%, #c0e8ff 100%);
  animation: ngb-sky 18s ease-in-out infinite alternate;
}
.scn-natacha-gives-book-to-boris .sun {
  position:absolute; top:10%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 70%);
  border-radius:50%;
  animation: ngb-sun 14s ease-in-out infinite alternate;
}
.scn-natacha-gives-book-to-boris .trees {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 20% 40% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: ngb-trees 12s ease-in-out infinite alternate;
}
.scn-natacha-gives-book-to-boris .path-garden {
  position:absolute; bottom:20%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #b89060 0%, #907040 100%);
  border-radius: 20% 30% 0 0;
  transform: perspective(200px) rotateX(20deg);
  animation: ngb-path 9s ease-in-out infinite alternate;
}
.scn-natacha-gives-book-to-boris .figure-natacha {
  position:absolute; bottom:22%; left:35%; width:18px; height:38px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngb-figure1 5s ease-in-out infinite;
}
.scn-natacha-gives-book-to-boris .figure-boris {
  position:absolute; bottom:22%; left:50%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngb-figure2 7s ease-in-out infinite;
}
.scn-natacha-gives-book-to-boris .book {
  position:absolute; bottom:25%; left:43%; width:10px; height:14px;
  background: linear-gradient(180deg, #8a6040 0%, #5a4020 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ngb-book 6s ease-in-out infinite alternate;
}
.scn-natacha-gives-book-to-boris .leaf {
  position:absolute; top:35%; left:60%; width:20px; height:10px;
  background: linear-gradient(180deg, #7aaa4a 0%, #5a8a2a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: ngb-leaf 15s linear infinite;
}
@keyframes ngb-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ngb-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 40px 15px #ffc040; } 50% { transform: translate(3px,-3px) scale(1.05); box-shadow: 0 0 60px 25px #ffd060; } 100% { transform: translate(-2px,1px) scale(0.98); box-shadow: 0 0 50px 20px #ffc040; } }
@keyframes ngb-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ngb-path { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ngb-figure1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(5px) rotate(1deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ngb-figure2 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(-5px) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ngb-book { 0% { transform: translate(0,0) rotate(0deg); opacity:0.9 } 50% { transform: translate(3px,-2px) rotate(10deg); opacity:1 } 100% { transform: translate(0,0) rotate(0deg); opacity:0.9 } }
@keyframes ngb-leaf { 0% { transform: translate(0,0) rotate(0deg); opacity:0.3 } 50% { transform: translate(30px,20px) rotate(180deg); opacity:0.7 } 100% { transform: translate(60px,40px) rotate(360deg); opacity:0 } }

.scn-boris-expresses-jealousy {
  background: linear-gradient(180deg, #a0b8d0 0%, #c8d8e8 40%, #d8c8a0 70%, #a08860 100%);
}
.scn-boris-expresses-jealousy .wall-interior {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #b8a088 0%, #d0b898 40%, #c0a888 100%);
  animation: bej-wall 12s ease-in-out infinite alternate;
}
.scn-boris-expresses-jealousy .floor-interior {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #685040 0%, #4a3828 100%);
  border-radius: 20% 20% 0 0;
  transform: perspective(400px) rotateX(15deg);
  animation: bej-floor 10s ease-in-out infinite alternate;
}
.scn-boris-expresses-jealousy .window-view {
  position:absolute; top:15%; left:40%; width:100px; height:120px;
  background: radial-gradient(ellipse at center, #b0d8f0 0%, #7090b0 100%);
  border: 5px solid #604830;
  border-radius: 15% 15% 10% 10%;
  box-shadow: 0 0 60px 20px #c0e0f0;
  animation: bej-window 9s ease-in-out infinite alternate;
}
.scn-boris-expresses-jealousy .pool {
  position:absolute; bottom:20%; left:20%; width:120px; height:40px;
  background: radial-gradient(ellipse at center, #80a0c0 0%, #406080 100%);
  border-radius: 50%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: bej-pool 8s ease-in-out infinite alternate;
}
.scn-boris-expresses-jealousy .frog {
  position:absolute; bottom:22%; left:25%; width:14px; height:10px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: bej-frog 5s ease-in-out infinite;
}
.scn-boris-expresses-jealousy .figure-boris {
  position:absolute; bottom:10%; left:35%; width:22px; height:45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bej-figure 6s ease-in-out infinite;
}
.scn-boris-expresses-jealousy .reflection {
  position:absolute; bottom:5%; left:35%; width:22px; height:30px;
  background: linear-gradient(180deg, rgba(42,42,58,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: bej-reflection 7s ease-in-out infinite alternate;
}
.scn-boris-expresses-jealousy .ripple {
  position:absolute; bottom:18%; left:30%; width:30px; height:10px;
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  opacity:0;
  animation: bej-ripple 4s ease-out infinite;
}
@keyframes bej-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes bej-floor { 0% { transform: perspective(400px) rotateX(15deg) } 50% { transform: perspective(400px) rotateX(18deg) } 100% { transform: perspective(400px) rotateX(15deg) } }
@keyframes bej-window { 0% { opacity:0.8; box-shadow: 0 0 40px 12px #c0e0f0; } 50% { opacity:1; box-shadow: 0 0 80px 30px #d0f0ff; } 100% { opacity:0.85; box-shadow: 0 0 50px 15px #c0e0f0; } }
@keyframes bej-pool { 0% { transform: scaleY(1); opacity:0.7 } 50% { transform: scaleY(1.05); opacity:0.9 } 100% { transform: scaleY(1); opacity:0.75 } }
@keyframes bej-frog { 0% { transform: translateY(0) rotate(-10deg) } 25% { transform: translateY(-2px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes bej-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(5px) rotate(1deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bej-reflection { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes bej-ripple { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(2); opacity:0.2 } 100% { transform: scale(3); opacity:0 } }

/* defending-natacha */
.scn-defending-natacha {
  background: linear-gradient(180deg, #d4b896 0%, #b89a7a 50%, #8c6c4a 100%),
              radial-gradient(ellipse at 70% 40%, #f5e6c8 0%, transparent 60%);
}
.scn-defending-natacha .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d5b8 0%, #c4a888 100%);
  animation: dn-wall 10s ease-in-out infinite alternate;
}
.scn-defending-natacha .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a3020 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3);
  animation: dn-desk 14s ease-in-out infinite;
}
.scn-defending-natacha .tsar-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg) translateY(0);
  animation: dn-tsar 8s ease-in-out infinite;
}
.scn-defending-natacha .cigarette-glow {
  position: absolute; bottom: 45%; left: 38%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffa060 0%, #ff8030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 8px #ff8030, 0 0 30px 15px rgba(255,128,48,.4);
  animation: dn-glow 2s ease-in-out infinite alternate;
}
.scn-defending-natacha .papers {
  position: absolute; bottom: 15%; left: 40%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #f0e0c8 0%, #d0b898 100%);
  border-radius: 2%; box-shadow: 2px 2px 8px rgba(0,0,0,.2);
  transform: rotate(-10deg);
  animation: dn-papers 12s ease-in-out infinite;
}
.scn-defending-natacha .lamp {
  position: absolute; bottom: 50%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #b08040 0%, #806030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px #d0a060;
  animation: dn-lamp 6s ease-in-out infinite alternate;
}
@keyframes dn-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dn-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dn-tsar { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dn-glow { 0% { box-shadow: 0 0 12px 4px #ff8030,0 0 24px 10px rgba(255,128,48,.3); opacity:.7 } 50% { box-shadow: 0 0 24px 10px #ffa060,0 0 40px 20px rgba(255,160,96,.5); opacity:1 } 100% { box-shadow: 0 0 16px 6px #ff8030,0 0 32px 12px rgba(255,128,48,.35); opacity:.8 } }
@keyframes dn-papers { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes dn-lamp { 0% { opacity:.7; filter: brightness(0.8) } 50% { opacity:1; filter: brightness(1.2) } 100% { opacity:.8; filter: brightness(0.9) } }

/* natacha-is-a-saint */
.scn-natacha-is-a-saint {
  background: linear-gradient(180deg, #c4b096 0%, #a08068 50%, #705040 100%),
              radial-gradient(ellipse at 30% 50%, #ffe0c8 0%, transparent 70%);
}
.scn-natacha-is-a-saint .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #dcc8b0 0%, #b8a088 100%);
  animation: ns-wall 12s ease-in-out infinite alternate;
}
.scn-natacha-is-a-saint .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 25%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,.35);
  animation: ns-desk 16s ease-in-out infinite;
}
.scn-natacha-is-a-saint .tsar-silhouette {
  position: absolute; bottom: 18%; left: 25%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%;
  transform: rotate(3deg);
  animation: ns-tsar 9s ease-in-out infinite;
}
.scn-natacha-is-a-saint .natacha-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #3a2018 0%, #1a0e0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform: rotate(-2deg);
  animation: ns-natacha 10s ease-in-out infinite;
}
.scn-natacha-is-a-saint .halo {
  position: absolute; bottom: 55%; left: 52%; width: 90px; height: 90px;
  background: radial-gradient(circle, rgba(255,215,140,.6) 0%, rgba(255,200,120,.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ns-halo 6s ease-in-out infinite alternate;
}
.scn-natacha-is-a-saint .papers {
  position: absolute; bottom: 15%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #f0dcc0 0%, #d0b898 100%);
  border-radius: 2%; box-shadow: 2px 2px 7px rgba(0,0,0,.2);
  transform: rotate(5deg);
  animation: ns-papers 14s ease-in-out infinite;
}
.scn-natacha-is-a-saint .window {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffe8d0 0%, #d0b890 100%);
  border-radius: 4%; box-shadow: inset 0 0 20px rgba(255,200,120,.3);
  opacity: 0.6;
  animation: ns-window 20s ease-in-out infinite alternate;
}
@keyframes ns-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ns-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ns-tsar { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes ns-natacha { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ns-halo { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(0.95) } }
@keyframes ns-papers { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(1px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ns-window { 0% { opacity:.4; filter: brightness(0.8) } 50% { opacity:.7; filter: brightness(1.1) } 100% { opacity:.5; filter: brightness(0.9) } }

/* secret-of-the-fortune */
.scn-secret-of-the-fortune {
  background: linear-gradient(180deg, #c8b090 0%, #a88868 50%, #786048 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0c0 0%, transparent 60%);
}
.scn-secret-of-the-fortune .desk-surface {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #5a3f2a 0%, #3a2718 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.4);
  transform: perspective(500px) rotateX(10deg);
  animation: sf-desk 15s ease-in-out infinite;
}
.scn-secret-of-the-fortune .papers-pile {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #f0dcc0 0%, #d0b090 100%);
  border-radius: 2%; box-shadow: 3px 3px 10px rgba(0,0,0,.25);
  transform: rotate(-8deg) translateX(0);
  animation: sf-papers 10s ease-in-out infinite;
}
.scn-secret-of-the-fortune .hand-reach {
  position: absolute; bottom: 25%; right: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-15deg) translateY(-10px);
  transform-origin: bottom right;
  animation: sf-hand 5s ease-in-out infinite;
}
.scn-secret-of-the-fortune .tsar-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 150px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  opacity: 0.7;
  filter: blur(3px);
  animation: sf-shadow 8s ease-in-out infinite;
}
.scn-secret-of-the-fortune .lamp {
  position: absolute; bottom: 50%; left: 70%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #a07038 0%, #705020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 8px #c09050;
  animation: sf-lamp 5s ease-in-out infinite alternate;
}
.scn-secret-of-the-fortune .inkwell {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: sf-inkwell 20s ease-in-out infinite;
}
@keyframes sf-desk { 0% { transform: perspective(500px) rotateX(10deg) translateY(0) } 50% { transform: perspective(500px) rotateX(8deg) translateY(-2px) } 100% { transform: perspective(500px) rotateX(10deg) translateY(0) } }
@keyframes sf-papers { 0% { transform: rotate(-8deg) translateX(0) } 50% { transform: rotate(-6deg) translateX(3px) } 100% { transform: rotate(-8deg) translateX(0) } }
@keyframes sf-hand { 0% { transform: rotate(-15deg) translateY(-10px) } 50% { transform: rotate(-12deg) translateY(-15px) } 100% { transform: rotate(-15deg) translateY(-10px) } }
@keyframes sf-shadow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.8; transform: scale(1.02) } 100% { opacity:.7; transform: scale(1) } }
@keyframes sf-lamp { 0% { opacity:.8; box-shadow: 0 0 10px 5px #c09050 } 50% { opacity:1; box-shadow: 0 0 25px 12px #d0a060 } 100% { opacity:.9; box-shadow: 0 0 15px 6px #c09050 } }
@keyframes sf-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* natacha-saved-him */
.scn-natacha-saved-him {
  background: linear-gradient(180deg, #d0b898 0%, #b09070 50%, #886848 100%),
              radial-gradient(ellipse at 50% 40%, #ffe8d0 0%, transparent 60%);
}
.scn-natacha-saved-him .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0c8b0 0%, #c0a088 100%);
  animation: sh-wall 12s ease-in-out infinite alternate;
}
.scn-natacha-saved-him .table {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -8px 18px rgba(0,0,0,.35);
  animation: sh-table 18s ease-in-out infinite;
}
.scn-natacha-saved-him .tsar-figure {
  position: absolute; bottom: 15%; left: 25%; width: 75px; height: 125px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 25% 25%;
  transform: rotate(5deg) scaleX(-1);
  animation: sh-tsar 7s ease-in-out infinite;
}
.scn-natacha-saved-him .rouletabille-figure {
  position: absolute; bottom: 15%; right: 25%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 35% 35% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-4deg);
  animation: sh-rouletabille 9s ease-in-out infinite;
}
.scn-natacha-saved-him .papers {
  position: absolute; bottom: 15%; left: 45%; width: 90px; height: 55px;
  background: linear-gradient(135deg, #f0dcc0 0%, #d0b090 100%);
  border-radius: 2%; box-shadow: 2px 2px 8px rgba(0,0,0,.2);
  transform: rotate(-3deg);
  animation: sh-papers 13s ease-in-out infinite;
}
.scn-natacha-saved-him .window-light {
  position: absolute; top: 5%; left: 40%; width: 100px; height: 80px;
  background: radial-gradient(ellipse, rgba(255,225,180,.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: sh-window 22s ease-in-out infinite alternate;
}
@keyframes sh-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sh-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sh-tsar { 0% { transform: rotate(5deg) scaleX(-1) translateY(0) } 50% { transform: rotate(3deg) scaleX(-1) translateY(-3px) } 100% { transform: rotate(5deg) scaleX(-1) translateY(0) } }
@keyframes sh-rouletabille { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes sh-papers { 0% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(2px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes sh-window { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(0.95) } }

.scn-five-minutes-granted {
  background: linear-gradient(180deg, #1a120a 0%, #2a1f10 40%, #3a2815 100%),
              radial-gradient(ellipse at 60% 30%, #4a3020 0%, transparent 70%);
}
.scn-five-minutes-granted .wall          { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #2a1f10 0%, #1a120a 100%); }
.scn-five-minutes-granted .floor         { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a120a 0%, #2a1f10 100%); }
.scn-five-minutes-granted .window        { position:absolute; top:15%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border:3px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: fmg-window 4s ease-in-out infinite alternate; }
.scn-five-minutes-granted .figure        { position:absolute; bottom:22%; left:30%; width:40px; height:70px; background: radial-gradient(ellipse at 50% 30%, #1a120a 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmg-figure 3s ease-in-out infinite; }
.scn-five-minutes-granted .balalaika-body{ position:absolute; bottom:24%; left:38%; width:50px; height:30px; background: #6a4a2a; border-radius:50% 50% 40% 40%; transform: rotate(-15deg); animation: fmg-balalaika 5s ease-in-out infinite; }
.scn-five-minutes-granted .balalaika-neck{ position:absolute; bottom:26%; left:43%; width:5px; height:40px; background: #5a3a1a; border-radius:2px; transform: rotate(-15deg); transform-origin: bottom center; animation: fmg-balalaika 5s ease-in-out infinite; }
.scn-five-minutes-granted .lamp-base     { position:absolute; bottom:15%; left:15%; width:20px; height:30px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:4px 4px 10px 10px; }
.scn-five-minutes-granted .lamp-glow     { position:absolute; bottom:18%; left:15%; width:30px; height:30px; background: radial-gradient(circle, #ffd070 0%, #b08030 50%, transparent 100%); border-radius:50%; animation: fmg-lamp 2s ease-in-out infinite alternate; }
@keyframes fmg-window   { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fmg-figure   { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(-2px) rotate(1deg) } 75% { transform: translateX(1px) rotate(-0.5deg) } }
@keyframes fmg-balalaika{ 0%,100% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.02) } }
@keyframes fmg-lamp     { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-michael-was-traitor {
  background: linear-gradient(90deg, #0d0a08 0%, #1a1210 40%, #0d0a08 100%),
              radial-gradient(ellipse at 30% 50%, #2a1a10 0%, transparent 70%);
}
.scn-michael-was-traitor .bg-back        { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); }
.scn-michael-was-traitor .bg-mid         { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #2a1a10 0%, #1a1210 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-michael-was-traitor .barred-window  { position:absolute; top:12%; left:20%; width:60px; height:80px; background: #2a2a3a; border:2px solid #4a3a2a; border-radius:3px; box-shadow: inset 0 0 10px rgba(0,0,0,0.9); }
.scn-michael-was-traitor .figure         { position:absolute; bottom:20%; left:50%; width:35px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #1a1210 0%, #0a0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mwt-figure 4s ease-in-out infinite; }
.scn-michael-was-traitor .noose-circle   { position:absolute; top:8%; left:50%; width:20px; height:20px; margin-left:-10px; background: transparent; border:3px solid #5a3a2a; border-radius:50%; animation: mwt-noose 6s ease-in-out infinite; }
.scn-michael-was-traitor .noose-rope     { position:absolute; top:18%; left:50%; width:3px; height:50px; margin-left:-1.5px; background: #5a3a2a; transform-origin: top center; animation: mwt-noose 6s ease-in-out infinite; }
.scn-michael-was-traitor .candle-base    { position:absolute; bottom:10%; left:15%; width:12px; height:20px; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 100%); border-radius:2px; }
.scn-michael-was-traitor .candle-flame   { position:absolute; bottom:20%; left:15%; width:6px; height:12px; margin-left:-3px; background: radial-gradient(circle, #ffb030 0%, #d08020 50%, transparent 100%); border-radius:50% 50% 40% 40%; animation: mwt-candle 1.5s ease-in-out infinite alternate; }
.scn-michael-was-traitor .shadow         { position:absolute; bottom:18%; left:40%; width:50px; height:60px; background: rgba(0,0,0,0.4); border-radius:40% 50% 30% 40% / 30% 50% 50% 30%; filter: blur(8px); animation: mwt-shadow 4s ease-in-out infinite; }
@keyframes mwt-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-48%) rotate(1deg) } 60% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes mwt-noose  { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateX(2px) } 75% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes mwt-candle { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(0.95) } }
@keyframes mwt-shadow { 0%,100% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.05) } }

.scn-i-cling-to-life {
  background: linear-gradient(135deg, #0d0a08 0%, #1a1210 40%, #0d0a08 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a10 0%, transparent 70%);
}
.scn-i-cling-to-life .bg-wall   { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); }
.scn-i-cling-to-life .arm       { position:absolute; bottom:20%; left:45%; width:20px; height:120px; background: linear-gradient(180deg, #0a0805 0%, #1a1210 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: icl-arm 2s ease-in-out infinite; }
.scn-i-cling-to-life .hand      { position:absolute; bottom:82%; left:45%; width:30px; height:30px; margin-left:-5px; background: radial-gradient(circle, #1a1210 0%, #0a0805 100%); border-radius:50%; animation: icl-hand 3s ease-in-out infinite; }
.scn-i-cling-to-life .candle-base   { position:absolute; bottom:5%; left:20%; width:14px; height:25px; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 100%); border-radius:2px; }
.scn-i-cling-to-life .candle-flame  { position:absolute; bottom:15%; left:20%; width:8px; height:15px; margin-left:-4px; background: radial-gradient(circle, #ffb030 0%, #d08020 50%, transparent 100%); border-radius:50% 50% 40% 40%; animation: icl-candle 1.2s ease-in-out infinite alternate; }
.scn-i-cling-to-life .noose-circle  { position:absolute; top:5%; left:50%; width:25px; height:25px; margin-left:-12.5px; background: transparent; border:3px solid #5a3a2a; border-radius:50%; animation: icl-noose 7s ease-in-out infinite; }
.scn-i-cling-to-life .noose-rope    { position:absolute; top:15%; left:50%; width:3px; height:80px; margin-left:-1.5px; background: #5a3a2a; transform-origin: top center; animation: icl-noose 7s ease-in-out infinite; }
.scn-i-cling-to-life .shadow        { position:absolute; bottom:18%; left:35%; width:60px; height:40px; background: rgba(0,0,0,0.3); border-radius:40% 50% 30% 40% / 20% 40% 60% 40%; filter: blur(6px); animation: icl-shadow 3s ease-in-out infinite; }
@keyframes icl-arm   { 0%,100% { transform: rotate(0deg) } 30% { transform: rotate(2deg) } 60% { transform: rotate(-1deg) } }
@keyframes icl-hand  { 0%,100% { transform: scale(1) } 30% { transform: scale(1.05) rotate(5deg) } 60% { transform: scale(0.95) rotate(-3deg) } }
@keyframes icl-candle{ 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) translateY(-2px) } 100% { opacity:0.8; transform: scale(0.9) } }
@keyframes icl-noose { 0%,100% { transform: rotate(0deg) } 20% { transform: rotate(3deg) translateX(3px) } 80% { transform: rotate(-2deg) translateX(-2px) } }
@keyframes icl-shadow{ 0%,100% { opacity:0.2; transform: scale(1) } 50% { opacity:0.4; transform: scale(1.1) } }

.scn-bargaining-for-natacha {
  background: linear-gradient(135deg, #0d0a08 0%, #1a1210 50%, #0d0a08 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a10 0%, transparent 70%);
}
.scn-bargaining-for-natacha .bg           { position:absolute; inset:0; background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%); }
.scn-bargaining-for-natacha .stool        { position:absolute; bottom:8%; left:50%; width:50px; height:15px; margin-left:-25px; background: #3a2a1a; border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: bfn-stool 3s ease-in-out infinite; }
.scn-bargaining-for-natacha .figure-torso { position:absolute; bottom:15%; left:50%; width:30px; height:60px; margin-left:-15px; background: radial-gradient(ellipse at 50% 30%, #1a1210 0%, #0a0805 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bfn-figure 4s ease-in-out infinite; }
.scn-bargaining-for-natacha .figure-head  { position:absolute; bottom:38%; left:50%; width:25px; height:25px; margin-left:-12.5px; background: radial-gradient(circle, #1a1210 0%, #0a0805 100%); border-radius:50%; animation: bfn-figure 4s ease-in-out infinite; }
.scn-bargaining-for-natacha .noose-circle { position:absolute; top:5%; left:50%; width:20px; height:20px; margin-left:-10px; background: transparent; border:3px solid #5a3a2a; border-radius:50%; animation: bfn-noose 6s ease-in-out infinite; }
.scn-bargaining-for-natacha .noose-rope   { position:absolute; top:15%; left:50%; width:3px; height:70px; margin-left:-1.5px; background: #5a3a2a; transform-origin: top center; animation: bfn-noose 6s ease-in-out infinite; }
.scn-bargaining-for-natacha .spotlight    { position:absolute; bottom:0; left:30%; width:40%; height:70%; background: radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.08) 0%, transparent 60%); pointer-events:none; animation: bfn-spotlight 5s ease-in-out infinite alternate; }
@keyframes bfn-stool   { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } }
@keyframes bfn-figure  { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes bfn-noose   { 0%,100% { transform: rotate(0deg) } 20% { transform: rotate(4deg) translateX(3px) } 80% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes bfn-spotlight{ 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-to-the-tsar { background: linear-gradient(180deg, #f0e0c8 0%, #d4bc9a 40%, #b89878 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%); }
.scn-to-the-tsar .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e8d4b8 0%, #d4bc9a 100%); }
.scn-to-the-tsar .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f5a 0%, #6b4f3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-to-the-tsar .door { position:absolute; bottom:20%; left:20%; width:80px; height:140px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; border: 2px solid #8b6f5a; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ttt-door 6s ease-in-out infinite; }
.scn-to-the-tsar .figure-run { position:absolute; bottom:22%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ttt-run 4s ease-in-out infinite; }
.scn-to-the-tsar .shadow { position:absolute; bottom:14%; left:10%; width:30px; height:8px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(3px); animation: ttt-shadow 4s ease-in-out infinite; }
.scn-to-the-tsar .lamp { position:absolute; top:10%; left:60%; width:12px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b07040 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,208,128,.6); animation: ttt-lamp 2s ease-in-out infinite alternate; }
.scn-to-the-tsar .dust { position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(255,248,240,.3); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,248,240,.1); animation: ttt-dust 8s linear infinite; }
@keyframes ttt-door { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ttt-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(40px) translateY(-4px) rotate(2deg); } 50% { transform: translateX(80px) translateY(0) rotate(-2deg); } 75% { transform: translateX(120px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(160px) translateY(0) rotate(0deg); } }
@keyframes ttt-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.4; } 25% { transform: translateX(40px) scaleX(.8); opacity:.3; } 50% { transform: translateX(80px) scaleX(1); opacity:.4; } 75% { transform: translateX(120px) scaleX(.9); opacity:.35; } 100% { transform: translateX(160px) scaleX(1); opacity:.4; } }
@keyframes ttt-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,208,128,.5); } 50% { box-shadow: 0 0 25px 10px rgba(255,208,128,.8); } 100% { box-shadow: 0 0 18px 6px rgba(255,208,128,.6); } }
@keyframes ttt-dust { 0% { transform: translateY(0) translateX(0); opacity:0; } 20% { opacity:.6; } 40% { transform: translateY(-20px) translateX(10px); opacity:.4; } 60% { transform: translateY(-40px) translateX(5px); opacity:.2; } 80% { opacity:.1; } 100% { transform: translateY(-60px) translateX(-10px); opacity:0; } }

.scn-journey-to-tsarskoie { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 30%, #2a2a5e 60%, #1a1a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a5e 0%, transparent 70%); }
.scn-journey-to-tsarskoie .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%); }
.scn-journey-to-tsarskoie .stars { position:absolute; top:0; left:0; width:100%; height:60%; background: radial-gradient(2px 2px at 10% 10%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 30% 30%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 50% 5%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 70% 20%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 90% 15%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 20% 50%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 40% 60%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 60% 40%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 55%, #fff 0%, transparent 100%); animation: jtt-twinkle 4s ease-in-out infinite alternate; }
.scn-journey-to-tsarskoie .road { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; }
.scn-journey-to-tsarskoie .carriage { position:absolute; bottom:30%; left:5%; width:80px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: jtt-drive 8s linear infinite; }
.scn-journey-to-tsarskoie .horse { position:absolute; bottom:32%; left:15%; width:60px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; transform: scale(1.2); animation: jtt-gallop .6s step-end infinite; }
.scn-journey-to-tsarskoie .driver { position:absolute; bottom:38%; left:8%; width:12px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30%; animation: jtt-bounce 2s ease-in-out infinite; }
.scn-journey-to-tsarskoie .tree-a { position:absolute; bottom:25%; right:10%; width:30px; height:80px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: scaleX(.6); animation: jtt-sway 10s ease-in-out infinite; }
.scn-journey-to-tsarskoie .tree-b { position:absolute; bottom:25%; right:35%; width:25px; height:60px; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: scaleX(.7); animation: jtt-sway 12s ease-in-out infinite reverse; }
@keyframes jtt-twinkle { 0%,100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes jtt-drive { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes jtt-gallop { 0% { transform: translateY(0) scale(1.2); } 50% { transform: translateY(-2px) scale(1.2); } 100% { transform: translateY(0) scale(1.2); } }
@keyframes jtt-bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes jtt-sway { 0%,100% { transform: rotate(0deg) scaleX(.6); } 50% { transform: rotate(3deg) scaleX(.6); } }

.scn-audience-with-tsar { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4bc9a 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%); }
.scn-audience-with-tsar .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f0e0c8 0%, #d4bc9a 100%); }
.scn-audience-with-tsar .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b6f5a 0%, #6b4f3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-audience-with-tsar .throne { position:absolute; bottom:25%; left:30%; width:60px; height:90px; background: linear-gradient(180deg, #b08040 0%, #8a6030 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-audience-with-tsar .tsar { position:absolute; bottom:30%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: awt-seated 4s ease-in-out infinite; }
.scn-audience-with-tsar .rouletabille { position:absolute; bottom:22%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: awt-bow 4s ease-in-out infinite; }
.scn-audience-with-tsar .chandelier { position:absolute; top:8%; left:50%; width:40px; height:30px; background: radial-gradient(circle, #ffd080 0%, #b07040 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.6); animation: awt-sway 6s ease-in-out infinite alternate; }
.scn-audience-with-tsar .window { position:absolute; top:10%; right:5%; width:50px; height:70px; background: linear-gradient(180deg, #b0c8e0 0%, #8090b0 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,.3); animation: awt-light 3s ease-in-out infinite alternate; }
@keyframes awt-seated { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes awt-bow { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(15deg) translateY(-2px); } 60% { transform: rotate(10deg) translateY(-1px); } }
@keyframes awt-sway { 0% { transform: translateX(-5px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(5px) rotate(5deg); } }
@keyframes awt-light { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .7; } }

.scn-tsar-angry { background: linear-gradient(180deg, #d4bc9a 0%, #b89878 40%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #ffe8d0 0%, transparent 70%); }
.scn-tsar-angry .chamber-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4bc9a 100%); }
.scn-tsar-angry .desk { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #8b6f5a 0%, #6b4f3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-tsar-angry .tsar-angry-fig { position:absolute; bottom:30%; left:35%; width:35px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tang-angry 2s ease-in-out infinite; }
.scn-tsar-angry .grand-marechal { position:absolute; bottom:22%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tang-bow 3s ease-in-out infinite; }
.scn-tsar-angry .document { position:absolute; bottom:25%; left:40%; width:30px; height:20px; background: #f0e0c8; border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tang-flutter 4s ease-in-out infinite; }
.scn-tsar-angry .candle { position:absolute; top:20%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #b07040 100%); border-radius: 4px; box-shadow: 0 0 20px 8px rgba(255,208,128,.7); animation: tang-flicker 1s step-end infinite; }
.scn-tsar-angry .map { position:absolute; bottom:25%; left:20%; width:40px; height:30px; background: #d4bc9a; border-radius: 4px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tang-map 8s ease-in-out infinite; }
@keyframes tang-angry { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes tang-bow { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(10deg) translateY(-2px); } 60% { transform: rotate(8deg) translateY(-1px); } }
@keyframes tang-flutter { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes tang-flicker { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes tang-map { 0%,100% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(18deg) scale(1.02); } }

.scn-natacha-mysterious-promise { background: linear-gradient(180deg, #f0e0c0 0%, #d4b896 30%, #b8a07a 70%, #8b7355 100%); }
.scn-natacha-mysterious-promise .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #c4a882 0%, #a68f6a 50%, #7a6645 100%); }
.scn-natacha-mysterious-promise .window { position:absolute; top:10%; left:45%; width:30%; height:40%; background: linear-gradient(135deg, #fff8e0 0%, #ffe8b0 50%, #ffd890 100%); border:6px solid #6b5a3e; border-radius:4px; box-shadow:0 0 30px 10px rgba(255,232,176,0.5), 0 0 60px 20px rgba(255,216,144,0.3); animation:_nmp-win 3s ease-in-out infinite alternate; }
.scn-natacha-mysterious-promise .light-beam { position:absolute; top:8%; left:48%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,248,224,0.6) 0%, rgba(255,232,176,0.3) 50%, transparent 100%); transform:skewX(-15deg) rotate(5deg); filter:blur(8px); animation:_nmp-beam 4s ease-in-out infinite; }
.scn-natacha-mysterious-promise .figure-left { position:absolute; bottom:28%; left:30%; width:14%; height:50%; background: linear-gradient(180deg, #3a2e22 0%, #221a12 50%, #0d0906 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:_nmp-left 5s ease-in-out infinite; }
.scn-natacha-mysterious-promise .figure-right { position:absolute; bottom:28%; right:30%; width:14%; height:50%; background: linear-gradient(180deg, #3a2e22 0%, #221a12 50%, #0d0906 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:_nmp-right 5s ease-in-out infinite 0.5s; }
.scn-natacha-mysterious-promise .floor-shadow { position:absolute; bottom:20%; left:15%; width:70%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%); animation:_nmp-shadow 6s ease-in-out infinite; }
@keyframes _nmp-win { 0% {opacity:0.9;box-shadow:0 0 30px 10px rgba(255,232,176,0.5)} 50% {opacity:1;box-shadow:0 0 40px 15px rgba(255,232,176,0.7)} 100% {opacity:0.8;box-shadow:0 0 20px 8px rgba(255,232,176,0.4)} }
@keyframes _nmp-beam { 0% {transform:skewX(-15deg) rotate(5deg) translateX(0)} 50% {transform:skewX(-15deg) rotate(6deg) translateX(5px)} 100% {transform:skewX(-15deg) rotate(4deg) translateX(-5px)} }
@keyframes _nmp-left { 0% {transform:rotate(2deg) scale(1)} 50% {transform:rotate(-1deg) scale(1.02)} 100% {transform:rotate(1deg) scale(0.98)} }
@keyframes _nmp-right { 0% {transform:rotate(-1deg) scale(1)} 50% {transform:rotate(2deg) scale(0.98)} 100% {transform:rotate(0deg) scale(1.02)} }
@keyframes _nmp-shadow { 0% {transform:scaleX(1);opacity:0.6} 50% {transform:scaleX(1.1);opacity:0.8} 100% {transform:scaleX(0.95);opacity:0.5} }

.scn-letter-from-annouchka { background: linear-gradient(180deg, #efe0c8 0%, #cfb894 40%, #a08860 100%); }
.scn-letter-from-annouchka .bg-room { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #dcc8a8 0%, #b8a080 50%, #8a7450 100%); }
.scn-letter-from-annouchka .door { position:absolute; top:5%; right:10%; width:25%; height:70%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 50%, #3a2a1a 100%); border:4px solid #6b5a3e; border-radius:2px; transform-origin:right center; animation:_la-door 8s ease-in-out infinite; }
.scn-letter-from-annouchka .michael-figure { position:absolute; bottom:20%; left:25%; width:16%; height:55%; background: linear-gradient(180deg, #3a3025 0%, #221a12 50%, #0d0906 100%); border-radius:50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin:bottom center; animation:_la-michael 5s ease-in-out infinite; }
.scn-letter-from-annouchka .natacha-figure { position:absolute; bottom:20%; right:35%; width:13%; height:45%; background: linear-gradient(180deg, #3a3025 0%, #221a12 50%, #0d0906 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; animation:_la-natacha 6s ease-in-out infinite 0.3s; }
.scn-letter-from-annouchka .letter { position:absolute; bottom:35%; right:45%; width:8%; height:6%; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a0 50%, #c0b080 100%); border:1px solid #8a7450; transform:rotate(10deg); animation:_la-letter 2s ease-in-out infinite alternate; }
.scn-letter-from-annouchka .hand { position:absolute; bottom:40%; left:30%; width:4%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; transform:rotate(-30deg); transform-origin:bottom; animation:_la-hand 3s ease-in-out infinite; }
@keyframes _la-door { 0% {transform:rotate(0deg) scaleY(1)} 50% {transform:rotate(3deg) scaleY(1.01)} 100% {transform:rotate(-2deg) scaleY(0.99)} }
@keyframes _la-michael { 0% {transform:rotate(1deg) scale(1)} 50% {transform:rotate(-2deg) scale(1.02)} 100% {transform:rotate(0deg) scale(0.98)} }
@keyframes _la-natacha { 0% {transform:rotate(-1deg) scale(1)} 50% {transform:rotate(2deg) scale(0.98)} 100% {transform:rotate(0deg) scale(1.02)} }
@keyframes _la-letter { 0% {transform:rotate(10deg) translateY(0)} 50% {transform:rotate(15deg) translateY(-3px)} 100% {transform:rotate(5deg) translateY(2px)} }
@keyframes _la-hand { 0% {transform:rotate(-30deg) translateY(0)} 50% {transform:rotate(-25deg) translateY(-2px)} 100% {transform:rotate(-35deg) translateY(1px)} }

.scn-story-of-natacha-mother { background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 40%, #c0a080 70%, #9a7a60 100%); }
.scn-story-of-natacha-mother .bg-nursery { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #e8d8c0 0%, #c8b098 50%, #a88870 100%); }
.scn-story-of-natacha-mother .window { position:absolute; top:8%; left:35%; width:30%; height:35%; background: linear-gradient(135deg, #fff8e0 0%, #ffe8b0 50%, #ffd890 100%); border:6px solid #7a6a50; border-radius:4px; box-shadow:0 0 30px 10px rgba(255,232,176,0.4); animation:_snm-win 7s ease-in-out infinite alternate; }
.scn-story-of-natacha-mother .crib { position:absolute; bottom:20%; left:30%; width:20%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:8% 8% 4% 4%; box-shadow:0 4px 10px rgba(0,0,0,0.3); animation:_snm-crib 8s ease-in-out infinite; }
.scn-story-of-natacha-mother .mother-silhouette { position:absolute; bottom:20%; right:20%; width:15%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #0d0603 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:_snm-mother 6s ease-in-out infinite; }
.scn-story-of-natacha-mother .child-silhouette { position:absolute; bottom:15%; left:25%; width:8%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #0d0603 100%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin:bottom center; animation:_snm-child 5s ease-in-out infinite 0.5s; }
.scn-story-of-natacha-mother .toy-block { position:absolute; bottom:25%; left:38%; width:5%; height:5%; background: linear-gradient(135deg, #b08060 0%, #8a6040 50%, #604020 100%); border-radius:2px; animation:_snm-toy 3s ease-in-out infinite alternate; }
@keyframes _snm-win { 0% {opacity:0.9;box-shadow:0 0 25px 8px rgba(255,232,176,0.4)} 50% {opacity:1;box-shadow:0 0 35px 12px rgba(255,232,176,0.6)} 100% {opacity:0.85;box-shadow:0 0 20px 6px rgba(255,232,176,0.3)} }
@keyframes _snm-crib { 0% {transform:rotate(0deg) translateX(0)} 50% {transform:rotate(1deg) translateX(3px)} 100% {transform:rotate(-1deg) translateX(-2px)} }
@keyframes _snm-mother { 0% {transform:rotate(1deg) scale(1)} 50% {transform:rotate(-1deg) scale(1.02)} 100% {transform:rotate(2deg) scale(0.98)} }
@keyframes _snm-child { 0%,100% {transform:translateY(0) scale(1)} 50% {transform:translateY(-5px) scale(1.05)} }
@keyframes _snm-toy { 0% {transform:translateY(0) rotate(0deg)} 50% {transform:translateY(-4px) rotate(45deg)} 100% {transform:translateY(0) rotate(-45deg)} }

.scn-matrena-sole-resource { background: linear-gradient(180deg, #f5e0c8 0%, #d4b894 40%, #b09070 75%, #8a7050 100%); }
.scn-matrena-sole-resource .bg-room { position:absolute; inset:0 0 10% 0; background: linear-gradient(135deg, #dcc8a8 0%, #b8a080 50%, #9a8060 100%); }
.scn-matrena-sole-resource .window-light { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,248,224,0.7) 0%, rgba(255,232,176,0.4) 50%, transparent 100%); transform:skewX(-10deg); filter:blur(6px); animation:_msr-light 5s ease-in-out infinite; }
.scn-matrena-sole-resource .general-figure { position:absolute; bottom:20%; left:55%; width:10%; height:35%; background: linear-gradient(180deg, #3a3025 0%, #221a12 50%, #0d0906 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; animation:_msr-general 7s ease-in-out infinite; }
.scn-matrena-sole-resource .matrena-figure { position:absolute; bottom:10%; left:25%; width:18%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #0d0603 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin:bottom center; animation:_msr-matrena 6s ease-in-out infinite; }
.scn-matrena-sole-resource .shadow-pool { position:absolute; bottom:8%; left:20%; width:40%; height:8%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%); animation:_msr-shadow 8s ease-in-out infinite; }
.scn-matrena-sole-resource .rug { position:absolute; bottom:6%; left:15%; width:70%; height:4%; background: linear-gradient(90deg, #8a6040 0%, #b08060 30%, #a07050 70%, #7a5030 100%); border-radius:50% 50% 0 0; animation:_msr-rug 10s ease-in-out infinite; }
@keyframes _msr-light { 0% {opacity:0.8;transform:skewX(-10deg) translateX(0)} 50% {opacity:1;transform:skewX(-8deg) translateX(5px)} 100% {opacity:0.7;transform:skewX(-12deg) translateX(-5px)} }
@keyframes _msr-general { 0% {transform:rotate(1deg) scale(1)} 50% {transform:rotate(-1deg) scale(1.02)} 100% {transform:rotate(0deg) scale(0.98)} }
@keyframes _msr-matrena { 0% {transform:rotate(2deg) scale(1)} 50% {transform:rotate(-2deg) scale(1.03)} 100% {transform:rotate(1deg) scale(0.97)} }
@keyframes _msr-shadow { 0% {transform:scaleX(1);opacity:0.5} 50% {transform:scaleX(1.2);opacity:0.7} 100% {transform:scaleX(0.9);opacity:0.4} }
@keyframes _msr-rug { 0% {transform:scaleY(1) skewX(0deg)} 50% {transform:scaleY(1.05) skewX(2deg)} 100% {transform:scaleY(0.95) skewX(-2deg)} }

.scn-advocate-protests-rivalry { background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c89860 100%), radial-gradient(circle at 30% 70%, #ffd080 0%, transparent 50%); }
.scn-advocate-protests-rivalry .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); }
.scn-advocate-protests-rivalry .table { position:absolute; bottom:15%; left:28%; width:44%; height:12%; background: linear-gradient(180deg, #b09060 0%, #7a5a30 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ap-table 5s ease-in-out infinite; }
.scn-advocate-protests-rivalry .figure { position:absolute; bottom:20%; left:45%; width:24px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 4s ease-in-out infinite; }
.scn-advocate-protests-rivalry .arm { position:absolute; bottom:38%; left:46%; width:6px; height:28px; background:#3a2a1a; border-radius:3px; transform-origin: bottom; transform: rotate(-25deg); animation: ap-arm 4s ease-in-out infinite; }
.scn-advocate-protests-rivalry .bottle { position:absolute; bottom:17%; left:34%; width:8px; height:22px; background: linear-gradient(180deg, #b89e70 0%, #7a5a30 100%); border-radius:2px; transform: rotate(15deg); animation: ap-bottle 6s ease-in-out infinite; }
.scn-advocate-protests-rivalry .pail { position:absolute; bottom:15%; left:38%; width:18px; height:14px; background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%); border-radius: 0 0 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ap-pail 8s ease-in-out infinite; }
.scn-advocate-protests-rivalry .window { position:absolute; top:8%; left:18%; width:28%; height:34%; background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #ffe0a0 60%, #d0a060 100%); border: 2px solid #a08050; border-radius:4px; box-shadow: 0 0 20px 8px rgba(255,200,100,0.3); }
.scn-advocate-protests-rivalry .curtain-left { position:absolute; top:8%; left:16%; width:10%; height:34%; background: linear-gradient(90deg, #c08050 0%, #a06030 100%); border-radius:2px; transform: skewY(12deg); transform-origin: top; animation: ap-curtain 7s ease-in-out infinite alternate; }
.scn-advocate-protests-rivalry .curtain-right { position:absolute; top:8%; right:16%; width:10%; height:34%; background: linear-gradient(270deg, #c08050 0%, #a06030 100%); border-radius:2px; transform: skewY(-12deg); transform-origin: top; animation: ap-curtain 7s ease-in-out infinite alternate 3.5s; }
@keyframes ap-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ap-figure { 0% { transform: translateY(0) skew(0deg); } 50% { transform: translateY(-2px) skew(1deg); } 100% { transform: translateY(0) skew(0deg); } }
@keyframes ap-arm { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-25deg); } }
@keyframes ap-bottle { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(15deg); } }
@keyframes ap-pail { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes ap-curtain { 0% { transform: skewY(12deg); } 50% { transform: skewY(6deg); } 100% { transform: skewY(12deg); } }

.scn-ermolai-reports-policeman { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0a880 100%), radial-gradient(ellipse at 20% 80%, #d0c0a0 0%, transparent 60%); }
.scn-ermolai-reports-policeman .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); }
.scn-ermolai-reports-policeman .wall { position:absolute; top:0; left:0; right:0; bottom:15%; background: linear-gradient(180deg, #e0d0b0 0%, #d0c0a0 100%); }
.scn-ermolai-reports-policeman .window { position:absolute; top:12%; left:8%; width:44%; height:55%; background: radial-gradient(ellipse at 50% 50%, #fff8f0 0%, #e0d0b0 60%, #c0a880 100%); border: 2px solid #b09070; border-radius:4px; box-shadow: 0 0 15px 5px rgba(200,180,150,0.3); animation: er-light 10s ease-in-out infinite alternate; }
.scn-ermolai-reports-policeman .servant { position:absolute; bottom:15%; left:45%; width:28px; height:64px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: er-servant 6s ease-in-out infinite; }
.scn-ermolai-reports-policeman .hat { position:absolute; bottom:72%; left:46.5%; width:22px; height:12px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 0 0; transform: rotate(4deg); animation: er-hat 6s ease-in-out infinite; }
.scn-ermolai-reports-policeman .pants { position:absolute; bottom:15%; left:48%; width:12px; height:32px; background: #4a6a8a; border-radius: 4px 4px 0 0; animation: er-pants 8s ease-in-out infinite; }
.scn-ermolai-reports-policeman .mistress-chair { position:absolute; bottom:15%; left:24%; width:34px; height:38px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); }
.scn-ermolai-reports-policeman .cushion { position:absolute; bottom:36%; left:24%; width:32px; height:16px; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius: 50%; transform: scale(0.9); animation: er-cushion 12s ease-in-out infinite; }
.scn-ermolai-reports-policeman .dust { position:absolute; top:40%; left:20%; width:4px; height:4px; background: rgba(200,180,150,0.4); border-radius:50%; filter: blur(1px); animation: er-dust 18s linear infinite; }
@keyframes er-light { 0% { opacity:0.75; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes er-servant { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes er-hat { 0% { transform: rotate(4deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(4deg); } }
@keyframes er-pants { 0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes er-cushion { 0% { transform: scale(0.9); } 50% { transform: scale(1); } 100% { transform: scale(0.9); } }
@keyframes er-dust { 0% { transform: translateX(0) translateY(0); opacity:0; } 25% { opacity:0.5; } 50% { transform: translateX(60px) translateY(-20px); opacity:0.2; } 75% { opacity:0; } 100% { transform: translateX(120px) translateY(-40px); opacity:0; } }

.scn-policeman-kneels-at-door { background: linear-gradient(180deg, #131320 0%, #1e1e2e 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 80%, #1e1e2e 0%, transparent 70%); }
.scn-policeman-kneels-at-door .wall-dark { position:absolute; inset:0; background: linear-gradient(90deg, #131320 0%, #1e1e2e 50%, #131320 100%); }
.scn-policeman-kneels-at-door .door { position:absolute; left:35%; top:18%; width:30%; height:52%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: pk-door 9s ease-in-out infinite; }
.scn-policeman-kneels-at-door .light-slit { position:absolute; left:64%; top:20%; width:2%; height:48%; background: linear-gradient(180deg, #ffd080 0%, #c0a060 100%); box-shadow: 0 0 10px 4px rgba(255,200,100,0.5); animation: pk-light 2.5s ease-in-out infinite alternate; }
.scn-policeman-kneels-at-door .policeman { position:absolute; bottom:25%; left:50%; width:28px; height:38px; background: linear-gradient(180deg, #2e2e3e 0%, #181828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.65); animation: pk-figure 7s ease-in-out infinite; }
.scn-policeman-kneels-at-door .knees { position:absolute; bottom:15%; left:48%; width:22px; height:12px; background: linear-gradient(180deg, #252535 0%, #181828 100%); border-radius: 50% 50% 0 0; animation: pk-knees 8s ease-in-out infinite; }
.scn-policeman-kneels-at-door .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #080810 0%, #131320 100%); opacity:0.4; animation: pk-shadow 5s ease-in-out infinite; }
@keyframes pk-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }
@keyframes pk-light { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pk-figure { 0% { transform: scaleX(0.65) translateY(0); } 50% { transform: scaleX(0.65) translateY(-3px) rotate(1deg); } 100% { transform: scaleX(0.65) translateY(0); } }
@keyframes pk-knees { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pk-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }

.scn-spy-at-hinge-vent { background: linear-gradient(180deg, #0a0a10 0%, #101018 50%, #151520 100%), radial-gradient(ellipse at 50% 70%, #101018 0%, transparent 60%); }
.scn-spy-at-hinge-vent .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a10 0%, #101018 100%); }
.scn-spy-at-hinge-vent .door-panel { position:absolute; left:40%; top:10%; width:20%; height:70%; background: linear-gradient(180deg, #2a1a0a 0%, #0e0500 100%); border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.8); animation: sh-door 10s ease-in-out infinite; }
.scn-spy-at-hinge-vent .hinge-gap { position:absolute; left:59%; top:12%; width:1.2%; height:66%; background: linear-gradient(180deg, #d0a060 0%, #806030 100%); box-shadow: 0 0 12px 4px rgba(200,150,50,0.6); animation: sh-glow 3s ease-in-out infinite alternate; }
.scn-spy-at-hinge-vent .eye { position:absolute; left:57%; top:50%; width:8px; height:6px; background: radial-gradient(circle, #ffd080 0%, #806030 100%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(200,150,50,0.8); animation: sh-eye 4s ease-in-out infinite; }
.scn-spy-at-hinge-vent .shadow { position:absolute; bottom:0; left:15%; right:15%; height:25%; background: linear-gradient(180deg, transparent, #0a0a10); opacity:0.6; animation: sh-shadow 6s ease-in-out infinite; }
.scn-spy-at-hinge-vent .figure-outline { position:absolute; bottom:18%; left:50%; width:32px; height:54px; background: linear-gradient(180deg, #181828 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: sh-figure 9s ease-in-out infinite; }
.scn-spy-at-hinge-vent .floor-dark { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); }
@keyframes sh-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.3deg); } 100% { transform: rotate(0deg); } }
@keyframes sh-glow { 0% { opacity:0.4; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes sh-eye { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.15) translateX(1px); } 100% { transform: scale(1) translateX(0); } }
@keyframes sh-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes sh-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

.scn-comparison-with-boichlikoff {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 50%, #b8a890 100%), radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 60%);
}
.scn-comparison-with-boichlikoff .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%); }
.scn-comparison-with-boichlikoff .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); }
.scn-comparison-with-boichlikoff .window-warm { position:absolute; top:10%; left:70%; width:20%; height:40%; background: radial-gradient(ellipse at center, #ffe8b0 0%, #d4a060 60%, #8a6030 100%); border-radius: 5%; box-shadow: inset 0 0 20px rgba(255,200,100,0.5); animation: cb1-window 6s ease-in-out infinite; }
.scn-comparison-with-boichlikoff .table { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cb1-table 3s ease-in-out infinite alternate; }
.scn-comparison-with-boichlikoff .figure-left { position:absolute; bottom:28%; left:25%; width:12%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cb1-fig-l 4s ease-in-out infinite; }
.scn-comparison-with-boichlikoff .figure-right { position:absolute; bottom:28%; right:25%; width:12%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cb1-fig-r 4.2s ease-in-out infinite; }
.scn-comparison-with-boichlikoff .glasses { position:absolute; bottom:22%; left:45%; width:10%; height:4%; background: radial-gradient(circle at 30% 50%, #a06030 0%, #602010 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(160,96,48,0.3); animation: cb1-glasses 2s ease-in-out infinite alternate; }
.scn-comparison-with-boichlikoff .shadow-pool { position:absolute; bottom:15%; left:30%; width:40%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); animation: cb1-shadow 5s ease-in-out infinite; }
@keyframes cb1-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(1); } }
@keyframes cb1-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes cb1-fig-l { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-1deg) translateX(0); } 75% { transform: rotate(1deg) translateX(-2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes cb1-fig-r { 0% { transform: rotate(0) translateX(0); } 25% { transform: rotate(-1deg) translateX(-2px); } 50% { transform: rotate(2deg) translateX(0); } 75% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes cb1-glasses { 0% { box-shadow: 0 0 8px 2px rgba(160,96,48,0.2); } 50% { box-shadow: 0 0 16px 4px rgba(160,96,48,0.5); } 100% { box-shadow: 0 0 10px 3px rgba(160,96,48,0.25); } }
@keyframes cb1-shadow { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }

.scn-regrets-removing-police {
  background: linear-gradient(180deg, #e0d4c8 0%, #c4b8a8 50%, #a89888 100%), radial-gradient(ellipse at 50% 30%, #f0e8e0 0%, transparent 70%);
}
.scn-regrets-removing-police .wall-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0c4b8 0%, #b8a898 100%); }
.scn-regrets-removing-police .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); }
.scn-regrets-removing-police .door { position:absolute; top:10%; left:10%; width:15%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 3px 3px 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.3); animation: rr2-door 8s ease-in-out infinite; }
.scn-regrets-removing-police .desk { position:absolute; bottom:35%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #301810 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-regrets-removing-police .paper-stack { position:absolute; bottom:38%; left:45%; width:8%; height:4%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: rr2-papers 5s ease-in-out infinite alternate; }
.scn-regrets-removing-police .figure-sitting { position:absolute; bottom:30%; left:35%; width:16%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rr2-figure 4s ease-in-out infinite; }
.scn-regrets-removing-police .lamp { position:absolute; bottom:40%; left:60%; width:6%; height:15%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,160,96,0.4); animation: rr2-lamp 3s ease-in-out infinite alternate; }
.scn-regrets-removing-police .shadow-fall { position:absolute; bottom:20%; left:25%; width:50%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%); animation: rr2-shadow 6s ease-in-out infinite; }
@keyframes rr2-door { 0% { transform: scaleX(1); opacity:0.9; } 50% { transform: scaleX(0.95); opacity:1; } 100% { transform: scaleX(1); opacity:0.9; } }
@keyframes rr2-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rr2-figure { 0% { transform: rotate(0) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-1deg) translateX(0); } 75% { transform: rotate(1deg) translateX(-2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes rr2-lamp { 0% { box-shadow: 0 0 15px 5px rgba(200,160,96,0.3); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px rgba(200,160,96,0.6); opacity:1; } 100% { box-shadow: 0 0 20px 7px rgba(200,160,96,0.4); opacity:0.85; } }
@keyframes rr2-shadow { 0% { opacity:0.4; transform:scale(1); } 50% { opacity:0.7; transform:scale(1.05); } 100% { opacity:0.4; transform:scale(1); } }

.scn-heroism-in-salon {
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 50%, #c8b498 100%), radial-gradient(ellipse at 40% 30%, #fff8f0 0%, transparent 60%);
}
.scn-heroism-in-salon .wall-cream { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f5eedd 0%, #e8dccb 100%); }
.scn-heroism-in-salon .floor-wood { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #ae8e6a 0%, #8e6e4a 100%); }
.scn-heroism-in-salon .window-sun { position:absolute; top:10%; right:10%; width:20%; height:40%; background: radial-gradient(ellipse at center, #ffe8c0 0%, #d4a860 60%, #8a6020 100%); border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,200,100,0.5); animation: hs3-window 8s ease-in-out infinite; }
.scn-heroism-in-salon .table-round { position:absolute; bottom:25%; left:25%; width:50%; height:15%; background: radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: hs3-table 7s ease-in-out infinite alternate; }
.scn-heroism-in-salon .bottle { position:absolute; bottom:35%; left:35%; width:6%; height:18%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.2); animation: hs3-bottle 5s ease-in-out infinite; }
.scn-heroism-in-salon .glass-left { position:absolute; bottom:28%; left:42%; width:5%; height:6%; background: radial-gradient(circle, #e0c8a0 0%, #c0a880 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 8px 2px rgba(192,168,128,0.3); animation: hs3-glass 4s ease-in-out infinite alternate; }
.scn-heroism-in-salon .glass-right { position:absolute; bottom:28%; right:42%; width:5%; height:6%; background: radial-gradient(circle, #e0c8a0 0%, #c0a880 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 8px 2px rgba(192,168,128,0.3); animation: hs3-glass 4.5s ease-in-out infinite alternate-reverse; }
.scn-heroism-in-salon .figure-pouring { position:absolute; bottom:30%; left:38%; width:14%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs3-pour 6s ease-in-out infinite; }
@keyframes hs3-window { 0% { opacity:0.85; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.9; transform:scale(1); } }
@keyframes hs3-table { 0% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-1px); } 100% { transform: scale(1); } }
@keyframes hs3-bottle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hs3-glass { 0% { box-shadow: 0 0 6px 1px rgba(192,168,128,0.2); } 50% { box-shadow: 0 0 14px 4px rgba(192,168,128,0.5); } 100% { box-shadow: 0 0 8px 2px rgba(192,168,128,0.3); } }
@keyframes hs3-pour { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(0) translateX(2px); } 50% { transform: rotate(3deg) translateX(0); } 75% { transform: rotate(0) translateX(-2px); } 100% { transform: rotate(-3deg) translateX(0); } }

.scn-toasting-courage-and-war {
  background: linear-gradient(180deg, #f0dcc8 0%, #dcc4a8 50%, #c8ac88 100%), radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 60%);
}
.scn-toasting-courage-and-war .wall-amber { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #eedcc0 0%, #dcc8a8 100%); }
.scn-toasting-courage-and-war .rug { position:absolute; bottom:0; left:10%; width:80%; height:35%; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); animation: tc4-rug 10s ease-in-out infinite; }
.scn-toasting-courage-and-war .table-cloth { position:absolute; bottom:25%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #d0b890 0%, #b09870 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: tc4-table 6s ease-in-out infinite alternate; }
.scn-toasting-courage-and-war .book { position:absolute; bottom:30%; left:45%; width:8%; height:6%; background: linear-gradient(180deg, #a06030 0%, #804020 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tc4-book 8s ease-in-out infinite; }
.scn-toasting-courage-and-war .figure-toast { position:absolute; bottom:28%; left:40%; width:14%; height:28%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc4-toast 5s ease-in-out infinite; }
.scn-toasting-courage-and-war .glass-up { position:absolute; bottom:32%; left:44%; width:5%; height:8%; background: radial-gradient(circle, #e8d0b0 0%, #c8a880 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px 2px rgba(200,168,128,0.4); animation: tc4-glass-up 3s ease-in-out infinite alternate; }
.scn-toasting-courage-and-war .glass-down { position:absolute; bottom:28%; right:40%; width:5%; height:8%; background: radial-gradient(circle, #e8d0b0 0%, #c8a880 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px 2px rgba(200,168,128,0.4); animation: tc4-glass-down 3.5s ease-in-out infinite alternate; }
.scn-toasting-courage-and-war .candle { position:absolute; bottom:35%; left:50%; width:4%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 8px #e0c080; animation: tc4-candle 4s ease-in-out infinite alternate; }
@keyframes tc4-rug { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes tc4-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tc4-book { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(0) translateX(1px); } 50% { transform: rotate(2deg) translateX(0); } 75% { transform: rotate(0) translateX(-1px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes tc4-toast { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(0) translateX(2px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(0) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes tc4-glass-up { 0% { transform: rotate(-10deg) translateY(0); opacity:0.8; } 50% { transform: rotate(0) translateY(-3px); opacity:1; } 100% { transform: rotate(10deg) translateY(0); opacity:0.8; } }
@keyframes tc4-glass-down { 0% { transform: rotate(10deg) translateY(0); opacity:0.8; } 50% { transform: rotate(0) translateY(-3px); opacity:1; } 100% { transform: rotate(-10deg) translateY(0); opacity:0.8; } }
@keyframes tc4-candle { 0% { box-shadow: 0 0 15px 5px #e0c080; opacity:0.9; } 50% { box-shadow: 0 0 30px 10px #f0d090; opacity:1; } 100% { box-shadow: 0 0 20px 7px #e0c080; opacity:0.9; } }

.scn-item-the-watch {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(135deg, #c8a96e 0%, #8b6b3b 50%, #5c3a1e 100%),
              radial-gradient(ellipse at 30% 40%, #f0d9b5 0%, transparent 70%);
}
.scn-item-the-watch .window {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, #87ceeb, #b0e0e6);
  border: 4px solid #8b5a2b;
  box-shadow: inset 0 0 20px rgba(255,255,200,.5);
  animation: itw-window 12s ease-in-out infinite;
}
.scn-item-the-watch .table {
  position: absolute;
  bottom: 5%;
  left: 10%;
  width: 80%;
  height: 10%;
  background: linear-gradient(180deg, #8b5a2b, #5c3a1e);
  border-radius: 4px;
  animation: itw-table 3s ease-in-out infinite;
}
.scn-item-the-watch .flask {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 8%;
  height: 25%;
  background: linear-gradient(180deg, #c9b99a, #a08060);
  border-radius: 10% 10% 30% 30%;
  animation: itw-flask 5s ease-in-out infinite;
}
.scn-item-the-watch .watch {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #fceabb 30%, #f8b500 70%);
  border-radius: 50%;
  border: 3px solid #8b5a2b;
  box-shadow: 0 0 20px rgba(248,181,0,.5);
  animation: itw-watch 2s ease-in-out infinite;
}
.scn-item-the-watch .figure {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 12%;
  height: 40%;
  background: linear-gradient(180deg, #4a3b2a, #2c1f12);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: itw-figure 8s ease-in-out infinite;
}
@keyframes itw-window {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes itw-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes itw-flask {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes itw-watch {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes itw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-vodka-and-poison {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, #6b4c2a 0%, #3d2b1f 100%),
              radial-gradient(ellipse at 50% 40%, #c99b5e 0%, transparent 70%);
}
.scn-vodka-and-poison .table {
  position: absolute;
  bottom: 5%;
  left: 5%;
  width: 90%;
  height: 10%;
  background: linear-gradient(180deg, #5c3a1e, #2d1a0e);
  border-radius: 4px;
  animation: vap-table 4s ease-in-out infinite;
}
.scn-vodka-and-poison .matchstick1 {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 2%;
  height: 20%;
  background: #a0522d;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: vap-match1 1.5s ease-in-out infinite;
}
.scn-vodka-and-poison .matchstick2 {
  position: absolute;
  bottom: 18%;
  left: 70%;
  width: 2%;
  height: 15%;
  background: #a0522d;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: vap-match2 2s ease-in-out infinite 0.5s;
}
.scn-vodka-and-poison .glass1 {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 8%;
  height: 15%;
  background: linear-gradient(180deg, rgba(255,255,240,.3), rgba(255,255,240,.1));
  border: 2px solid #bc8f8f;
  border-top: none;
  border-radius: 0 0 20% 20%;
  animation: vap-glass1 3s ease-in-out infinite;
}
.scn-vodka-and-poison .glass2 {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 8%;
  height: 15%;
  background: linear-gradient(180deg, rgba(255,255,240,.3), rgba(255,255,240,.1));
  border: 2px solid #bc8f8f;
  border-top: none;
  border-radius: 0 0 20% 20%;
  animation: vap-glass2 3.5s ease-in-out infinite 0.2s;
}
.scn-vodka-and-poison .hand {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 15%;
  height: 10%;
  background: #6b4c2a;
  border-radius: 40% 20% 20% 40%;
  transform-origin: right center;
  animation: vap-hand 2s ease-in-out infinite;
}
.scn-vodka-and-poison .bottle {
  position: absolute;
  bottom: 15%;
  left: 15%;
  width: 10%;
  height: 30%;
  background: linear-gradient(180deg, #4a6622, #2e4a14);
  border-radius: 10% 10% 20% 20%;
  animation: vap-bottle 6s ease-in-out infinite;
}
@keyframes vap-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes vap-match1 {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes vap-match2 {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(15deg); }
}
@keyframes vap-glass1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes vap-glass2 {
  0% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-4px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes vap-hand {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(0deg); }
}
@keyframes vap-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-poisoned-vodka {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, #7e5c3a 0%, #4b3523 100%),
              radial-gradient(ellipse at 50% 30%, #d4af37 0%, transparent 60%);
}
.scn-poisoned-vodka .table {
  position: absolute;
  bottom: 5%;
  left: 5%;
  width: 90%;
  height: 10%;
  background: linear-gradient(180deg, #5c3a1e, #2d1a0e);
  border-radius: 4px;
  animation: pvo-table 3s ease-in-out infinite;
}
.scn-poisoned-vodka .glass1 {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 8%;
  height: 18%;
  background: linear-gradient(180deg, rgba(255,255,240,.4), rgba(255,255,240,.1));
  border: 2px solid #bc8f8f;
  border-top: none;
  border-radius: 0 0 25% 25%;
  animation: pvo-glass1 2s ease-in-out infinite;
}
.scn-poisoned-vodka .glass2 {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 8%;
  height: 18%;
  background: linear-gradient(180deg, rgba(255,255,240,.4), rgba(255,255,240,.1));
  border: 2px solid #bc8f8f;
  border-top: none;
  border-radius: 0 0 25% 25%;
  animation: pvo-glass2 2.5s ease-in-out infinite 0.3s;
}
.scn-poisoned-vodka .figure1 {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 15%;
  height: 50%;
  background: linear-gradient(180deg, #2a1f14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pvo-figure1 4s ease-in-out infinite;
}
.scn-poisoned-vodka .figure2 {
  position: absolute;
  bottom: 10%;
  left: 55%;
  width: 15%;
  height: 50%;
  background: linear-gradient(180deg, #2a1f14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pvo-figure2 4.5s ease-in-out infinite 0.5s;
}
.scn-poisoned-vodka .bottle {
  position: absolute;
  bottom: 15%;
  left: 15%;
  width: 10%;
  height: 35%;
  background: linear-gradient(180deg, #2e4a14, #1a2e0a);
  border-radius: 10% 10% 20% 20%;
  animation: pvo-bottle 6s ease-in-out infinite;
}
@keyframes pvo-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pvo-glass1 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pvo-glass2 {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pvo-figure1 {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-15deg) translateY(-5px); }
  50% { transform: rotate(-30deg) translateY(-10px); }
  75% { transform: rotate(-15deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pvo-figure2 {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(-5px); }
  50% { transform: rotate(30deg) translateY(-10px); }
  75% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pvo-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-ipecac-arrives {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, #5f4b3a 0%, #3a2b1f 100%),
              radial-gradient(ellipse at 50% 50%, #a08060 0%, transparent 70%);
}
.scn-ipecac-arrives .kiosk {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 30%;
  height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b7355, #5c3a1e);
  border-radius: 10% 10% 0 0;
  border: 3px solid #4a3520;
  animation: iar-kiosk 5s ease-in-out infinite;
}
.scn-ipecac-arrives .path {
  position: absolute;
  bottom: 5%;
  left: 0;
  width: 100%;
  height: 10%;
  background: linear-gradient(180deg, #6b5b3e, #4a3b2a);
  border-radius: 30% 0 0 0;
  animation: iar-path 8s linear infinite;
}
.scn-ipecac-arrives .figure1 {
  position: absolute;
  bottom: 10%;
  left: 35%;
  width: 12%;
  height: 30%;
  background: linear-gradient(180deg, #2a1f14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: iar-figure1 3s ease-in-out infinite;
}
.scn-ipecac-arrives .figure2 {
  position: absolute;
  bottom: 10%;
  left: 70%;
  width: 12%;
  height: 35%;
  background: linear-gradient(180deg, #2a1f14, #0f0a06);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: iar-figure2 2s ease-in-out infinite;
}
.scn-ipecac-arrives .bottle {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 6%;
  height: 15%;
  background: linear-gradient(180deg, #4a6622, #2e4a14);
  border-radius: 10% 10% 20% 20%;
  animation: iar-bottle 4s ease-in-out infinite;
}
.scn-ipecac-arrives .window {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 10%;
  height: 12%;
  background: radial-gradient(circle, #fff5e1, #f0d9b5);
  border: 2px solid #4a3520;
  border-radius: 5px;
  animation: iar-window 6s ease-in-out infinite;
}
@keyframes iar-kiosk {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes iar-path {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}
@keyframes iar-figure1 {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-5px) rotate(-5deg); }
  66% { transform: translateY(0) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes iar-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-15px) translateY(-3px) rotate(10deg); }
  50% { transform: translateX(-30px) translateY(0) rotate(-5deg); }
  75% { transform: translateX(-15px) translateY(-3px) rotate(10deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes iar-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes iar-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

.scn-hello-from-the-tsar {
  background: linear-gradient(180deg, #f0d060 0%, #f0b040 60%, #e09020 100%), radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 70%);
}
.scn-hello-from-the-tsar .hfts-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8e8a0 0%, #f0d060 100%); animation: hfts-wall 10s ease-in-out infinite alternate; }
.scn-hello-from-the-tsar .hfts-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b08040 0%, #806030 100%); }
.scn-hello-from-the-tsar .hfts-table { position:absolute; bottom:30%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #8a6030 0%, #604020 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-hello-from-the-tsar .hfts-plate { position:absolute; bottom:35%; left:35%; right:35%; height:8%; background: radial-gradient(ellipse, #f0e0c0 0%, #d0b080 100%); border-radius: 50%; border: 2px solid #b09070; animation: hfts-plate 4s ease-in-out infinite alternate; }
.scn-hello-from-the-tsar .hfts-fish { position:absolute; bottom:36%; left:40%; right:40%; height:5%; background: linear-gradient(90deg, #e08040 0%, #e0a060 50%, #e08040 100%); border-radius: 80% 20% 80% 20% / 50% 50% 50% 50%; transform: rotate(-5deg); animation: hfts-fish 3s ease-in-out infinite; }
.scn-hello-from-the-tsar .hfts-fork { position:absolute; bottom:37%; left:42%; width:2%; height:20%; background: linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%); border-radius: 2px; transform: rotate(15deg) translateY(-50%); transform-origin: center bottom; animation: hfts-fork 2s ease-in-out infinite alternate; }
.scn-hello-from-the-tsar .hfts-crown { position:absolute; bottom:55%; left:48%; width:10%; height:8%; background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, #daa520 60%, #b8860b 100%); clip-path: polygon(0% 100%, 30% 0%, 50% 40%, 70% 0%, 100% 100%); animation: hfts-crown 6s ease-in-out infinite; }
.scn-hello-from-the-tsar .hfts-figure { position:absolute; bottom:15%; left:60%; width:15%; height:40%; background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfts-figure 3s ease-in-out infinite alternate; }
@keyframes hfts-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hfts-plate { 0% { transform: scale(1); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1); } }
@keyframes hfts-fish { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hfts-fork { 0% { transform: rotate(15deg) translateY(-50%); } 50% { transform: rotate(20deg) translateY(-55%); } 100% { transform: rotate(15deg) translateY(-50%); } }
@keyframes hfts-crown { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(0) scale(1); } }
@keyframes hfts-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-reporter-scruples-explained {
  background: linear-gradient(180deg, #d8e4ec 0%, #b8c8d8 100%), radial-gradient(ellipse at 50% 0%, #e0eef5 0%, transparent 80%);
}
.scn-reporter-scruples-explained .rse-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0dce6 0%, #c0d0de 100%); }
.scn-reporter-scruples-explained .rse-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #967a56 0%, #7a6040 100%); }
.scn-reporter-scruples-explained .rse-desk { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #8b6f47 0%, #6e5634 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-reporter-scruples-explained .rse-lamp { position:absolute; bottom:35%; left:30%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c09850 60%, #6a4820 100%); border-radius: 50%; filter: blur(2px); box-shadow: 0 0 20px 8px rgba(255,208,128,0.4); animation: rse-lamp 10s ease-in-out infinite alternate; }
.scn-reporter-scruples-explained .rse-chair-left { position:absolute; bottom:14%; left:25%; width:10%; height:30%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rse-chair 12s ease-in-out infinite alternate; }
.scn-reporter-scruples-explained .rse-chair-right { position:absolute; bottom:14%; right:25%; width:10%; height:30%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rse-chair 12s ease-in-out infinite alternate-reverse; animation-delay: -6s; }
.scn-reporter-scruples-explained .rse-notebook { position:absolute; bottom:28%; left:40%; width:12%; height:8%; background: linear-gradient(180deg, #f0ecd8 0%, #d8d0b0 100%); border-radius: 2px; transform: rotate(5deg); animation: rse-notebook 8s ease-in-out infinite alternate; }
@keyframes rse-lamp { 0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,208,128,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,208,128,0.6); } 100% { opacity: 0.85; box-shadow: 0 0 20px 8px rgba(255,208,128,0.4); } }
@keyframes rse-chair { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rse-notebook { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px) scale(1.01); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-meeting-the-emperor {
  background: linear-gradient(180deg, #ffdc80 0%, #ffa040 30%, #ff8820 60%, #d06020 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 70%);
}
.scn-meeting-the-emperor .mte-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe080 0%, #ffa040 60%, #ff8820 100%); }
.scn-meeting-the-emperor .mte-sun { position:absolute; top:20%; left:50%; width:30%; height:30%; transform: translate(-50%, -50%); background: radial-gradient(circle, #fff4c0 0%, #ffd040 40%, #ffa040 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,208,64,0.5), 0 0 120px 40px rgba(255,160,64,0.3); animation: mte-sun 6s ease-in-out infinite alternate; }
.scn-meeting-the-emperor .mte-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); }
.scn-meeting-the-emperor .mte-figure-e { position:absolute; bottom:40%; left:45%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); clip-path: polygon(0% 100%, 30% 0%, 50% 10%, 70% 0%, 100% 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; animation: mte-figure-e 8s ease-in-out infinite alternate; }
.scn-meeting-the-emperor .mte-figure-r { position:absolute; bottom:40%; left:55%; width:6%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mte-figure-r 8s ease-in-out infinite alternate-reverse; }
.scn-meeting-the-emperor .mte-shadow { position:absolute; bottom:39%; left:45%; width:15%; height:4%; background: rgba(0,0,0,0.3); border-radius: 50%; transform: skewX(-20deg); filter: blur(3px); animation: mte-shadow 8s ease-in-out infinite alternate; }
@keyframes mte-sun { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; } 50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.95; } }
@keyframes mte-figure-e { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mte-figure-r { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mte-shadow { 0% { transform: skewX(-20deg) scaleX(1); opacity: 0.3; } 50% { transform: skewX(-20deg) scaleX(1.1); opacity: 0.4; } 100% { transform: skewX(-20deg) scaleX(1); opacity: 0.3; } }

.scn-matrena-whitens-at-drama {
  background: linear-gradient(180deg, #e8eef5 0%, #c8d8e8 40%, #a8b8c8 100%), radial-gradient(ellipse at 50% 50%, #f0f4fa 0%, transparent 70%);
}
.scn-matrena-whitens-at-drama .mwd-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d0dce8 0%, #b0c0d0 100%); box-shadow: inset 0 -8px 15px rgba(0,0,0,0.1); }
.scn-matrena-whitens-at-drama .mwd-curtain { position:absolute; top:0; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: mwd-curtain 15s ease-in-out infinite alternate; }
.scn-matrena-whitens-at-drama .mwd-chair { position:absolute; bottom:30%; left:40%; width:18%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-matrena-whitens-at-drama .mwd-hand { position:absolute; bottom:35%; left:45%; width:6%; height:10%; background: linear-gradient(180deg, #f0e8e0 0%, #d8c8b8 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: rotate(20deg); transform-origin: top center; animation: mwd-hand 0.5s ease-in-out infinite alternate; }
.scn-matrena-whitens-at-drama .mwd-figure { position:absolute; bottom:20%; left:55%; width:12%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mwd-figure 0.8s ease-in-out infinite alternate; }
.scn-matrena-whitens-at-drama .mwd-light { position:absolute; top:5%; left:50%; width:6%; height:6%; background: radial-gradient(circle, #ffe0a0 0%, #d0a050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 5px rgba(255,224,160,0.3); transform: translateX(-50%); animation: mwd-light 1.5s ease-in-out infinite alternate; }
@keyframes mwd-curtain { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.95; } }
@keyframes mwd-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-1px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes mwd-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mwd-light { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0); } }

/* tracked-by-koupriane */
.scn-tracked-by-koupriane {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 30%, #a08870 100%),
              radial-gradient(ellipse at 20% 30%, #fff8e0 0%, transparent 60%);
}
.scn-tracked-by-koupriane .desk {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a4430 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-tracked-by-koupriane .lamp {
  position: absolute; top:10%; left:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #c0a070 0%, #8b6f4e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,.5);
  animation: tk-lamp 2s ease-in-out infinite alternate;
}
.scn-tracked-by-koupriane .figure {
  position: absolute; bottom:38%; left:28%; width:50px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  z-index:1; animation: tk-figure 5s ease-in-out infinite alternate;
}
.scn-tracked-by-koupriane .papers {
  position: absolute; bottom:28%; left:35%; width:40px; height:20px;
  background: #f0e6d0; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.15);
  animation: tk-papers 4s ease-in-out infinite alternate;
}
.scn-tracked-by-koupriane .window {
  position: absolute; top:8%; right:10%; width:60px; height:80px;
  background: linear-gradient(180deg, #b0c8e0 0%, #8098b0 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  animation: tk-window 8s ease-in-out infinite alternate;
}
.scn-tracked-by-koupriane .clock {
  position: absolute; top:5%; left:40%; width:30px; height:30px;
  background: #6b5335; border-radius: 50%; border: 3px solid #4a3a2a;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: tk-clock 60s linear infinite;
}
.scn-tracked-by-koupriane .inkwell {
  position: absolute; bottom:26%; left:20%; width:20px; height:25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: tk-inkwell 10s ease-in-out infinite alternate;
}
@keyframes tk-lamp { 0% { opacity:.8; box-shadow: 0 0 30px 15px rgba(255,200,100,.4); } 50% { opacity:1; box-shadow: 0 0 50px 25px rgba(255,200,100,.7); } 100% { opacity:.85; box-shadow: 0 0 35px 18px rgba(255,200,100,.5); } }
@keyframes tk-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes tk-papers { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(-1px) rotate(2deg); } }
@keyframes tk-window { 0% { opacity:.8; } 50% { opacity:1; box-shadow: inset 0 0 15px #fff; } 100% { opacity:.85; } }
@keyframes tk-clock { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes tk-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* further-debate-on-guilt */
.scn-further-debate-on-guilt {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b898 100%),
              radial-gradient(ellipse at 50% 10%, #fff5e0 0%, transparent 50%);
}
.scn-further-debate-on-guilt .table {
  position: absolute; bottom:25%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2);
}
.scn-further-debate-on-guilt .left-figure {
  position: absolute; bottom:30%; left:15%; width:40px; height:100px;
  background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1); animation: dg-figure 5s ease-in-out infinite alternate;
}
.scn-further-debate-on-guilt .right-figure {
  position: absolute; bottom:30%; right:15%; width:40px; height:100px;
  background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dg-figure 6s ease-in-out infinite alternate;
}
.scn-further-debate-on-guilt .map {
  position: absolute; top:20%; left:35%; right:35%; height:30%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%);
  border: 2px solid #8b7355; border-radius: 2%;
  animation: dg-map 12s ease-in-out infinite alternate;
}
.scn-further-debate-on-guilt .chandelier {
  position: absolute; top:2%; left:40%; right:40%; height:8%;
  background: radial-gradient(ellipse at 50% 100%, #ffe680 0%, transparent 70%);
  animation: dg-chandelier 3s ease-in-out infinite alternate;
}
.scn-further-debate-on-guilt .rug {
  position: absolute; bottom:0; left:15%; right:15%; height:25%;
  background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: dg-rug 8s ease-in-out infinite alternate;
}
.scn-further-debate-on-guilt .book {
  position: absolute; bottom:27%; left:48%; width:30px; height:10px;
  background: #6b5335; border-radius: 2px;
  animation: dg-book 7s ease-in-out infinite alternate;
}
@keyframes dg-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes dg-map { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }
@keyframes dg-chandelier { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes dg-rug { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dg-book { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }

/* theory-about-poison */
.scn-theory-about-poison {
  background: linear-gradient(135deg, #d4d0c8 0%, #a09888 100%),
              radial-gradient(ellipse at 20% 20%, #fff8e0 0%, transparent 50%);
}
.scn-theory-about-poison .desk {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8b7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-theory-about-poison .flask {
  position: absolute; bottom:22%; left:45%; width:70px; height:90px;
  background: linear-gradient(180deg, rgba(200,220,200,.5) 0%, rgba(180,200,180,.3) 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  border: 2px solid #8a9a8a;
  animation: tp-flask 8s ease-in-out infinite alternate;
}
.scn-theory-about-poison .poison-bottle {
  position: absolute; bottom:25%; left:20%; width:25px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 10px 5px rgba(0,50,0,.2);
  animation: tp-bottle 6s ease-in-out infinite alternate;
}
.scn-theory-about-poison .hand {
  position: absolute; top:40%; left:30%; width:30px; height:60px;
  background: #d4a088; border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(45deg); animation: tp-hand 5s ease-in-out infinite alternate;
}
.scn-theory-about-poison .lamp {
  position: absolute; top:8%; left:10%; width:25px; height:40px;
  background: linear-gradient(180deg, #c0a070 0%, #8b6f4e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,.5);
  animation: tp-lamp 2s ease-in-out infinite alternate;
}
.scn-theory-about-poison .shelf {
  position: absolute; top:5%; left:5%; right:5%; height:5%;
  background: linear-gradient(180deg, #6b5335 0%, #4a3a2a 100%);
  border-radius: 2px; animation: tp-shelf 15s ease-in-out infinite alternate;
}
.scn-theory-about-poison .vapor {
  position: absolute; bottom:48%; left:48%; width:40px; height:60px;
  background: radial-gradient(circle, rgba(255,255,255,.3) 0%, transparent 60%);
  filter: blur(4px); animation: tp-vapor 4s ease-in-out infinite alternate;
}
@keyframes tp-flask { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-2deg); } }
@keyframes tp-bottle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tp-hand { 0% { transform: rotate(40deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(45deg); } }
@keyframes tp-lamp { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tp-shelf { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes tp-vapor { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-10px) scale(1.2); opacity:.5; } 100% { transform: translateY(-20px) scale(0.8); opacity:.1; } }

/* horrible-deduction */
.scn-horrible-deduction {
  background: linear-gradient(180deg, #c8c0b0 0%, #a09888 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%),
              radial-gradient(ellipse at 50% 70%, rgba(0,0,0,.3) 0%, transparent 80%);
}
.scn-horrible-deduction .desk {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-horrible-deduction .napkins {
  position: absolute; bottom:30%; left:35%; width:50px; height:30px;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%);
  border-radius: 20% 30% 10% 20%; transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: hd-napkins 8s ease-in-out infinite alternate;
}
.scn-horrible-deduction .flask {
  position: absolute; bottom:28%; left:50%; width:40px; height:55px;
  background: linear-gradient(180deg, rgba(200,220,200,.5) 0%, rgba(180,200,180,.3) 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  border: 2px solid #8a9a8a;
  animation: hd-flask 10s ease-in-out infinite alternate;
}
.scn-horrible-deduction .glass {
  position: absolute; bottom:32%; left:20%; width:30px; height:30px;
  background: transparent; border: 3px solid #8a9a8a; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,220,255,.3);
  animation: hd-glass 6s ease-in-out infinite alternate;
}
.scn-horrible-deduction .handle {
  position: absolute; bottom:30%; left:17%; width:8px; height:20px;
  background: #8a9a8a; border-radius: 2px; transform: rotate(-30deg);
  animation: hd-handle 6s ease-in-out infinite alternate;
}
.scn-horrible-deduction .figure {
  position: absolute; bottom:30%; left:42%; width:50px; height:80px;
  background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg) translateY(10px);
  animation: hd-figure 7s ease-in-out infinite alternate;
}
.scn-horrible-deduction .lamp {
  position: absolute; top:10%; right:15%; width:20px; height:35px;
  background: linear-gradient(180deg, #c0a070 0%, #8b6f4e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(255,200,100,.4);
  animation: hd-lamp 3s ease-in-out infinite alternate;
}
.scn-horrible-deduction .books {
  position: absolute; bottom:15%; right:10%; width:40px; height:25px;
  background: linear-gradient(180deg, #6b5335 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: hd-books 12s ease-in-out infinite alternate;
}
@keyframes hd-napkins { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes hd-flask { 0% { transform: translateX(0); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(3px) rotate(-2deg); } }
@keyframes hd-glass { 0% { box-shadow: 0 0 6px 2px rgba(200,220,255,.2); } 50% { box-shadow: 0 0 12px 4px rgba(200,220,255,.5); } 100% { box-shadow: 0 0 8px 2px rgba(200,220,255,.3); } }
@keyframes hd-handle { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes hd-figure { 0% { transform: rotate(8deg) translateY(10px); } 50% { transform: rotate(12deg) translateY(8px); } 100% { transform: rotate(10deg) translateY(12px); } }
@keyframes hd-lamp { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hd-books { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }

.scn-item-grapes-from-emperor {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b5 50%, #d4bfa0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 80%);
}
.scn-item-grapes-from-emperor .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #faf3e6 0%, #e6d4b8 100%);
}
.scn-item-grapes-from-emperor .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b5533 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.3);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-item-grapes-from-emperor .table {
  position: absolute; bottom: 15%; left: 50%; width: 200px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89a6a 0%, #8c7044 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: gfe-table 6s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .bowl {
  position: absolute; bottom: calc(15% + 16px); left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #d4c4a8 30%, #a38d6e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gfe-bowl 4s ease-in-out infinite alternate;
}
.scn-item-grapes-from-emperor .grapes {
  position: absolute; bottom: calc(15% + 16px + 30px - 10px); left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 30%, #7a5c8a 0%, #4a305a 60%, #2a1a3a 100%),
              radial-gradient(circle at 70% 60%, #9b7aab 0%, transparent 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: gfe-grapes 3s ease-in-out infinite alternate;
}
.scn-item-grapes-from-emperor .figure {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gfe-figure 2.5s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .window {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #fff8e0 0%, #ffe080 50%, #f0c860 100%);
  border: 6px solid #8c6e40;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,230,120,0.6), 0 0 80px 20px rgba(255,200,80,0.3);
  animation: gfe-window 8s ease-in-out infinite alternate;
}
.scn-item-grapes-from-emperor .curtain {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 160px;
  background: linear-gradient(90deg, #b8735a 0%, #d49a7a 30%, #b8735a 100%);
  border-radius: 4px 0 0 4px;
  filter: blur(1px);
  animation: gfe-curtain 7s ease-in-out infinite alternate;
}
.scn-item-grapes-from-emperor .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 140px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: gfe-shadow 6s ease-in-out infinite;
}
@keyframes gfe-table {
  0%, 100% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.03) translateY(-1px); }
}
@keyframes gfe-bowl {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes gfe-grapes {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) rotate(5deg); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes gfe-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(1px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes gfe-window {
  0% { opacity: 0.8; box-shadow: 0 0 60px 15px rgba(255,200,80,0.2); }
  50% { opacity: 1; box-shadow: 0 0 100px 30px rgba(255,200,80,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 70px 20px rgba(255,200,80,0.25); }
}
@keyframes gfe-curtain {
  0% { transform: translateX(0) skewX(0deg); }
  50% { transform: translateX(-8px) skewX(2deg); }
  100% { transform: translateX(3px) skewX(-1deg); }
}
@keyframes gfe-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
}

.scn-barinnia-announces-stranger {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9b89a 40%, #8b6f4c 70%),
    radial-gradient(ellipse at 30% 50%, #c9a87c 0%, transparent 70%);
}
.scn-barinnia-announces-stranger .room-wall-ba {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #c8a880 100%);
  animation: ba-wall-pulse 8s ease-in-out infinite;
}
.scn-barinnia-announces-stranger .room-floor-ba {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
.scn-barinnia-announces-stranger .window-ba {
  position: absolute; top: 12%; left: 15%; width: 120px; height: 160px;
  background: linear-gradient(140deg, #b8d8e8 0%, #8ab8d8 100%);
  border: 8px solid #6a4a28;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: ba-window-fade 12s ease-in-out infinite alternate;
}
.scn-barinnia-announces-stranger .door-ba {
  position: absolute; top: 20%; right: 10%; width: 80px; height: 200px;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  transform-origin: right top;
  animation: ba-door-creak 6s ease-in-out infinite;
}
.scn-barinnia-announces-stranger .lamp-ba {
  position: absolute; top: 30%; left: 50%; width: 30px; height: 50px;
  margin-left: -15px;
  background: radial-gradient(circle at 50% 30%, #ffdd80 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 12px #ffd060, 0 0 80px 20px rgba(255,208,96,0.3);
  animation: ba-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-barinnia-announces-stranger .table-ba {
  position: absolute; bottom: 30%; left: 35%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #8a6030 0%, #5a3a18 100%);
  border-radius: 8px 8px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  transform: skewX(-3deg);
  animation: ba-table-breathe 10s ease-in-out infinite;
}
.scn-barinnia-announces-stranger .figure-barinia-ba {
  position: absolute; bottom: 25%; left: 42%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2820 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: ba-figure-b 4s ease-in-out infinite;
}
.scn-barinnia-announces-stranger .figure-ermolai-ba {
  position: absolute; bottom: 25%; left: 55%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 35% 35% 50% 50% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ba-figure-e 3s ease-in-out infinite alternate;
}
.scn-barinnia-announces-stranger .shadow-cast-ba {
  position: absolute; bottom: 28%; left: 30%; width: 200px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 80%);
  filter: blur(6px);
  animation: ba-shadow 5s ease-in-out infinite alternate;
}
@keyframes ba-wall-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes ba-window-fade { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ba-door-creak { 0% { transform: rotate(0deg) scaleX(1); } 30% { transform: rotate(2deg) scaleX(1.02); } 60% { transform: rotate(-1deg) scaleX(0.98); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes ba-lamp-glow { 0% { box-shadow:0 0 30px 8px #ffd060,0 0 60px 16px rgba(255,208,96,0.4); opacity:0.8; } 50% { box-shadow:0 0 50px 16px #ffd060,0 0 100px 30px rgba(255,208,96,0.6); opacity:1; } 100% { box-shadow:0 0 35px 10px #ffd060,0 0 70px 20px rgba(255,208,96,0.45); opacity:0.85; } }
@keyframes ba-table-breathe { 0% { transform:skewX(-3deg) scale(1); } 50% { transform:skewX(-2deg) scale(1.01); } 100% { transform:skewX(-3deg) scale(1); } }
@keyframes ba-figure-b { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(1deg); } 50% { transform:translateX(8px) rotate(0deg); } 75% { transform:translateX(4px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ba-figure-e { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ba-shadow { 0% { transform:translateX(0) scaleX(1); opacity:0.6; } 50% { transform:translateX(10px) scaleX(1.1); opacity:0.8; } 100% { transform:translateX(0) scaleX(1); opacity:0.6; } }

.scn-arsenate-of-soda {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #d4b896 40%, #7a5a38 100%),
    radial-gradient(ellipse at 70% 30%, #c8a878 0%, transparent 60%);
}
.scn-arsenate-of-soda .villa-wall-as {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ecdec8 0%, #c5aa88 100%);
  animation: as-wall-hum 9s ease-in-out infinite;
}
.scn-arsenate-of-soda .villa-floor-as {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a22 0%, #2e1c0e 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-arsenate-of-soda .window-as {
  position: absolute; top: 15%; right: 20%; width: 100px; height: 140px;
  background: linear-gradient(135deg, #c0d8e8 0%, #88a8c8 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: as-window-gleam 14s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .curtain-as {
  position: absolute; top: 12%; right: 16%; width: 140px; height: 180px;
  background: linear-gradient(90deg, #b8a090 0%, #d0b8a8 20%, #b8a090 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  filter: blur(2px);
  opacity: 0.5;
  animation: as-curtain-sway 6s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .table-as {
  position: absolute; bottom: 25%; left: 30%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #6a4824 0%, #3a2010 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: as-table-rock 12s ease-in-out infinite;
}
.scn-arsenate-of-soda .phial-as {
  position: absolute; bottom: 35%; left: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, rgba(180,220,170,0.6) 0%, rgba(100,160,80,0.8) 60%, rgba(60,100,40,1) 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(100,160,80,0.5), 0 0 24px 8px rgba(100,160,80,0.2);
  animation: as-phial-glint 4s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .figure-her-as {
  position: absolute; bottom: 20%; left: 50%; width: 38px; height: 100px;
  background: linear-gradient(180deg, #2a1a12 0%, #100806 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: as-figure-her 2.5s ease-in-out infinite;
}
.scn-arsenate-of-soda .figure-him-as {
  position: absolute; bottom: 20%; left: 60%; width: 42px; height: 110px;
  background: linear-gradient(180deg, #1e140e 0%, #0e0a06 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: as-figure-him 3s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .shadow-as {
  position: absolute; bottom: 18%; left: 25%; width: 250px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: as-shadow-pulse 5s ease-in-out infinite alternate;
}
@keyframes as-wall-hum { 0% { opacity:0.92; } 50% { opacity:1; } 100% { opacity:0.94; } }
@keyframes as-window-gleam { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes as-curtain-sway { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes as-table-rock { 0% { transform:rotate(-1deg); } 50% { transform:rotate(1deg); } 100% { transform:rotate(-1deg); } }
@keyframes as-phial-glint { 0% { box-shadow:0 0 10px 2px rgba(100,160,80,0.4),0 0 20px 6px rgba(100,160,80,0.2); opacity:0.7; } 50% { box-shadow:0 0 20px 6px rgba(100,160,80,0.7),0 0 40px 12px rgba(100,160,80,0.4); opacity:1; } 100% { box-shadow:0 0 12px 3px rgba(100,160,80,0.5),0 0 24px 8px rgba(100,160,80,0.3); opacity:0.8; } }
@keyframes as-figure-her { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-6px) rotate(-2deg); } 50% { transform:translateX(-12px) rotate(0deg); } 75% { transform:translateX(-6px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes as-figure-him { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes as-shadow-pulse { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(1.2); opacity:0.8; } 100% { transform:scaleX(1); opacity:0.5; } }

.scn-natacha-asks-about-potion {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 70%);
}
.scn-natacha-asks-about-potion .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e6d4b0 0%, #c4a882 100%); opacity: 0.8; animation: nap-room 12s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .door {
  position: absolute; bottom: 10%; left: 10%; width: 12%; height: 70%; background: linear-gradient(90deg, #8b7355 0%, #6b5b45 100%); border-radius: 4% 0 0 4%; border: 2px solid #4a3b2e; box-shadow: 4px 0 10px rgba(0,0,0,0.3); animation: nap-door 8s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .natacha {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 50%; background: linear-gradient(180deg, #8b6b5b 0%, #5b4b3b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nap-figure 4s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .father {
  position: absolute; bottom: 15%; left: 55%; width: 10%; height: 55%; background: linear-gradient(180deg, #6b5b4b 0%, #3b2b1b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nap-figure 4s ease-in-out infinite 0.5s;
}
.scn-natacha-asks-about-potion .table {
  position: absolute; bottom: 12%; left: 45%; width: 15%; height: 5%; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,0.2); animation: nap-table 6s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .potion {
  position: absolute; bottom: 17%; left: 48%; width: 4%; height: 8%; background: radial-gradient(circle, #a0d0a0 0%, #507050 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 8px 2px rgba(80,120,80,0.5); animation: nap-glow 3s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .candle {
  position: absolute; bottom: 20%; left: 42%; width: 2%; height: 12%; background: linear-gradient(180deg, #f0d0a0 0%, #c08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #f0c060; animation: nap-flicker 1.5s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); animation: nap-shadow 8s ease-in-out infinite;
}
@keyframes nap-room {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.8; }
}
@keyframes nap-door {
  0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); }
}
@keyframes nap-figure {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nap-table {
  0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); }
}
@keyframes nap-glow {
  0% { box-shadow: 0 0 8px 2px rgba(80,120,80,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 16px 4px rgba(80,120,80,0.8); opacity: 1; } 100% { box-shadow: 0 0 8px 2px rgba(80,120,80,0.5); opacity: 0.9; }
}
@keyframes nap-flicker {
  0% { transform: scaleY(1) scaleX(1); } 25% { transform: scaleY(1.05) scaleX(0.95); } 50% { transform: scaleY(0.95) scaleX(1.05); } 75% { transform: scaleY(1.02) scaleX(0.98); } 100% { transform: scaleY(1) scaleX(1); }
}
@keyframes nap-shadow {
  0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.02); } 100% { opacity: 0.3; transform: scale(1); }
}

.scn-pretended-departure {
  background: linear-gradient(180deg, #fff5e6 0%, #f0e0c0 100%), radial-gradient(ellipse at 30% 30%, #fff 0%, transparent 60%);
}
.scn-pretended-departure .chamber-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f5ecd6 0%, #dcc8a0 100%); opacity: 0.7; animation: pd-bg 15s ease-in-out infinite;
}
.scn-pretended-departure .window {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 40%; background: linear-gradient(180deg, #e0f0ff 0%, #b0d0f0 100%); border: 4px solid #8a7a5a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 10px rgba(255,255,255,0.5); animation: pd-window 12s ease-in-out infinite alternate;
}
.scn-pretended-departure .matrena {
  position: absolute; bottom: 12%; left: 35%; width: 9%; height: 45%; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figure 6s ease-in-out infinite;
}
.scn-pretended-departure .rouletabille {
  position: absolute; bottom: 12%; left: 55%; width: 8%; height: 48%; background: linear-gradient(180deg, #806040 0%, #403020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-figure 6s ease-in-out infinite 3s;
}
.scn-pretended-departure .luggage {
  position: absolute; bottom: 10%; left: 62%; width: 8%; height: 8%; background: linear-gradient(135deg, #705040 0%, #302010 100%); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,0.3); animation: pd-luggage 10s ease-in-out infinite;
}
.scn-pretended-departure .hat-stand {
  position: absolute; bottom: 12%; left: 20%; width: 3%; height: 60%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0;
}
.scn-pretended-departure .hat-stand::before {
  content: ''; position: absolute; top: 0; left: -100%; width: 300%; height: 6%; background: #4a3a2a; border-radius: 50%;
}
.scn-pretended-departure .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 15%; background: radial-gradient(ellipse, #8b7a6b 0%, transparent 70%); border-radius: 50%; opacity: 0.6; animation: pd-carpet 20s ease-in-out infinite;
}
@keyframes pd-bg {
  0% { opacity: 0.7; } 50% { opacity: 0.75; } 100% { opacity: 0.7; }
}
@keyframes pd-window {
  0% { background: linear-gradient(180deg, #e0f0ff 0%, #b0d0f0 100%); } 50% { background: linear-gradient(180deg, #d0e8ff 0%, #a0c0e0 100%); } 100% { background: linear-gradient(180deg, #e0f0ff 0%, #b0d0f0 100%); }
}
@keyframes pd-figure {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pd-luggage {
  0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); }
}
@keyframes pd-carpet {
  0% { opacity: 0.6; } 50% { opacity: 0.7; } 100% { opacity: 0.6; }
}

.scn-arsenate-of-soda {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c9b0 60%, #b8a68e 100%),
              radial-gradient(ellipse at 50% 30%, #fff2d0 0%, transparent 60%);
}
.scn-arsenate-of-soda .as-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8ddd0 0%, #c0b0a0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
}
.scn-arsenate-of-soda .as-window {
  position: absolute; top: 8%; left: 55%; width: 28%; height: 45%;
  background: linear-gradient(135deg, #fffbe6 0%, #ffe8a0 80%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 0 40px 12px rgba(255,235,160,.4);
  animation: as-window-glow 6s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .as-table {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #9c7a60 0%, #7a5a40 100%);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
}
.scn-arsenate-of-soda .as-phial {
  position: absolute; bottom: 30%; left: 42%; width: 10px; height: 28px;
  background: linear-gradient(180deg, rgba(180,220,200,.7) 0%, rgba(140,180,160,.3) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.4), inset 0 0 6px rgba(255,255,255,.3);
  animation: as-phial-tremble 2.5s ease-in-out infinite;
}
.scn-arsenate-of-soda .as-figure {
  position: absolute; bottom: 14%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-figure-sway 4s ease-in-out infinite;
}
.scn-arsenate-of-soda .as-shadow {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: as-shadow-pulse 3s ease-in-out infinite;
}
.scn-arsenate-of-soda .as-light-beam {
  position: absolute; top: 8%; left: 55%; width: 28%; height: 90%;
  background: linear-gradient(135deg, rgba(255,240,180,.08) 0%, transparent 40%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: as-beam-sway 8s ease-in-out infinite alternate;
}
.scn-arsenate-of-soda .as-glint {
  position: absolute; bottom: 36%; left: 43%; width: 4px; height: 4px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(255,255,255,.8);
  animation: as-glint-flicker 1.5s steps(2) infinite;
}
@keyframes as-window-glow {
  0% { opacity: .75; box-shadow: 0 0 30px 8px rgba(255,235,160,.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,235,160,.5); }
  100% { opacity: .85; box-shadow: 0 0 36px 10px rgba(255,235,160,.35); }
}
@keyframes as-phial-tremble {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(1px,-0.5px) rotate(-1deg); }
  60% { transform: translate(-1px,0.5px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes as-figure-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes as-shadow-pulse {
  0% { opacity: .5; transform: scaleX(1); }
  50% { opacity: .8; transform: scaleX(1.05); }
  100% { opacity: .5; transform: scaleX(1); }
}
@keyframes as-beam-sway {
  0% { transform: skewX(0deg); opacity: .6; }
  50% { transform: skewX(2deg); opacity: .9; }
  100% { transform: skewX(-2deg); opacity: .6; }
}
@keyframes as-glint-flicker {
  0% { opacity: 1; }
  50% { opacity: .2; }
  100% { opacity: 1; }
}

.scn-barinia-announces-stranger {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #c8a87a 30%, #8a6a4a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 70% 40%, #fff5e0 0%, transparent 50%);
}
.scn-barinia-announces-stranger .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e0c8a0 0%, #b89870 50%, #7a5a3a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
  animation: sa-wall 12s ease-in-out infinite alternate;
}
.scn-barinia-announces-stranger .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a14 100%);
  border-top: 2px solid #5a4020;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-barinia-announces-stranger .window-light {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff0d0 0%, #f0d8b0 60%, #d0b090 100%);
  border: 4px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: 0 0 40px 12px rgba(255, 240, 200, 0.3), inset 0 0 30px rgba(255, 240, 200, 0.4);
  animation: sa-window 8s ease-in-out infinite alternate;
}
.scn-barinia-announces-stranger .lamp-glow {
  position: absolute; top: 25%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff8e0 0%, #f0c040 50%, #c08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(240, 192, 64, 0.6), 0 0 100px 40px rgba(240, 192, 64, 0.3);
  animation: sa-lamp 3s ease-in-out infinite alternate;
}
.scn-barinia-announces-stranger .figure-barinia {
  position: absolute; bottom: 35%; left: 25%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-barinia 5s ease-in-out infinite;
}
.scn-barinia-announces-stranger .figure-ermolai {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0802 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-ermolai 4s ease-in-out infinite;
}
.scn-barinia-announces-stranger .figure-stranger {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #1a1008 0%, #080400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-stranger 7s ease-in-out infinite;
}
.scn-barinia-announces-stranger .cast-shadow {
  position: absolute; bottom: 35%; left: 20%; width: 200px; height: 40px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 30% 30%;
  filter: blur(8px);
  animation: sa-shadow 5s ease-in-out infinite;
}
.scn-barinia-announces-stranger .table-small {
  position: absolute; bottom: 35%; left: 45%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(10deg);
  animation: sa-table 6s ease-in-out infinite;
}

@keyframes sa-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sa-window { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes sa-lamp { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 40px 15px rgba(240,192,64,0.5), 0 0 80px 30px rgba(240,192,64,0.2); } 50% { transform: scale(1.1) rotate(5deg); box-shadow: 0 0 60px 25px rgba(240,192,64,0.7), 0 0 120px 50px rgba(240,192,64,0.4); } 100% { transform: scale(0.95) rotate(-3deg); box-shadow: 0 0 30px 10px rgba(240,192,64,0.4), 0 0 60px 20px rgba(240,192,64,0.2); } }
@keyframes sa-barinia { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 80% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-ermolai { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-4px) rotate(-2deg); } 75% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sa-stranger { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(0.98); } }
@keyframes sa-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(-5px) scaleX(1.1); opacity: 0.25; } 100% { transform: translateX(3px) scaleX(0.9); opacity: 0.35; } }
@keyframes sa-table { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(10deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(1px); } }

.scn-natacha-asks-about-potion {
  background:
    radial-gradient(ellipse at 30% 50%, rgba(255, 220, 180, 0.3) 0%, transparent 50%),
    linear-gradient(180deg, #f0e2d0 0%, #d6c4b0 30%, #b8a290 70%, #8b7a6a 100%);
}
.scn-natacha-asks-about-potion .bg-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #cbb6a0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: nt-wall 8s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .bg-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background:
    linear-gradient(135deg, #a08570 0%, #8b7460 40%, #7a6450 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: nt-floor 10s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .door {
  position: absolute;
  bottom: 30%; right: 18%;
  width: 80px;
  height: 130px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border: 2px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset -3px 0 8px rgba(0,0,0,0.4), 4px 0 12px rgba(0,0,0,0.2);
  animation: nt-door 14s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .lamp {
  position: absolute;
  bottom: 50%; left: 20%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle at 50% 30%, #fff0d0 0%, #e0b080 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(224,176,128,0.6), 0 0 80px 30px rgba(224,176,128,0.3);
  animation: nt-lamp 2s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .table {
  position: absolute;
  bottom: 33%; left: 12%;
  width: 70px;
  height: 12px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: nt-table 12s ease-in-out infinite;
}
.scn-natacha-asks-about-potion .potion {
  position: absolute;
  bottom: 37%; left: 15%;
  width: 12px;
  height: 18px;
  background: linear-gradient(180deg, #a08050 0%, #6a5030 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(160,128,80,0.5);
  animation: nt-potion 3s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .father {
  position: absolute;
  bottom: 26%; left: 40%;
  width: 28px;
  height: 60px;
  background: linear-gradient(135deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: nt-father 6s ease-in-out infinite alternate;
}
.scn-natacha-asks-about-potion .natacha {
  position: absolute;
  bottom: 26%; left: 35%;
  width: 22px;
  height: 28px; /* shorter, child-like */
  background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: nt-natacha 5s ease-in-out infinite alternate;
}
@keyframes nt-wall {
  0% { opacity: 0.85; filter: brightness(1); }
  50% { opacity: 0.9; filter: brightness(1.05); }
  100% { opacity: 0.88; filter: brightness(0.95); }
}
@keyframes nt-floor {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(1px) scale(0.99); }
}
@keyframes nt-door {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(2px, -1px) rotate(0.5deg); }
  50% { transform: translate(0, 1px) rotate(-0.3deg); }
  75% { transform: translate(-1px, 2px) rotate(0.2deg); }
}
@keyframes nt-lamp {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; box-shadow: 0 0 30px 10px rgba(224,176,128,0.5); }
  30% { transform: scale(1.02) rotate(1deg); opacity: 1; box-shadow: 0 0 50px 15px rgba(224,176,128,0.7); }
  60% { transform: scale(0.98) rotate(-0.5deg); opacity: 0.85; box-shadow: 0 0 25px 8px rgba(224,176,128,0.4); }
  100% { transform: scale(1.01) rotate(0.3deg); opacity: 0.9; box-shadow: 0 0 40px 12px rgba(224,176,128,0.6); }
}
@keyframes nt-table {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.2deg); }
}
@keyframes nt-potion {
  0% { transform: translate(0, 0) scale(1); opacity: 0.8; box-shadow: 0 0 8px 3px rgba(160,128,80,0.4); }
  50% { transform: translate(0, -1px) scale(1.02); opacity: 1; box-shadow: 0 0 16px 6px rgba(160,128,80,0.7); }
  100% { transform: translate(0, 0) scale(0.98); opacity: 0.85; box-shadow: 0 0 10px 4px rgba(160,128,80,0.5); }
}
@keyframes nt-father {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  30% { transform: translateX(-2px) translateY(-1px) rotate(0deg); }
  60% { transform: translateX(1px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); }
}
@keyframes nt-natacha {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  40% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  70% { transform: translateX(-1px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(2px) translateY(0) rotate(0.5deg); }
}

.scn-item-grapes-from-emperor {
  background:
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 40%, #c4b8a4 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255, 208, 128, 0.4) 0%, transparent 70%);
}
.scn-item-grapes-from-emperor .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #d0c4b0 0%, #a89880 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.15);
  animation: igfe-wall 12s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .window {
  position: absolute; top: 5%; left: 8%; width: 32%; height: 50%;
  background: linear-gradient(180deg, #fff8e0 0%, #ffe8b0 70%, #f0d88a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255, 255, 200, 0.8), 0 0 40px rgba(255, 208, 128, 0.3);
  animation: igfe-window 8s ease-in-out infinite alternate;
}
.scn-item-grapes-from-emperor .sunbeam {
  position: absolute; top: 0%; left: 22%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255, 230, 170, 0.35) 0%, rgba(255, 230, 170, 0) 80%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: igfe-sunbeam 6s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5540 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-item-grapes-from-emperor .bowl {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #c0a888 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: igfe-bowl 4s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .grapes {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 35% 35%, #b8654a 0%, #8a3a2a 40%, #5e1a1d 70%);
  border-radius: 50% 60% 40% 50% / 60% 50% 50% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,200,150,0.3);
  animation: igfe-grapes 3s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .figure {
  position: absolute; bottom: 10%; left: 32%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: igfe-figure 5s ease-in-out infinite;
}
.scn-item-grapes-from-emperor .shadow {
  position: absolute; bottom: 8%; left: 25%; width: 70px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: igfe-shadow 5s ease-in-out infinite;
}
@keyframes igfe-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes igfe-window {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes igfe-sunbeam {
  0% { transform: translateX(-5%) skewX(-2deg); opacity: 0.6; }
  50% { transform: translateX(5%) skewX(3deg); opacity: 0.9; }
  100% { transform: translateX(-3%) skewX(-1deg); opacity: 0.7; }
}
@keyframes igfe-bowl {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes igfe-grapes {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) rotate(2deg); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes igfe-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes igfe-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.05); opacity: 0.4; }
  100% { transform: scaleX(0.95); opacity: 0.25; }
}

.scn-pretended-departure {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a8 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-pretended-departure .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c9a6 100%);
  animation: pd-wall-light 10s ease-in-out infinite alternate;
}
.scn-pretended-departure .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b5230 100%);
  border-radius: 4% 4% 0 0 / 12% 12% 0 0;
  animation: pd-floor-breathe 15s ease-in-out infinite alternate;
}
.scn-pretended-departure .window {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #b4d4e8 0%, #d4e8f0 50%, #e8f4fa 100%);
  border: 4px solid #c0a880;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255, 255, 255, 0.3);
  animation: pd-window-sky 18s ease-in-out infinite alternate, pd-window-bright 9s ease-in-out infinite alternate;
}
.scn-pretended-departure .light-ray {
  position: absolute;
  top: 30%;
  right: 25%;
  width: 40%;
  height: 8%;
  background: linear-gradient(90deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  transform: skewY(-12deg);
  transform-origin: right bottom;
  animation: pd-ray-sweep 20s ease-in-out infinite alternate;
  filter: blur(6px);
}
.scn-pretended-departure .figure-standing {
  position: absolute;
  bottom: 38%;
  left: 40%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #3a2e2a 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-stand-sway 6s ease-in-out infinite;
}
.scn-pretended-departure .figure-seated {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 30px;
  height: 28px;
  background: linear-gradient(180deg, #4a3e3a 0%, #3a2e2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pd-seated-rock 5s ease-in-out infinite;
}
@keyframes pd-wall-light {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pd-floor-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.002); }
  100% { transform: scaleY(1); }
}
@keyframes pd-window-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes pd-window-bright {
  0% { box-shadow: inset 0 0 30px rgba(255,255,255,0.2); }
  50% { box-shadow: inset 0 0 50px rgba(255,255,255,0.4); }
  100% { box-shadow: inset 0 0 35px rgba(255,255,255,0.25); }
}
@keyframes pd-ray-sweep {
  0% { transform: skewY(-15deg) translateX(0); opacity: 0.5; }
  50% { transform: skewY(-10deg) translateX(8px); opacity: 0.8; }
  100% { transform: skewY(-15deg) translateX(0); opacity: 0.6; }
}
@keyframes pd-stand-sway {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1.5deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes pd-seated-rock {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.eyebrow { position: absolute; pointer-events: none; }
.ray-1 { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-departure-station-collapse {
  background: 
    linear-gradient(180deg, #b8d8f0 0%, #e0c8a0 40%, #f8d890 70%, #c89850 100%),
    radial-gradient(ellipse at 70% 30%, #ffebc0 0%, transparent 60%);
}

.scn-departure-station-collapse .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #d0b878 100%);
  animation: ds-sky 20s ease-in-out infinite alternate;
}

.scn-departure-station-collapse .sun {
  position: absolute;
  top: 20%;
  left: 70%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px #ffe080, 0 0 80px rgba(255,224,128,0.4);
  animation: ds-sun 8s ease-in-out infinite alternate;
}

.scn-departure-station-collapse .station-roof {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
}

.scn-departure-station-collapse .platform {
  position: absolute;
  bottom: 22%;
  left: 0;
  right: 0;
  height: 14%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}

.scn-departure-station-collapse .train-body {
  position: absolute;
  bottom: 22%;
  left: 10%;
  width: 40%;
  height: 18%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: ds-train 120s linear infinite;
}

.scn-departure-station-collapse .train-window {
  position: absolute;
  bottom: 26%;
  left: 20%;
  width: 12%;
  height: 10%;
  background: radial-gradient(circle, #c0d8f0 0%, #80a8c8 60%, transparent 80%);
  border-radius: 30%;
  box-shadow: inset 0 0 6px #a0b8d0;
  animation: ds-window 3s ease-in-out infinite alternate;
}

.scn-departure-station-collapse .figure {
  position: absolute;
  bottom: 24%;
  left: 52%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-figure 4s ease-in-out infinite;
}

.scn-departure-station-collapse .cloud-1 {
  position: absolute;
  top: 10%;
  left: 5%;
  width: 100px;
  height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ds-cloud1 40s linear infinite;
}

.scn-departure-station-collapse .cloud-2 {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 70px;
  height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,240,200,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ds-cloud2 55s linear infinite reverse;
}

@keyframes ds-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes ds-sun {
  0% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 30px #ffe080, 0 0 60px rgba(255,224,128,0.3); }
  50% { transform: scale(1.08); opacity: 1; box-shadow: 0 0 50px #ffe080, 0 0 100px rgba(255,224,128,0.5); }
  100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 35px #ffe080, 0 0 70px rgba(255,224,128,0.35); }
}

@keyframes ds-train {
  0% { transform: translateX(0); }
  100% { transform: translateX(200vw); }
}

@keyframes ds-window {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}

@keyframes ds-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}

@keyframes ds-cloud1 {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(120vw); }
}

@keyframes ds-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* assassination-attempts-recounted */
.scn-assassination-attempts-recounted {
  background: linear-gradient(180deg, #1a1820 0%, #2a2635 40%, #1f1c2a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2f4a 0%, transparent 60%);
}
.scn-assassination-attempts-recounted .aa-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(90deg, #201e2a 0%, #2d2a3a 50%, #1c1a24 100%); }
.scn-assassination-attempts-recounted .aa-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2c2835 0%, #1a1720 100%); }
.scn-assassination-attempts-recounted .aa-table { position:absolute; bottom:30%; left:35%; width:30%; height:12%; background: linear-gradient(135deg, #3a3545 0%, #24202e 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-assassination-attempts-recounted .aa-lamp { position:absolute; bottom:40%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 20%, #b08850 0%, #5a4030 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px rgba(160,120,80,0.3), 0 0 80px 30px rgba(100,70,40,0.15); animation: aa-flicker 4s ease-in-out infinite; }
.scn-assassination-attempts-recounted .aa-general { position:absolute; bottom:28%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2d2838 0%, #181520 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-breathe 6s ease-in-out infinite; }
.scn-assassination-attempts-recounted .aa-matrena { position:absolute; bottom:28%; left:48%; width:28px; height:55px; background: linear-gradient(180deg, #2a2540 0%, #1a1628 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: aa-breathe 6s ease-in-out 1.5s infinite; }
.scn-assassination-attempts-recounted .aa-rouletabille { position:absolute; bottom:28%; left:62%; width:26px; height:52px; background: linear-gradient(180deg, #2c2840 0%, #151220 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: aa-breathe 6s ease-in-out 3s infinite; }
.scn-assassination-attempts-recounted .aa-shadow { position:absolute; bottom:25%; left:25%; width:50%; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(4px); animation: aa-shadow-sway 8s ease-in-out infinite; }
@keyframes aa-flicker { 0% { opacity:0.8; transform: translateX(-50%) scale(1); } 25% { opacity:1; transform: translateX(-50%) scale(1.02); } 50% { opacity:0.7; transform: translateX(-50%) scale(0.98); } 75% { opacity:0.9; transform: translateX(-50%) scale(1.01); } 100% { opacity:0.8; transform: translateX(-50%) scale(1); } }
@keyframes aa-breathe { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes aa-shadow-sway { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

/* police-removed-debate */
.scn-police-removed-debate {
  background: linear-gradient(135deg, #1e1a26 0%, #2a2535 50%, #14101e 100%),
              radial-gradient(circle at 70% 40%, #3a2f4a 0%, transparent 50%);
}
.scn-police-removed-debate .pr-room { position:absolute; inset:0; background: linear-gradient(180deg, #1e1a26 0%, #2a2535 100%); }
.scn-police-removed-debate .pr-wall-left { position:absolute; top:0; bottom:15%; left:0; width:35%; background: linear-gradient(90deg, #2c2740 0%, #1f1b30 100%); border-right: 2px solid #3a3050; }
.scn-police-removed-debate .pr-door { position:absolute; bottom:15%; left:38%; width:40px; height:70px; background: linear-gradient(180deg, #3a3250 0%, #221e38 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4); animation: pr-door 10s ease-in-out infinite; }
.scn-police-removed-debate .pr-chandelier { position:absolute; top:5%; left:50%; width:40px; height:25px; transform: translateX(-50%); background: radial-gradient(circle at 50% 20%, #d0a860 0%, #a08030 60%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(180,140,70,0.3); animation: pr-flicker 3s ease-in-out infinite; }
.scn-police-removed-debate .pr-figure-ath { position:absolute; bottom:22%; left:22%; width:28px; height:58px; background: linear-gradient(180deg, #2d283e 0%, #19162a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 45% 45%; transform-origin: bottom center; animation: pr-shift 5s ease-in-out infinite; }
.scn-police-removed-debate .pr-figure-gen { position:absolute; bottom:22%; left:45%; width:32px; height:62px; background: linear-gradient(180deg, #2a2538 0%, #12101e 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-shift 5s ease-in-out 2s infinite; }
.scn-police-removed-debate .pr-figure-mich { position:absolute; bottom:22%; left:65%; width:26px; height:52px; background: linear-gradient(180deg, #2c2840 0%, #151226 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pr-shift 5s ease-in-out 4s infinite; }
.scn-police-removed-debate .pr-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(200,180,120,0.03) 0%, transparent 60%); animation: pr-flicker 2s ease-in-out infinite; }
@keyframes pr-door { 0%,100% { transform: translateX(0) rotateY(0deg); } 25% { transform: translateX(-5px) rotateY(2deg); } 50% { transform: translateX(0) rotateY(0deg); } 75% { transform: translateX(5px) rotateY(-2deg); } }
@keyframes pr-shift { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(2px) rotate(-1deg); } }
@keyframes pr-flicker { 0% { opacity:0.7 } 25% { opacity:1 } 50% { opacity:0.6 } 75% { opacity:0.9 } 100% { opacity:0.7 } }

/* statue-disguise-questions */
.scn-statue-disguise-questions {
  background: linear-gradient(180deg, #14162a 0%, #1a1d38 40%, #121430 100%),
              radial-gradient(ellipse at 60% 15%, #3a4080 0%, transparent 60%);
}
.scn-statue-disguise-questions .sd-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #11142a 0%, #1a1d3a 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-statue-disguise-questions .sd-lawn { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a20 0%, #0a1a10 100%); border-radius: 30% 70% 0 0 / 20% 80% 0 0; }
.scn-statue-disguise-questions .sd-veranda { position:absolute; bottom:30%; left:0; width:100%; height:20%; background: linear-gradient(180deg, #2a2840 0%, #1a1830 100%); border-radius: 0 0 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-statue-disguise-questions .sd-statue { position:absolute; bottom:32%; left:25%; width:28px; height:90px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); transform-origin: bottom center; animation: sd-statue-sway 8s ease-in-out infinite; }
.scn-statue-disguise-questions .sd-natacha { position:absolute; bottom:28%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #2a2845 0%, #181630 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: sd-natacha 6s ease-in-out infinite; }
.scn-statue-disguise-questions .sd-moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #d0d8e0 0%, #8088a0 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(160,180,220,0.3); animation: sd-moon-glow 12s ease-in-out infinite; }
.scn-statue-disguise-questions .sd-cloud { position:absolute; top:5%; left:-60px; width:120px; height:25px; background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 100%); border-radius: 50%; filter: blur(8px); animation: sd-cloud 40s linear infinite; }
@keyframes sd-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes sd-statue-sway { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes sd-natacha { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes sd-moon-glow { 0% { box-shadow: 0 0 30px 10px rgba(160,180,220,0.3); } 50% { box-shadow: 0 0 60px 20px rgba(160,180,220,0.5); } 100% { box-shadow: 0 0 30px 10px rgba(160,180,220,0.3); } }
@keyframes sd-cloud { 0% { transform: translateX(-120px); } 100% { transform: translateX(calc(100vw + 120px)); } }

/* ticking-bomb-bouquet */
.scn-ticking-bomb-bouquet {
  background: linear-gradient(180deg, #1a1a24 0%, #12121c 50%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 50%);
}
.scn-ticking-bomb-bouquet .tb-backwall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1e1a26 0%, #14101e 100%); }
.scn-ticking-bomb-bouquet .tb-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1720 0%, #0a0810 100%); }
.scn-ticking-bomb-bouquet .tb-table { position:absolute; bottom:28%; left:30%; width:40%; height:10%; background: linear-gradient(135deg, #2a2835 0%, #1a1825 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-ticking-bomb-bouquet .tb-bouquet { position:absolute; bottom:34%; left:48%; width:40px; height:30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #7a6040 0%, #3a2a1a 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px rgba(120,80,40,0.3); animation: tb-bloom 4s ease-in-out infinite alternate; }
.scn-ticking-bomb-bouquet .tb-bomb { position:absolute; bottom:36%; left:48%; width:16px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5); animation: tb-tick 1s ease-in-out infinite; }
.scn-ticking-bomb-bouquet .tb-window { position:absolute; bottom:30%; right:10%; width:50px; height:80px; background: linear-gradient(180deg, #1a1e2a 0%, #10141e 100%); border: 2px solid #2a2a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-ticking-bomb-bouquet .tb-hand { position:absolute; bottom:30%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #2a2840 0%, #1a1830 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform-origin: 70% 100%; animation: tb-throw 6s ease-in-out infinite; }
.scn-ticking-bomb-bouquet .tb-tick { position:absolute; bottom:36%; left:48%; width:40px; height:40px; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(200,60,40,0.15) 0%, transparent 70%); animation: tb-tick-glow 1s ease-in-out infinite; pointer-events: none; }
@keyframes tb-bloom { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.05); } }
@keyframes tb-tick { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } }
@keyframes tb-throw { 0% { transform: rotate(0deg); } 20% { transform: rotate(30deg); } 40% { transform: rotate(-20deg); } 60% { transform: rotate(50deg); } 80% { transform: rotate(-30deg); } 100% { transform: rotate(0deg); } }
@keyframes tb-tick-glow { 0%,100% { opacity:0.3; transform: translate(-50%,-50%) scale(1); } 50% { opacity:0.8; transform: translate(-50%,-50%) scale(1.5); } }

/* scene: item-arsenate-grapes */
.scn-item-arsenate-grapes {
  background: linear-gradient(180deg, #0f0e1e 0%, #1a1630 60%, #0b0b14 100%),
              radial-gradient(ellipse at 70% 60%, #2a1f3a 0%, transparent 70%);
}
.scn-item-arsenate-grapes .wall-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,8,20,.8) 0%, transparent 40%, rgba(0,0,0,.6) 100%); animation: iag-fade 9s ease-in-out infinite alternate; }
.scn-item-arsenate-grapes .table-slab { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #2a251a 0%, #1a1510 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-item-arsenate-grapes .phial-glow { position:absolute; bottom:26%; left:48%; width:28px; height:38px; transform:translateX(-50%); background: radial-gradient(circle, #c8a050 0%, #7a5a20 70%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 20px 6px rgba(200,160,80,.4), 0 0 40px 12px rgba(200,160,80,.15); animation: iag-phial 5s ease-in-out infinite; }
.scn-item-arsenate-grapes .phial-body { position:absolute; bottom:26%; left:48%; width:22px; height:34px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(180,160,120,.4) 0%, rgba(100,80,40,.6) 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; border: 1px solid rgba(200,180,120,.3); }
.scn-item-arsenate-grapes .candle { position:absolute; bottom:28%; left:35%; width:8px; height:14px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a070 100%); border-radius: 20% 20% 10% 10%; animation: iag-candle 6s ease-in-out infinite; }
.scn-item-arsenate-grapes .figure-sil { position:absolute; bottom:12%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #0a0810 0%, #1a1420 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: iag-figure 7s ease-in-out infinite alternate; }
.scn-item-arsenate-grapes .shadow-pool { position:absolute; bottom:18%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); animation: iag-shadow 10s ease-in-out infinite alternate; }

@keyframes iag-fade { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes iag-phial { 0% { transform:translateX(-50%) scale(1) rotate(0) } 50% { transform:translateX(-50%) scale(1.02) rotate(2deg) } 100% { transform:translateX(-50%) scale(1) rotate(-1deg) } }
@keyframes iag-candle { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.05) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes iag-figure { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes iag-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.55 } }

/* scene: vanished-grapes-explanation */
.scn-vanished-grapes-explanation {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dfc0 50%, #d4c8a0 100%),
              radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 70%);
}
.scn-vanished-grapes-explanation .garden-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 40%, transparent 100%); animation: vge-sky 20s ease-in-out infinite alternate; }
.scn-vanished-grapes-explanation .wall-far { position:absolute; bottom:35%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.05); }
.scn-vanished-grapes-explanation .table-wood { position:absolute; bottom:22%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.1); animation: vge-table 12s ease-in-out infinite; }
.scn-vanished-grapes-explanation .chair-empty { position:absolute; bottom:18%; left:50%; width:30px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; }
.scn-vanished-grapes-explanation .dish-empty { position:absolute; bottom:28%; left:42%; width:40px; height:10px; background: radial-gradient(ellipse, #d0c0a0 0%, #a09070 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.1); animation: vge-dish 8s ease-in-out infinite alternate; }
.scn-vanished-grapes-explanation .sun-ray { position:absolute; top:5%; left:20%; width:12px; height:70%; background: linear-gradient(180deg, rgba(255,240,180,.3) 0%, rgba(255,240,180,.05) 100%); transform:rotate(20deg); filter: blur(8px); animation: vge-sun 25s linear infinite; }
.scn-vanished-grapes-explanation .leaf-left { position:absolute; top:30%; left:15%; width:30px; height:15px; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 50% 0 50% 0; transform:rotate(-30deg); animation: vge-leaf-l 15s ease-in-out infinite; }
.scn-vanished-grapes-explanation .leaf-right { position:absolute; top:25%; right:15%; width:24px; height:12px; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 0 50% 0 50%; transform:rotate(40deg); animation: vge-leaf-r 18s ease-in-out infinite reverse; }

@keyframes vge-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes vge-table { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes vge-dish { 0% { transform:scale(1) rotate(0) } 50% { transform:scale(1.02) rotate(2deg) } 100% { transform:scale(1) rotate(-1deg) } }
@keyframes vge-sun { 0% { transform:rotate(20deg) translateX(0) } 100% { transform:rotate(20deg) translateX(30px) } }
@keyframes vge-leaf-l { 0% { transform:rotate(-30deg) translateY(0) } 50% { transform:rotate(-25deg) translateY(-5px) } 100% { transform:rotate(-30deg) translateY(0) } }
@keyframes vge-leaf-r { 0% { transform:rotate(40deg) translateY(0) } 50% { transform:rotate(35deg) translateY(-3px) } 100% { transform:rotate(40deg) translateY(0) } }

/* scene: letter-warning-and-natacha-question */
.scn-letter-warning-and-natacha-question {
  background: linear-gradient(180deg, #1a1420 0%, #2a2035 60%, #0a0810 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-letter-warning-and-natacha-question .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,16,28,.6) 0%, rgba(40,30,50,.3) 70%, transparent 100%); animation: lwn-wall 10s ease-in-out infinite alternate; }
.scn-letter-warning-and-natacha-question .desk-top { position:absolute; bottom:18%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-letter-warning-and-natacha-question .candle-flame { position:absolute; bottom:26%; left:25%; width:6px; height:8px; background: radial-gradient(circle, #ffd080 0%, #e09040 60%, transparent); border-radius: 50%; box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(208,128,48,.3); animation: lwn-candle 2s ease-in-out infinite; }
.scn-letter-warning-and-natacha-question .letter-fold { position:absolute; bottom:24%; left:38%; width:40px; height:28px; background: linear-gradient(135deg, #d0b890 0%, #b09870 100%); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.4); transform:rotate(5deg); animation: lwn-letter 7s ease-in-out infinite; }
.scn-letter-warning-and-natacha-question .hand-hold { position:absolute; bottom:20%; left:36%; width:14px; height:20px; background: linear-gradient(180deg, #8a7060 0%, #5a4030 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(-10deg); animation: lwn-hand 5s ease-in-out infinite alternate; }
.scn-letter-warning-and-natacha-question .figure-profile { position:absolute; bottom:12%; right:20%; width:24px; height:50px; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom; animation: lwn-profile 8s ease-in-out infinite; }

@keyframes lwn-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes lwn-candle { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.15) translateY(-1px) } 100% { transform:scale(1) translateY(0) } }
@keyframes lwn-letter { 0%,100% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(7deg) translateY(-2px) } }
@keyframes lwn-hand { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-1px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes lwn-profile { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }

/* scene: walk-through-petersburg */
.scn-walk-through-petersburg {
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8d0 50%, #8898b0 100%),
              radial-gradient(ellipse at 80% 30%, #d8e8f0 0%, transparent 70%);
}
.scn-walk-through-petersburg .petersburg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0e8f8 0%, #b0d0e8 60%, transparent 100%); animation: wtp-sky 25s ease-in-out infinite alternate; }
.scn-walk-through-petersburg .buildings-bg { position:absolute; bottom:20%; left:0; right:0; height:45%; background: repeating-linear-gradient(90deg, #d0c8b8 0px, #d0c8b8 30px, #c0b8a8 30px, #c0b8a8 32px, #e0d8c8 32px, #e0d8c8 60px, #d8d0c0 60px, #d8d0c0 90px); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.05); animation: wtp-build 30s linear infinite; }
.scn-walk-through-petersburg .street-base { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #908070 0%, #706050 100%); }
.scn-walk-through-petersburg .cobble-stones { position:absolute; bottom:5%; left:0; right:0; height:18%; background: radial-gradient(circle at 10% 30%, #a09080 2px, transparent 3px), radial-gradient(circle at 22% 60%, #a09080 2px, transparent 3px), radial-gradient(circle at 35% 20%, #a09080 2px, transparent 3px), radial-gradient(circle at 50% 50%, #a09080 2px, transparent 3px), radial-gradient(circle at 65% 30%, #a09080 2px, transparent 3px), radial-gradient(circle at 80% 60%, #a09080 2px, transparent 3px), radial-gradient(circle at 92% 20%, #a09080 2px, transparent 3px); background-size: 40px 30px; animation: wtp-cobble 20s linear infinite; }
.scn-walk-through-petersburg .walking-figure { position:absolute; bottom:14%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: wtp-walk 4s ease-in-out infinite; }
.scn-walk-through-petersburg .carriage { position:absolute; bottom:15%; right:15%; width:50px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: wtp-carriage 12s ease-in-out infinite; }
.scn-walk-through-petersburg .tree-line { position:absolute; bottom:28%; left:0; right:0; height:18%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(4px); animation: wtp-tree 18s ease-in-out infinite alternate; }

@keyframes wtp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wtp-build { 0% { transform:translateX(0) } 100% { transform:translateX(-30px) } }
@keyframes wtp-cobble { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes wtp-walk { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(8px) rotate(1deg) } 50% { transform:translateX(16px) rotate(-1deg) } 75% { transform:translateX(24px) rotate(1deg) } 100% { transform:translateX(32px) rotate(0) } }
@keyframes wtp-carriage { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(-5px) translateY(-2px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes wtp-tree { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } 100% { transform:scaleY(1) } }

.scn-datcha-arrival { 
  background: linear-gradient(180deg, #b8d4f0 0%, #e8f4ff 40%, #f0e0c0 80%), radial-gradient(ellipse at 20% 60%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-datcha-arrival .sky-da { 
  position:absolute; inset:0; background: linear-gradient(180deg, #8ab8d0 0%, #b8d4f0 60%);
  animation: da-sky 6s ease-in-out infinite alternate;
}
.scn-datcha-arrival .sun-da {
  position:absolute; top:8%; left:15%; width:60px; height:60px;
  background: radial-gradient(circle, #fff5d0 0%, #f0d080 40%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 80px 20px rgba(240,208,128,0.5);
  animation: da-sun 15s ease-in-out infinite;
}
.scn-datcha-arrival .villa-da {
  position:absolute; bottom:30%; left:30%; width:180px; height:110px;
  background: linear-gradient(180deg, #d4b080 0%, #b09070 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 4px 6px 15px rgba(0,0,0,0.3);
  animation: da-villa 12s ease-in-out infinite alternate;
}
.scn-datcha-arrival .window-da {
  position:absolute; bottom:45%; width:20px; height:26px;
  background: radial-gradient(circle, #ffe0a0 0%, #d0a060 70%);
  border-radius: 20%; box-shadow: 0 0 18px 6px #d0a060;
}
.scn-datcha-arrival .win-a { left:32%; animation: da-window 3s 0.5s ease-in-out infinite alternate; }
.scn-datcha-arrival .win-b { left:58%; animation: da-window 3s 1s ease-in-out infinite alternate; }
.scn-datcha-arrival .path-da {
  position:absolute; bottom:22%; left:35%; width:90px; height:20px;
  background: linear-gradient(90deg, #9a7a5a 0%, #b09070 40%, #9a7a5a 100%);
  border-radius: 50% / 40%; transform: perspective(300px) rotateX(30deg);
  animation: da-path 8s linear infinite;
}
.scn-datcha-arrival .figure-da {
  position:absolute; bottom:20%; width:16px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-datcha-arrival .stranger { left:38%; animation: da-walk 4s linear infinite; }
.scn-datcha-arrival .servant { left:50%; animation: da-walk 4s 2s linear infinite; }
.scn-datcha-arrival .tree-da {
  position:absolute; bottom:30%; left:65%; width:30px; height:100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: -10px 0 15px rgba(0,0,0,0.2);
  animation: da-tree 20s ease-in-out infinite;
}
@keyframes da-sky { 0% { filter: brightness(1) saturate(1.2) } 50% { filter: brightness(1.1) saturate(1) } 100% { filter: brightness(0.95) saturate(1.1) } }
@keyframes da-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.05) } 100% { transform: translate(-5px,3px) scale(0.98) } }
@keyframes da-villa { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes da-window { 0% { opacity:0.7; box-shadow:0 0 12px 4px #d0a060 } 50% { opacity:1; box-shadow:0 0 28px 10px #ffe0a0 } 100% { opacity:0.8; box-shadow:0 0 16px 6px #d0a060 } }
@keyframes da-path { 0% { background-position:0 0 } 100% { background-position:90px 0 } }
@keyframes da-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes da-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

.scn-train-assassination-story {
  background: linear-gradient(180deg, #c8a870 0%, #b89058 30%, #907050 70%), radial-gradient(ellipse at 70% 60%, #e0c090 0%, transparent 60%);
}
.scn-train-assassination-story .compartment-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #a08050 0%, #c8a870 50%, #a08050 100%);
  animation: ta-bg 8s ease-in-out infinite alternate;
}
.scn-train-assassination-story .seat-l {
  position:absolute; bottom:20%; left:10%; width:35%; height:30%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateY(10deg);
}
.scn-train-assassination-story .seat-r {
  position:absolute; bottom:20%; right:10%; width:35%; height:30%;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateY(-10deg);
}
.scn-train-assassination-story .window-train {
  position:absolute; top:12%; left:10%; width:25%; height:22%;
  background: radial-gradient(circle at 50% 30%, #b8d8f0 0%, #6890b0 80%);
  border: 3px solid #5a3a1a; border-radius: 12%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 0 15px rgba(100,144,176,0.3);
  animation: ta-window 10s linear infinite;
}
.scn-train-assassination-story .viands-table {
  position:absolute; bottom:10%; left:40%; width:20%; height:8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-train-assassination-story .figure-train {
  position:absolute; bottom:20%; width:20px; height:44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-train-assassination-story .rouletabille { left:43%; animation: ta-figure 3s ease-in-out infinite; }
.scn-train-assassination-story .matrena { left:52%; animation: ta-figure 3s 1.5s ease-in-out infinite; }
.scn-train-assassination-story .shadow-train {
  position:absolute; bottom:5%; left:35%; width:30%; height:2px;
  background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px);
  animation: ta-shadow 4s ease-in-out infinite;
}
@keyframes ta-bg { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes ta-window { 0% { background-position:0 0 } 50% { background-position:20px 10px } 100% { background-position:0 20px } }
@keyframes ta-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ta-shadow { 0% { width:30%; opacity:0.3 } 50% { width:28%; opacity:0.5 } 100% { width:30%; opacity:0.3 } }

.scn-police-dismissal-dinner {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a4a2a 40%, #4a2a1a 100%), radial-gradient(ellipse at 60% 40%, #b08050 0%, transparent 70%);
}
.scn-police-dismissal-dinner .wall-pd {
  position:absolute; inset:0; background: linear-gradient(135deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%);
  animation: pd-wall 10s ease-in-out infinite alternate;
}
.scn-police-dismissal-dinner .table-pd {
  position:absolute; bottom:15%; left:10%; width:80%; height:10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-police-dismissal-dinner .centerpiece {
  position:absolute; bottom:25%; left:46%; width:8%; height:12%;
  background: linear-gradient(180deg, #caa070 0%, #a08050 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px rgba(200,160,100,0.4);
  animation: pd-center 5s ease-in-out infinite;
}
.scn-police-dismissal-dinner .plate-pd {
  position:absolute; bottom:20%; left:38%; width:20px; height:20px;
  background: radial-gradient(circle, #e0d0c0 0%, #c0b0a0 80%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pd-plate 4s ease-in-out infinite alternate;
}
.scn-police-dismissal-dinner .glass-pd {
  position:absolute; bottom:24%; left:50%; width:8px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0.1) 100%);
  border-radius: 20% 20% 10% 10%; border: 1px solid rgba(200,160,100,0.3);
  animation: pd-glass 3s ease-in-out infinite;
}
.scn-police-dismissal-dinner .figure-pd {
  position:absolute; bottom:15%; width:18px; height:38px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-police-dismissal-dinner .matrena-pd { left:20%; animation: pd-figure 6s ease-in-out infinite; }
.scn-police-dismissal-dinner .agent1 { left:60%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); animation: pd-agent 7s ease-in-out infinite; }
.scn-police-dismissal-dinner .agent2 { left:72%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); animation: pd-agent 7s 1s ease-in-out infinite; }
.scn-police-dismissal-dinner .agent3 { left:82%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); animation: pd-agent 7s 2s ease-in-out infinite; }
@keyframes pd-wall { 0% { filter: brightness(0.9) saturate(1.1) } 50% { filter: brightness(1.1) saturate(0.9) } 100% { filter: brightness(1) saturate(1) } }
@keyframes pd-center { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes pd-plate { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pd-glass { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes pd-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pd-agent { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-dinner-song-natacha {
  background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #8a5020 0%, transparent 70%);
}
.scn-dinner-song-natacha .wall-ds {
  position:absolute; inset:0; background: linear-gradient(135deg, #2a1005 0%, #4a2010 50%, #2a1005 100%);
  animation: ds-wall 15s ease-in-out infinite alternate;
}
.scn-dinner-song-natacha .candle-ds {
  position:absolute; top:30%; width:6px; height:20px;
  background: linear-gradient(180deg, #f0c080 0%, #c08040 80%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 15px rgba(240,192,128,0.6);
}
.scn-dinner-song-natacha .candle1 { left:20%; animation: ds-candle 3s ease-in-out infinite; }
.scn-dinner-song-natacha .candle2 { left:70%; animation: ds-candle 3s 1.5s ease-in-out infinite; }
.scn-dinner-song-natacha .table-ds {
  position:absolute; bottom:12%; left:5%; width:90%; height:8%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-dinner-song-natacha .figure-ds {
  position:absolute; bottom:12%; width:20px; height:42px;
  background: linear-gradient(180deg, #2a1005 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-dinner-song-natacha .narator { left:30%; animation: ds-narr 5s ease-in-out infinite; }
.scn-dinner-song-natacha .singer { left:55%; background: linear-gradient(180deg, #4a2010 0%, #2a1005 100%); animation: ds-sing 6s ease-in-out infinite; }
.scn-dinner-song-natacha .shadow-ds {
  position:absolute; bottom:5%; left:25%; width:50%; height:4px;
  background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(8px);
  animation: ds-shadow 5s ease-in-out infinite;
}
.scn-dinner-song-natacha .glow-ds {
  position:absolute; top:25%; left:30%; width:40%; height:40%;
  background: radial-gradient(ellipse, rgba(200,160,80,0.2) 0%, transparent 70%);
  mix-blend-mode: overlay; pointer-events: none;
  animation: ds-glow 4s ease-in-out infinite alternate;
}
@keyframes ds-wall { 0% { filter: brightness(0.8) } 50% { filter: brightness(1) } 100% { filter: brightness(0.9) } }
@keyframes ds-candle { 0% { transform: scaleY(1) rotate(-2deg); box-shadow:0 0 20px 10px rgba(240,192,128,0.5) } 50% { transform: scaleY(1.1) rotate(2deg); box-shadow:0 0 40px 20px rgba(240,192,128,0.7) } 100% { transform: scaleY(1) rotate(-1deg); box-shadow:0 0 25px 12px rgba(240,192,128,0.5) } }
@keyframes ds-narr { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ds-sing { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes ds-shadow { 0% { width:50%; opacity:0.4 } 50% { width:45%; opacity:0.6 } 100% { width:50%; opacity:0.4 } }
@keyframes ds-glow { 0% { opacity:0.3; transform: scale(0.95) } 50% { opacity:0.5; transform: scale(1.05) } 100% { opacity:0.4; transform: scale(1) } }

/* tribunal-sentence-korsakoff-traitor */
.scn-tribunal-sentence-korsakoff-traitor { background: linear-gradient(180deg, #1b1a2e 0%, #2a2a44 50%, #1a1a30 100%), radial-gradient(ellipse at 50% 30%, #2f2d4f 0%, transparent 70%); }
.scn-tribunal-sentence-korsakoff-traitor .wall-dark { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1f1e38 0%, #121124 100%); }
.scn-tribunal-sentence-korsakoff-traitor .floor-plan { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2c2a3a 0%, #1a1928 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-tribunal-sentence-korsakoff-traitor .table { position:absolute; bottom:26%; left:40%; width:120px; height:30px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-tribunal-sentence-korsakoff-traitor .body-strangled { position:absolute; bottom:32%; left:43%; width:60px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: tsk-body 4s ease-in-out infinite alternate; }
.scn-tribunal-sentence-korsakoff-traitor .figure-judge { position:absolute; bottom:36%; left:15%; width:22px; height:50px; background: linear-gradient(180deg, #2e2d44 0%, #1c1b30 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: tsk-judge 3s ease-in-out infinite; }
.scn-tribunal-sentence-korsakoff-traitor .figure-annouchka { position:absolute; bottom:38%; right:20%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a3a 0%, #221a22 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: tsk-annouchka 5s ease-in-out infinite alternate; }
.scn-tribunal-sentence-korsakoff-traitor .balalaika { position:absolute; bottom:34%; left:65%; width:8px; height:24px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); filter: blur(0.3px); animation: tsk-balalaika 2s ease-in-out infinite alternate; }
.scn-tribunal-sentence-korsakoff-traitor .lamplight { position:absolute; top:12%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #ffd680 0%, #b08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(192,128,64,.3); animation: tsk-lamp 6s ease-in-out infinite alternate; }
@keyframes tsk-body { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes tsk-judge { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0); } }
@keyframes tsk-annouchka { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes tsk-balalaika { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes tsk-lamp { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
/* rouletabille-cries-out-joy */
.scn-rouletabille-cries-out-joy { background: linear-gradient(180deg, #1f1e3a 0%, #2a2a4a 50%, #1a1a30 100%), radial-gradient(ellipse at 30% 40%, #3a2a4a 0%, transparent 70%); }
.scn-rouletabille-cries-out-joy .room-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.5) 100%); }
.scn-rouletabille-cries-out-joy .wall-paneling { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 20%, #2a2a3a 80%, #1a1a2a 100%); border-bottom: 2px solid #4a4a5a; }
.scn-rouletabille-cries-out-joy .figure-rouletabille { position:absolute; bottom:30%; left:38%; width:24px; height:52px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rco-body 2s ease-in-out infinite; }
.scn-rouletabille-cries-out-joy .arms-up { position:absolute; bottom:42%; left:33%; width:12px; height:28px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-30deg); animation: rco-arms 0.6s ease-in-out infinite alternate; }
.scn-rouletabille-cries-out-joy .revolutionary { position:absolute; bottom:32%; left:60%; width:20px; height:46px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: rco-rev 5s ease-in-out infinite alternate; }
.scn-rouletabille-cries-out-joy .noose { position:absolute; top:32%; left:50%; width:4px; height:80px; background: #4a4a5a; border-radius: 2px; transform: translateX(-50%); animation: rco-noose 3s ease-in-out infinite; }
.scn-rouletabille-cries-out-joy .light-burst { position:absolute; top:20%; right:25%; width:50px; height:50px; background: radial-gradient(circle, #ffd060 0%, #b08040 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,208,96,.2); animation: rco-burst 1.5s ease-in-out infinite alternate; }
@keyframes rco-body { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes rco-arms { 0% { transform: rotate(-30deg) scaleY(1); } 100% { transform: rotate(-50deg) scaleY(1.2); } }
@keyframes rco-rev { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes rco-noose { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes rco-burst { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }
/* stool-thought-revelation */
.scn-stool-thought-revelation { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #1a1a30 100%), radial-gradient(ellipse at 50% 80%, #2c2c4c 0%, transparent 60%); }
.scn-stool-thought-revelation .staircase { position:absolute; bottom:0; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 40%, #1a1a3a 100%); clip-path: polygon(0% 100%, 100% 100%, 80% 0%, 20% 0%); animation: str-stair 6s ease-in-out infinite alternate; }
.scn-stool-thought-revelation .door-left { position:absolute; bottom:30%; left:12%; width:30px; height:60px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 4px; box-shadow: inset -3px 0 6px rgba(0,0,0,.5); animation: str-doorL 4s ease-in-out infinite; }
.scn-stool-thought-revelation .door-right { position:absolute; bottom:30%; right:12%; width:30px; height:60px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 4px; box-shadow: inset 3px 0 6px rgba(0,0,0,.5); animation: str-doorR 4s ease-in-out infinite 2s; }
.scn-stool-thought-revelation .figure-running { position:absolute; bottom:20%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: str-run 1.2s ease-in-out infinite; }
.scn-stool-thought-revelation .keys { position:absolute; bottom:32%; left:42%; width:6px; height:10px; background: #c8a050; border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: str-keys 1s ease-in-out infinite alternate; }
.scn-stool-thought-revelation .clock { position:absolute; top:10%; left:50%; width:30px; height:30px; border: 3px solid #6a5a3a; border-radius: 50%; background: radial-gradient(circle, #f0e0c0 0%, #b0a080 100%); transform: translateX(-50%); animation: str-clock 60s linear infinite; }
.scn-stool-thought-revelation .shadow-shaft { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 60%); animation: str-shaft 5s ease-in-out infinite alternate; }
@keyframes str-stair { 0% { transform: scaleY(0.95); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes str-doorL { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes str-doorR { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes str-run { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(0deg) translateX(4px); } 50% { transform: rotate(3deg) translateX(8px); } 75% { transform: rotate(0deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes str-keys { 0% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(-2px) rotate(5deg); } }
@keyframes str-clock { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes str-shaft { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
/* tsar-audience-accusation */
.scn-tsar-audience-accusation { background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 40%, #c8b898 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-tsar-audience-accusation .hall-back { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0d4b8 0%, #c8bc9e 100%); }
.scn-tsar-audience-accusation .pillar-left { position:absolute; top:0; left:10%; width:20px; height:100%; background: linear-gradient(270deg, #c8b898 0%, #e0d4b8 50%, #b8a888 100%); border-radius: 6px; box-shadow: 4px 0 8px rgba(0,0,0,.1); }
.scn-tsar-audience-accusation .pillar-right { position:absolute; top:0; right:10%; width:20px; height:100%; background: linear-gradient(90deg, #c8b898 0%, #e0d4b8 50%, #b8a888 100%); border-radius: 6px; box-shadow: -4px 0 8px rgba(0,0,0,.1); }
.scn-tsar-audience-accusation .throne { position:absolute; bottom:20%; left:52%; width:60px; height:80px; background: linear-gradient(180deg, #a88868 0%, #887858 100%); border-radius: 10% 10% 4% 4% / 20% 20% 6% 6%; transform: translateX(-50%); box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-tsar-audience-accusation .tsar { position:absolute; bottom:28%; left:52%; width:28px; height:60px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: taa-tsar 3s ease-in-out infinite alternate; }
.scn-tsar-audience-accusation .rouletabille { position:absolute; bottom:26%; left:32%; width:22px; height:50px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: taa-roule 4s ease-in-out infinite; }
.scn-tsar-audience-accusation .grand-marshal { position:absolute; bottom:28%; left:15%; width:20px; height:48px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: taa-marshal 5s ease-in-out infinite alternate; }
.scn-tsar-audience-accusation .light-wash { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 20%, rgba(255,248,224,0.3) 0%, transparent 60%); animation: taa-wash 8s ease-in-out infinite alternate; }
@keyframes taa-tsar { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes taa-roule { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes taa-marshal { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes taa-wash { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-item-hatpin-holes {
  background: linear-gradient(135deg, #1a1a2e 0%, #0f0f1a 50%, #2c2c3e 100%),
              radial-gradient(ellipse at 70% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-item-hatpin-holes .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #1e1e30 0%, #2a2a40 30%, #1a1a28 70%);
  animation: ihh-wall 12s ease-in-out infinite alternate;
}
.scn-item-hatpin-holes .door-frame {
  position: absolute; left: 30%; right: 30%; top: 10%; bottom: 5%;
  border: 6px solid #3a2a2a; border-radius: 4px;
  background: #241e1e;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-item-hatpin-holes .door-panel {
  position: absolute; left: 33%; right: 33%; top: 13%; bottom: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: inset 6px 0 10px rgba(0,0,0,.5);
  animation: ihh-door 20s ease-in-out infinite;
}
.scn-item-hatpin-holes .lock {
  position: absolute; left: 35%; top: 45%; width: 12px; height: 20px;
  background: #5a4a3a; border-radius: 30%;
  box-shadow: 0 0 6px 2px rgba(200,180,150,.2);
}
.scn-item-hatpin-holes .pin-hole {
  position: absolute; width: 4px; height: 4px; border-radius: 50%;
  background: #1a0a0a; box-shadow: 0 0 4px 1px rgba(255,100,50,.3);
}
.scn-item-hatpin-holes .old-hole {
  left: 35%; top: 32%;
  animation: ihh-hole-glow 3s ease-in-out infinite;
}
.scn-item-hatpin-holes .new-hole {
  left: 35%; top: 30%;
  animation: ihh-hole-glow 3s ease-in-out infinite 1.5s;
}
.scn-item-hatpin-holes .pin-fragment {
  position: absolute; left: 35%; top: 30%; width: 2px; height: 6px;
  background: #8a7a6a; transform: rotate(15deg);
  border-radius: 50% 50% 0 0; opacity: 0.8;
  animation: ihh-fragment 4s ease-in-out infinite;
}
.scn-item-hatpin-holes .shadow-band {
  position: absolute; left: 0; right: 0; bottom: 5%; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%);
}
@keyframes ihh-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ihh-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } }
@keyframes ihh-hole-glow { 0% { box-shadow: 0 0 2px 1px rgba(255,100,50,.2) } 50% { box-shadow: 0 0 6px 3px rgba(255,100,50,.5) } 100% { box-shadow: 0 0 2px 1px rgba(255,100,50,.2) } }
@keyframes ihh-fragment { 0%,100% { opacity: 0.6; transform: rotate(15deg) translateY(0) } 50% { opacity: 0.9; transform: rotate(25deg) translateY(-1px) } }

.scn-guard-pin-erect {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 60%);
}
.scn-guard-pin-erect .bg-corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #12121e 0%, #1e1e30 20%, #12121e 100%);
  animation: gpe-corridor 15s ease-in-out infinite alternate;
}
.scn-guard-pin-erect .wall-left {
  position: absolute; left: 0; top: 0; bottom: 20%; width: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-right: 2px solid #2a2a3e;
}
.scn-guard-pin-erect .wall-right {
  position: absolute; right: 0; top: 0; bottom: 20%; width: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
  border-left: 2px solid #2a2a3e;
}
.scn-guard-pin-erect .door {
  position: absolute; left: 35%; right: 35%; top: 15%; bottom: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border: 4px solid #3a2a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: gpe-door 10s ease-in-out infinite;
}
.scn-guard-pin-erect .door-crack {
  position: absolute; left: 35%; right: 35%; top: 15%; bottom: 20%;
  border-right: 3px solid rgba(200,180,150,.1);
  transform: scaleX(0.02);
  animation: gpe-crack 6s ease-in-out infinite alternate;
}
.scn-guard-pin-erect .guard-pin {
  position: absolute; left: 37%; bottom: 21%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: gpe-pin 4s ease-in-out infinite;
}
.scn-guard-pin-erect .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-guard-pin-erect .figure-silhouette {
  position: absolute; left: 25%; bottom: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.3;
  animation: gpe-figure 8s ease-in-out infinite;
}
@keyframes gpe-corridor { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes gpe-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes gpe-crack { 0% { opacity: 0 } 100% { opacity: 0.4 } }
@keyframes gpe-pin { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes gpe-figure { 0%,100% { opacity: 0.2; transform: translateX(0) } 50% { opacity: 0.5; transform: translateX(4px) } }

.scn-intruder-phial-potion {
  background: linear-gradient(180deg, #050510 0%, #0f0f1e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-intruder-phial-potion .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #05050a 0%, #0a0a14 50%, #05050a 100%);
  animation: ipp-bg 20s ease-in-out infinite alternate;
}
.scn-intruder-phial-potion .table {
  position: absolute; left: 10%; right: 10%; bottom: 20%; height: 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,.6);
}
.scn-intruder-phial-potion .glass {
  position: absolute; left: 40%; bottom: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,220,.15) 0%, rgba(200,200,220,.05) 100%);
  border: 1px solid rgba(200,200,220,.2);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 0 10px 2px rgba(150,180,220,.1);
}
.scn-intruder-phial-potion .phial {
  position: absolute; left: 50%; bottom: 32%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 8px 8px;
  transform: rotate(25deg);
  transform-origin: bottom center;
  animation: ipp-phial 5s ease-in-out infinite;
}
.scn-intruder-phial-potion .hand-shadow {
  position: absolute; left: 45%; bottom: 30%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  animation: ipp-hand 6s ease-in-out infinite;
}
.scn-intruder-phial-potion .potion-drip {
  position: absolute; left: 52%; bottom: 32%; width: 3px; height: 8px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 0 0 50% 50%;
  opacity: 0.8;
  animation: ipp-drip 2s ease-in-out infinite;
}
.scn-intruder-phial-potion .glow {
  position: absolute; left: 35%; right: 35%; bottom: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,100,.08) 0%, transparent 70%);
  animation: ipp-glow 4s ease-in-out infinite alternate;
}
@keyframes ipp-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ipp-phial { 0%,100% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-2px) } }
@keyframes ipp-hand { 0%,100% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.05) } }
@keyframes ipp-drip { 0% { transform: translateY(0); opacity: 0.8 } 50% { transform: translateY(4px); opacity: 0.5 } 100% { transform: translateY(0); opacity: 0.8 } }
@keyframes ipp-glow { 0% { opacity: 0.3 } 100% { opacity: 0.6 } }

.scn-item-poison-phial {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a30 40%, #0f0f20 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a4e 0%, transparent 60%);
}
.scn-item-poison-phial .bg-garden {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #14142a 60%, #0a0a14 100%);
  animation: iph-garden 18s ease-in-out infinite alternate;
}
.scn-item-poison-phial .window-sill {
  position: absolute; left: 20%; right: 20%; top: 55%; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
}
.scn-item-poison-phial .window-glass {
  position: absolute; left: 22%; right: 22%; top: 20%; bottom: 40%;
  background: linear-gradient(180deg, rgba(200,200,220,.05) 0%, rgba(200,200,220,.02) 100%);
  border: 2px solid #2a2a3e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3);
}
.scn-item-poison-phial .spider-web {
  position: absolute; left: 35%; right: 35%; top: 25%; bottom: 45%;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,220,.05) 0%, transparent 60%),
              repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(200,200,220,.02) 4px, rgba(200,200,220,.02) 5px),
              repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(200,200,220,.02) 4px, rgba(200,200,220,.02) 5px);
  animation: iph-web 30s linear infinite;
}
.scn-item-poison-phial .phial-on-sill {
  position: absolute; left: 45%; top: 52%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 6px 6px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: iph-phial 7s ease-in-out infinite;
}
.scn-item-poison-phial .broken-spider-lines {
  position: absolute; left: 38%; right: 38%; top: 30%; bottom: 50%;
  border: 1px dashed rgba(200,200,220,.1);
  border-radius: 50%;
  animation: iph-broken 4s ease-in-out infinite;
}
.scn-item-poison-phial .moonlight-spot {
  position: absolute; left: 30%; right: 30%; top: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,180,220,.06) 0%, transparent 70%);
  animation: iph-moon 12s ease-in-out infinite alternate;
}
@keyframes iph-garden { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes iph-web { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes iph-phial { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } }
@keyframes iph-broken { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }
@keyframes iph-moon { 0% { opacity: 0.2 } 100% { opacity: 0.5 } }

.scn-item-single-shoe {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 80%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-item-single-shoe .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #d4e157 60%, transparent 100%); animation: ss-sky 15s ease-in-out infinite alternate; }
.scn-item-single-shoe .river { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a90d9 0%, #1e5a8a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: ss-river 8s ease-in-out infinite;}
.scn-item-single-shoe .hills { position:absolute; bottom:50%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; opacity:0.7; }
.scn-item-single-shoe .dock { position:absolute; bottom:30%; left:35%; width:30%; height:6%; background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-item-single-shoe .shoe { position:absolute; bottom:28%; left:38%; width:12%; height:10%; background: radial-gradient(ellipse at 30% 40%, #2c2c2c 0%, #1a1a1a 50%, #000 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-15deg) scale(1.2); box-shadow: 0 6px 12px rgba(0,0,0,0.8); animation: ss-shoe 4s ease-in-out infinite; }
.scn-item-single-shoe .ripple { position:absolute; bottom:22%; left:40%; width:8%; height:2%; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 70%); border-radius:50%; animation: ss-ripple 3s ease-in-out infinite; }
.scn-item-single-shoe .cloud { position:absolute; top:10%; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(8px); }
.scn-item-single-shoe .cloud-a { left:15%; width:120px; height:25px; animation: ss-drift-a 40s linear infinite; }
.scn-item-single-shoe .cloud-b { right:10%; width:90px; height:20px; animation: ss-drift-b 50s linear infinite reverse; }
@keyframes ss-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ss-river { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ss-shoe { 0% { transform: rotate(-15deg) scale(1.2) translateY(0) } 50% { transform: rotate(-10deg) scale(1.25) translateY(-3px) } 100% { transform: rotate(-15deg) scale(1.2) translateY(0) } }
@keyframes ss-ripple { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(3); opacity:0 } 100% { transform: scale(1); opacity:0.5 } }
@keyframes ss-drift-a { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }
@keyframes ss-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-80vw) } }

.scn-rouletabille-must-leave-russia {
  background:
    linear-gradient(180deg, #2c1e16 0%, #3d2b1f 50%, #1f140e 100%),
    radial-gradient(ellipse at 70% 30%, #5c4033 0%, transparent 60%);
}
.scn-rouletabille-must-leave-russia .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1e 0%, #1a100c 100%); animation: rl-wall 10s ease-in-out infinite; }
.scn-rouletabille-must-leave-russia .window { position:absolute; top:20%; left:65%; width:22%; height:30%; background: radial-gradient(ellipse at center, #b08040 0%, #6b4f30 70%); border-radius: 8px; box-shadow: inset 0 0 20px #ffd700, 0 0 40px #ffd700; animation: rl-window 5s ease-in-out infinite alternate; }
.scn-rouletabille-must-leave-russia .table { position:absolute; bottom:18%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-rouletabille-must-leave-russia .lamp { position:absolute; bottom:30%; left:35%; width:8%; height:12%; background: radial-gradient(circle at 50% 20%, #ffd700 0%, #cc8800 50%, transparent 80%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px #ffb347; animation: rl-lamp 3s ease-in-out infinite alternate; }
.scn-rouletabille-must-leave-russia .figure { position:absolute; bottom:20%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rl-figure 4s ease-in-out infinite; }
.scn-rouletabille-must-leave-russia .shadow { position:absolute; bottom:16%; left:40%; width:20%; height:6%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: rl-shadow 4s ease-in-out infinite; }
.scn-rouletabille-must-leave-russia .paper { position:absolute; bottom:20%; left:60%; width:6%; height:4%; background: #d4c5a9; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: rl-paper 6s ease-in-out infinite; }
@keyframes rl-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rl-window { 0% { box-shadow: 0 0 20px #b08040; } 50% { box-shadow: 0 0 40px #ffd700; } 100% { box-shadow: 0 0 20px #b08040; } }
@keyframes rl-lamp { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes rl-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rl-shadow { 0% { transform: scaleX(1) translateX(0); } 25% { transform: scaleX(1.1) translateX(5px); } 50% { transform: scaleX(1) translateX(0); } 75% { transform: scaleX(0.9) translateX(-5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes rl-paper { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-natacha-exile-siberia-ikons {
  background:
    linear-gradient(180deg, #1a120e 0%, #2a1b10 40%, #0d0805 100%),
    radial-gradient(circle at 50% 40%, #3a2510 0%, transparent 70%);
}
.scn-natacha-exile-siberia-ikons .table { position:absolute; bottom:15%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 8px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5); }
.scn-natacha-exile-siberia-ikons .ikon-1 { position:absolute; bottom:30%; left:30%; width:12%; height:20%; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border: 3px solid #d4af37; border-radius: 4px; box-shadow: 0 0 15px rgba(212,175,55,0.4); animation: ni-ikon 6s ease-in-out infinite; }
.scn-natacha-exile-siberia-ikons .ikon-2 { position:absolute; bottom:30%; left:55%; width:12%; height:20%; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border: 3px solid #d4af37; border-radius: 4px; box-shadow: 0 0 15px rgba(212,175,55,0.4); animation: ni-ikon 6s ease-in-out infinite reverse; }
.scn-natacha-exile-siberia-ikons .candle { position:absolute; bottom:40%; left:42%; width:4%; height:15%; background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 80%, #8b6914 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px #ffd700; animation: ni-candle 3s ease-in-out infinite alternate; }
.scn-natacha-exile-siberia-ikons .hand { position:absolute; bottom:22%; left:35%; width:10%; height:12%; background: linear-gradient(180deg, #d2a679 0%, #a67c52 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ni-hand 8s ease-in-out infinite; }
.scn-natacha-exile-siberia-ikons .halo-glow { position:absolute; bottom:28%; left:28%; width:16%; height:24%; background: radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 70%); border-radius: 50%; animation: ni-halo 5s ease-in-out infinite alternate; }
.scn-natacha-exile-siberia-ikons .poison { position:absolute; bottom:18%; left:60%; width:4%; height:7%; background: linear-gradient(180deg, #4a7a6b 0%, #2b5a4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: ni-poison 4s ease-in-out infinite; }
@keyframes ni-ikon { 0% { box-shadow: 0 0 10px rgba(212,175,55,0.3); } 50% { box-shadow: 0 0 25px rgba(212,175,55,0.7); } 100% { box-shadow: 0 0 10px rgba(212,175,55,0.3); } }
@keyframes ni-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:0.8; } 50% { transform: scaleY(1.05) rotate(1deg); opacity:1; } 100% { transform: scaleY(1) rotate(0deg); opacity:0.8; } }
@keyframes ni-hand { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-2px); } 50% { transform: rotate(20deg) translateY(0); } 75% { transform: rotate(25deg) translateY(2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes ni-halo { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(1); opacity:0.5; } }
@keyframes ni-poison { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-blindfolded-ride-tribunal {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2a1a10 50%, #0d0500 100%),
    radial-gradient(ellipse at 40% 50%, #3a2518 0%, transparent 60%);
}
.scn-blindfolded-ride-tribunal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-blindfolded-ride-tribunal .counter { position:absolute; bottom:15%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2010 100%); border-radius: 6px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.6); }
.scn-blindfolded-ride-tribunal .gentleman { position:absolute; bottom:20%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #2c1a10 0%, #1a0d05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: br-gentleman 6s ease-in-out infinite; }
.scn-blindfolded-ride-tribunal .boots { position:absolute; bottom:18%; left:55%; width:15%; height:8%; background: linear-gradient(180deg, #6b4226 0%, #3a2010 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: br-boots 4s ease-in-out infinite; }
.scn-blindfolded-ride-tribunal .smoke-1 { position:absolute; top:30%; left:20%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(180,160,140,0.3) 0%, transparent 70%); filter: blur(12px); animation: br-smoke-1 8s ease-in-out infinite alternate; }
.scn-blindfolded-ride-tribunal .smoke-2 { position:absolute; top:40%; right:15%; width:30%; height:15%; background: radial-gradient(ellipse, rgba(180,160,140,0.2) 0%, transparent 70%); filter: blur(10px); animation: br-smoke-2 10s ease-in-out infinite alternate; }
.scn-blindfolded-ride-tribunal .smoke-3 { position:absolute; top:50%; left:45%; width:35%; height:18%; background: radial-gradient(ellipse, rgba(180,160,140,0.25) 0%, transparent 70%); filter: blur(14px); animation: br-smoke-3 12s ease-in-out infinite alternate; }
@keyframes br-gentleman { 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 br-boots { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes br-smoke-1 { 0% { transform: translateX(0) scale(1); opacity:0.3; } 50% { transform: translateX(10px) scale(1.2); opacity:0.5; } 100% { transform: translateX(0) scale(1); opacity:0.3; } }
@keyframes br-smoke-2 { 0% { transform: translateX(0) scale(1); opacity:0.2; } 50% { transform: translateX(-8px) scale(1.3); opacity:0.4; } 100% { transform: translateX(0) scale(1); opacity:0.2; } }
@keyframes br-smoke-3 { 0% { transform: translateX(0) scale(1); opacity:0.25; } 50% { transform: translateX(6px) scale(1.1); opacity:0.45; } 100% { transform: translateX(0) scale(1); opacity:0.25; } }

/* Scene 1: trap-recounted-accusation */
.scn-trap-recounted-accusation {
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 60%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 30%, #6a5040 0%, transparent 70%);
}
.scn-trap-recounted-accusation .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-trap-recounted-accusation .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;
}
.scn-trap-recounted-accusation .table {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,0.5);
  animation: tr-table 8s ease-in-out infinite;
}
.scn-trap-recounted-accusation .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0a060 0%, #b08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: tr-lamp 3s ease-in-out infinite alternate;
}
.scn-trap-recounted-accusation .figure-a {
  position: absolute; bottom: 18%; left: 30%; width: 20px; 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: tr-figure-a 4s ease-in-out infinite;
}
.scn-trap-recounted-accusation .figure-b {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr-figure-b 5s ease-in-out infinite;
}
.scn-trap-recounted-accusation .figure-c {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: tr-figure-c 6s ease-in-out infinite;
}
.scn-trap-recounted-accusation .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px); animation: tr-shadow 8s ease-in-out infinite;
}
@keyframes tr-table {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes tr-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #e0a060, 0 0 70px 20px rgba(224,160,96,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px #c08040, 0 0 50px 15px rgba(192,128,64,0.35); }
}
@keyframes tr-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes tr-figure-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  66% { transform: translateX(-6px) translateY(0) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes tr-figure-c {
  0% { transform: translateX(0) translateY(0) scaleY(1); }
  50% { transform: translateX(2px) translateY(-1px) scaleY(1.02); }
  100% { transform: translateX(0) translateY(0) scaleY(1); }
}
@keyframes tr-shadow {
  0%, 100% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
}

/* Scene 2: natacha-refuses-confession */
.scn-natacha-refuses-confession {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #050510 100%),
              radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 80%);
}
.scn-natacha-refuses-confession .door {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.6);
}
.scn-natacha-refuses-confession .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, #2a1a0e 0%, #1a0e08 50%, #2a1a0e 100%);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-natacha-refuses-confession .confessional {
  position: absolute; bottom: 10%; left: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: nr-confessional 12s ease-in-out infinite;
}
.scn-natacha-refuses-confession .figure-kneeling {
  position: absolute; bottom: 10%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-figure-kneel 5s ease-in-out infinite;
}
.scn-natacha-refuses-confession .figure-standing {
  position: absolute; bottom: 10%; left: 55%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-figure-stand 7s ease-in-out infinite;
}
.scn-natacha-refuses-confession .lamp-dim {
  position: absolute; top: 20%; right: 15%; width: 10px; height: 18px;
  background: radial-gradient(circle, #806050 0%, #403020 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px #504030, 0 0 24px 6px rgba(80,64,48,0.3);
  animation: nr-lamp 4s ease-in-out infinite alternate;
}
.scn-natacha-refuses-confession .dust {
  position: absolute; top: 30%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,160,0.1) 0%, transparent 100%);
  filter: blur(4px);
  animation: nr-dust 20s linear infinite;
}
@keyframes nr-confessional {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
}
@keyframes nr-figure-kneel {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-2px) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes nr-figure-stand {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  33% { transform: translateX(1px) translateY(-2px) rotate(2deg); }
  66% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes nr-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 8px 2px #403020, 0 0 16px 4px rgba(64,48,32,0.2); }
  50% { opacity: 0.8; box-shadow: 0 0 15px 4px #605040, 0 0 30px 8px rgba(96,80,64,0.3); }
  100% { opacity: 0.7; box-shadow: 0 0 10px 3px #403020, 0 0 20px 5px rgba(64,48,32,0.25); }
}
@keyframes nr-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  50% { transform: translate(10px, -15px) scale(1.5); opacity: 0.1; }
  100% { transform: translate(20px, -30px) scale(2); opacity: 0; }
}

/* Scene 3: michaels-death-regret */
.scn-michaels-death-regret {
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 50%, #050510 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 60%);
}
.scn-michaels-death-regret .window-night {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  border: 3px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: md-window 6s ease-in-out infinite alternate;
}
.scn-michaels-death-regret .desk {
  position: absolute; bottom: 10%; left: 30%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 3px; box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-michaels-death-regret .books {
  position: absolute; bottom: 15%; left: 32%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  animation: md-books 10s ease-in-out infinite;
}
.scn-michaels-death-regret .body-silhouette {
  position: absolute; bottom: 5%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.8);
  animation: md-body 7s ease-in-out infinite;
}
.scn-michaels-death-regret .lamp-cold {
  position: absolute; top: 30%; left: 40%; width: 8px; height: 16px;
  background: radial-gradient(circle, #6080a0 0%, #304060 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 5px #406080, 0 0 40px 10px rgba(64,96,128,0.3);
  animation: md-lamp 4s ease-in-out infinite alternate;
}
.scn-michaels-death-regret .curtain {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 0 40% 40% 0 / 0 100% 100% 0;
  filter: blur(2px);
  animation: md-curtain 15s ease-in-out infinite;
}
.scn-michaels-death-regret .water-river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, transparent 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: md-water 8s ease-in-out infinite;
}
@keyframes md-window {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
}
@keyframes md-books {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes md-body {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes md-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 12px 3px #406080, 0 0 24px 6px rgba(64,96,128,0.2); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #6080a0, 0 0 50px 15px rgba(96,128,160,0.4); }
  100% { opacity: 0.8; box-shadow: 0 0 15px 4px #406080, 0 0 30px 8px rgba(64,96,128,0.3); }
}
@keyframes md-curtain {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
}
@keyframes md-water {
  0% { background-position: 0 0; }
  50% { background-position: 10px 0; }
  100% { background-position: 0 0; }
}

/* Scene 4: barque-escape-canoe */
.scn-barque-escape-canoe {
  background: linear-gradient(180deg, #ffcc88 0%, #ffaa66 30%, #bb8855 60%, #6688aa 100%),
              radial-gradient(ellipse at 50% 0%, #ffdd99 0%, transparent 60%);
}
.scn-barque-escape-canoe .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffdd99 0%, #ffaa66 40%, #5588aa 100%);
  animation: be-sky 10s ease-in-out infinite alternate;
}
.scn-barque-escape-canoe .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6699bb 0%, #335577 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-barque-escape-canoe .barque-roof {
  position: absolute; bottom: 40%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a20 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: be-roof 8s ease-in-out infinite;
}
.scn-barque-escape-canoe .barque-wall {
  position: absolute; bottom: 22%; left: 25%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5);
}
.scn-barque-escape-canoe .tree-left {
  position: absolute; bottom: 35%; left: 5%; width: 15px; height: 80px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: be-tree 12s ease-in-out infinite;
}
.scn-barque-escape-canoe .canoe {
  position: absolute; bottom: 18%; left: 55%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: be-canoe 5s ease-in-out infinite;
}
.scn-barque-escape-canoe .figure-paddler {
  position: absolute; bottom: 20%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-paddler 4s ease-in-out infinite;
}
.scn-barque-escape-canoe .ripple {
  position: absolute; bottom: 15%; left: 55%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: be-ripple 3s ease-in-out infinite alternate;
}
@keyframes be-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes be-roof {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes be-tree {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes be-canoe {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-6deg) translateY(-1px); }
  50% { transform: rotate(-5deg) translateY(0); }
  75% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes be-paddler {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-2px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes be-ripple {
  0% { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.6; transform: scaleX(1.5); }
}

/* scene 1: nightmares-floorboard-suspicion */
.scn-nightmares-floorboard-suspicion {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a4e 70%, #1e1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a4e 0%, transparent 80%);
}
.scn-nightmares-floorboard-suspicion .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a224a 0%, #3a2a4e 50%, #1a1a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: nf-wall 10s ease-in-out infinite alternate;
}
.scn-nightmares-floorboard-suspicion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0f0f 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  transform: perspective(500px) rotateX(5deg);
  transform-origin: bottom center;
  animation: nf-floor 12s ease-in-out infinite alternate;
}
.scn-nightmares-floorboard-suspicion .bed {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: nf-bed 9s ease-in-out infinite;
}
.scn-nightmares-floorboard-suspicion .sleeping-figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%) translateY(-10px) scale(0.9);
  background: linear-gradient(180deg, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: nf-sleep 4s ease-in-out infinite;
}
.scn-nightmares-floorboard-suspicion .reporter {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(5deg);
  animation: nf-reporter 6s ease-in-out infinite alternate;
}
.scn-nightmares-floorboard-suspicion .shadow {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: nf-shadow 5s ease-in-out infinite;
}
.scn-nightmares-floorboard-suspicion .window {
  position: absolute; top: 20%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 5% 5% 40% 40%;
  box-shadow: inset 0 0 10px rgba(100,140,200,0.3), 0 0 20px rgba(100,140,200,0.1);
  animation: nf-window 15s ease-in-out infinite alternate;
}
@keyframes nf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nf-floor { 0% { transform: perspective(500px) rotateX(5deg) translateY(0); } 50% { transform: perspective(500px) rotateX(4deg) translateY(-2px); } 100% { transform: perspective(500px) rotateX(5deg) translateY(0); } }
@keyframes nf-bed { 0%,100% { transform: translateX(-50%) ; } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes nf-sleep { 0% { transform: translateX(-50%) translateY(-10px) scale(0.9) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-8px) scale(0.9) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-10px) scale(0.9) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-12px) scale(0.9) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(-10px) scale(0.9) rotate(0deg); } }
@keyframes nf-reporter { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes nf-shadow { 0%,100% { opacity: 0.4; } 50% { opacity: 0.6; } }
@keyframes nf-window { 0% { box-shadow: inset 0 0 10px rgba(100,140,200,0.3), 0 0 20px rgba(100,140,200,0.1); } 50% { box-shadow: inset 0 0 15px rgba(120,160,220,0.5), 0 0 30px rgba(120,160,220,0.2); } 100% { box-shadow: inset 0 0 10px rgba(100,140,200,0.3), 0 0 20px rgba(100,140,200,0.1); } }

/* scene 2: natacha-enters-white-voile */
.scn-natacha-enters-white-voile {
  background: linear-gradient(135deg, #fdf4e0 0%, #f5e6c8 30%, #e6d1a8 60%, #d4b88a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-natacha-enters-white-voile .sunlight-rays {
  position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(255,245,210,0.4) 0%, transparent 30%, transparent 70%, rgba(255,245,210,0.3) 100%);
  animation: nw-rays 12s ease-in-out infinite alternate;
}
.scn-natacha-enters-white-voile .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #f0e0c0 0%, #dcc8a0 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.1);
  transform: perspective(800px) rotateY(2deg);
  transform-origin: left center;
}
.scn-natacha-enters-white-voile .doorway {
  position: absolute; top: 10%; left: 25%; width: 80px; height: 70%;
  background: linear-gradient(180deg, #d9c5a0 0%, #b8a080 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  animation: nw-door 8s ease-in-out infinite;
}
.scn-natacha-enters-white-voile .natacha {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #faf5f0 0%, #e8ddd0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px rgba(255,255,240,0.5);
  animation: nw-natacha 5s ease-in-out infinite;
}
.scn-natacha-enters-white-voile .matrena {
  position: absolute; bottom: 22%; left: 10%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform: scaleX(-1);
  animation: nw-matrena 7s ease-in-out infinite alternate;
}
.scn-natacha-enters-white-voile .table {
  position: absolute; bottom: 12%; left: 20%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 5% 5% 50% 50% / 5% 5% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: nw-table 10s ease-in-out infinite;
}
.scn-natacha-enters-white-voile .vase {
  position: absolute; bottom: 20%; left: 22%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #b8a060 0%, #8a7840 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  animation: nw-vase 6s ease-in-out infinite alternate;
}
@keyframes nw-rays { 0% { opacity: 0.5; transform: rotate(0deg); } 50% { opacity: 0.8; transform: rotate(2deg); } 100% { opacity: 0.5; transform: rotate(0deg); } }
@keyframes nw-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes nw-natacha { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes nw-matrena { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(3px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes nw-table { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } }
@keyframes nw-vase { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* scene 3: promenade-plan-diversion */
.scn-promenade-plan-diversion {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #e0f0ff 60%, #c0d0e0 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-promenade-plan-diversion .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ab4e0 0%, #a0d0f0 50%, #d0e8f8 100%);
  animation: pd-sky 15s ease-in-out infinite alternate;
}
.scn-promenade-plan-diversion .pathway {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b090 0%, #a89070 50%, #806850 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  transform: perspective(800px) rotateX(3deg);
  animation: pd-path 10s ease-in-out infinite alternate;
}
.scn-promenade-plan-diversion .left-tree {
  position: absolute; bottom: 45%; left: 5%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  animation: pd-tree-l 8s ease-in-out infinite;
}
.scn-promenade-plan-diversion .right-tree {
  position: absolute; bottom: 45%; right: 5%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: scaleX(-1);
  animation: pd-tree-r 8s ease-in-out infinite;
}
.scn-promenade-plan-diversion .figure-a {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pd-fig-a 6s ease-in-out infinite;
}
.scn-promenade-plan-diversion .figure-b {
  position: absolute; bottom: 24%; left: 50%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(-1);
  animation: pd-fig-b 6s ease-in-out infinite alternate;
}
.scn-promenade-plan-diversion .bench {
  position: absolute; bottom: 25%; left: 65%; width: 40px; height: 15px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 50% 50% / 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pd-bench 12s ease-in-out infinite;
}
@keyframes pd-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pd-path { 0% { transform: perspective(800px) rotateX(3deg) translateY(0); } 50% { transform: perspective(800px) rotateX(2deg) translateY(-2px); } 100% { transform: perspective(800px) rotateX(3deg) translateY(0); } }
@keyframes pd-tree-l { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } }
@keyframes pd-tree-r { 0%,100% { transform: scaleX(-1) rotate(0deg); } 50% { transform: scaleX(-1) rotate(-2deg); } }
@keyframes pd-fig-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd-fig-b { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(6px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes pd-bench { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } }

/* scene 4: promenade-and-heritage-revelation */
.scn-promenade-and-heritage-revelation {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 30%, #c8b890 60%, #a89878 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-promenade-and-heritage-revelation .sunburst-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(110deg, #fff8d0 0%, #f0e0b0 30%, #d0c0a0 60%, #b0a080 100%);
  clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%);
  animation: ph-sky 14s ease-in-out infinite alternate;
}
.scn-promenade-and-heritage-revelation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a888 0%, #908060 60%, #706050 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
  transform: perspective(600px) rotateX(2deg);
  animation: ph-ground 8s ease-in-out infinite alternate;
}
.scn-promenade-and-heritage-revelation .group-left {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ph-group-l 5s ease-in-out infinite;
}
.scn-promenade-and-heritage-revelation .group-right {
  position: absolute; bottom: 18%; right: 20%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1) rotate(-3deg);
  animation: ph-group-r 5s ease-in-out infinite alternate;
}
.scn-promenade-and-heritage-revelation .note-pad {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5ecdc 0%, #e0d0b0 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ph-pad 7s ease-in-out infinite;
}
.scn-promenade-and-heritage-revelation .pen {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(30deg);
  animation: ph-pen 4s ease-in-out infinite alternate;
}
.scn-promenade-and-heritage-revelation .shadow-detail {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: ph-shadow 10s ease-in-out infinite;
}
@keyframes ph-sky { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.9; transform: scaleY(1); } }
@keyframes ph-ground { 0% { transform: perspective(600px) rotateX(2deg) translateY(0); } 50% { transform: perspective(600px) rotateX(1.5deg) translateY(-1px); } 100% { transform: perspective(600px) rotateX(2deg) translateY(0); } }
@keyframes ph-group-l { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(7deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ph-group-r { 0% { transform: scaleX(-1) rotate(-3deg) translateX(0); } 50% { transform: scaleX(-1) rotate(-1deg) translateX(3px); } 100% { transform: scaleX(-1) rotate(-3deg) translateX(0); } }
@keyframes ph-pad { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes ph-pen { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes ph-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.5; } }

/* inheritance-pledge-revelation */
.scn-inheritance-pledge-revelation {
  background: 
    linear-gradient(180deg, #f5ead0 0%, #d9c9a8 40%, #b8a88a 100%),
    radial-gradient(ellipse at 30% 70%, #e6d4b4 0%, transparent 60%);
}
.scn-inheritance-pledge-revelation .bg-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #f2e5c8 0%, #d8c5a0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: in1-wallpulse 8s ease-in-out infinite;
}
.scn-inheritance-pledge-revelation .desk {
  position:absolute; bottom:0; left:5%; right:5%; height:40%;
  background: linear-gradient(180deg, #b0804a 0%, #6b4f2e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -8px 24px rgba(0,0,0,0.3);
}
.scn-inheritance-pledge-revelation .lamp {
  position:absolute; bottom:42%; left:15%; width:20px; height:30px;
  background: linear-gradient(135deg, #e8d48a 0%, #c4a95a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #f0d070, 0 0 60px 20px rgba(240,208,112,0.3);
  animation: in1-flicker 0.6s ease-in-out infinite alternate;
}
.scn-inheritance-pledge-revelation .letter {
  position:absolute; bottom:28%; left:30%; width:80px; height:50px;
  background: linear-gradient(135deg, #f0e6c0 0%, #d4bb8a 100%);
  border-radius: 4px;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.2);
  animation: in1-tremble 1.2s ease-in-out infinite;
}
.scn-inheritance-pledge-revelation .seal {
  position:absolute; bottom:30%; left:38%; width:16px; height:16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #c8553d;
  animation: in1-sealglow 2.4s ease-in-out infinite;
}
.scn-inheritance-pledge-revelation .figure {
  position:absolute; bottom:15%; left:60%; width:22px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: in1-figure 3.6s ease-in-out infinite;
}
.scn-inheritance-pledge-revelation .shadow {
  position:absolute; bottom:0; left:55%; width:70px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: in1-shadowmove 2s ease-in-out infinite alternate;
}
@keyframes in1-wallpulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes in1-flicker { 0% { opacity:1; transform: scaleY(1) } 25% { opacity:0.85; transform: scaleY(0.95) } 75% { opacity:1.1; transform: scaleY(1.05) } 100% { opacity:0.95; transform: scaleY(0.98) } }
@keyframes in1-tremble { 0% { transform: translateX(0) } 20% { transform: translateX(1px) } 40% { transform: translateX(-1px) } 60% { transform: translateX(0.5px) } 80% { transform: translateX(-0.5px) } 100% { transform: translateX(0) } }
@keyframes in1-sealglow { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes in1-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes in1-shadowmove { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

/* natacha-negotiation-innocence */
.scn-natacha-negotiation-innocence {
  background: 
    linear-gradient(180deg, #fff3d6 0%, #f0d6a0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 100%, #f5e0b0 0%, transparent 80%);
}
.scn-natacha-negotiation-innocence .bg-warm {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #fcebd0 0%, #edc99a 100%);
  animation: na2-ambshim 10s ease-in-out infinite;
}
.scn-natacha-negotiation-innocence .fireplace {
  position:absolute; bottom:20%; left:10%; width:100px; height:80px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-natacha-negotiation-innocence .glow {
  position:absolute; bottom:28%; left:14%; width:70px; height:60px;
  background: radial-gradient(circle, #ffcca0 0%, #e09550 40%, transparent 70%);
  border-radius: 50%;
  animation: na2-fireglow 3s ease-in-out infinite alternate;
}
.scn-natacha-negotiation-innocence .sofa {
  position:absolute; bottom:8%; left:35%; width:120px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-natacha-negotiation-innocence .figure-nat {
  position:absolute; bottom:15%; left:42%; width:20px; height:45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na2-swway 5s ease-in-out infinite;
}
.scn-natacha-negotiation-innocence .papers {
  position:absolute; bottom:10%; left:55%; width:60px; height:40px;
  background: linear-gradient(135deg, #f0e6c0 0%, #d4bb8a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.15);
  animation: na2-drift 8s ease-in-out infinite;
}
.scn-natacha-negotiation-innocence .candle {
  position:absolute; bottom:35%; left:70%; width:10px; height:20px;
  background: linear-gradient(180deg, #f0d070 0%, #c08840 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #f0c060;
  animation: na2-candle 2.4s ease-in-out infinite alternate;
}
@keyframes na2-ambshim { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes na2-fireglow { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(1.02); opacity:0.85 } }
@keyframes na2-swway { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes na2-drift { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes na2-candle { 0% { transform: scaleY(1); opacity:0.9 } 50% { transform: scaleY(1.06); opacity:1 } 100% { transform: scaleY(0.96); opacity:0.85 } }

/* ipecac-faking-proof */
.scn-ipecac-faking-proof {
  background: 
    linear-gradient(180deg, #e8ddd0 0%, #c5b3a0 40%, #a6947a 100%),
    radial-gradient(ellipse at 50% 60%, #d9ccb8 0%, transparent 70%);
}
.scn-ipecac-faking-proof .bg-table {
  position:absolute; inset:30% 5% 0 5%;
  background: linear-gradient(180deg, #b8a084 0%, #8a7058 100%);
  border-radius: 8px;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.3);
}
.scn-ipecac-faking-proof .bottle {
  position:absolute; bottom:40%; left:35%; width:30px; height:50px;
  background: linear-gradient(135deg, #a0b090 0%, #6a7a5a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 2px 4px 12px rgba(0,0,0,0.2);
  animation: ip3-bottle 4s ease-in-out infinite;
}
.scn-ipecac-faking-proof .hand {
  position:absolute; bottom:45%; left:28%; width:25px; height:35px;
  background: linear-gradient(180deg, #d4b89a 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ip3-hand 3s ease-in-out infinite;
}
.scn-ipecac-faking-proof .document {
  position:absolute; bottom:20%; left:20%; width:80px; height:55px;
  background: linear-gradient(135deg, #f0e8d0 0%, #d4c4a0 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.15);
  animation: ip3-document 6s ease-in-out infinite;
}
.scn-ipecac-faking-proof .label {
  position:absolute; bottom:48%; left:37%; width:18px; height:24px;
  background: linear-gradient(180deg, #c8a870 0%, #a08050 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: ip3-label 5s ease-in-out infinite;
}
.scn-ipecac-faking-proof .shadow-soft {
  position:absolute; bottom:30%; left:30%; width:60px; height:12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.1) 0%, transparent 80%);
  animation: ip3-shadow 3.6s ease-in-out infinite alternate;
}
@keyframes ip3-bottle { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ip3-hand { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(3deg) } 60% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ip3-document { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ip3-label { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ip3-shadow { 0% { transform: scaleX(0.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.98) } }

/* guilty-marshal-tsar-exaltation */
.scn-guilty-marshal-tsar-exaltation {
  background: 
    linear-gradient(180deg, #f7ecd9 0%, #e0cba5 40%, #c4a87a 100%),
    radial-gradient(ellipse at 50% 100%, #f2ddb0 0%, transparent 70%);
}
.scn-guilty-marshal-tsar-exaltation .bg-hall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #fcebd0 0%, #e8d0a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: gu4-hallamb 12s ease-in-out infinite;
}
.scn-guilty-marshal-tsar-exaltation .dais {
  position:absolute; bottom:15%; left:30%; right:30%; height:18%;
  background: linear-gradient(180deg, #b08860 0%, #6a4a2e 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.3);
}
.scn-guilty-marshal-tsar-exaltation .figure-tsar {
  position:absolute; bottom:22%; left:40%; width:30px; height:55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gu4-tsarpoint 6s ease-in-out infinite;
}
.scn-guilty-marshal-tsar-exaltation .figure-tsar::before {
  content:'';
  position:absolute; top:-5px; right:-15px; width:20px; height:4px;
  background: #3a3a5a;
  border-radius: 50%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: gu4-arm 6s ease-in-out infinite;
}
.scn-guilty-marshal-tsar-exaltation .cabinet {
  position:absolute; bottom:8%; left:60%; width:80px; height:70px;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 4px 16px rgba(0,0,0,0.4);
}
.scn-guilty-marshal-tsar-exaltation .figure-mat {
  position:absolute; bottom:15%; left:66%; width:18px; height:35px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gu4-sob 2s ease-in-out infinite;
}
.scn-guilty-marshal-tsar-exaltation .spotlight {
  position:absolute; top:0; left:35%; width:120px; height:100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: gu4-spot 5s ease-in-out infinite alternate;
}
@keyframes gu4-hallamb { 0% { opacity:0.92 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gu4-tsarpoint { 0% { transform: rotate(-3deg) } 25% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes gu4-arm { 0% { transform: rotate(-30deg) } 25% { transform: rotate(-20deg) } 50% { transform: rotate(-35deg) } 75% { transform: rotate(-25deg) } 100% { transform: rotate(-30deg) } }
@keyframes gu4-sob { 0% { transform: translateY(0) scaleY(1) } 20% { transform: translateY(-2px) scaleY(1.02) } 40% { transform: translateY(1px) scaleY(0.98) } 60% { transform: translateY(-1px) scaleY(1.01) } 80% { transform: translateY(0) scaleY(0.99) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gu4-spot { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* Scene: koupriane-arrives-natacha-missing (tag kp) */
.scn-koupriane-arrives-natacha-missing {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #b89a70 70%, #7a5c3a 100%),
              radial-gradient(ellipse at 60% 30%, #fff6e0 0%, transparent 60%);
}
.scn-koupriane-arrives-natacha-missing .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ffe8c0 0%, #d4b48a 60%, #9a7a52 100%);
  animation: kp-roomglow 6s ease-in-out infinite alternate;
}
.scn-koupriane-arrives-natacha-missing .door {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b8926e 0%, #6e4c2c 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,0.3), 8px 0 15px rgba(0,0,0,0.2);
  transform: perspective(600px) rotateY(8deg); animation: kp-door 12s ease-in-out infinite;
}
.scn-koupriane-arrives-natacha-missing .figure-koupriane {
  position: absolute; bottom: 18%; left: 40%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0600 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: kp-figure1 4s ease-in-out infinite;
}
.scn-koupriane-arrives-natacha-missing .figure-rouletabille {
  position: absolute; bottom: 18%; left: 54%; width: 9%; height: 34%;
  background: linear-gradient(180deg, #1c1010 0%, #050000 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: kp-figure2 5s ease-in-out infinite;
}
.scn-koupriane-arrives-natacha-missing .light-shaft {
  position: absolute; top: 0; left: 22%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, rgba(255,220,150,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: kp-light 8s ease-in-out infinite alternate;
}
.scn-koupriane-arrives-natacha-missing .shadow {
  position: absolute; bottom: 18%; left: 36%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.05) 100%);
  filter: blur(8px); transform: skewX(-10deg); animation: kp-shadow 6s ease-in-out infinite;
}
.scn-koupriane-arrives-natacha-missing .dust-mote {
  position: absolute; width: 4px; height: 4px; background: #fff8e0; border-radius: 50%;
  filter: blur(1px); opacity: 0.7;
}
.scn-koupriane-arrives-natacha-missing .dust-a {
  top: 30%; left: 25%; animation: kp-dust 20s linear infinite;
}
.scn-koupriane-arrives-natacha-missing .dust-b {
  top: 45%; left: 30%; animation: kp-dust 25s linear infinite 5s;
}

@keyframes kp-roomglow {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes kp-door {
  0%, 100% { transform: perspective(600px) rotateY(8deg) translateY(0); }
  50% { transform: perspective(600px) rotateY(10deg) translateY(-2px); }
}
@keyframes kp-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes kp-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-6px) translateY(-2px) rotate(-1deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes kp-light {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes kp-shadow {
  0% { opacity: 0.3; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.6; transform: skewX(-12deg) translateX(5px); }
  100% { opacity: 0.4; transform: skewX(-10deg) translateX(0); }
}
@keyframes kp-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.3; }
  100% { transform: translateY(-80px) translateX(40px) scale(0.5); opacity: 0; }
}

/* Scene: floor-cavity-matrena-proof (tag fc) */
.scn-floor-cavity-matrena-proof {
  background: linear-gradient(180deg, #d4a86a 0%, #b58a52 30%, #7a5e2e 60%, #3d2e14 100%),
              radial-gradient(ellipse at 50% 80%, #f0d090 0%, transparent 60%);
}
.scn-floor-cavity-matrena-proof .bg-floor {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  animation: fc-bg 10s ease-in-out infinite alternate;
}
.scn-floor-cavity-matrena-proof .floorboard {
  position: absolute; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(90deg, #b8884a 0%, #9a6e32 50%, #b8884a 100%);
  border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: fc-board 15s ease-in-out infinite;
}
.scn-floor-cavity-matrena-proof .floor-1 { bottom: 60%; }
.scn-floor-cavity-matrena-proof .floor-2 { bottom: 46%; }
.scn-floor-cavity-matrena-proof .cavity {
  position: absolute; bottom: 48%; left: 42%; width: 16%; height: 10%;
  background: radial-gradient(ellipse, #1a0e00 0%, #2a1a04 60%, #4a3018 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset 0 4px 6px rgba(0,0,0,0.6), 0 0 20px rgba(200,160,60,0.3);
  animation: fc-cavity 8s ease-in-out infinite alternate;
}
.scn-floor-cavity-matrena-proof .glow-spot {
  position: absolute; bottom: 48%; left: 42%; width: 16%; height: 12%;
  background: radial-gradient(ellipse, #f8e080 0%, rgba(248,224,128,0) 70%);
  mix-blend-mode: screen; animation: fc-glow 4s ease-in-out infinite alternate;
}
.scn-floor-cavity-matrena-proof .joy-figure {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0600 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: fc-joy 4s ease-in-out infinite;
}
.scn-floor-cavity-matrena-proof .sparkle {
  position: absolute; width: 6px; height: 6px; background: #ffe080; border-radius: 50%;
  filter: blur(2px); box-shadow: 0 0 10px #ffe080;
  animation: fc-sparkle 2s ease-in-out infinite;
}
.scn-floor-cavity-matrena-proof .sparkle-1 { bottom: 52%; left: 46%; animation-delay: 0s; }
.scn-floor-cavity-matrena-proof .sparkle-2 { bottom: 50%; left: 52%; animation-delay: 1s; }

@keyframes fc-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fc-board {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes fc-cavity {
  0% { transform: scaleY(1); box-shadow: inset 0 4px 6px rgba(0,0,0,0.6); }
  50% { transform: scaleY(1.08); box-shadow: inset 0 4px 10px rgba(0,0,0,0.8), 0 0 30px rgba(200,160,60,0.5); }
  100% { transform: scaleY(1); box-shadow: inset 0 4px 6px rgba(0,0,0,0.6); }
}
@keyframes fc-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes fc-joy {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  75% { transform: translateY(-6px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fc-sparkle {
  0% { opacity: 0; transform: scale(0.5); }
  30% { opacity: 1; transform: scale(1.2); }
  70% { opacity: 0.8; transform: scale(0.8); }
  100% { opacity: 0; transform: scale(0.2); }
}

/* Scene: item-hatpin-observation (tag hp) */
.scn-item-hatpin-observation {
  background: linear-gradient(180deg, #1e1610 0%, #2a1e18 30%, #3a2a20 70%, #12100e 100%),
              radial-gradient(circle at 50% 60%, #c8a070 0%, transparent 70%);
}
.scn-item-hatpin-observation .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  animation: hp-bg 8s ease-in-out infinite alternate;
}
.scn-item-hatpin-observation .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateX(10deg);
}
.scn-item-hatpin-observation .hat {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #6a4a30 0%, #3a2a18 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: hp-hat 6s ease-in-out infinite;
}
.scn-item-hatpin-observation .pin-left {
  position: absolute; bottom: 42%; left: 38%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  border-radius: 20% 20% 40% 40%; transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200,160,80,0.3); animation: hp-pin1 4s ease-in-out infinite;
}
.scn-item-hatpin-observation .pin-right {
  position: absolute; bottom: 42%; left: 56%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #c8a050 0%, #a07830 100%);
  border-radius: 20% 20% 40% 40%; transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200,160,80,0.3); animation: hp-pin2 4.5s ease-in-out infinite;
}
.scn-item-hatpin-observation .hand-probe {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0600 100%);
  border-radius: 60% 20% 30% 40% / 70% 20% 40% 50%;
  transform-origin: bottom center; animation: hp-hand 5s ease-in-out infinite;
}
.scn-item-hatpin-observation .lamp-light {
  position: absolute; top: 10%; left: 42%; width: 16%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #f0d080 0%, rgba(240,208,128,0) 70%);
  mix-blend-mode: screen; animation: hp-lamp 3s ease-in-out infinite alternate;
}

@keyframes hp-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hp-hat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(2deg); }
}
@keyframes hp-pin1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hp-pin2 {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(4deg); }
  40% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(-4px) rotate(3deg); }
  80% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hp-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(10deg); }
  60% { transform: translateX(2px) translateY(-1px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hp-lamp {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}

/* Scene: hotel-thief-trick (tag ht) */
.scn-hotel-thief-trick {
  background: linear-gradient(90deg, #1a1412 0%, #2a2018 20%, #1e1814 50%, #0e0a08 80%, #140e0c 100%),
              radial-gradient(ellipse at 70% 50%, #4a3828 0%, transparent 70%);
}
.scn-hotel-thief-trick .bg-corridor {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  animation: ht-bg 12s ease-in-out infinite alternate;
}
.scn-hotel-thief-trick .door {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 70%;
  background: linear-gradient(180deg, #4a3420 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0; box-shadow: -8px 0 12px rgba(0,0,0,0.4), 4px 0 8px rgba(0,0,0,0.2);
  transform: perspective(800px) rotateY(-5deg);
}
.scn-hotel-thief-trick .bolt {
  position: absolute; top: 50%; left: 22%; width: 8%; height: 6%;
  background: #5a4a32; border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: ht-bolt 3s ease-in-out infinite alternate;
}
.scn-hotel-thief-trick .hole {
  position: absolute; top: 50%; left: 20%; width: 2%; height: 2%;
  background: #080400; border-radius: 50%; box-shadow: 0 0 2px #180e08;
  animation: ht-hole 4s ease-in-out infinite;
}
.scn-hotel-thief-trick .wire {
  position: absolute; top: 50%; left: 16%; width: 6%; height: 1%;
  background: linear-gradient(90deg, #8a7a60 0%, #6a5a42 100%);
  border-radius: 50% 0 0 50%; transform-origin: right center;
  transform: rotate(15deg); box-shadow: 0 0 3px rgba(100,80,60,0.3);
  animation: ht-wire 5s ease-in-out infinite;
}
.scn-hotel-thief-trick .shadow-thief {
  position: absolute; bottom: 10%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  filter: blur(10px); transform: skewX(-10deg);
  animation: ht-thief 7s ease-in-out infinite;
}
.scn-hotel-thief-trick .flicker {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 70% 50%, rgba(200,160,80,0.08) 0%, transparent 60%);
  animation: ht-flicker 2s steps(2) infinite;
}

@keyframes ht-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ht-bolt {
  0% { transform: translateX(0); opacity: 0.7; }
  50% { transform: translateX(4px); opacity: 1; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes ht-hole {
  0% { box-shadow: 0 0 2px #180e08; }
  50% { box-shadow: 0 0 6px #2a1a10; }
  100% { box-shadow: 0 0 2px #180e08; }
}
@keyframes ht-wire {
  0% { transform: rotate(15deg) translateX(0); }
  30% { transform: rotate(12deg) translateX(2px); }
  60% { transform: rotate(18deg) translateX(-2px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes ht-thief {
  0% { transform: skewX(-10deg) scaleY(1); opacity: 0.4; }
  50% { transform: skewX(-8deg) scaleY(1.05); opacity: 0.7; }
  100% { transform: skewX(-10deg) scaleY(1); opacity: 0.5; }
}
@keyframes ht-flicker {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.4; }
}

.scn-priemkof-living-bomb {
  background: linear-gradient(180deg, #1a1210 0%, #2d1f1a 40%, #3e2b22 100%), radial-gradient(ellipse at 60% 30%, #4a2c1a 0%, transparent 70%);
}
.scn-priemkof-living-bomb .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1512 0%, #2a1e1a 50%, #1c1310 100%); animation: plb-bg 12s ease-in-out infinite alternate; }
.scn-priemkof-living-bomb .wall   { position:absolute; top:15%; left:10%; right:10%; height:55%; background: linear-gradient(90deg, #2b1f1a 0%, #3d2b22 30%, #2b1f1a 70%, #1a1210 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-priemkof-living-bomb .table  { position:absolute; bottom:20%; left:25%; width:40%; height:8%; background: linear-gradient(180deg, #4a3228 0%, #2e1f1a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-priemkof-living-bomb .lamp  { position:absolute; bottom:30%; left:40%; width:12px; height:28px; background: linear-gradient(180deg, #6f5b4a 0%, #4a3a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plb-lamp 2s ease-in-out infinite alternate; }
.scn-priemkof-living-bomb .glow  { position:absolute; bottom:30%; left:40%; width:40px; height:40px; transform:translate(-50%, 50%); background: radial-gradient(circle, #f0c068 0%, #c08040 30%, transparent 70%); border-radius:50%; opacity:.6; animation: plb-glow 1.8s ease-in-out infinite alternate; }
.scn-priemkof-living-bomb .figure-a { position:absolute; bottom:18%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2b1f1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plb-fig-a 5s ease-in-out infinite; }
.scn-priemkof-living-bomb .figure-b { position:absolute; bottom:18%; right:30%; width:22px; height:48px; background: linear-gradient(180deg, #3d2b22 0%, #1c1310 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: plb-fig-b 5s ease-in-out infinite 1s; }
.scn-priemkof-living-bomb .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 80%); animation: plb-shadow 8s ease-in-out infinite; }

@keyframes plb-bg    { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes plb-lamp  { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(.98); } }
@keyframes plb-glow  { 0% { opacity:.5; box-shadow: 0 0 15px 3px #c08040; } 50% { opacity:.75; box-shadow: 0 0 25px 6px #ffd060; } 100% { opacity:.6; box-shadow: 0 0 18px 4px #c08040; } }
@keyframes plb-fig-a { 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(-1deg); } }
@keyframes plb-fig-b { 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(1deg); } }
@keyframes plb-shadow{ 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.05); } 100% { opacity:.4; transform: scaleY(1); } }

.scn-item-bombs-under-coats {
  background: linear-gradient(180deg, #0b0a12 0%, #14121c 40%, #1b1825 100%), radial-gradient(ellipse at 50% 40%, #1f1a2a 0%, transparent 70%);
}
.scn-item-bombs-under-coats .chamber-bg  { position:absolute; inset:0; background: linear-gradient(135deg, #0d0b15 0%, #1a1722 50%, #0e0c16 100%); animation: buc-bg 16s ease-in-out infinite alternate; }
.scn-item-bombs-under-coats .floor       { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1f1a28 0%, #0e0c18 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-item-bombs-under-coats .wall-panel  { position:absolute; top:10%; left:8%; right:8%; height:60%; background: linear-gradient(180deg, #1c1828 0%, #12101e 100%); border-radius: 3% 3% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-item-bombs-under-coats .table-center{ position:absolute; bottom:20%; left:50%; width:50px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2e2020 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 8px 15px rgba(0,0,0,.5); }
.scn-item-bombs-under-coats .doctor-left { position:absolute; bottom:18%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #2a2439 0%, #18152a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: buc-doc-l 4s ease-in-out infinite; }
.scn-item-bombs-under-coats .doctor-right{ position:absolute; bottom:18%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #201c30 0%, #141124 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: buc-doc-r 4s ease-in-out infinite 0.5s; }
.scn-item-bombs-under-coats .coat-shadow { position:absolute; bottom:18%; left:20%; width:30px; height:30px; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); transform-origin: bottom center; animation: buc-coat 5s ease-in-out infinite; }
.scn-item-bombs-under-coats .bomb-glow   { position:absolute; bottom:16%; left:26%; width:15px; height:15px; background: radial-gradient(circle, #b84a2a 0%, #7a2a1a 40%, transparent 80%); border-radius:50%; animation: buc-bomb 3s ease-in-out infinite alternate; }

@keyframes buc-bg    { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes buc-doc-l { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes buc-doc-r { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes buc-coat  { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.1); } 100% { opacity:.3; transform: scaleY(1); } }
@keyframes buc-bomb  { 0% { opacity:.1; box-shadow: 0 0 6px 2px #7a2a1a; } 50% { opacity:.4; box-shadow: 0 0 12px 4px #b84a2a; } 100% { opacity:.2; box-shadow: 0 0 8px 3px #7a2a1a; } }

.scn-entering-datcha-bombs {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1828 40%, #121020 100%), radial-gradient(ellipse at 40% 50%, #1e1c30 0%, transparent 80%);
}
.scn-entering-datcha-bombs .hall-bg    { position:absolute; inset:0; background: linear-gradient(135deg, #100e1c 0%, #1c1a2c 50%, #0e0c18 100%); animation: edb-bg 14s ease-in-out infinite alternate; }
.scn-entering-datcha-bombs .door-frame { position:absolute; top:5%; left:50%; width:45px; height:85px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2440 0%, #1c1830 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 10px 20px rgba(0,0,0,.7); }
.scn-entering-datcha-bombs .floor-tiles{ position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #18152e 0px, #18152e 10px, #221f3a 10px, #221f3a 20px); opacity:.7; }
.scn-entering-datcha-bombs .wall-left  { position:absolute; top:8%; left:0; width:25%; height:65%; background: linear-gradient(180deg, #1c1a30 0%, #131128 100%); border-radius: 0 20% 0 0; box-shadow: inset 8px 0 15px rgba(0,0,0,.5); }
.scn-entering-datcha-bombs .wall-right { position:absolute; top:8%; right:0; width:25%; height:65%; background: linear-gradient(180deg, #1c1a30 0%, #131128 100%); border-radius: 20% 0 0 0; box-shadow: inset -8px 0 15px rgba(0,0,0,.5); }
.scn-entering-datcha-bombs .conspirator-l { position:absolute; bottom:22%; left:12%; width:26px; height:55px; background: linear-gradient(180deg, #242040 0%, #18142e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edb-con-l 6s ease-in-out infinite; }
.scn-entering-datcha-bombs .conspirator-r { position:absolute; bottom:22%; right:12%; width:26px; height:55px; background: linear-gradient(180deg, #242040 0%, #18142e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edb-con-r 6s ease-in-out infinite 2s; }
.scn-entering-datcha-bombs .entering-silhouette { position:absolute; bottom:18%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0814 0%, #05040c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: edb-enter 4s ease-in-out infinite; }

@keyframes edb-bg    { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.75 } }
@keyframes edb-con-l { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes edb-con-r { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes edb-enter { 0% { transform: translateX(-50%) scaleX(1); opacity:.9; } 25% { transform: translateX(-50%) translateY(-2px) scaleX(.95); opacity:.8; } 50% { transform: translateX(-50%) scaleX(1); opacity:.9; } 75% { transform: translateX(-50%) translateY(-1px) scaleX(1.02); opacity:1; } 100% { transform: translateX(-50%) scaleX(1); opacity:.9; } }

.scn-explosion-search-for-natacha {
  background: linear-gradient(180deg, #050508 0%, #0a0a14 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 70%, #121220 0%, transparent 80%);
}
.scn-explosion-search-for-natacha .dark-bg   { position:absolute; inset:0; background: linear-gradient(135deg, #04040a 0%, #0e0e1a 50%, #06060e 100%); animation: esn-bg 20s ease-in-out infinite alternate; }
.scn-explosion-search-for-natacha .stairs    { position:absolute; bottom:0; left:30%; right:30%; height:70%; background: linear-gradient(180deg, #141428 0%, #0a0a18 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); transform-origin: bottom center; animation: esn-stairs 8s ease-in-out infinite; }
.scn-explosion-search-for-natacha .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #0a0a16 0%, #101024 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.8); }
.scn-explosion-search-for-natacha .wall-right{ position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(90deg, #101024 0%, #0a0a16 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.8); }
.scn-explosion-search-for-natacha .railing   { position:absolute; bottom:50%; left:30%; right:30%; height:4px; background: #2a2a44; box-shadow: 0 8px 0 #2a2a44, 0 16px 0 #2a2a44; animation: esn-railing 12s ease-in-out infinite; }
.scn-explosion-search-for-natacha .figure-carrier  { position:absolute; bottom:10%; left:45%; width:22px; height:58px; background: linear-gradient(180deg, #0a0a18 0%, #05050e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esn-carr 3s ease-in-out infinite; }
.scn-explosion-search-for-natacha .figure-carried  { position:absolute; bottom:22%; left:48%; width:18px; height:40px; background: linear-gradient(180deg, #0a0a18 0%, #05050e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esn-carr 3s ease-in-out infinite 0.3s; }
.scn-explosion-search-for-natacha .light-beam{ position:absolute; top:20%; right:20%; width:40px; height:80px; background: linear-gradient(180deg, rgba(255,220,140,.15) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: esn-beam 4s ease-in-out infinite alternate; }
.scn-explosion-search-for-natacha .smoke     { position:absolute; top:5%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(40,40,50,.3) 0%, transparent 70%); animation: esn-smoke 18s linear infinite; }

@keyframes esn-bg      { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes esn-stairs  { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.02) translateY(-2px); } 50% { transform: scaleY(.98) translateY(0); } 75% { transform: scaleY(1.01) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes esn-railing { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes esn-carr    { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes esn-beam    { 0% { opacity:.1; transform: rotate(-5deg) scaleX(.9); } 50% { opacity:.25; transform: rotate(0) scaleX(1.1); } 100% { opacity:.15; transform: rotate(3deg) scaleX(1); } }
@keyframes esn-smoke   { 0% { transform: translateY(0) scale(1); opacity:.2; } 50% { transform: translateY(-20px) scale(1.5); opacity:.1; } 100% { transform: translateY(-40px) scale(2); opacity:0; } }

.scn-item-revolver-on-counter {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2c221c 40%, #1e1814 100%),
    radial-gradient(ellipse at 50% 30%, #3a2f28 0%, transparent 70%);
}
.scn-item-revolver-on-counter .counter {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #4a3b2e 0%, #2a1f18 100%);
  border-radius: 0 0 12px 12px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: r1-counter 10s ease-in-out infinite alternate;
}
.scn-item-revolver-on-counter .revolver-barrel {
  position:absolute; bottom:35%; left:40%; width:30%; height:8%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #3a3a4a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 1px 0 #6a6a7a;
  transform: rotate(-5deg) translateX(-10%);
  animation: r1-barrel 4s ease-in-out infinite;
}
.scn-item-revolver-on-counter .revolver-cylinder {
  position:absolute; bottom:33%; left:55%; width:12%; height:12%;
  background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 60%, #2a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4), inset 0 2px 0 #5a5a6a;
  animation: r1-cylinder 6s ease-in-out infinite alternate;
}
.scn-item-revolver-on-counter .revolver-grip {
  position:absolute; bottom:28%; left:48%; width:14%; height:18%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 5px 10px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: r1-grip 3s ease-in-out infinite;
}
.scn-item-revolver-on-counter .trigger-guard {
  position:absolute; bottom:34%; left:52%; width:8%; height:6%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: r1-trigger 5s ease-in-out infinite alternate;
}
.scn-item-revolver-on-counter .bullet {
  position:absolute; bottom:40%; left:35%; width:4%; height:8%;
  background: linear-gradient(180deg, #c8a060 0%, #a07840 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: rotate(15deg);
  animation: r1-bullet 7s ease-in-out infinite;
}
.scn-item-revolver-on-counter .dust-mote {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, rgba(200,180,160,0.5), transparent);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-item-revolver-on-counter .mote1 { top:15%; left:20%; animation: r1-dust1 12s linear infinite; }
.scn-item-revolver-on-counter .mote2 { top:25%; left:70%; animation: r1-dust2 16s linear infinite reverse; }

@keyframes r1-counter {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes r1-barrel {
  0% { transform: rotate(-5deg) translateX(-10%); }
  50% { transform: rotate(-3deg) translateX(-8%); }
  100% { transform: rotate(-7deg) translateX(-12%); }
}
@keyframes r1-cylinder {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.02); opacity:1; }
  100% { transform: scale(0.98); opacity:0.85; }
}
@keyframes r1-grip {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes r1-trigger {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.9); }
  100% { transform: scaleY(1.05); }
}
@keyframes r1-bullet {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(1px); }
}
@keyframes r1-dust1 {
  0% { transform: translate(0, 0) scale(1); opacity:0.4; }
  50% { transform: translate(30px, -20px) scale(1.5); opacity:0.8; }
  100% { transform: translate(60px, -40px) scale(0.5); opacity:0; }
}
@keyframes r1-dust2 {
  0% { transform: translate(0, 0) scale(1); opacity:0.3; }
  50% { transform: translate(-25px, 15px) scale(1.3); opacity:0.6; }
  100% { transform: translate(-50px, 30px) scale(0.6); opacity:0; }
}

.scn-annouchka-denounces-gounsovski {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #1e1410 100%),
    radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 80%);
}
.scn-annouchka-denounces-gounsovski .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  animation: ad-table 8s ease-in-out infinite alternate;
}
.scn-annouchka-denounces-gounsovski .chair-left {
  position:absolute; bottom:30%; left:15%; width:12%; height:25%;
  background: linear-gradient(135deg, #3a2218 0%, #1a100a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: skewY(2deg);
  animation: ad-chair-l 6s ease-in-out infinite;
}
.scn-annouchka-denounces-gounsovski .chair-right {
  position:absolute; bottom:30%; right:15%; width:12%; height:25%;
  background: linear-gradient(225deg, #3a2218 0%, #1a100a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: skewY(-2deg);
  animation: ad-chair-r 6s ease-in-out infinite 0.5s;
}
.scn-annouchka-denounces-gounsovski .figure {
  position:absolute; bottom:35%; width:10%; height:30%;
  transform-origin: bottom center;
}
.scn-annouchka-denounces-gounsovski .annouchka {
  left:28%;
  background: linear-gradient(180deg, #4a2a22 0%, #2a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: ad-annouchka 4s ease-in-out infinite;
}
.scn-annouchka-denounces-gounsovski .gounsovski {
  right:28%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: ad-gounsovski 4s ease-in-out infinite 0.7s;
}
.scn-annouchka-denounces-gounsovski .candle {
  position:absolute; bottom:42%; left:48%; width:4%; height:12%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a070 80%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px #f0c060, 0 0 40px 16px rgba(240,192,96,0.4);
  animation: ad-candle 3s ease-in-out infinite alternate;
}
.scn-annouchka-denounces-gounsovski .glass {
  position:absolute; bottom:30%; left:52%; width:6%; height:10%;
  background: linear-gradient(135deg, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  border: 1px solid rgba(200,180,160,0.3);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ad-glass 5s ease-in-out infinite;
}
.scn-annouchka-denounces-gounsovski .shadow-bg {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(10,6,4,0.6) 100%);
  pointer-events: none;
  animation: ad-shadow 9s ease-in-out infinite alternate;
}

@keyframes ad-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ad-chair-l {
  0% { transform: skewY(2deg) translateY(0); }
  50% { transform: skewY(1deg) translateY(-2px); }
  100% { transform: skewY(2deg) translateY(0); }
}
@keyframes ad-chair-r {
  0% { transform: skewY(-2deg) translateY(0); }
  50% { transform: skewY(-1deg) translateY(-2px); }
  100% { transform: skewY(-2deg) translateY(0); }
}
@keyframes ad-annouchka {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ad-gounsovski {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ad-candle {
  0% { transform: scaleY(1) rotate(0); opacity:0.9; }
  50% { transform: scaleY(1.05) rotate(2deg); opacity:1; }
  100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.85; }
}
@keyframes ad-glass {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ad-shadow {
  0% { opacity:0.4; }
  50% { opacity:0.7; }
  100% { opacity:0.5; }
}

.scn-riverbank-koupriane-waiting {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #10102a 30%, #060612 100%),
    radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 80%);
}
.scn-riverbank-koupriane-waiting .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #12122e 60%);
  animation: rk-sky 15s ease-in-out infinite alternate;
}
.scn-riverbank-koupriane-waiting .moon {
  position:absolute; top:12%; left:70%; width:8%; height:8%;
  background: radial-gradient(circle, #c0d0e0 0%, #8090a0 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px #8090a0, 0 0 80px 30px rgba(128,144,160,0.3);
  animation: rk-moon 20s linear infinite;
}
.scn-riverbank-koupriane-waiting .river {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 6px 12px rgba(0,0,0.6,0.6);
  animation: rk-river 8s ease-in-out infinite alternate;
}
.scn-riverbank-koupriane-waiting .bank {
  position:absolute; bottom:20%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: rk-bank 12s ease-in-out infinite;
}
.scn-riverbank-koupriane-waiting .reeds {
  position:absolute; bottom:22%; height:18%; width:3%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: rk-reed 5s ease-in-out infinite;
}
.scn-riverbank-koupriane-waiting .reed1 { left:30%; animation-delay: 0s; }
.scn-riverbank-koupriane-waiting .reed2 { right:35%; height:22%; animation-delay: 1.2s; }
.scn-riverbank-koupriane-waiting .koupriane-fig {
  position:absolute; bottom:30%; left:45%; width:8%; height:28%;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.4);
  animation: rk-fig 6s ease-in-out infinite;
}
.scn-riverbank-koupriane-waiting .fog {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, rgba(40,60,80,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: rk-fog 18s ease-in-out infinite alternate;
}

@keyframes rk-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes rk-moon {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(1.02); }
  100% { transform: translateX(-4px) scale(0.98); }
}
@keyframes rk-river {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes rk-bank {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rk-reed {
  0% { transform: rotate(-3deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.05); }
  100% { transform: rotate(-2deg) scaleY(0.95); }
}
@keyframes rk-fig {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes rk-fog {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.4; transform: scale(0.9); }
}

.scn-window-opening-ambush {
  background:
    linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a28 0%, transparent 80%);
}
.scn-window-opening-ambush .wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8);
  animation: wa-wall 10s ease-in-out infinite alternate;
}
.scn-window-opening-ambush .window-frame {
  position:absolute; top:20%; left:25%; right:25%; bottom:40%;
  border: 6px solid #2a2218;
  border-radius: 4px;
  background: rgba(10,20,30,0.3);
  box-shadow: inset 0 0 20px rgba(80,120,160,0.2);
  animation: wa-frame 5s ease-in-out infinite;
}
.scn-window-opening-ambush .curtain-left {
  position:absolute; top:18%; left:23%; width:15%; height:45%;
  background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1a1010 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewY(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: wa-curtain-l 6s ease-in-out infinite;
}
.scn-window-opening-ambush .curtain-right {
  position:absolute; top:18%; right:23%; width:15%; height:45%;
  background: linear-gradient(225deg, #1a1410 0%, #2a1e18 50%, #1a1010 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: skewY(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: wa-curtain-r 6s ease-in-out infinite 0.3s;
}
.scn-window-opening-ambush .police-fig {
  position:absolute; bottom:20%; left:10%; width:10%; height:25%;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: wa-police 3s ease-in-out infinite;
}
.scn-window-opening-ambush .escapee-fig {
  position:absolute; bottom:25%; right:12%; width:8%; height:22%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: wa-escapee 2.5s ease-in-out infinite;
}
.scn-window-opening-ambush .natacha-fig {
  position:absolute; bottom:22%; left:35%; width:9%; height:24%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: wa-natacha 4s ease-in-out infinite 0.5s;
}
.scn-window-opening-ambush .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: wa-floor 8s ease-in-out infinite alternate;
}

@keyframes wa-wall {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes wa-frame {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(1.02) scaleY(1.01); }
  100% { transform: scaleX(0.98) scaleY(0.99); }
}
@keyframes wa-curtain-l {
  0% { transform: skewY(5deg) translateX(0); }
  50% { transform: skewY(3deg) translateX(-3px); }
  100% { transform: skewY(6deg) translateX(2px); }
}
@keyframes wa-curtain-r {
  0% { transform: skewY(-5deg) translateX(0); }
  50% { transform: skewY(-3deg) translateX(3px); }
  100% { transform: skewY(-6deg) translateX(-2px); }
}
@keyframes wa-police {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes wa-escapee {
  0% { transform: translateX(0) rotate(15deg) scale(1); }
  50% { transform: translateX(-6px) rotate(10deg) scale(1.05); }
  100% { transform: translateX(0) rotate(20deg) scale(0.95); }
}
@keyframes wa-natacha {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wa-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

.scn-barred-from-villa-dinner-invitation {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2b24 40%, #1a100c 100%),
              radial-gradient(ellipse at 50% 20%, #4a3028 0%, transparent 60%);
}
.scn-barred-from-villa-dinner-invitation .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2c1d16 0%, #1e1310 100%);
  animation: villa-wall 12s ease-in-out infinite alternate;
}
.scn-barred-from-villa-dinner-invitation .barred-window {
  position: absolute; top: 12%; left: 28%; width: 44%; height: 40%;
  background: linear-gradient(180deg, #0f0a08 0%, #1a120e 100%);
  border: 6px solid #3a2820; border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(0,0,0,0.7);
}
.scn-barred-from-villa-dinner-invitation .barred-window::before {
  content: ''; position: absolute; top: 0; left: 50%; width: 4px; height: 100%;
  background: #3a2820; transform: translateX(-50%);
}
.scn-barred-from-villa-dinner-invitation .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 22%;
  background: linear-gradient(180deg, #5c3f30 0%, #3c281e 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: villa-table 9s ease-in-out infinite;
}
.scn-barred-from-villa-dinner-invitation .glass-left {
  position: absolute; bottom: 26%; left: 34%; width: 6%; height: 14%;
  background: radial-gradient(ellipse at 30% 30%, #b8956a 0%, #7a5c3a 70%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform: skewX(-5deg); filter: drop-shadow(0 4px 6px rgba(0,0,0,0.6));
  animation: villa-glass 3s ease-in-out infinite alternate;
}
.scn-barred-from-villa-dinner-invitation .glass-right {
  position: absolute; bottom: 25%; right: 34%; width: 6%; height: 15%;
  background: radial-gradient(ellipse at 30% 30%, #b8956a 0%, #7a5c3a 70%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform: skewX(5deg); filter: drop-shadow(0 4px 6px rgba(0,0,0,0.6));
  animation: villa-glass 3s ease-in-out infinite alternate-reverse;
}
.scn-barred-from-villa-dinner-invitation .figure-seated {
  position: absolute; bottom: 22%; left: 50%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #1e1310 0%, #0a0706 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: villa-figure-seated 6s ease-in-out infinite;
}
.scn-barred-from-villa-dinner-invitation .figure-standing {
  position: absolute; bottom: 18%; left: 18%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a1c16 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: villa-figure-stand 4s ease-in-out infinite alternate;
}
.scn-barred-from-villa-dinner-invitation .lantern {
  position: absolute; top: 8%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 40%, #f0c068 0%, #b08040 60%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,0.3);
  animation: villa-lantern 3s ease-in-out infinite alternate;
}
@keyframes villa-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.88; } }
@keyframes villa-table { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes villa-glass { 0% { opacity: 0.7; transform: skewX(-5deg) rotate(0deg); } 50% { opacity: 1; transform: skewX(-5deg) rotate(2deg); } 100% { opacity: 0.8; transform: skewX(-5deg) rotate(-1deg); } }
@keyframes villa-figure-seated { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes villa-figure-stand { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-4px) translateY(0) rotate(0deg); } }
@keyframes villa-lantern { 0% { opacity: 0.7; box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 15px #ffd060, 0 0 100px 25px rgba(255,208,96,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 35px 8px #c08040, 0 0 70px 15px rgba(192,128,64,0.25); } }

.scn-item-ipecac-bottle {
  background: linear-gradient(180deg, #1e1815 0%, #2a221e 40%, #100c0a 100%),
              radial-gradient(ellipse at 50% 80%, #2a201c 0%, transparent 60%);
}
.scn-item-ipecac-bottle .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #201b18 0%, #14100d 100%);
  animation: ipecac-wall 15s ease-in-out infinite alternate;
}
.scn-item-ipecac-bottle .tabletop {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #4a382e 0%, #2c1f1a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 10% 10%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-item-ipecac-bottle .bottle {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(90deg, #6a5c4a 0%, #8a7a68 30%, #6a5c4a 70%, #4a3c2e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform: perspective(100px) rotateY(5deg);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.5);
  animation: ipecac-bottle 4s ease-in-out infinite alternate;
}
.scn-item-ipecac-bottle .bottle::before {
  content: ''; position: absolute; top: -8%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #5a4c3e 0%, #3a2c20 100%);
  border-radius: 30% 30% 0 0;
}
.scn-item-ipecac-bottle .bottle-cap {
  position: absolute; bottom: 65%; left: 44%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4028 100%);
  border-radius: 40% 40% 10% 10%;
  transform: perspective(50px) rotateX(10deg);
  animation: ipecac-cap 2s ease-in-out infinite alternate;
}
.scn-item-ipecac-bottle .glass {
  position: absolute; bottom: 15%; right: 28%; width: 8%; height: 18%;
  background: radial-gradient(ellipse at 30% 30%, #b8956a 0%, #7a5c3a 80%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5));
  animation: ipecac-glass 3s ease-in-out infinite alternate-reverse;
}
.scn-item-ipecac-bottle .hand-reach {
  position: absolute; bottom: 18%; left: 30%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #2a1c18 0%, #120c0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom right;
  animation: ipecac-hand 5s ease-in-out infinite;
}
.scn-item-ipecac-bottle .shadow {
  position: absolute; bottom: 5%; left: 38%; width: 24%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: ipecac-shadow 4s ease-in-out infinite;
}
@keyframes ipecac-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ipecac-bottle { 0% { transform: perspective(100px) rotateY(5deg) translateY(0); } 50% { transform: perspective(100px) rotateY(7deg) translateY(-2px); } 100% { transform: perspective(100px) rotateY(3deg) translateY(0); } }
@keyframes ipecac-cap { 0% { transform: perspective(50px) rotateX(10deg) translateY(0); } 100% { transform: perspective(50px) rotateX(15deg) translateY(-1px); } }
@keyframes ipecac-glass { 0% { opacity: 0.6; transform: skewX(3deg) rotate(0deg); } 50% { opacity: 0.9; transform: skewX(0deg) rotate(2deg); } 100% { opacity: 0.7; transform: skewX(-2deg) rotate(-1deg); } }
@keyframes ipecac-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-5deg); } 50% { transform: translateX(10px) rotate(10deg); } 75% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes ipecac-shadow { 0%,100% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(0.9); opacity: 0.3; } }

.scn-pere-alexis-analysis-boris-ikons {
  background: linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #100a08 100%),
              radial-gradient(ellipse at 50% 30%, #2d201c 0%, transparent 60%);
}
.scn-pere-alexis-analysis-boris-ikons .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1512 0%, #0f0a08 100%);
  animation: pere-wall 14s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis-boris-ikons .worktable {
  position: absolute; bottom: 12%; left: 15%; width: 70%; height: 28%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 8% 8% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 -6px 16px rgba(0,0,0,0.6);
}
.scn-pere-alexis-analysis-boris-ikons .flask-left {
  position: absolute; bottom: 22%; left: 24%; width: 14%; height: 24%;
  background: radial-gradient(ellipse at 50% 20%, #b8a080 0%, #6a5040 80%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  transform: skewX(-5deg);
  animation: pere-flask 5s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis-boris-ikons .flask-right {
  position: absolute; bottom: 20%; right: 26%; width: 14%; height: 24%;
  background: radial-gradient(ellipse at 50% 20%, #b8a080 0%, #6a5040 80%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 90% 100%, 10% 100%);
  transform: skewX(5deg);
  animation: pere-flask 5s ease-in-out infinite alternate-reverse;
}
.scn-pere-alexis-analysis-boris-ikons .ikon-left {
  position: absolute; bottom: 28%; left: 40%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border: 2px solid #c0a060; border-radius: 4px;
  transform: rotate(-10deg);
  animation: pere-ikon 8s ease-in-out infinite;
}
.scn-pere-alexis-analysis-boris-ikons .ikon-right {
  position: absolute; bottom: 28%; right: 38%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border: 2px solid #c0a060; border-radius: 4px;
  transform: rotate(10deg);
  animation: pere-ikon 8s ease-in-out infinite reverse;
}
.scn-pere-alexis-analysis-boris-ikons .figure-alexis {
  position: absolute; bottom: 14%; left: 8%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #2a1c16 0%, #100a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pere-figure 6s ease-in-out infinite alternate;
}
.scn-pere-alexis-analysis-boris-ikons .lamp {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 18%;
  background: radial-gradient(circle at 50% 30%, #e8c868 0%, #a08040 60%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  box-shadow: 0 0 60px 20px #c09050, 0 0 120px 30px rgba(192,144,80,0.3);
  animation: pere-lamp 3s ease-in-out infinite alternate;
}
@keyframes pere-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pere-flask { 0% { transform: skewX(-5deg) translateY(0) rotate(0deg); } 50% { transform: skewX(-6deg) translateY(-2px) rotate(2deg); } 100% { transform: skewX(-4deg) translateY(0) rotate(-1deg); } }
@keyframes pere-ikon { 0%,100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.05); } }
@keyframes pere-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-2deg); } }
@keyframes pere-lamp { 0% { opacity: 0.6; box-shadow: 0 0 40px 10px #c09050, 0 0 80px 15px rgba(192,144,80,0.2); } 50% { opacity: 1; box-shadow: 0 0 70px 25px #f0d070, 0 0 140px 35px rgba(240,208,112,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 45px 12px #c09050, 0 0 90px 18px rgba(192,144,80,0.25); } }

.scn-item-ikons-for-natacha {
  background: linear-gradient(180deg, #14100e 0%, #1e1815 40%, #0a0706 100%),
              radial-gradient(ellipse at 50% 70%, #2a1e1a 0%, transparent 60%);
}
.scn-item-ikons-for-natacha .bg-corridor {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0e0a08 0%, #1a1310 50%, #100a08 100%);
  animation: ikon-bg 16s ease-in-out infinite alternate;
}
.scn-item-ikons-for-natacha .door-arch {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 10%, transparent 0%, transparent 60%, #0f0a08 60%, #0f0a08 100%);
  border: 4px solid #2a1c16;
  border-top: none;
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
}
.scn-item-ikons-for-natacha .figure-giver {
  position: absolute; bottom: 14%; left: 26%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a1c16 0%, #120c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ikon-giver 5s ease-in-out infinite alternate;
}
.scn-item-ikons-for-natacha .figure-receiver {
  position: absolute; bottom: 14%; right: 26%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a1c16 0%, #120c0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ikon-receiver 5s ease-in-out infinite alternate-reverse;
}
.scn-item-ikons-for-natacha .ikons {
  position: absolute; bottom: 28%; left: 46%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border: 2px solid #c0a060; border-radius: 4px;
  transform: rotate(8deg);
  animation: ikon-items 4s ease-in-out infinite;
}
.scn-item-ikons-for-natacha .candle {
  position: absolute; bottom: 22%; left: 50%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a060 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 0 8px 2px #d0b070;
  transform: translateX(-50%);
  animation: ikon-candle 4s ease-in-out infinite alternate;
}
.scn-item-ikons-for-natacha .light-pool {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,160,80,0.15) 0%, transparent 100%);
  filter: blur(20px);
  animation: ikon-light 6s ease-in-out infinite;
}
@keyframes ikon-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ikon-giver { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes ikon-receiver { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } }
@keyframes ikon-items { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(5deg) scale(1.03); } 100% { transform: rotate(10deg) scale(0.98); } }
@keyframes ikon-candle { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.7; } 50% { transform: translateX(-50%) scaleY(1.1); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8; } }
@keyframes ikon-light { 0%,100% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } }

/* scene 1 – rouletabille-reports-to-koupriane */
.scn-rouletabille-reports-to-koupriane {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%), radial-gradient(ellipse at 70% 50%, #4a2a2a 0%, transparent 60%);
}
.scn-rouletabille-reports-to-koupriane .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1e1e 50%, #1a1212 100%);
  animation: rtk-wall 20s ease-in-out infinite alternate;
}
.scn-rouletabille-reports-to-koupriane .window {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 60px;
  background: radial-gradient(circle, #a0b0c0 0%, #4a5a6a 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 5px rgba(160,176,192,0.5);
  animation: rtk-window 8s ease-in-out infinite alternate;
}
.scn-rouletabille-reports-to-koupriane .desk {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
}
.scn-rouletabille-reports-to-koupriane .lamp {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,0.6);
  animation: rtk-lamp 4s ease-in-out infinite alternate;
}
.scn-rouletabille-reports-to-koupriane .figure-rouletabille {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtk-walk1 6s ease-in-out infinite;
}
.scn-rouletabille-reports-to-koupriane .figure-koupriane {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rtk-walk2 6s ease-in-out infinite alternate;
}
.scn-rouletabille-reports-to-koupriane .papers {
  position: absolute; bottom: 16%; left: 33%; width: 30px; height: 4px;
  background: #8a7a6a;
  border-radius: 2px;
  animation: rtk-papers 12s ease-in-out infinite;
}
@keyframes rtk-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rtk-window { 0% { box-shadow: 0 0 10px 2px rgba(160,176,192,0.3); } 50% { box-shadow: 0 0 30px 10px rgba(160,176,192,0.7); } 100% { box-shadow: 0 0 15px 5px rgba(160,176,192,0.4); } }
@keyframes rtk-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(240,192,96,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,192,96,0.8); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(240,192,96,0.5); } }
@keyframes rtk-walk1 { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rtk-walk2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rtk-papers { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.9); } }

/* scene 2 – annouchka-performance-gardens */
.scn-annouchka-performance-gardens {
  background: linear-gradient(180deg, #2a2040 0%, #4a3050 40%, #6a4060 100%), radial-gradient(ellipse at 50% 80%, #7a5070 0%, transparent 60%);
}
.scn-annouchka-performance-gardens .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 100%);
  animation: apg-sky 20s ease-in-out infinite alternate;
}
.scn-annouchka-performance-gardens .trees {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: apg-trees 15s ease-in-out infinite alternate;
}
.scn-annouchka-performance-gardens .stage {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}
.scn-annouchka-performance-gardens .singer {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: apg-singer 8s ease-in-out infinite;
}
.scn-annouchka-performance-gardens .audience {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 8%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 6px, transparent 6px, transparent 12px);
  opacity: 0.7;
  animation: apg-audience 6s ease-in-out infinite;
}
.scn-annouchka-performance-gardens .lantern1,
.scn-annouchka-performance-gardens .lantern2 {
  position: absolute; bottom: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(255,208,128,0.6);
  animation: apg-lantern 5s ease-in-out infinite alternate;
}
.scn-annouchka-performance-gardens .lantern1 { left: 30%; }
.scn-annouchka-performance-gardens .lantern2 { right: 30%; animation-delay: 2s; }
@keyframes apg-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes apg-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes apg-singer { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-5px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes apg-audience { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.6; transform: scaleY(0.9); } }
@keyframes apg-lantern { 0% { box-shadow: 0 0 10px 3px rgba(255,208,128,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.8); } 100% { box-shadow: 0 0 15px 5px rgba(255,208,128,0.5); } }

/* scene 3 – box-gossip-natacha-glances */
.scn-box-gossip-natacha-glances {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 50%, #3a2a40 100%), radial-gradient(ellipse at 50% 40%, #4a3a50 0%, transparent 70%);
}
.scn-box-gossip-natacha-glances .box-frame {
  position: absolute; inset: 10% 10% 20% 10%;
  border: 4px solid #5a4a3a;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-box-gossip-natacha-glances .curtain {
  position: absolute; top: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 100%);
  border-radius: 0 0 30% 30%;
  animation: bgn-curtain 12s ease-in-out infinite alternate;
}
.scn-box-gossip-natacha-glances .figure-rouletabille {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bgn-fig1 8s ease-in-out infinite;
}
.scn-box-gossip-natacha-glances .figure-ath {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bgn-fig2 8s ease-in-out infinite alternate;
}
.scn-box-gossip-natacha-glances .figure-natacha {
  position: absolute; bottom: 25%; left: 70%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bgn-fig3 6s ease-in-out infinite;
}
.scn-box-gossip-natacha-glances .mantilla {
  position: absolute; bottom: 55%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: bgn-mantilla 4s ease-in-out infinite;
}
.scn-box-gossip-natacha-glances .glance {
  position: absolute; bottom: 40%; left: 65%; width: 4px; height: 4px;
  background: radial-gradient(circle, #f0e0d0 0%, #c0b0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,224,208,0.5);
  animation: bgn-glance 3s ease-in-out infinite;
}
@keyframes bgn-curtain { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-5px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.7; } }
@keyframes bgn-fig1 { 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 bgn-fig2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bgn-fig3 { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-6px) rotate(3deg) scale(1.05); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes bgn-mantilla { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes bgn-glance { 0% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* scene 4 – theater-prayer-caracho-whisper */
.scn-theater-prayer-caracho-whisper {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-theater-prayer-caracho-whisper .stage {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-theater-prayer-caracho-whisper .backdrop {
  position: absolute; bottom: 45%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 50% 50%;
  opacity: 0.6;
}
.scn-theater-prayer-caracho-whisper .spotlight {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(ellipse at center, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: tpc-spotlight 6s ease-in-out infinite alternate;
}
.scn-theater-prayer-caracho-whisper .kneeling {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-kneel 8s ease-in-out infinite;
}
.scn-theater-prayer-caracho-whisper .natacha {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-natacha 10s ease-in-out infinite;
}
.scn-theater-prayer-caracho-whisper .prince {
  position: absolute; bottom: 25%; left: 70%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpc-prince 12s ease-in-out infinite;
}
.scn-theater-prayer-caracho-whisper .exit {
  position: absolute; bottom: 20%; right: 5%; width: 20px; height: 40px;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0,0,0,0.8);
  animation: tpc-exit 4s ease-in-out infinite;
}
@keyframes tpc-spotlight { 0% { opacity: 0.5; transform: scale(1) translateX(0); } 50% { opacity: 1; transform: scale(1.2) translateX(10px); } 100% { opacity: 0.7; transform: scale(0.9) translateX(-5px); } }
@keyframes tpc-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 66% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes tpc-natacha { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-4px) rotate(1deg); opacity: 1; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.7; } }
@keyframes tpc-prince { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tpc-exit { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
/* end per-scene blocks */
